Tuesday, July 01, 2008

Fedora 9 on my HP dv2810us

Last night was spent making the recovery discs just in case I lose my mind and want to switch back to Windows Vista or maybe if I want to put it back when I sell it. In the time it took me to burn the 3 DVDs I was able to download Fedora 9 x86_64 and burn it to a DVD.

I spent a little time this morning uninstalling all the junk that was included with Windows as I had decided to keep the Windows partition but to downsize it to 35G. I also plan to try an install of Mac OS X on here as well so there's another 35G partition for that. Once things were ready I inserted the Fedora 9 disc and began the install.

The ntfs resizing went pretty well. It was actually faster than I expected. Then the installation of software began. As I had pretty much taken the default Office and Productivity packages there were over 900 packages to install. It took longer than I was used to but then again I don't normally install that much stuff when I'm doing server installs.

Out of the gate, I had sound. The ethernet worked but the wireless did not. The monitor was useable at 800x600 but definitely not the 1280x800 that I wanted and expected. That would have to be fixed. But first I needed to update Fedora to get all the latest packages since the ISO had been spun. That took a while as there were over 250M of updates.

While waiting for the updates I restored my Firefox settings from my desktop/laptop:

from my home directory: scp -r desktop:.mozzilla .

When I started Firefox up it complained about a few plugins that weren't compatible with FF3.0 so I removed them. Firebug is the one plugin I'll want to reinstall as soon as it's available.

Then I restored my evolution settings:

scp -r desktop:.evolution .
scp -r desktop:.gconf/apps/evolution .gconf/apps
scp -r desktop:.gnome2_private/Evolution .gnome2_private

Evolution started up with a problem. All my settings, addressbook, calendar, it was all there. Now I need to start figuring out how to sync it with my desktop instead of just copying it over everytime.

And I added myself to the /etc/sudoers files so I wouldn't have to go to root everytime.

$ su -
# echo "brian ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

the NOPASSWD keeps me from having to enter my password each time

Once the updates were done, it was time for a reboot. Then it was time to try and install the NVidia driver from nvidia.com. There were a few problems along the way in the form of missing packages.

$ sudo yum install gcc

took care of the 'cc' missing error.

$ sudo yum install kernel-devel

took care of the missing kernel source error.

Finally the installation worked:

$ sudo sh NVIDIA-Linux-x86_64-173.14.09-pkg2.run

After the installation completed I tried startx but it failed complaining about a kernel module. So I rebooted again. This time the laptop came up with the NVidia splash screen and my desktop was at 1280 x 800. Such an improvement.

Next step was to get the wireless card working. A quick look at lspci revealed that I had a Broadcom BCM 4310 card onboard. And some googling showed that Fedora 9 already had the B43 driver for Broadcom wireless it just needed the right firmware. So I tried the instructions found at this link:


Well that didn't work. When I found the bcm pages at linuxwireless.org I discovered that the bcm4310 is unsupported. So back to Google and it looks like it's the ndiswrapper route for me. So I did a "yum list | grep ndis" to see what packages were available to me. Luckily the ndiswrapper was available in the Livna channel (check this link for how to add the Livna repository). So I installed it:

# yum install ndiswrapper kmod-ndiswrapper

next I made sure the bcm module wouldn't load:

$ echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist

Then I went to the HP site to get the broadcom driver for my laptop

wget ftp://ftp.hp.com/pub/softpaq/sp37501-38000/sp37745.exe

Unfortunately unzip wouldn't extract it so I installed cabextract

# yum install cabextract

Then I extracted the files

# cabextract sp37745.exe

Finally I could install the inf file...

# ndiswrapper -i bcmwl6.inf

then I was making progress!

# ndiswrapper -l
bcmwl6 : driver installed
device (14E4:4315) present

When I tried "modprobe ndiswrapper" I got a lot of errors in /var/log/messages about not being able to load the driver. So then I removed the driver with "ndiswrapper -r bcmwl6". With a little more googling I discovered you can't use Vista drivers with ndiswrapper. Then there was the problem of HP not having Windows XP drivers for my laptop. So I tried a dell driver:

# wget http://ftp.us.dell.com/network/R174291.exe
# unzip R174291.exe
# cd DRIVER_US/bcmwl5.inf
# ndiswrapper -i bcmwl5.inf
# ndiswrapper -l
bcmwl5 : driver installed
device (14E4:4315) present
# modprobe ndiswrapper
# iwconfig wlan0
wlan0 IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s Tx-Power:32 dBm
RTS thr:2347 B Fragment thr:2346 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Oh glory days! I had success. To make sure things would work after I a reboot:

# ndiswrapper -ma
module configuration information is stored in /etc/modprobe.d/ndiswrapper

Then it was time to try the reboot. When the reboot was complete I was successfully connected to my wifi network. It just worked.

So now it was time for the more outside the box type things like my Sprint USB U727 card. I found a post on blogspot that made it sound easy. The only problem was that I was never seeing the cdrom icon on my desktop. It turns out for some reason I'm getting error from the /dev/sr1 device thus preventing it from ever loading. My solution was to make a shortcut that ejects the device and then things work as explained in Bryan's blog. My eject command:

$ sudo eject /dev/sr1

I also needed to copy my pidgin settings over so I wouldn't have set up the accounts again:

$ scp -r desktop:.purple .

Next I installed OpenVPN and the NetworkManager plugin:

# yum install openvpn NetworkManager-openvpn

I copied my /etc/openvpn files over from my desktop but trying to set up a connection via the NetworkManager will have to wait for another day I guess.

At this point I have a working laptop that I could take on my trip. I'll probably add the shockwave and flash players. And a few other things but this little Linux laptop is good to go.


justin said...

Thanks for blogging this! I have an hp laptop with the bcm4310 chipset and after finding your blog, I was able to configure my wireless connection in fedora 9. Do you have the multimedia card reader w/ XD? Mine works with SD cards, but not XD. Any thoughts?

Thiago said...

Thanks for your post, you help me a lot.
I have one HP dv 2810us too and i installed fedora 9, so i installed with success...
I'm trying to install my WebCam. Could you tell me how i install my web Cam in my HP please?
Thanks Regards
Thiago Moraes

Brian said...

Justin - I seem to have the same problem with Sony Memory Sticks, they won't work in the card reader either. So far it's just the SD cards that work for me. I don't have any XD cards so those aren't on my radar.

thiago - glad the post helped. The webcam is pretty easy to get working. Just yum install the kernel-devel package and then find the source for linux-uvc. You'll have to pull it from an svn repo but there's instructions out there on how to do that. Then make and install and you'll be set. I've installed Ekiga (using yum) and have the video working not sure about the audio portion yet. I think it needs some help, that's something else to troubleshoot.

Hombre Blunt said...

Hey Brian, great blog post, helped me out a lot setting up the same laptop in core 9, it got me up and running pretty quick plus I avoided all the trial-error you had to go through. I just upgraded to core 10 and had to redo the wireless driver the same way you did with ndiswrapper. The video seemed to just work in core 10 after I installed rpmfusion and ran an update.

I'm looking for alternatives to the bcmwl5 driver for the wireless, it doesn't support monitor mode so you can't use kismet with it and such.

Anyway, I guess there are other options for drivers now (see link), so I'll be checking these out 1-by-1 to try to get the wireless card fully functional.


Anyway thought I'd say thanks...