Oficjalnie istnienie tego projektu
zostało ogłoszone parę dni temu i już wtedy pojawiła się
sugestia że firmware jest w stanie odbierać pakiety, wczoraj
Buesch opublikował nową wersję i potwierdził, że Opensource
firmware (oczywiście na GPL) jest w stanie pracować w trybie
monitor. Trudno nie odnieść wrażenia że jest to riposta na
rozczarowującą jakość oficjalnego sterownika Broadcomu który
został opublikowany po wielu latach od powstania „wl” - nigdy
oficjalnie nie opublikowanego, prywatnego sterownika Broadcomu pod
Linuksa. Do dziś sterowniki społecznościowe pod Linuksa
(b43/b43_legacy) ze względów licencyjnych korzystają z
firmwaru wycinanego przez użytkowników z niesławnego „wl”.
Michael Buesch stara się to zmienić. Warto zauważyć, że własny
firmware pozwoli w przyszłości również na opracowanie
własnych rozszerzeń standardu 802.11 takich jak „Atheros XR”.
Firmware jest kompatybilny z wersją
sterownika b43 znajdująca się w eksperymentalnym drzewie
rozwojowym: wireless-testing.git
Warto zauważyć że nie jest to
pierwszy przypadek, w którym zezłoszczeni programiści piszą
własny firmware. Palma pierwszeństwa należy do projektu „prism54”
który poza sterownikiem linuksowym postanowił odtworzyć
mikrokod firmy Conexant. Tzw. „FreeMAC” zaszedł bardzo daleko,
niestety w końcu projekt umarł – tuż przed wykryciem rejestrów
radiowych, czyli kilka kroków przed metą.
Projekt otwartego firmwaru dla kart
Broadcomu jest znacznie bardziej zaawansowany. Po pierwsze działa!
FreeMAC z punktu widzenia użytkownika był bezwartościowy. Oznacza
to że projekt Michaela Buescha „wpływa na nieznane opensourceowi
wody” Co więcej Michael Buesch opracował wirtualną maszynę dla
firmwaru (czegoś takiego chyba świat jeszcze nie widział). Dzięki
niej jest w stanie wykonywać tzw. testowania czarnej skrzynki - jest
w stanie obserwować zachowania oficjalnego firmwaru bez potrzeby
agresywnej inżynierii wstecznej.
Notatka Historyczna (czyli skąd to
wszystko się wzięło):
Broadcom od początku wejścia na rynek
wifi nie odpowiadał na żadne prośby na temat udostępnienia
sterownika pod Linuksa. W końcu Broadcom stał się drugim graczem na
rynku (po Atheros). Lata mijały a użytkownicy Linuksa byli coraz
bardziej zawiedzeni. Pewnego dnia okazało się że większość
routerów Linksys WRT chodzi na Linuksie – nawet te z
chipsetami Broadcomu. Użytkownicy poprosili Linksys o udostępnienie
kodu dystrybucji WRT. Linksys dobrze wiedział co to jest GPL więc
bez marudzenia opublikował cały kod. Użytkownicy z naleźli tam
binarny obiekt - „wl” który umożliwiał współpracę
z chipsetami Broadcomu. Linksys potwierdził że sterownik napisał
Broadcom. Wściekli użytkownicy spytali Broadcom co to wszystko ma
znaczyć, ale odpowiadało tylko głuche milczenie. Wl był
skompilowany pod architekturę MIPS więc pod PC nie działał. Grupa
programistów dokonała inżynierii wstecznej sterownika –
tak powstał społecznościowy sterownik „bcm43xx (Linux 2.6.17)”
niestety był lichej jakości i nie miał firmwaru. Programiści
postanowili w końcu porzucić rozwój bcm43xx i zacząć od
początku. Tak powstał sterownik b43 - nowsze chipsety i b43_legacy
starsze chipsety (oba w Linux 2.6.24). Te sterowniki były nie tylko
znacznie lepsze od pierwowzoru, ale bardzo kompletne jeśli chodzi o
funkcjonalność. Problem firmwaru który każdy użytkownik
musiał samodzielnie pozyskać pozostał. Parę dni temu Broadcom
wypuścił oficjalny sterownik pod Linuksa. Binarny wspierający tylko
jeden chipset. Programiści się wściekli. Resztę historii już
znacie.
Firmware:
http://bu3sch.de/b43/openfw/b43-openfw-20080614.tar.bz2
Źródła:
http://marc.info/?l=linux-wireless&m=121227303511692&w=2
http://marc.info/?l=linux-wireless&m=121259271906712&w=2
http://marc.info/?l=linux-wireless&m=121345167221951&w=2
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.802.11ag.html#Broadcom
http://www.prism54.org/freemac.html