wireless-dev + bcm43xx + 2.6.22-rc7

Hát ez megér egy blogbejegyzést.
A napokban kijött a 2.6.22-es kernel tervek szerint utolsó rc-je. Gondoltam itt az idő, hogy ha már időm engedi, meglépjük a nagy átállást 2.6.21-ről 2.6.22-rc7-re.
Kifejezetten kecsegtető volt az új wifi stack mivel a laptopomban lévő wifivel (Broadcom 4318) még vannak gondok.
Történetesen, hogy ingadozik a jel/sebesség (bcm4318) és igazán jó lenne ha nemcsak az ágy szélén lenne rendes net, hanem az asztalon is :D (a kettő között üres tér, és 1m távolság van, a routertől kb. 1,5 méterre)
Bár ha kicsit megemelem a notit és megdöntöm, akkor megugrik a sebesség, csak kicsit kényelmetlen így tartani :D

Szóval it is time...
Mivel gentoo-sources-t használok, abból pedig még nincs 2.6.22-rc7-re ebuild, így maradtam a vanilla-sources-nél, gondoltam majd ráeresztem a sima genpatches-t és voilá.... aha gondoltam :)
Előljáróban megjegyzem, hogy nem nagyon foglalkoztam még patchelgetéssel, de Greg "bácsi" kiskönyvével kezemben már bátran nekiestem :)
Rögtön menuconfig során kiderült, hogy hiába kompatibilis az új wifi stackkel a broadcom driver, az bizony mégsincs benne a 2.6.22-rc7-ben :(

Tudatlanságomank köszönhetően kicsit úgy képzeltem el, hogy majd letöltöm a wireless-dev gitfát, és ami majd kell azt átmásolom vanilla forráskódjába, egy kis Makefile/Kbuild szerkesztgetés, csinálok egy patchet az egészről, aztán majd kiabál ha valami nem tetszik. Nos kiabált.

Elsőként a squasfs patch nem örült az új SLUB allokátornak. Nah sebaj nem létszükséglet, kukába a squasfs-sel.
Aztán olyan változók beállítását hiányolta fordításkor, amelyket eltartott egy ideig míg összehalásztam.
A következőket kellett még a wireless-dev-ből átemelni (legalábbis ezek után már rendesen lefordult):

    /usr/src/linux/include/ssb
    /usr/src/linux/include/linux/eeprom_93cx6.h
    /usr/src/linux/drivers/ssb
    /usr/src/linux/drivers/misc/eeprom_93cx6.c
    /usr/src/linux/drivers/net/wireless/mac80211

A squasfs-en kívül örültem volna még ha az fbsplash + vesa-tng patch is menne, de ezeket nem sikerült maradéktalanul beolvasztani úgyhogy abban maradtam, hogy majd ha kijön a frissített ebuild, majd felrakom akkor, a wifi fontosabb.
Egyedül a powernowd-k8-acpi patch ment fel simán.

A kernel lefordult. fwcutterrel felraktam az újabb verziójú firmware-t a broadcom modulhoz, ezzel nem is volt gond. Volt egy kis gondom az eszköznevekkel, mert szegény udev kicsit megbolondult, de erre gyorsan találtam megoldást a neten:
/etc/udev/rules.d/70-persistent-net.rules fájlban a hálózati csatolót definiáló sorhoz adjuk hozzá a "type" attribútumot, ügyelve a vesszőkre:


# PCI device 0x14e4:0x4318 (bcm43xx)                                                                                                                         
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{type}=="1", ATTRS{address}=="00:18:f3:d6:27:34", NAME="eth1" 

Erre azért van szükség mert az új bcm43xx_mac80211 driver két hálózati csatolót hoz létre, amiből a második a valós, de az udev az elsőhöz rendeli a rendes nevet, ergo nem fog menni. Az elsőnek meg olyan MAC addresse volt amely vagy 20 tagból ált :O

Nah rövidre vágva, ennyi szopás (tanulás) után a lényeg, hogy az új driver, bár szépen elegánsan felismeri az eszközt, barátságosabb logot generál viszont nem működik. Folyamatosan "ioctl[SIOCSIWAUTH]: Operation not supported" hibaüzeneteket dobált WPA esetén, nekem meg már nem volt kedvem a működő WPA-s beállításokkal variálni, úgyhogy végül maradtam az eredeti softmac-es drivernél, az legalább megy, az új driver majd kap még esélyt ha kijön a 2.6.22 stable.

Ha valaki érez ingerenciát, hogy kísérletezzen annak felraktam ide a patch-et (szűz rc7-re van): mac80211-bcm43xx.patch
A patch a mai wireless-dev fából van.

Jah az új driver hibaüzenete bővebben:

bcm43xx_mac80211: !WARNING! Idle-TSSI phy->cur_idle_tssi measuring failed. (cur=2, tgt=62). Disabling TX power adjustment.

Hozzászólások

szerintem ezzel igazán várhattál volna 23-rc1-ig mondjuk (akkorra talán már lesz ez a driver az új stackre is), az ilyen kézzel pecselgetésból jó úgyse sül ki

a driver gondodat meg szerintem nem az új stack fogja megoldani. nekem egyébként nincs ilyen hatótáv-problémám vele