I’ve been using Debian since version 2.0 back in 1998, it is still my favorite distribution for systems that I maintain by hand (instead of using fancier automated tools) mainly because of the vast number of packages and ease of integration. I still prefer Red Hat for “work” stuff, and anything larger than small scale installations.
Anyways I happened to peek in on the progress they were making a few days ago, and they were down to something like 7 release critical bugs, so I was kinda-sorta excited that another new revision was coming out. I remember some of the leader(s) back in 2009 set some pretty aggressive targets for this version of Debian, like most people out there I just laughed and knew it wasn’t achievable. I’m patient, release when it’s ready, not before. Debian was pretty quick to say they weren’t official targets(I believe) more like best effort estimates. For some reason this particular Debian press release is not on their main site, maybe a hiccup in the site-redesign, as the news from 2009 page shows a bunch of stuff from 2008.
Almost a year after that original goal, Debian 6.0 is here. To be honest I’m not sure what all is really new, I mean of course there’s a lot of updated packages and stuff, but, I suppose for me Linux has pretty much gotten to the point where it’s good enough for me, I mean the only thing I really look forward to in upgrades is better hardware support (and even then that’s just for my own laptops/desktops etc, otherwise everything I run is in a virtual machine and hardware support hasn’t been an issue there ever).
Normally I’m not one to upgrade right away, but today was a different day, maybe it was the weather, maybe it was just waiting for the Super Bowl to come on (watching it now, paused on Tivo while I write this). But I decided to upgrade my workstation at home today, more than 1,000 package updates, and for the first time in a decade the installation instructions recommended a reboot mid-upgrade. The upgrade went off without a hitch, my desktop isn’t customized much, re-installed my Nivida driver, told VMware Workstation to rebuild it’s kernel drivers, fired off X, and then I went back to my laptop(my workstation is connected to my TV so I have to decide which input I want to use, I’d like my next TV to have picture in picture if any TVs out there anymore have that ability it was pretty popular back in the ..80s?).
My workstation, for reference:
- HP xw9400 Workstation
- 2 x Opteron 2380 CPUs (8 cores total)
- 12GB ECC memory
- Nvidia Geforce GT 240 (what lspci says at least)
- 3Ware 9650 SE SATA RAID controller with battery backed write back cache
- 4x2TB Western Digital green(I think) drives in RAID 1+0
- 1x64GB Corsair SSD (forgot what type) for OS
I got a really good deal on the base system at the time, bought it through HP’s refurb dept, for a configuration that retailed brand new on their own site for about $5,000 (note that is not the above config I have added a bunch to it), my cost was about $1,500, and that included a 3 year warranty. I wanted something that should last a good long time, and of course it’s connected to an APC Smart UPS, gotta have that sine wave power…
I have had my eye on Debian‘s kFreeBSD port for some time and I decided what the hell let’s try that out too. I have two Soekris boxes (one is backup), so I took the one that was not in use and put a fresh compact flash card in there and poked around for how to install Debian kFreeBSD on it, because you know I hate BSD userland but really like to use pf.
First off, I did get it working..eventually!
kFreeBSD is a technology preview, not a fully supported release, so it is rough around the edges. Documentation for what I wanted to do was sparse at best and there seemed to be only one other person trying this out on a Sokeris box, so the mailing list thread from nearly a year ago was helpful.
Official Documentation was lacking in a few areas:
- Documentation on how to setup the tftp server was mostly good, except it wasn’t exactly easy to find the files to use, I had to poke around quite a bit to find them.
- No documentation on how to enable serial console for the installer, there was no mention of serial console at all except for here, and no mention on how to set those various variables.
- For those that want to know you need to edit the grub.cfg (Debian 6.0 uses Grub 2 now, which I guess is good but it’s more confusing to me), and add the parameters -D -h to the kernel line, example:
menuentry "Default install" {
echo "Loading ..."
kfreebsd /kfreebsd.gz -D -h
kfreebsd_module /initrd.gz type=mfs_root
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/md0
set DEBIAN_FRONTEND=text
}
I tried setting the DEBIAN_FRONTEND variable as you can see, but it didn’t seem to do anything, the installer behavior was unchanged from the default.
Took me a significant amount of time to figure out I could not use minicom to install Debian kFreeBSD, instead I had to use cu (something that I’ve never used before). I’ve used minicom for everything from switches, to routers, to load balancers, to OpenBSD installs, to Red Hat Linux installs (I have never tried to install Debian over serial until today). But on Debian kFreeBSD the terminal emulation is not compatible between minicom and the installer, the result is I could never get past the assign a host name screen, it just kept sending random escape characters setting me back to previous screens, it was pretty frustrating.
Since there is no VGA port on the Soekris I did a tftp net install over serial console, when it came to installing the various base packages it took forever. I think at least part of it is due to the CF card being put in PIO mode instead of DMA mode, though looking at my OpenBSD Sokeris system it says it is using PIO mode 4 too. I am using the same model and size of CF card in both systems, I specifically used this one (Lexar 1GB, have had it for 5-6 years) because it seemed to run really fast on my systems vs my Kingston CF cards ran like dogs. Anyways it took upwards of two hours to install the base packages(around ~400MB installed). Doing the same in a VMware VM took about 5 minutes tops(much faster system mind you..)
I chose to install the base operating system along with the SSH option (which I swear was “SSH server”). And everything installed.
Then I rebooted and was greeted to a blank screen where GRUB should be. It took a little time to figure it out but I managed to edit the PXE grub configuration so that it would boot my local CF card over serial port.
So there we go , the kFreeBSD kernel is booting on Soekris –
Copyright (c) 1992-2010 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
#0 Tue Jan 4 16:41:50 UTC 2011 i386
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Geode(TM) Integrated Processor by AMD PCS (499.91-MHz 586-class CPU)
Origin = "AuthenticAMD" Id = 0x5a2 Family = 5 Model = a Stepping = 2
Features=0x88a93d<FPU,DE,PSE,TSC,MSR,CX8,SEP,PGE,CMOV,CLFLUSH,MMX>
AMD Features=0xc0400000<MMX+,3DNow!+,3DNow!>
real memory = 536870912 (512 MB)
avail memory = 511774720 (488 MB)
module_register_init: MOD_LOAD (vesa, 0xc0952d8e, 0) error 19
kbd1 at kbdmux0
K6-family MTRR support enabled (2 registers)
ACPI Error: A valid RSDP was not found (20100331/tbxfroot-309)
ACPI: Table initialisation failed: AE_NOT_FOUND
ACPI: Try disabling either ACPI or apic support.
pcib0: <Host to PCI bridge> pcibus 0 on motherboard
[..]
And a bunch of services started, including PostgreSQL (?!?!), and then it just sat there. No login prompt.
I could ping it but could not ssh to the system, the only port open was port mapper. I told it to install SSH related things(I forgot exactly what the menu option was but find it hard to believe that there would be an openssh client option and not a server option I can go back and look, maybe later).
So, now I was stuck.. I rebooted back into the installer and had some trouble mounting the CF card in the rescue shell but managed to do it, I chroot’d into the mount point, enabled the serial console per the examples in /etc/inittab, and used apt-get to install openssh — only that failed, some things weren’t properly configured in order for the ssh setup to complete. So I thought..and thought…
Telnet to the rescue! I haven’t used telnet on a server in I don’t know how many years probably since I worked at a Unix software company in 2002 where we had a bunch of different unixes and most did not have ssh. Anyways I installed telnet on the system via chroot, unmounted the file system, rebooted and the system came up — but still no login prompt on the serial console. Fortunately I was able to telnet to the thing, and install ssh along with a few other packages, and removed PostgreSQL, I do not want to run a SQL database on this tiny machine.
I did more futzing around trying to get DMA enabled on the CF card to see if that would make it go faster to no avail. top does not report any i/o wait but I think that is a compatibility issue rather than there not being any i/o wait on the system.
After poking around more I determined why the login prompt wasn’t appearing on the serial console, it’s because the examples in the /etc/inittab were not right, at least not for Soekris, I can’t speak to other platforms. But it mentions using /dev/ttyd0 when in fact I have to use /dev/ttyu0. Oh and another thing on serial console and this kFreeBSD, from what I read setting a custom baud rate (other than default 9600) is difficult if not impossible, I have not tried, so instead I changed the Sokeris default baud rate from 19200 to 9600.
I also did some hand editing of grub.cfg to enable serial console in grub and stuff, because I was unable to figure out how to do it in the grub v2 templates.
So all in all, certainly feels like a technology preview, very very very rough around the edges, I’m sure it will get there in time. My own needs are really minimal, I run a tiny set of infrastructure services on my home firewalls like dhcp, dns, OpenVPN, Network UPS Tools and stuff, no desktop, no web servers, nothing fancy, So I can probably use this to replace my OpenBSD system, I will test pf out maybe next weekend, spent enough time on it for now.
root@ksentry:~# cat /etc/debian_version
6.0
root@ksentry:~# uname -a
GNU/kFreeBSD ksentry 8.1-1-486 #0 Tue Jan 4 16:41:50 UTC 2011 i586 i386 Geode(TM) Integrated Processor by AMD PCS GNU/kFreeBSD