Finnix Updates

Hi all. I haven't had the desire to work on Finnix much lately because of personal health issues, but hopefully there will be a release within a few weeks. Not much in terms of major changes, but just as a warning, the x86 CD will most likely be about 120MiB. 89.0 was released after Debian froze for the etch release, and 89.1 was released right after the etch release itself. That means that all libraries were finalized and there was very little overhead. Now that Debian lenny development is in full force, there are many cases of multiple version of libraries in Finnix, with some packages using older libraries and some using newer. That, combined with normal size creep means Finnix will be a little big these days. The kernel will most likely be based on 2.6.21, since there are some problems I haven't resolved yet with 2.6.22 and SquashFS. This version will probably also be the switch from UnionFS to AUFS, but I have a lot of testing to do before I'm comfortable with that migration. This is all behind the scenes of course, nothing should look different once you're booted into Finnix. The version will probably be 89.2, since again, nothing ground-breaking in the Finnix development itself.

On the trademark front, everything is now complete! Finnix is now a registered trademark. I'll be updating graphics on the site where appropriate.

Macs, and AMD64 Support

I got my hands on a couple Mac Pro quad-core (in reality, 2 dual-core Xeons) machines at work this week, and got Finnix to work on them, kinda. rEFIt found Finnix just fine, but the kernel would freeze when trying to mount the CDROM disc. "nodma" didn't work either. My next attempt was to boot from a USB CDROM drive. Once again, rEFIt found the USB CDROM drive and Finnix disc, but isolinux would fail halfway though loading the kernel image from CD. I eventually booted by putting a copy of Finnix in the onboard CDROM drive, and another in the USB CDROM drive, then booting the onboard CDROM and typing "finnix root=/dev/sr0". The problem seems to be kernel-related; hopefully 2.6.18 helps with this.

Core Duo Mac Minis and Core Duo Macbook Pros boot fine, however. I would assume the Core Solo variants work fine as well. I've also been able to boot Finnix successfully and easily on several non-Mac Core Duo laptops, as well as the latest and greatest Athlon X2 systems.


Development is coming along well. In addition to udev and netbooting support, the next Finnix will support autodetection of dm-crypt/LUKS partitions, and md software RAID sets. Additionally, I am 99% sure I will be including an AMD64 kernel (bootable as "finnix64" instead of "finnix") along with the normal 586 kernel. There are two main reasons for doing this:

  • Current x86 Finnix kernels are not PAE enabled, which means they cannot utilize more than 4GB RAM. This is done because PAE tends to be problematic on hosts with 4GB RAM or less. Native 64-bit kernels (on an AMD64/EM64T CPU, of course) have a much higher limit (petabytes?). Granted, the average machine still has less than 4GB RAM these days, but I have had to use Finnix on 6GB/8GB machines before. (Non-PAE kernels still boot, they just display the installed RAM as 4GB.)
  • While the Finnix userland will still be 32-bit, booting a 64-bit kernel will allow you to run static-compiled 64-bit programs, and more importantly, chroot into pure 64-bit environments. This will become increasingly important as more and more distros offer native AMD64 userlands as an option (Fedora, RHEL, SuSE, and soon Debian).

However, another kernel means a larger distro. In order to cut down on size, I have decided to remove the finnix-uml package (AKA Finnix-on-Finnix) from the main distribution. Finnix-on-Finnix was created as a way to prototype and test Finnix virtualization support (by acting as both the host and guest, you test two birds with one stone), and virtualization support has proven to be incredibly stable the last few releases. However, once a Finnix release is gold, Finnix-on-Finnix itself becomes little more than a novelty, which very few people use, and takes up previous megabytes. The finnix-uml package will still be maintained and available in the apt repository, so it is little more than an "apt-get install finnix-uml" away if you still want to use it.

After all is said and done, it's looking like the final compressed distro size will be about 110MiB after adding the AMD64 kernel. While still much lower than the project's target ceiling of 185MiB, I had been trying to keep x86 under the magical 100MiB number. Oh well.

Snapshots to be Archived

In the next few days, I will be archiving and deleting older Finnix development snapshots. The space does add up; 7GB of snapshots since I started posting snapshots in February. If you have a need for an older snapshot, you should download it now.

The latest snapshot has been uploaded recently. It is mostly functional, with the biggest problem being some mount points/fstab entries are not being created automatically. NFS/TFTP booting is pretty stable, and has been confirmed working on the PPC platform. I will be writing documentation for NFS booting soon.

Development Update: Oshkosh, udev, Netbooting, toram/testcd

One day, Finnix will be "finished", and I will be left with releasing updated ISOs every few months with a dist-upgrade and maybe a new kernel. Thankfully, that day hasn't come yet.

First up, for post-88.0 development, the new codename is Oshkosh, a city of about 60,000, on the west side of Lake Winnebago. Oshkosh is the original home of OshKosh B'Gosh, a popular line of children's clothing. Oshkosh is also home to the world's busiest airport... for one week, that is. The EAA AirVenture Fly-In is a yearly gathering of experimental aircraft enthusiasts, and the single airfield handles 10,000 to 15,000 aircraft during the week-long show.

