Linux on Compaq Presario F560US
Note: This is a long boring blog post. It details my frustration of getting this all to work. If you don’t care and just want to get to where I tell you exactly how to successfully install Linux on this computer, click here.
I haven’t done a tech post in quite a while, so here is one that will hopefully help someone out. A friend of mine recently got a new notebook computer, and the particular model was extremely inexpensive, but seemed to have decent specs regardless, at least for a Linux notebook. The Compaq Presario F500 series sports an NVidia graphics controller, a 1.8GHz AMD processor and 512MB of memory, which can be upgraded to 2GB. This seemed perfect to replace his aging Toshiba Satellite that we upgraded all the up to 512MB of memory and still barely putted along at ridiculously slow speeds, regardless of which operating system we put on there and attempted to optimize. So given the very low price of the new notebook, which was even less expensive than the Asus Eee PC’s, I recommended it. It came with Vista Basic Edition on it, but armed with a Linux disc, we were able to resolve that bug very quickly.
The timing coincided with Ubuntu’s 7.10 Gutsy Gibbon release, so we decided to put that on there. It got about half way through loading the installer before it hung. Googling around through the Ubuntu Forums led to the conclusion that that particular version of Ubuntu wasn’t going to work very well. Most forum threads indicated that it would need some kernel boot parameters to function, namely “nolapic” and “noapic”. Well, these didn’t help us much further either. Most of the Google results were for the F500 series of notebooks, but perhaps the sub-model F560US was yet a little different. OpenSuse didn’t seem to want to load up either and the only operating system that would even install on this thing was Ubuntu Feisty Fawn 7.04. So we went with that, with the “nolapic noapic” boot parameters for GRUB.
In the meantime, I decided to switch from Gutsy Gibbon to OpenSuse 10.3 on my own notebook, since the KDE implementation of Gutsy seemed to have some pretty bad bugs in the network manager that were very annoying. My friend really liked the look and feel of Suse over Ubuntu, so he asked me if we could put it on his Presario. I figured it was worth another try, since I didn’t want him to be stuck with Ubuntu Feisty until the end of time on that brand new notebook. This past weekend I decided to tackle the project again to see what I could come up with. Faced again with the installer hanging at various points throughout the boot sequence, I found that what finally worked was adding “acpi=off noapic” to the kernel boot parameters in GRUB. I was all excited that it was working until I got the system all installed and set up and tried tackling the wireless card. The notebook has a Broadcom chipset of some sort normally sold in Dell notebooks, so there is plenty of documentation online about how to maybe get it to work with the native bcm43xx driver and extracted firmware from the Windows driver as well as many indications that NDiswrapper would work great. Lets just say that after many hours of trial and error and troubleshooting, I realized that having the “acpi=off” boot parameter was not going to allow the wireless card to function regardless of what driver I was using. After a few more hours of googling and trying every boot option that I could think of that had to do with IRQ and ACPI, it just would not boot at all without “acpi=off”. It was either no wireless or no booting at all with this thing. I decided to give up for the day. I gave my friend an ethernet cable and told him I would put Ubuntu Feisty back on there the next day for him. Of course, as most people that know me will tell you, I don’t give up easily when it comes to computers and I have a gut feeling that it should work.
I decided to start over from scratch with Ubuntu Gutsy again. Mostly because there is a lot of community documentation available for Ubuntu and I know the workings of a Debian system a little better than I do Suse and I figured I would install a command line only system and mess with it until I got it all working. If I could get Gutsy working on it, then I could use what I had learned to get OpenSuse 10.3 on it, like my friend wanted. Again I was able to successfully install and run the system by using the “acpi=off” boot parameter and again the wireless card couldn’t bind to IRQ0 with that setting and I was back at square one. But now I just had a command line system and was able to reboot quickly and get to testing really quickly with every different boot parameter and system setting I changed.
At some point I finally found the answer I was looking for. After literally just trying random boot parameters in conjunction with others and by themselves I discovered that the system boots AND runs AND the wireless card works if you use the following boot parameters:
noapic irqpoll nosmp
That was it. It worked great. I was able to bring up the wireless interface (so far didn’t have a working driver/firmware in there, but I didn’t get any more IRQ errors from dmesg) So I rebooted a few times, added the lines to GRUB permanently, installed the KDE desktop and ran a bunch of tests to see if I could get the system to hang. It didn’t. It worked like it was supposed to. So now back to installing OpenSuse. Well, I didn’t want to go through the entire Suse install process, which takes forever compared to Ubuntu just to find out that my boot parameters didn’t work for Suse, I decided to try the LiveCD that Suse has now. I booted it up (with my boot parameters) and it came up nicely. I was convinced that it would work, and as I was about to pop out the live CD and insert the install CD, I noticed that the Live CD had an “Install” option. I gave it a shot. It actually worked. Upon rebooting halfway through the install process, I added in the boot parameters again and when the system was finished I went into the Boot Loader settings in YaST and added the boot parameters in there. That way I don’t have to enter them each time I boot the computer. If you install using the regular installer CD, when the first menu comes up if you just add in the boot parameters, I think the installed system will remember them for you and you don’t have to edit anything in the YaST settings. I think the LiveCD has a few bugs that the regular install CD doesn’t have. I also had trouble enabling community repositories in YaST, which doesn’t seem to be an issue when you install using the regular CD.
One more thing I noticed: Don’t install the Broadcom firmware from YaST. In fact don’t install it at all. Blacklist the bcm43xx driver and use NDiswrapper. The bcm43xx driver, once the firmware is loaded, causes the entire system to slow down to a crawl and it doesn’t work. So, here is the install process for getting OpenSuse 10.3 working on a Compaq Presario F560US model:
- Insert CD and boot.
- When you see the menu to choose which installation type you want to do, choose the regular installation, but before pressing Enter, type: “noapic irqpoll nosmp” without the quotes. Those three words should be at the bottom of the GRUB menu in the Options line. Hit Enter.
- Go through the graphical installer. It is pretty straight forward and self-explanatory. Go ahead and accept most defaults as they are. I would recommend setting up networking and everything and getting updates with a regular ethernet wired connection during the install process.
- Once it is finished, go to YaST (Administrator Settings). Go to System and click on “Boot Loader”. Click the first item and click “Edit”. Make sure that you see “noapic irqpoll nosmp” in the Options line. If they are not there, add them.
- While still in YaST, click on Sofware and then choose “Community Repositories”. Make sure that the main repositories as well as the nVidia and any other ones you think you might want are checked and click Finish. After they are done being set up, click on “Software Repositories” in YaST and make sure that all the repositories you selected are enabled and make sure that the “openSUSE-10.3-OSS-KDE 10.3”, which is the CD or DVD, is disabled.
- Click on “Software Management” in YaST, and search for “nvidia” and choose “nvidia-gfxG01-kmp-default” and “x11-video-nvidiaG01” to install. Then search for “ndiswrapper” and choose it to install. Click “Accept” and let it finish the installation.
- Google for “Dell R151517.EXE” and download that file from Dell’s download site. Open a terminal and navigate to the directory where the file was downloaded. Type: “unzip R151517.EXE”. This will probably spill files all over the place, so you might want to move that file into a directory that you can easily delete later. Once it is done unzipping, type in the following series of commands:
Now, if everything went smoothly, when your computer boots back up, you should see the nVidia logo flash across the screen right before you log in. Once you are logged in, you should be able to click on the KNetworkManager icon in the system tray and see your wireless networks. If you didn’t see the nVidia logo before you logged in, edit the file /etc/X11/xorg.conf as root and find the word ‘nv’ and change it to ‘nvidia’ and restart the X Server or reboot again. Hopefully someone will be helped by this guide and not have to go through the many hours of trial and error to get this notebook working nicely with Linux.