Partha's Home

Upgrading the Kernel - Wireless

March 24, 2007 — You may have noticed that the Fedora kernel tends to get updated quite often. Grepping through the yum logs revealed no less than 8 updates since November 13th, 2006. So for those who have opted to use software that is not automatically updated every time the kernel is updated, it is important to remember to update these along with the kernel. So, here are the steps I take on these occasions.

As i have said in the past I really tried to co-exist with the bcm43xx drivers for the broadcom wireless card that is in this machine. However as stated there I don't think it is mature enough for the hardware. So I end up using the ndiswrapper driver which is quite stable and fulfills my needs. If you have been following along, you already know how to install the ndiswrapper driver from their site. You also have installed the windows driver that you need to make the wireless connection work. If you have not done this, then go to my wireless page and you can see how to install the driver. Now we are ready to run the updated kernel.

Wireless

First of all, when a new kernel is installed by yum, you will need to get rid of the bcm43xx driver. I have noticed that simply blacklisting the driver does not seem to work. In case you are wondering, there is a file called blacklist in the directory /etc/modprobe.d/ which contains a list of drivers that instructs init to not hotplug the drivers listed in this file. As I said, you will need to take more drastic steps. Rename the bcm43xx driver from bcm43xx.ko to bcm43xx.old or something like that using the code:

mv /lib/modules/x.x.xx-x.xxx.fc6/kernel/drivers/net/wireless/bcm43xx/bcm43xx.ko\
/lib/modules/x.x.xx-x.xxx.fc6/kernel/drivers/net/wireless/bcm43xx/bcm43xx.old

Once you have done that, reboot your machine to activate the new kernel. Once you see the grub message, hit any key to enter the grub menu. You will enter an interactive mode and you can use rudimentary command line editing at this juncture to enter kernel parameters that affect how the system boots. Now select the topmost kernel (this would be the latest kernel installed by yum). Select the line that begins with kernel and add the number 1 at the end of that line. This will instruct the boot process to boot as a single use system. Note that the init 1 is not supposed to load the network drivers though in the case of Fedora, it seems to. So, if you have not executed the above command before rebooting, you will note that the bcm43xx driver is already loaded and so you have to unload it using

rmmod bcm43xx

Once you do that, you are ready to install the ndiswrapper driver. You can simply do that by heading to the directory where you have stored the source code and make and installed it

cd /home/downloads/ndiswrapper/ndiswrapper-x.xx/ #where x.xx is the version you are working with.
make clean & make install

That will install ndiswrapper for the current kernel. Once you do that you can load the driver and bring up your network.

modprobe ndiswrapper
ifup wlan0

This will put you on the network and the blue wireless light should light up indicating this. You can check this by executing the command

route -n

which should show you that following output:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0     U     0      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0       U     0      0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0           UG    0      0        0 wlan0

Now that you are on the network, you will need to install the ATI drivers for your video card corresponding to the current kernel. It is important to do this in the order I am suggesting since you will need to be on the network to be able to get the tarfile from Michael Larabel's website. Michael is the maintainer of the ATI drivers and he has kindly made the patches needed to install the latest drivers on a system with a 2.6.20 or higher kernel.

...Installing the ATI Video Driver -->