New builds are up on the snapshots server. Here are the major developments being worked on:

  • udev support. The primary benefit of udev for Finnix is automatic generation of fstab entries. If you were to partition a hard drive, the new partitions will immediately show up in fstab, with /mnt directories created automatically.
  • Network booting. Finnix is now capable of being booted via PXE/bootp, expanding the possiblities of a sysadmin in need. Additionally, a new script is available, finnix-netboot-server, which takes care of configuring and starting TFTP and NFS servers from within Finnix itself. All you have to do is add a few lines to your DHCP server's config.
  • toram and testcd functionality has been reverted back to its "classic" file-based operations. Block-based operation was nice, but the drawbacks outweighed the benefits.
  • A new kernel is available on the x86 image, 2.6.17-3-x86-finnix, based on Debian's 2.6.17-8, which is based on vanilla. Nothing special, it was mainly to test a new kernel build method. Future releases will have Debian-style kernel source/header packages available, which will make it easier to compile 3rd-party modules and remaster the kernel portion.

Finnix and Bootcharts

Finnix 88.0 will have Bootchart support; "finnix bootchart" will start bootchartd, and stop it at the appropriate time. (Bootchart will look for key processes to determine when it's "done", such as getty or xinit. Finnix does not utilize either, so finnix-scripts must stop it manually at the end. Below is a (largeish) image, and some notes.
Continue reading Finnix and Bootcharts

Development, Development, Development, Development

News from the development front...

First, a clarification about codenames. Namely, they will only be used during development. Currently, the daily builds are tagged as "Finnix version dev (Pulaski)", with "Pulaski" indicating "after 87.0 release, but before 88.0". When 88.0 is released, it will simply be called "Finnix version 88.0".

As you may have heard 2 sentences ago, yes, the next version will be numbered 88.0. The vitals are looking like the following: Linux 2.6.17 (as of this writing, Debian's 2.6.17-2), UnionFS 1.3 (no more CVS snapshots...), SquashFS 3.0. Finnix 88.0 will look a great deal like 87.0, but behind the scenes, a LOT has been done. As I mentioned before, PCI module autodetection has been completely rewritten to be much faster, "toram" and "testcd" are now more effective (in particular, "testcd" now tests the entire CD on a block level), Xen is now completely supported (both as a domU and now as a dom0, though no dom0 kernels will be distributed with the CD), and more.

I have finalized on which DOS disk I will be using for the "dos" profile. It is FreeDOS ODIN 0.7, which is essentially the DOS floppy equivalent of a LiveCD. I got the idea of including DOS after using a Caldera DR-DOS utility disk image that comes with Nero Burning ROM. Obviously I can't distribute DR-DOS, and FreeDOS itself does not directly distribute a non-installation disk, but thankfully I came across ODIN. It works just like the DR-DOS utility disk, even better in some places, and is only 900k compressed.

In non-development news, I have migrated some services from Sourceforge to in-house. The mailing list and bug system is gone, replaced by a forums system. Older news items have been backported from Sourceforge into the "Announcements" section of the blog, and the home page now points to this instead of Sourceforge. (New version announcements will continue to be copied to Sourceforge.) I am currently looking at integrating the snapshots system to announce to CIA.

Oh, I guess you are wondering when 88.0 will be released. I'm thinking early August at this point, coinciding with DEF CON, which I will be attending for the 4th year. Nothing official, but I'll probably be handing out stacks of CDs. Let me know if you plan on attending.

If 4 months between releases is not good enough for you, remember that there are always the snapshots, which are almost always (but not guaranteed to be) stable. Right now the uploads are triggered manually, every weekday or so. (I have many machines at work that I can test on, so I usually start uploading before I leave for work, download from work, then test.) So, at this point, if I uploaded it, it's a pretty good indication I expect it to at least boot.

Finnix Codenames

Having a high version number just isn't enough. All of the cool distros have codenames, so I decided to jump on board. Finnix is not cool enough to have a codename such as Oscillating Ocelot; instead, I will be using places in Wisconsin, my original home state. There is certainly enough to choose from, with over 2000 cities, towns and villages in the state. However, I figured I should stick with places that 1) I've heard of, and 2) can be pronounced with relative ease. That means no Oconomowoc, Trempealeau or Nasewaupee (yes, those are all real).

First up is Pulaski, a village of about 3000, about 30 minutes outside Green Bay (my hometown). Pulaski is famous for polka, and every year hosts Polka Days. Pulaski is also the location of the first modem bank set up at the ISP I used to work for. (I still have the number memorized after all these years, 414-822-6382, though the area code has changed since then.)

[*] Finnix dev (Pulaski) ready; 357 packages, 98M compressed

Finnix Development Update

Finnix development stalled for the past month since the release of 87.0, mainly because there wasn't much to do, so I tended to other things. However, there's been some work in the past 48 hours:

  • Did a dist-upgrade to bring it up to sync with current etch
  • Added "set mark-symlinked-directories on" to /etc/inputrc (Finnix uses symlinks a lot, and it's annoying having to double-tab when you want to tab-complete to /etc, for example; this fixes that)
  • Added dmidecode and selectable modules to finnix-hwsubmit
  • Added "dos" boot profile (boots into FreeDOS)
  • Replaced hwsetup with a new, faster "pcimodules" routine

That last line is where all the neat is. Here's a rough idea how current Finnix 87.0 boots its initrd:

Continue reading Finnix Development Update

One More Feature for the Road

Kernel 2.6.16 has made the cut, and final CD images have been mastered. One final round of testing, and Finnix 87.0 should be released Friday!

One small new feature made it through at the last moment. One feature I always liked is in the Windows installation CDs. When you boot from the CD, it says something to the effect of "Press any key to boot from CD." If you don't press a key within a few seconds, the CD moves on to booting the first hard drive.

In previous versions of Finnix, if you did not type anything at the boot prompt, it would eventually just boot Finnix. Now, if no input is detected in 60 seconds, the CD simply boots the first hard disk. This way, you can reboot Finnix remotely, and have your normal OS load if you have a CDROM drive that likes to suck the CD back in during BIOS POST.