Linuksowy sterownik b43 istnieje od dawna i wspiera praktycznie wszystkie karty ze standardów 802.11b/g. Powszechne stały się już jednak karty 802.11n, które do tej pory obsługiwał jedynie zamknięty sterownik wl (inaczej znany również jako linux_sta lub hybrid). Na szczęście wszystko wskazuje na to, że niedługo nie będzie on już nam potrzebny.
3 miesiące temu Broadcom opublikował sterownik brcm80211 obsługujący karty 802.11n. Okazało się jednak, że jest on przeznaczony tylko dla najnowszych kart, w których producent zrezygnował z bazowania na kartach SSB. W tej sytuacji znaleźliśmy się w sytuacji gdzie:
- b43 jest całkiem dojrzałym sterownikiem z obsługą kart bazujących na SSB, ale z niedokończoną obsługą N-PHY
- brcm80211 obsługuje N-PHY, ale tylko na kartach bez SSB i brakuje części funkcjonalności które są już w b43
Powstało więc pytanie: czy łatwiej dokończyć obsługę N-PHY w b43, czy dodać obsługę urządzeń SSB w brcm80211.
Rafał Miłecki, programista który rok temu zaczął pracę nad obsługą N-PHY w b43 postanowił wrócić do prac nad rozwojem b43 i przez ostatnie miesące zaczął znowu dodawać brakujące elementy sterownika b43. W efekcie dzisiajszych poprawek karta oparta na chipsecie BCM4328 wreszcie zaczęła odbierać pierwsze sygnały, a po chwili udało się również połączyć z otwartą siecią.
Ostatnie patche zostały właśnie opublikowane na liście linux-wireless i powinny wkrótce znlaźć się w drzewie wireless-testing, a finalnie w jądrze 2.6.38.
Cała praca została wykonana na podstawie specyfikacji stworzonych przez Larrego Fingera jako wynik przeprowadzonego przez niego reverse engineering na zamkniętych sterownikach. Pomocny był również Francesco Gringoli, który udostępnił po ssh maszynę z kartą Broadcomu.
Mile widziany byłby podarunek karty 802.11n bazujące na SSB z PHY w wersji 3 lub nowszej. Zainteresowany mieszka w Polsce, więc koszt przesyłki nie byłby wysoki, a taki prezent pozwoli zaimplementować obsługę również nowszych kart (z serii tych bazujących na SSB).


