Wednesday, April 25, 2007

OK, I'm getting closer to making my own Live CD Linux distribution



I'm one step closer to having my own Linux live CD distribution.

Last night, I figured out how to have X autoprobe for the type of video card you have. Basically, by running X -configure, X will probe your system to see which video card you have, and write a basic XF86Config file. I presume newer versions of X will make this an Xorg.conf file. I then run the generated file through an Awk script to make an XF86Config file that generates an 800x600 screen refreshed at 72hz.

I have also downloaded and compiled Linux 2.4.34.4, and added a script to cloop 2.05 so that it compiles without problem in Linux 2.4. Cloop is a program that allows me to compress the filesystem. cloop 2.06 won't compile without modification in Linux 2.4; cloop 2.05 is the last version of Linux 2.4 that can compie as is, using only a small script to
make the actual module.

Right now, I don't need Cloop. The complete working self-contained system, with X, Opera, Fvwm 1, kernel drivers, Busybox, MaraDNS, and rxvt, is about 70 megabytes in size. Cloop is a "nice to have" thing.

One nice thing about the cyber cafe I am in right now is that it is a good place to test Linux. DSL has not been tested throughly on the kind of hardware I try to run DSL on. On one system in this cafe, the USB doesn't work. On another, DHCP doesn't work. On another, the mouse doesn't work. On another, it seems to hang at kernel bootup time. Since the DSL designer decided the Kernel bootup messages were not pretty, I can't figure out why--there's a reason the Linux kernel is so verbose at startup. Without these messages, I can't figure out if a given piece of dodgy hardware is hanging or if there is some really long autoprobe process.

DSL has different priorities than I do. I want a simple system with a usable *NIX environment (can you say Busybox), X, a simple window manager (fvwm1 works just fine), SSH, a terminal program (such as the small RXVT), MaraDNS, a web browser that can access the modern internet, and possibly an IM client that works with MSN. DSL has all that (except for a DNS server), but DSL also has a Spreadsheet, a Word Processor, a VNC thingy, three different editors (I can live with just vi but will probably add Nano), a graphical FTP client (that's what SSH and a web browser are for), the XMMS mp3 player (This is "nice to have" but not essential, especially since most computers at cyber cafes don't have speakers), xpaint, an image viewer (again, just use the web browser), a graphical email client (again, the web browser or SSH in to the *NIX box and use MUTT there), a fancy colorful boot sequence (No, I don't need this), an old version of XPDF that doesn't work with my English lessons (Nice to have if it worked, but...), far too many really ugly fonts, etc. On the other hand, DSL is lacking pretty fonts (except for the excellent misc-fixed), tools to handle 70hz refresh (much easier on my eyes; CRTs are alive and well down here), dodgy USB controllers (don't try autoscanning; just let the user insert and remove the USB kernel modules themselves after inserting and before removing a USB keychain); dodgy DNS servers (That's why I include MaraDNS), dodgy hardware (It would help if I could actually see where the kernel is hanging), dodgy CD-ROM drives that have a hard time reading the live CD (I wonder if some kind of RAID mirroring is possible, where there are two copies of each file), etc.

The next hurdle I need to jump in my own Live CD distribution is to set things up so the root filesystem is one that is usable. Right now, the Xsetup script I wrote doesn't work because the root filesystem needs to be a ramdisk with symlinks to the various read-only parts of the actual system. So, I will look at the KNOPPIX initrd and see what magic it does to make the ramdisk filesystem when I get some free time again.

- Sam