At the start of 2010, i got an Eee PC 1001HA. It came with Windows XP. I immediately resolved to destroyed, peeled all the hideous stickers off what was now my lovely white computer, and started down the path of Linux. These are some random notes on what i did, what i learned, and what i should try.
The Eee, being a netbook, doesn't have an optical drive, so you boot from a USB stick to install. This took a lot more work than it should have.
My trouble was caused by the fact that my main machine is a Mac. OS X does some filesystem things differently to Windows or Linux, so there was fiddling to do. In the end, what worked was to reformat the stick as FAT32 with a Master Boot Record (MBR) - this is the only thing a PC will boot off. The steps were:
I think i may later have reformatted it under Windows to get it working. Don't really remember. If i did, then the above instructions are obviously bullshit.
You then need to get a bootable OS image onto the stick. I tried dd'ing an ISO onto the stick, as you will often see suggested online, but this didn't work for me. I didn't play with this too hard, though. Instead, i ended up downloading UNetbootin to the still-Windows Eee and using that to load the ISO. Lame.
I also had to wrangle the Eee to get it to boot off the stick. The trouble was caused by some kind of Boot Booster feature which causes the machine to skip over most of the steps in a normal, sensible boot and get into Windows as fast as possible. This needs disabling. There are more detailed and reliable instructions out on thw web, but basically, you boot the machine while mashing F2, until you get into the BIOS. In the BIOS, you can switch off the boot booster. You can also change the boot order so the machine prefers USB sticks to the internal drive, which is useful (although potentially annoying if you forget you've done it - what you really want is a mode where if there is a bootable stick, it will give you a menu of boot options, and if there isn't, just boot from the hard disk). Alternatively, you can hit ESC at the BIOS splash screen to get the boot menu.
At this point, i had Eeebuntu on the machine, and a Fedora 13 DVD ISO, and a 4 GB USB stick. Fun ensued.
Using dd to move the ISO onto the stick did *not* work. Well, it did, in that the data went on, and i could mount the stick as a disk, but the machine
wouldn't boot off it. If i ran fdisk on it, i got an error about the partition table being corrupt (fair enough, it's actually an iso9660 filesystem rather
than a proper disk with a partition table and so on) and attempting to fix it went nowhere fast. FWIW, to get dd to go at an acceptable speed, i had to quite
Chrome; running with a nice big buffer (8 MB was probably enough; 32 MB was only a little faster) and using oflag=direct seemed to help. The complete command
was something like
dd if=fedora.iso of=/dev/sdb bs=32M oflag=direct.
Next attempt was to make a normal FAT32 filesystem on the stick, then mount the iso and copy the files across. First, fdisk:
/dev/sdb, then d to delete the existing partitions, n to create one, p to select a primary, 1 to pick partition 1, return twice to accept the default
sizing, t to change the type, 1 to select the first partition, c to select FAT32 (there are several codes for FAT32, but c is the right one), a to make it
bootable, then w to write it. I think. Then
mkdosfs -F 32 -n FedoraStick /dev/sdb. Then mount the iso with
sudo mkdir -p /mnt/fedora13iso;
sudo mount -o loop fedora.iso /mnt/fedora13iso. Then mount the stick. Then use
sudo rsync -a to copy everything from the ISO to the
stick. That didn't boot, so tried
sudo syslinux /dev/sdb1. Don't know if this worked yet.
The very comprenehsive Fedora manual chapter on Making USB Media. Suggests straightforward use of dd, which doesn't work for me.
Oh, turns out the DVD image isn't bootable. The dd approach works perfectly with a CD image.
Eeebuntu is, as the name subtly suggests, a version of Ubuntu customised for the Eee. I don't really know what the customisation entails, because i haven't used Ubuntu. Eeebuntu 3.0 is based on Ubuntu 9.04 Jaunty Jackalope, which has kernel 2.6.28. Eeebuntu uses a 'custom kernel' from array.org, which is a version of 2.6.28-12 (or possibly -11) with some Eee-specific drivers and stuff rolled in. It's not clear to me that it's really a customised kernel, more of a selection of relevant packages.
The first installation started okay - the installer ran without a hitch. The first problem was that neither the wired nor wireless network worked; apparently they both use quite new chipsets, support for which is not in Eeebuntu 3.0.
The wireless is a Ralink RT3090, for which the driver is helpfully called rt3090. I got this from Markus Heberling, the installation of which required a couple of other packages - linux-headers-2.6.28-11-generic and linux-headers-2.6.28-11. If you install them (by double-clicking in Eeebuntu, which runs Synaptic or something, or from the command line - this ends up running dkms to do a module build) in the order linux-headers-2.6.28-11, linux-headers-2.6.28-11-generic, rt3090, and reboot, then you have a working wireless. Hurrah!
However, note that support for the RT3090 has since been added to the existing rt2860 driver, which came into the kernel mainline in 2.6.32 (?). Future distros won't have the rt3090 driver.
The wired ethernet is an Attansic (bought by and now branded as Atheros) AR81. The driver for this is called atl1e (note that's alpha tango lime one echo, for those of you with iffy fonts). I got this from Atheros. This isn't a proper .deb package or anything, it's a good old-fashioned .tar.gz, which you build with:
# Eeebuntu's tar doesn't seem to support the z flag (?!), so unpack in two steps gunzip AR81Family*.tar.gz tar xf AR81Family*.tar cd src make sudo make install sudo insmod atl1e.ko
That was pretty straightforward once i'd figured it all out. It went south fast from there. I naively ran the software update utility (oh, how i'm spoiled by OS X, where only occasionally to updates break things). I hadn't twigged that this was using the Ubuntu repositories, rather than any kind of Eeebuntu stuff, so it merrily stomped all over the carefully-crafted Eeebuntu stuff and broke my wireless. And everything else. Nice.
Reinstalled, ran through the networking setup again, installed a new firefox (which also needed some random library installing), flash, and one or two other bits and bobs. Configured it to suspend when the lid is put down. All very nice. Took it to work to show my colleagues. Put it to sleep when we went to lunch. While we were in the pub, it ran out of battery and either crashed, shut down, or hibernated. On booting up, it wouldn't go into X, with an error like:
/etc/gdm/Xsession: Beginning session setup... export: 11: -T: bad variable name
From which i rapidly concluded fuck Eeebuntu, and the horse it rode in on (ie Ubuntu).
This is a new phase of Eeebuntu, based on Debian rather than Ubuntu. It should be a lot more solid, with less random breakage and other weirdness, and thus be less fuck-inducing. When it comes out. Which will apparently be real soon now (as of 2010-01-08).
Okay, time to stop dicking about and install a real distro. Debian is probably the most serious distro there is - Debian developers' average beard size approaches that of FreeBSD hackers. It's what Ubuntu is based on, it's what new Eeebuntu will be based on, it's solid and stable, it has a good package manager, it has a shit ton of software, and it doesn't do crap like installing some hopeless wannabe Dock-alike.
Plan of attack:
I have totally changed my mind and am going to install Fedora.
yum groupinstall XFCE, then pick Xfce at the login screen.
Postinstall done: - added tom to wheel group (usermod -a -G wheel tom) - enabled sudo for wheel (su, visudo, uncommented the relevant line) - installed free and nonfree RPMFusion repos http://rpmfusion.org/Configuration - just ran yum install - installed yum-plugin-fastestmirror with yum, as http://wiki.centos.org/PackageManagement/Yum/FastestMirror - added google repos http://www.google.com/linuxrepositories/rpm.html http://www.google.com/linuxrepositories/yum.html - yum install google-chrome (has this worked? should be one of google-chrome-stable, google-chrome-unstable, google-chrome-beta) - yum update # everything! may be a mistake? - yum install kmod-rt2860 - hopefully this will make the wifi work; it didn't, even after insmod and reboot - NetworkManager doesn't see wifi device - downloaded DPO_RT3090_LinuxSTA_V220.127.116.11_20100618_WiFiBTCombo_RFKill ie latest rt3090 driver from ralinktech.com and built. make does a lot of healthy stuff, but eventually dies with "cp: cannot create regular file `/tftpboot': Permission denied"; reran under sudo. then make install (not documented but otherwise ko file doesn't go anywhere sensible). clobber /tftpboot after. insmod doesn't work - tons of unknown symbols reported in dmesg. depmod then modprobe, though - absolutely fine! networktastic! honestly, sometimes this linux stuff really does feel like black magic. - found out that F13's built-in compiz option is buttocks. installed fusion-icon, and got a little blue box which makes Compiz start properly (lives in Applications > System Tools; haven't yet figured out how to get it to start at login). - installed postgresql, did 'service postgresql initdb' then 'service postgresql start'; become postgresql user with 'sudo su postgres', then can do 'createuser tom' and make myself a superuser, then back as myself can do 'createdb sandbox'. allowed TCP connection with md5 passwords. - installed quodlibet from yum - installed Xfce with groupinstall TODO: - restore home dir - bashrc setting to make history work sensibly - tiny menu extension for firefox (bother?) - java, eclipse, IDEA? - get panel icons sorted out - can't reliably move them! - netbook kernel?
As soon as i have a grand and a half to spare, i'm buying a new Macbook Pro. Fact.