Może to tak na dwa razy chwalić się swoimi wyczynami, ale to już innym pozostawiam wykopywanie 🙂 Newsa starałem się jak najbardziej napisać "newsowo", a nie "blogowo".
Mocno się nad b43 napracowałem, więc stwierdziłem że jednak wolno mi spróbować się pochwalić trochę 🙂
😉 szacun i respekt dla Ciebie i Twoich ziomali.
Dzięki bardzo. I nie tyle co wolno Ci pochwalić się trochę… to Twój obowiązek! 😉
Możesz podać listę kart (najlepiej konkretne modele), które pomogłyby w pisaniu sterownika?
Dołączam się do prośby o podanie jakiegoś konkretnego modelu, bo sam słabo orientuję się w sprzęcie. Chętnie taką kartę kupię i Ci wyślę.
Kłopot jest właśnie w zakupie. Na opakowaniu nie znajdziesz informacji o wersji PHY, więc trzeba byłoby kupować w ciemno aż do skutku 😐
Jeśli macie już kartę, to po włączeniu przy kompilacji kernela opcji DEBUG dla b43 w dmesg znajdziecie taką linijkę:
b43-phyX debug: Found PHY: Analog 5, Type 4, Revision 2
U mnie revision jest 2, a potrzebuję kart z 3 i wyższymi.
Napisze tak jak na twoim blogu: Wypisz listę kart, które chciałbyś dostać pod choinkę. Mam ostatnio dużo do czynienia z kartami broadcoma, więc prawdopodobnie będę miał którąś z tej listy.
Sorry za drugi post, ale uznałem, że fajnie by było jeszcze połączyć brcma z b43, bo narazie w oficjalnych wydaniach dystrybucji znalazłem jedną, która ma na pokładzie w kernelu moduł brcm80211. A jest to jakże uwielbiany Debian (Sid).
Witam 🙂
Dzięki za wkład i poświęcony czas na opracowanie nowej wersji sterownika b43 dla Autora i Pomocników 🙂
Mam pytanko dotyczące obsługi karty BCM4328, czy z nowym sterownikiem będzie można ustawić tryb "monitor mode" dla tej karty?
Pozdrawiam
Chyba jeszcze nikt nie spróbował, ale powinno być to możliwe, chyba nawet już teraz.
Gratuluję i trzymam kciuki, chociaż mnie to już nie dotyczy, bo od jakiegoś czasu kupuję laptopy z kartami Atherosa.
> Mocno się nad b43 napracowałem, więc stwierdziłem że jednak wolno mi spróbować się pochwalić trochę.
Zrobiłeś kawał dobrej roboty! Niby czemu masz być skromny?
Jak Richard Feynman dostał nagrodę Nobla za swoje diagramy to wymalował sobie jeden duży na swojej furgonetce.
Tzw. skromność to _problem_ psychologiczny polegający na tym, że człowiek w nie radzi sobie z zainteresowaniem wobec swojej osoby wykazywanym przez otoczenie.
Pie_przyć skromność niech żyją wynalazcy!
Może to i głupie, ale czy firma broadcom nie może dać Tobie egzemplarza skoro za nich odwalasz robotę? Tak czy inaczej szacun, tym bardziej, że sam kiedyś czekałem, aż ktoś napisze sterownik do mojej karty bcm.
Próbowałem rozmawiać z ludźmi którzy są odpowiedzialni za brcm80211 w sprawie firmware. Najpierw mnie ignorowali, potem jak zacząłem publicznie się ostrzej dopominać to odpowiedzieli nie pisząc nic sensownego. Gdyby im zależało, to opublikowaliby po prostu dokumentację kart, albo przyłożyli się do b43 zamiast pisać nowy sterownik w wielu miejscach duplikując istniejące rozwiązania.
Trochę też w wyniku ich podejścia zdecydowałem się dalej pracować nad b43, niż brcm80211.
O niechęci współpracy Broadcom też czytałem – dlatego stracili klienta 🙂
Brodcom to jedna z tych ktore prowadza bardzo scisla i restrykcyjna polityke dostepu do dokumentacji, nie bedzie to pocieszeniem ze nawet po podpisaniu NDA do pewnych obszarow ich ukladow nie ma zadnego dostepu a dostarczana dokumentacja opisuje funkcjonalnosc w sposob powierzchowny i niejasny. Co gorsza niechetnie przyznja sie do bledow ktore maja w swoim kodzie i bardzo niechetnie je naprawiaja.
to w ktorej wersji Ubuntu bedzie n-ka dzialac od reki z kazdą karta wifi ? (pewnie jak wejdzie kolejny standard 802.11-X, a n-ka bedzie juz przeżytkiem 🙂
Ktoś może mi podać bezpośredni link do kodu z tym odnośnikiem lub podać jego licencje ? 🙂
Em, link do kodu z odnośnikiem? Nie rozumiem.
Zmiany trafiły już do wireless-testing: http://git.kernel.org/?p=linux/kernel/git/linvill…
Tam też będą trafiały dalsze poprawki.
Kod zostanie "zpullowany" do Linusa w kolejnym merge window, będzie więc miał go "każdy" wraz z 2.6.38-rc1.
A tu np. właściwy commit: http://git.kernel.org/?p=linux/kernel/git/linvill…
To może łaskawie by ktoś napisał jakie konkretne modele kart są potrzebne… skąd niby zwykły szary użytkownik ma wiedzieć czy jego karta w standardzie "n" jest oparta o SSB a która nie??????????????????????
http://linuxnews.pl/wsparcie-dla-kart-802-11n-w-sterowniku-b43/#comment-5415432
Wepnij kartę i sprawdź w konsoli wynik komendy: "dmesg | grep ssb". Jeśli będziesz miał tam jakiś wynik, wymienione "cores", to znaczy że masz kartę opartą na SSB.
"Jeśli ktoś chciałby pomóc, to mając kartę Broadcomu 802.11n można sprawdzić wersję PHY na dwa sposoby:
1) Skompilować dowolnie stare jądro z opcją "DEBUG" dla b43. W dmesg znajdziecie:
b43-phy0 debug: Found PHY: Analog 5, Type 4, Revision 2
jeśli macie liczę większą niż 2, to jest to karta jakiej potrzebuję
2) Skompilować wireless-testing w obsługą PHY_N. jeśli w dmesg znajdziecie:
b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 8, Type 4, Revision 4)
to oznacza, że taka karta również byłaby mi przydatna"
A mógłbyś jeszcze napisać to, jakie karty najbardziej by Ci pasowały – do laptopa? Do komputera stacjonarnego? USB? 🙂
Może masz jakieś podejrzane modele "na oku", na które można zwrócić szczególną uwagę?
Karty Broadcoma 802.11n z SSB są chyba tylko na miniPCI Express. Nie wiem jak wygląda z kartami bez SSB, tymi obśługiwanymi przez brcm80211. Możesz rzucić okiem na http://zajec.net/donate
Numer konta bankowego? Łatwiej wpłacić kilka złotych niż oddać karte.
http://zajec.net/donate