Hi,
are there any step-by-step instructions on how to enable bcm43xx support on Fedora Core 5 ppc? I think the default 2.6.15-1.2054_FC5 kernel should be good.
Thanks! rob. --
Cross-posting since I was planning to send something like this anyway. I was going to wait till the kernel and bcm43xx-fwcutter were actually in the repositories and thus skip the first couple of paragraphs, but since I've been asked....
On Sat, 2006-03-25 at 03:13 +0100, Robert Allerstorfer wrote:
are there any step-by-step instructions on how to enable bcm43xx support on Fedora Core 5 ppc? I think the default 2.6.15-1.2054_FC5 kernel should be good.
If you haven't already done so, update to the 2.6.16-1.2071_FC5 or later kernel, from http://people.redhat.com/davej/kernels/Fedora/FC5/ if it isn't in the official repos yet. The bcm43xx driver _does_ work in the 2054 release kernel, and I've been using it like that for months, but it's far less picky about its initialisation in 2071, and doesn't lose the network every time NetworkManager scans -- so for the sake of the HOWTO it's just easier if you upgrade. The improvements to the driver _will_ be in the official kernel update when it eventually comes out.
Install the bcm43xx-fwcutter package from Extras. It's in extras-devel, but not yet in extras-fc5 yet because my request to create the branch hasn't been honoured yet. There's a copy of it at http://david.woodhou.se/bcm43xx-fwcutter-003-2.ppc.rpm (there's also i386 and src rpms there).
(By next week, hopefully the above will be reduced to 'yum update kernel ; yum install bcm43xx-fwcutter')
Then proceed as described in /usr/share/doc/bcm43xx-fwcutter-003/README.Fedora:
As root, extract the firmware from your Windows or MacOS driver by running the command bcm43xx-fwcutter -w /lib/firmware <DRIVERFILE>
The README file in the same directory (not README.Fedora but just README) contains a bunch of links to drivers if you don't have one. Apparently, any of them should be OK; it doesn't matter which you use.
Load the driver by 'modprobe bcm43xx'. NetworkManager should work with it, as should system-config-network and the standard initscripts.
WEP works, and according to my limited testing WPA works too, as long as your AP is broadcasting its ESSID (that latter restriction seems to apply to _many_ cards, in fact. There's a hack to work around it at http://david.woodhou.se/wpa_supplicant-hack.patch)
We disabled the automatic loading of the bcm43xx driver in FC5 because it's quite new and experimental, and partly because of the bugs which have now been fixed in the 2071 kernel. To make sure the driver gets loaded automatically, either add '/sbin/modprobe bcm43xx' to your /etc/rc.local script, or copy the alias list from /usr/share/doc/bcm43xx-fwcutter-003/modprobe.bcm43xx into the /etc/modprobe.d directory, which tells the module loaded which PCI IDs to associate with the bcm43xx driver.
Finally, give us feedback in bugzilla so we can know if/when we should enable the driver by default again: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=186329
Please leave feedback even if it's working -- if the only people we hear from are those who can't get it to work, then we're _never_ going to enable it by default. :)
If you can't get it to work, try bringing it up by hand using 'ifconfig' and 'iwconfig' commands, and show/attach the kernel output ('dmesg') from when you do so. Also try adjusting the rate (iwconfig eth1 rate 2M) and setting the SSID again. We already default to 11M, but that might not be slow enough in some situations -- we don't automatically fall back when the link is poor, so you have to set the speed manually.
On Sat, 25 Mar 2006, 10:52 GMT+00 David Woodhouse wrote:
If you haven't already done so, update to the 2.6.16-1.2071_FC5 or later kernel, from http://people.redhat.com/davej/kernels/Fedora/FC5/ if it isn't in the official repos yet. The bcm43xx driver _does_ work in the 2054 release kernel, and I've been using it like that for months, but it's far less picky about its initialisation in 2071, and doesn't lose the network every time NetworkManager scans -- so for the sake of the HOWTO it's just easier if you upgrade. The improvements to the driver _will_ be in the official kernel update when it eventually comes out.
Thanks a lot for this detailed HOWTO! I have successfully updated the kernel to 2.6.16-1.2074_FC5. An easy way for updating to davej test kernels would be to save
[kernels-testing] name=davej test kernels for Fedora Core $releasever baseurl=http://people.redhat.com/davej/kernels/Fedora/FC$releasever/RPMS.kernel/ enabled=0 gpgcheck=0
into '/etc/yum.repos.d/davej-kernels-testing.repo'. Then, executing
yum --enablerepo=kernels-testing update kernel
would currently result in Installed: kernel.ppc 0:2.6.16-1.2074_FC5
Install the bcm43xx-fwcutter package from Extras. It's in extras-devel, but not yet in extras-fc5 yet because my request to create the branch hasn't been honoured yet. There's a copy of it at http://david.woodhou.se/bcm43xx-fwcutter-003-2.ppc.rpm (there's also i386 and src rpms there).
(By next week, hopefully the above will be reduced to 'yum update kernel ; yum install bcm43xx-fwcutter')
yum --enablerepo=extras-development install bcm43xx-fwcutter
worked fine for me on FC5: Installed: bcm43xx-fwcutter.ppc 0:003-2.fc6
Then proceed as described in /usr/share/doc/bcm43xx-fwcutter-003/README.Fedora:
As root, extract the firmware from your Windows or MacOS driver by running the command bcm43xx-fwcutter -w /lib/firmware <DRIVERFILE>
The README file in the same directory (not README.Fedora but just README) contains a bunch of links to drivers if you don't have one. Apparently, any of them should be OK; it doesn't matter which you use.
I used 'AppleAirPort2' from the mounted MacOSX partition:
# bcm43xx-fwcutter -w /lib/firmware /mnt/macosx/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2 fwcutter can cut the firmware out of /mnt/macosx/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2 filename : AppleAirPort2 version : 3.90.34.0.p16 (404.2) MD5 : 7200d1aef5f413ebc811046d068b40dc
WARNING! This firmware doesn't include support for 802.11a cards. WARNING! Use this firmware only for 802.11b/g cards.
extracting bcm43xx_microcode2.fw ... extracting bcm43xx_microcode4.fw ... extracting bcm43xx_microcode5.fw ... *****: Sorry, it's not posible to extract "bcm43xx_microcode11.fw". *****: Extracting firmware from an old driver is bad. Choose a more recent one. *****: Luckily bcm43xx driver doesn't include microcode11 uploads at the moment. *****: But this can be added in the future... extracting bcm43xx_pcm4.fw ... extracting bcm43xx_pcm5.fw ... extracting bcm43xx_initval01.fw ... extracting bcm43xx_initval02.fw ... extracting bcm43xx_initval03.fw ... extracting bcm43xx_initval04.fw ... extracting bcm43xx_initval05.fw ... extracting bcm43xx_initval06.fw ... extracting bcm43xx_initval07.fw ... extracting bcm43xx_initval08.fw ... extracting bcm43xx_initval09.fw ... extracting bcm43xx_initval10.fw ...
The /lib/firmware directory now contains: -rw-r--r-- 1 root root 3504 25. Mär 18:07 bcm43xx_initval01.fw -rw-r--r-- 1 root root 16 25. Mär 18:07 bcm43xx_initval02.fw -rw-r--r-- 1 root root 0 25. Mär 18:07 bcm43xx_initval03.fw -rw-r--r-- 1 root root 0 25. Mär 18:07 bcm43xx_initval04.fw -rw-r--r-- 1 root root 2536 25. Mär 18:07 bcm43xx_initval05.fw -rw-r--r-- 1 root root 248 25. Mär 18:07 bcm43xx_initval06.fw -rw-r--r-- 1 root root 0 25. Mär 18:07 bcm43xx_initval07.fw -rw-r--r-- 1 root root 0 25. Mär 18:07 bcm43xx_initval08.fw -rw-r--r-- 1 root root 0 25. Mär 18:07 bcm43xx_initval09.fw -rw-r--r-- 1 root root 0 25. Mär 18:07 bcm43xx_initval10.fw -rw-r--r-- 1 root root 16200 25. Mär 18:07 bcm43xx_microcode2.fw -rw-r--r-- 1 root root 19952 25. Mär 18:07 bcm43xx_microcode4.fw -rw-r--r-- 1 root root 22512 25. Mär 18:07 bcm43xx_microcode5.fw -rw-r--r-- 1 root root 1312 25. Mär 18:07 bcm43xx_pcm4.fw -rw-r--r-- 1 root root 1312 25. Mär 18:07 bcm43xx_pcm5.fw
Is this all fine or could the message regarding "bcm43xx_microcode11.fw" cause a problem?
Load the driver by 'modprobe bcm43xx'. NetworkManager should work with it, as should system-config-network and the standard initscripts.
We disabled the automatic loading of the bcm43xx driver in FC5 because it's quite new and experimental, and partly because of the bugs which have now been fixed in the 2071 kernel. To make sure the driver gets loaded automatically, either add '/sbin/modprobe bcm43xx' to your /etc/rc.local script, or copy the alias list from /usr/share/doc/bcm43xx-fwcutter-003/modprobe.bcm43xx into the /etc/modprobe.d directory, which tells the module loaded which PCI IDs to associate with the bcm43xx driver.
I tried the second suggested method
cp /usr/share/doc/bcm43xx-fwcutter-003/modprobe.bcm43xx /etc/modprobe.d
however, after restarting, the 'bcm43xx' Module did not get loaded (checked with 'lsmod').
Before proceeding, I want to make sure all steps so far worked fine.
Thanks again for your great support!
rob.
On Sat, 2006-03-25 at 20:21 +0100, Robert Allerstorfer wrote:
*****: Sorry, it's not posible to extract "bcm43xx_microcode11.fw". *****: Extracting firmware from an old driver is bad. Choose a more recent one. *****: Luckily bcm43xx driver doesn't include microcode11 uploads at the moment. *****: But this can be added in the future...
Is this all fine or could the message regarding "bcm43xx_microcode11.fw" cause a problem?
It's fine.
I tried the second suggested method
cp /usr/share/doc/bcm43xx-fwcutter-003/modprobe.bcm43xx /etc/modprobe.d
however, after restarting, the 'bcm43xx' Module did not get loaded (checked with 'lsmod').
Hm. I think there's something weird going on with udevstart, which I think is supposed to generate 'hotplug' events for every PCI device in the system at startup. It _isn't_ generating hotplug events for the network card, unless the driver is already loaded -- which is fairly useless since if the driver is already loaded we don't need to load it.
I'm a bit lost as to how this is all supposed to work these days. Bill?
Robert, just add 'modprobe bcm43xx' to /etc/rc.local in the meantime :)
On Sun, 26 Mar 2006, 13:00 GMT+01 David Woodhouse wrote:
On Sat, 2006-03-25 at 20:21 +0100, Robert Allerstorfer wrote:
Is this all fine or could the message regarding "bcm43xx_microcode11.fw" cause a problem?
It's fine.
OK, thanks. I'm just wondering if all the bcm43xx_*.fw files residing in the '/lib/firmware' directory are required, since 6 of them are zero-byte files. Removing these empty files seems save to me, right?
I tried the second suggested method
cp /usr/share/doc/bcm43xx-fwcutter-003/modprobe.bcm43xx /etc/modprobe.d
however, after restarting, the 'bcm43xx' Module did not get loaded (checked with 'lsmod').
Robert, just add 'modprobe bcm43xx' to /etc/rc.local in the meantime :)
I am now autoloading the bcm43xx modules through '/etc/sysconfig/modules/udev-stw.modules':
#!/bin/sh #for i in nvram floppy parport_pc parport lp;do for i in nvram lp snd-powermac bcm43xx;do modprobe $i >/dev/null 2>&1 done
The bcm43xx device then became visible on the desktop - under "System -> Administration -> Network" (system-config-network 1.3.30), the "Hardware" tab now shows: Description: Type: Devive: Status: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) Ethernet eth0 ok bcm43xx Wireless eth1 system
I added the "bcm43xx (eth1)" Wireless card as a new device so Network Configuration's "Devices" tab now shows: Profile: Status: Device: Nickname: Type: + Inactive eth1 eth1 Wireless + Active eth0 eth0 Ethernet
iwconfig and ifconfig give the following information about eth1: [root@localhost ~]# iwconfig eth1; ifconfig eth1 eth1 IEEE 802.11b/g ESSID:off/any Nickname:"Broadcom 4306" Mode:Managed Frequency=2.484 GHz Access Point: Invalid Bit Rate:11 Mb/s Tx-Power=15 dBm RTS thr:off Fragment thr:off Encryption key:off
eth1 Link encap:Ethernet HWaddr 00:11:24:96:56:EF UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:2 overruns:0 frame:0 TX packets:434 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:18228 (17.8 KiB) Interrupt:52 Base address:0x8000
Having the NetworkManager and NetworkManagerDispatcher services running, left-clicking on the NetworkManager tray icon lets me choose to connect to my AirPort Extreme access point which is set to accept "WPA personal" and "WPA2 personal" connections.
After selecting the AP's SSID, the "Wireless Network Key Required" window pops up, however the "Login to Network" button is always grayed out, so there is no way to submit the login information (see the attached screenshot). Am I still missing something?
Thanks a lot, rob.
David Woodhouse (dwmw2@infradead.org) said:
I tried the second suggested method
cp /usr/share/doc/bcm43xx-fwcutter-003/modprobe.bcm43xx /etc/modprobe.d
however, after restarting, the 'bcm43xx' Module did not get loaded (checked with 'lsmod').
Hm. I think there's something weird going on with udevstart, which I think is supposed to generate 'hotplug' events for every PCI device in the system at startup. It _isn't_ generating hotplug events for the network card, unless the driver is already loaded -- which is fairly useless since if the driver is already loaded we don't need to load it.
I'm a bit lost as to how this is all supposed to work these days. Bill?
It walks /sys, looking for uevent files, and echos into them to regenerate the event.
Bill
On Sat, 25 Mar 2006, 10:52 GMT+00 David Woodhouse wrote:
If you can't get it to work, try bringing it up by hand using 'ifconfig' and 'iwconfig' commands,
yes, trying to establish a WLAN connection won't work using any of FC5's included graphical tools, as far as I my experiences went. Especially, NetworkManager won't succeed in connecting to any wireless AP.
Finally, I was able to establish a WLAN connection, with the help of iwlist's "scan" option. Mode-802.11g-only, WPA and WPA2 connections did not work, however.
rob.