The state of Desktop Linux... or so
Today I had the urge to try installing Linux on my Intel Mac's external hard disk. I'm still busy doing this, and I'll add to this entry as I progress. I picked KUbuntu, a version of Ubuntu that's preconfigured to use KDE as its desktop environment. I downloaded the live CD and applied Apple's Firmware Update 1.0.1, and after burning the live CD under OS X I was able to boot into Linux. Worked pretty fine. There's a few snags I hit, though:
Startup
It's a little odd that we have some odd (but frozen, unmoving) progress bar at startup. Okay, I didn't think it had hung because that check-list of tasks it does at startup scrolled past, but having a general idea how long it'll take would be better (even if it's number of tasks and not actual time it'll take).
The Installer on the Live CD
The Live CD includes a neat installer that you can use to install Kubuntu onto your computer as soon as you've tried it out. This is neat, and the installer is pretty simple. Except for the partition selection, that is. I just don't understand why:
- The language selector list doesn't have keyboard focus from the start? Instead of just hitting the up arrow to select my language, I need to reach for the mouse, or wildly tab around. Now, I'm not disabled, but for those who are this could be a real annoyance.
- The option to select an existing partition is hidden behind the option to "manually edit the partition table". I didn't choose that as I thought it'd drop me into fdisk at best. It stayed in the GUI, in a fairly rudimentary partition editor, that requires use of a contextual menu to reformat a drive. Why not give me a nice UI like QParted, the partition editor included?
- The only other understandable option it offered was to completely flatten the external hard disk. Sadly, when I clicked Next after choosing that, it hung without a progress indicator or anything. I killed it after an hour.
- Only on the next page after that It shows me all partitions it can make sense of and lets me pick one of them. It even shows the drive names of the volume formats it can make sense of (though UFS and HFS+ aren't among them), so I can see whether I'm trashing the right partition. The silly part is that the menu to select the drive is hidden behind a tiny chevron in the upper right of the window. But why is this page so well-hidden? I never expected to find that in a section on "manually editing the partition table". Be sure to remember the device "names" of the partitions you want to use here, e.g. /dev/hdb5 or whatever...
- On the page after that, there's oodles of popups for the different purposes for which you can attach partitions. Of course, all these partitions only show Unix device names, not the actual partition names, so I have to go back and look up what device the partition I named "Swap" is at... If they offer partition names (or "labels" as they call them), they really should show them for every volume. Also, they need to change these popups. I have no idea whether I have to set all of them, or just the minimal three (what to mount at "/", the "SystemPartition" and "Swap"?), and what I do to indicate I don't want to mess with one of these. It'd really help here if you had checkboxes in front of those that can be turned off because they're optional. I just selected the "empty popup item" for those where I didn't know what to do... was that right?
- The different pages need to interact more. I originally forgot to reformat my system partition to ext3 (left it as MS-DOS), but selected the option to reformat it next to its popup, and got all the way to the end only to be told fat32 wasn't supported for the boot volume. This warning should already come when I select the wrong volume, maybe with an offer to retroactively change my settings to a more sensible volume format.
- Every time I complete a page, a little progress window named "Installer" (aren't I already in the installer?) comes up. Once that's finished, there is a moment where I can still mess with the current page's GUI, but it's already in the process of switching to the next. Trouble is, changes I make at that time stick in the GUI, but aren't actually used. So, when I go back, it'll act as if I had only just changed this setting and only then it gets applied. Either lock the GUI at this time, or write code to actually carry over the changes right away. The way it is now sends wrong messages.
- The installer is Denglisch. I.e. half the stuff is localised German as I requested, but other parts aren't, often in the same window. I downloaded a "final" release, and KDE has lots of developers and supporters in Germany, so I'm a little surprised I get buttons named "Cancel" next to a German description of what to do and a "Zurück" button.
Networking
I entered my AirPort connection info in the network settings for the WLAN interface, but still only got very quick "server not found" messages.
After a while, I found the Wifi Assistant in the K Menu's "Internet" submenu that let me discover my WLAN and the 'net is working now. Why they couldn't put a button for that in System Settings' Network pane, I don't know.
Also, when I click "Apply" in System Settings, it doesn't remember I already saved my changes. I get asked again and again whether I want to save my changes to this panel.
Konqueror/Desktop
I guess this is a detail of the new Intel Macs that's not yet supported, but why does an "EFI" partition show up on my desktop in KDE?
Also, my external USB hard disk has an icon of a USB stick. If you can't reliably detect what kind of USB device it is, use a generic icon. Also, the icon for a mounted partition (with a green triangle next to it) is really un-intuitive. The concept of "mounting" a partition (especially if it's a non-ejectable thing like a hard disk) is hard enough for newbies to understand as is, but if the icons are so completely off the mark and don't illustrate it correctly, it just gets confusing.
After the installer finishes
Once the installer has finished, I get an error about it being unable to install GRUB, which is some sort of boot-loader that's supposed to start up the right system when the computer is turned on. I googled a while, until I found a tutorial on installing ubuntu on a MacBook. According to that, this is OK, and I have to do some command-line magic to get it working on my Mac.
For one, it tells me to install rEFIt. There's no information on what it actually is on their site, but a chat on IRC and a Google on a different topic eventually informed me that rEFIt apparently is a "shell" for EFI, as Macs by default don't include one. Once that's installed, you can supposedly do the equivalent of "booting into Open Firmware" or "booting into BIOS" that other computers offer.
According to bin-false, I need to execute the following commands in a Terminal window now, however those only worked for me in a root shell, so I added the first line:
sudo /bin/bash mkdir /mnt/ubuntu mount /dev/sdb5 /mnt/ubuntu/ mount -t proc none /mnt/ubuntu/proc mount -o bind /dev /mnt/ubuntu/dev chroot /mnt/ubuntu /bin/bashapt-get install lilo lilo-doc linux-686-smp linux-restricted-modules-2.6.15-23-686 linux-kernel-headers
My limited understanding of Linuxery tells me this mounts the new Linux partition we just created (which is why I wrote sdb5 here instead of sda3 as the original text said) and its proc and dev directories, and then opens a root shell that thinks that this partition was at / for me to work in. Then it uses apt-get to download lilo (the good old "Linux Loader" boot loader), and some Kernel sources. Why we need to do that? No clue, but I guess that proves that rEFIt isn't a boot loader...?!
As apt-get is wont to do, this will spend some time downloading and installing stuff for us. Then we'll be shown a short message from LILO, which tells us we'll have to run liloconfig(8) and /sbin/lilo afterwards.
It will do some more setup, and then it'll drop you in the console. Now I'm entering
liloconfig
And it asks me a few questions. Yes, I want a partition boot record, and yes I want LBA32 for large disks (I guess?). Then it asks for the kernel image bitmap I want. WTF? It offers me sarge, sid, coffee and debianlilo ...