This is going to be a very long and pointless post for most of you, but for anyone trying to install Fedora on one of these machines, this will be priceless!
I just bought a couple Dell Optiplex 320 machines to use in my development Linux cluster. They are 64 bit Celeron D machines at a great price. Much to my dismay, I tried installing Fedora Core 5 onto them and was met with all sorts of problems. My first clue that there was a problem was a black screen during install. I did a little googling and decided to just try the install in text mode by running ‘linux text’ at the fedora install boot prompt. This got me a little farther (further?), but it crapped out again while trying to mount the hard drive.
At this point, I googled for “linux optiplex 320” and met with a sea of unhappy customers who have been fighting to get Linux installed on their Dell Optiplex 320 box.
Turns out there’s a whole host of problems, but 18 excruciating hours later, I’m up and running! Huge! I’ll share my notes with y’all and hopefully help someone in the process.
Editor’s note: The instructions in this post are by no means all my own – I am indebted to the countless random tidbits of information posted across the blogs, forums, mailing lists, etc.
As far as I can tell, there are 4 major problems with the Optiplex and Fedora:
1. The SATA hard drive is not recognized
2. The video driver is not supported
3. The Grub bootloader does not work
4. The LVM (default) filesystem does not work with Lilo (which you use in place of Grub)
I could be wrong about 4, but I certainly couldn’t get it working.
First off, it’s important to note that this machine requires Fedora 6. It will not work with earlier versions.
Installing Fedora 6
In order to get the SATA drives to be recognized and mount, you have to pass the command line argument pci=nomsi whenever you start linux.
The first thing I did was boot off the CD drive – note that the default boot sequence is hard drive first, so you’ll have to F12 or F2 to select the CD drive.
At the prompt, I typed `linux pci=nomsi` <enter>. This will start the installation process. For the most part, you can go through the install as normal.
I was unable to get the system to boot using LVM (the logical volume manager which is the default in Fedora). I chose to manually setup my partition and setup the following partitions: /boot 100MB, /swap 1024MB, / remaining. If you prefer to use separate partitions for /usr, /home, that’s up to you.
I also told the installed to not install grub, the bootloader. You’re going to overwrite it anyway, so you don’t need it.
Once the install completes, you will be prompted to remove your media and reboot. Unfortunately, this won’t really work 😦
Installing LILO, the Boot Loader
If you reboot now, you’ll hang immediately. Grub won’t work, so we have to install Lilo. Lilo no longer ships with Fedora, so you’ll have to boot to some sort of safe mode and download it separately. I removed the CD and replaced it with the Fedora Rescue CD, which comes with the installation set. Then I rebooted off of this CD. You may be able to do the same with Knoppix or Debian Etch, but the Fedora CD worked well for me. At the boot prompt, I typed `linux pci=nomsi rescue` and started rescue mode. After going through all the standard dialogues, you eventually get to a shell with your original filesystem mounted at /mnt/sysimage. You can make this your root by running `chroot /mnt/sysimage`.
Next up we download the Lilo binary. I got mine here:
and used the following specific file:
I’ll post a mirror if anyone needs.
It was easy enough to get from the command line (assuming you have network access – you should! ) using `wget`. To save yourself some typing you could always just download it onto another machine on your network and scp it over. That is especially useful for the next step 😉
Untar the lilo package and copy ./sbin/lilo to /sbin/lilo (assuming you want it installed for future use – you probably do). Next, create a file called /etc/lilo.conf and type/paste the following:
append=” pci=nomsi root=LABEL=/”
You can obviously change your label & default to anything you want (I like “fc6” personally). Double check your versions of the kernel with `ls /boot` and make sure the name matches what you have in the conf file.
Run `lilo -v` from the command line. This will read in your /etc/lilo.conf file and write the changes to the master boot record (the first 446 bytes) of /dev/sda. If you had grub installed previously, it will be overwritten with lilo. (NB there isn’t much of a concept of “uninstalling” a bootloader – you generally just overwrite them. If you really want to uninstall it, you can just copy zeros bytes into the first 446 bytes like so: `dd if=/dev/zero of=/dev/sda bs=446 count=1`. Note that the partition table is stored between bytes 447 and 512, so you probably don’t want to wipe any of those bytes out).
When I followed these steps using the default disk partition, I got a Lilo warning, and upon booting I got a kernel panic. That’s why I recommend removing LVM and doing everything with straight up ext3.
Very tempting to reboot at this point, but I should mention that it _still_ won’t work 😦
If you reboot now, you *should* get a lilo prompt with “linux” or “fc6” or whatever label you chose as one of your choices. If you had the “pci=nomsi” in your append statement in your lilo.conf, you won’t have to type it anymore. You should be able to boot most of the way now, but you’ll crap out with a black screen when loading KDE/Gnome/X.
If you have no interest in X (I don’t), you can just edit your /etc/inittab and set the default run level to 3 and you’ll be good to go. If you want to get X working, you’ll have to install updated drivers for your ATI Radeon card.
You probably can’t make the necessary changes before rebooting because you’re in the chroot’ed rescue jail. So either boot to run level 3 (if you changed the inittab), or run ‘linux 3’ at the lilo prompt to just boot to a shell (runlevel 3).
First you have to add a new yum repository:
rpm -Uhv http://rpm.livna.org/livna-release-6.rpm
Then install the updated drivers:
yum install xorg-x11-drv-fglrx
Some people have noted that they had to edit their /etc/X11/xorg.conf file to set the driver to be “radeon” instead of “default” and others have mentioned changing “PCI:1:5:1” to “PCI:2:0:0”, but mine already was correct and worked with no change.
And that, ladies and gentlemen, should be it!
In a word: trivial!