kategorie:

menu:


Očištění jádra od binárního ovladače Broadcom

16.02.2011   ::    topic: Linux

Hardwaru od Broadcomu jsem se vždy snažil vyhnout jak čert kříži. Právníci tohoto výrobce z nějakého zvláštního důvodu věří, že jediná možnost jak lidem zabránit překročení výkonnostních limitů pro WiFi pásma je znepřístupnění zdrojových kódů k ovladačům. Kdyby jejich zařízení tyto limity překračovalo (pro každý region jsou jiné) mohli by se dostat do sporu s místním regulátorem (v ČR je jím Český telekomunikační úřad). Linuxový kernel ale má mechanizmy jak omezovat vysílaný výkon v závislosti na geografické pozici a pro uživatele kteří chtějí místní omezení překračovat není uzavřený ovladač moc velkou překážkou, takže argumenty pro nutnost nesvobodných ovladačů silně pokulhávají.

Na tupost právníků tak dopláceli koncoví uživatelé, kteří měli tu smůlu a výrobce jejich notebooku použil na WiFi kartě právě čip od Broadcomu. Mezi takové lidi patřím i já. WiFi byla jediným kompromisem který jsem u výběru notebooku udělal. Binární ovladač wl neumí AP mód a je nutné jej při každé aktualizaci kernelu znova sestavovat.

Naštěstí se politika Broadcomu nedávno změnila a k novým „n-kovým“ čipům vydali ovladač svobodný. Jmenuje se brcm80211 a v současnosti je v kernelu (2.6.37) ve stromě staging (testovací verze). Podrobnosti o něm jsou na http://linuxwireless.org/…rs/brcm80211

Nyní jsou tímto ovladačem podporovány následující karty
Name               PCI Device ID

BCM4313         0x4727
BCM43224        0x4353
BCM43225        0x4357
A já mám štěstí…
karry@myKubuntu:~$ lspci -nn | grep 14e4:
44:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
Když jsem ale ovladač zkusil, vyskočila na mě zpráva že nemám dostupný soubor s firmwarem…
brcm80211: fail to load firmware brcm/bcm43xx-0.fw
Po troše googlení…
git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
cd linux-firmware
sudo cp -a brcm /lib/firmware
cd /lib/firmware/brcm
sudo ln -s bcm43xx-0-610-809-0.fw bcm43xx-0.fw
sudo ln -s bcm43xx_hdr-0-610-809-0.fw bcm43xx_hdr-0.fw

sudo rmmod brcm80211 wl
sudo modprobe brcm80211

sudo ifconfig wlan0 up
sudo iwlist scan

A WiFi funguje! Zatím ještě neumí master mode (AP) ale hlavně že funguje a je svobodný!