A new laptop (by alaric)
To my great displeasure, my shiny MacBook Pro was stolen from the office in London!
So, I grabbed our finance guy and we went down to the nearest laptop shop and picked up the cheapest thing they had in the shop that would meet my needs: a Hewlett Packard Pavilion dv7.
The first step was replacing Windows 7 with something. As I knew I might have some teething troubles with getting NetBSD installed, so might need to return to Windows to get online, I shrank the Win7 partition down so I could run it dual-boot rather than nuking the whole thing. However, it was worse than I feared - the NetBSD install CD wouldn't even boot - the boot loader came up, then complained it couldn't read the kernel.
Not good.
So I burnt an ISO of Arch Linux, which is the closest to BSD in the Linux world. No good, either - GRUB loaded, and couldn't load the Linux kernel. I downloaded the boot.kernel.org nano-ISO (which then boots over HTTP from a central server) and that booted OK; but many of the Linux installers I tried died of kernel panics during booting. I wondered if the difference was that boot.kernel.org had an ISOLINUIX-based installer rather than GRUB; googling for this, I found out that GRUB sometimes has trouble with some CD drives, and as such, Arch Linux came with the option of an ISOLINUX-based installer CD. So I burnt a copy of that, and pow, it worked!
I installed Arch Linux, but only in a small partition, still intending to try and install NetBSD via non-CDROM means at some point. I soon had X up, and all was quite well, apart from the fact that my wireless Ethernet module (a Broadcom 4315) didn't work. I found a driver and installed it, and then it was recognised, but it still refused to actually do any wifi. Bah humbug.
On a hunch, I re-downloaded the NetBSD installer ISO and burnt a new CD of it... and it worked, this time! Having wasted most of a week trying to get the first one booting then messing with Linux distros. So I left my Arch partition in place (in case I needed it for anything), and set up NetBSD. Got X working again, copied across the home directory I'd made under Arch rather than redoing my dotfiles, and was happy. Except that NetBSD also didn't like my wireless interface, and it had trouble with the ACPI too, so I can't read my battery status or do a suspend properly. I've found a NetBSD driver for Broadcom devices but I've yet to get it to compile (I think it was developed mainly for the macppc port, or I've just not applied the patch properly). When I get my kernel source tree compiling again I'll have a new kernel that also has verbose ACPI debug messages, which will probably help.
I get Xen working, though; it was painless now that NetBSD's boot loader can do multiboot kernels, meaning I didn't need to mess with GRUB; I just installed the xen tools, and a xen kernel, and a NetBSD/xen kernel, then added the following line to /boot.cfg
:
menu=Xen with 1GiB for dom0:load /netbsd-XEN3_DOM0 console=pc;multiboot /xen.gz dom0_mem=1024M
...and rebooted into a Xen dom0. Setting up some Linux domUs for my work has been more exciting: I downloaded Debian filesystem images and a kernel from stacklet.com, but when I bring it up, Debian complains it can't bring up the Xen virtual network interface - and that it's getting lots of disk errors on the Xen virtual block device (although it can actually read the filesystem without any trouble whatsoever). This may not be helped by the fact that the kernel I downloaded doesn't seem to match the /lib/modules
directory in the filesystem image, alas. More work is required.
Still, I'm happy to be back on an X workstation. I liked my Mac, but I was feeling hankerings for open source software, and minimalism. I'm running dwm
, dmenu
, and remind, joined together with awesome shell scripts. I do miss the intergrated personal-information-management tools in Mac OS X; I want to brew up my own database of people/todos/events/etc in some Prolog dialect (eventually replacing remind
), so I can express all the relationships between things that I want ("There is an all-day event on date X called 'Y's birthday' if there is a person P with name Y whose birthday has the same day and month as X", sort of thing) - it'd be nice if it could integrate with Thunderbird's address book, so I may have a look at the format of that (or look into a script to sync it to/from an LDAP directory).