WiFi w domu, z przygodami oczywiście
Niedawno żonka dostała nowego laptopa. Z różnych ciekawych rzeczy, ten laptop ma, między innymi, WiFi. Karta na chipsecie Prism 2.5 została od kopa rozpoznana przez Linuksa (na początku jako eth0, co przez chwilę powodowało moje wątpliwości w sprawność normalnego portu Ethernet). Szkoda by było tego nie wykorzystać.
W domu mam jeszcze dwie bezprzewodowe karty sieciowe: na PCMCIA i na USB, obie Compex, obie zawsze sprawiały mi problemy, ale przynajmniej dawało się na otwartych sterownikach to jakoś odpalić. Tę na PCMCIA sobie odpuściłem, bo nie będę odpalał innego laptopa i kernela 2.4, żeby sprawdzić czy WiFi u żony działa. Postanowiłem spróbować z tą na USB, od razu podłączając ją do mojego routerka.
Karta jest na chipsecie ATMELa. Zasadniczo są do tego dwa sterowniki:
atmelwlandriver i at76c503a (berlios driver
). Oba
od dawna nie rozwijane. Żadnego z tych sterowników w PLD nie ma (pewnie
w żadnej dystrybucji nie ma). Poprzednio tę kartę uruchamiałem na tym pierwszym
sterowniku, nawet udawało się do tego PLDową paczkę zbudować i jako-tako to
działało. Z drugim też próbowałem, ale bez lepszych rezultatów (innych niż
zwis maszyny czy okazały Oops
).
Tym razem atmelwlandriver nie udało mi się nawet skompilować
– systemu budowania dostosowanego do antycznych kerneli nie umiałem
pogodzić z PLDowym kernel-module-build. O dziwo, sterownik z Berliosa,
w wersji CVS, skompilował się bez problemów. Co więcej, załadował się na
tropku i połączył się z laptopem żonki. Oczywiście konfiguracja nie może być
normalna (gdzie router z kartą WiFi robiłby za AP) – karty
działają w trybie Ad-Hoc, bo ta na USB trybu master
nie umie.
Połączył się, ale coś za bardzo sieć nie działała. Sprawdziłem
tcpdumpem i zobaczyłem ip packet truncated - 4 bytes
missing
. No fajnie, pewnie sterownik spieprzony. Ale nie wyglądało to na
coś, czego nie dałoby się naprawić. Google dużo na ten temat nie miało do
powiedzenia. Zajrzałem więc do źródeł i lepiej przyjrzałem się logom. W logach
znalazłem: firmware version 1.103.0 #175 (fcs_len 4)
. Najpierw
spróbowałem starszego firmware'u (ze sterownikiem przyszły dwie wersje), ale
to w ogóle nie działało. Pozostało pogrzebać w źródłach. Okazało się, że jest
tam kod odpowiedzialny za obcięcie FCS (cokolwiek to jest) z końca ramki. Ten
FCS to 4 bajty, z wyjątkiem jednej wersji firmware (jakiejś starej), gdzie
ta długość była ustawiona na 0 (z komentarzem, że ta wersja jest głupia i FCS
nie doczepia). No to wpisałem 0 na stałe i bingo! Zadziałało :-).
Kolejnym problemem były straty pakietów. W pokoju, gdzie zwykle stoi laptop, 17%. Przeszedłem się z nim po mieszkaniu i w przedpokoju, gdzie powiesiłem nadajnik (kartę USB) było 0%. Ale w przedpokoju nikt pracować nie będzie... Spróbowałem jeszcze przenieść nadajnik (najpierw powiesiłem nad drzwiami, obok dzwona, bo tam się ładnie komponował ;-)), położyłem na drzwiczkach szafki... i w całym domu jest zasięg i 0% strat. Tylko jak to tam na stałe powiesić... próbowałem dwustronną taśmą klejącą, ale odpadało. Ten problem zostawiłem sobie na później.
Na początek teksty robiłem na gołym 802.11b, nawet bez WEP. Oczywiście nie mogło tak zostać. WAP to też żadne zabezpieczenie. O WPA na tych kartach mogłem zapomnieć (tylko 802.11b umieją, a więc WPA na pewno nie). Bawić się w 802.1x+WEP nie widziałem sensu. PPPoE też już przerabiałem w pracy (więc żadne wyzwanie), a do tego też wydawało mi się to mało sensowne w domowej sieci z jednym komputerem. Postanowiłem spróbować IPSec. W końcu tę technologię też trzeba poznać. Dodatkowo chciałem też WEP odpalić z prostym kluczem, po co cokolwiek ułatwiać... ale to nawet nie chciało ruszyć między tymi kartami. Trudno.
Poczytałem o ipsec-tools, poeksperymentowałem, w końcu załapałem jak ten racoon i setkey działają. Okazało się że w takim przypadku jak mój, gdzie nie potrzeba DHCP, czy innej automatycznej konfiguracji, to takie IPSec całkiem dobrze może się sprawdzić.
Gdy już miałem prawie wszystko gotowe, z szyfrowaniem, przygotowanym routingiem, NATem itd... połączenie przestało działać. Karty się nie widziały... przypomniałem sobie, że wcześniej dziecko walnęło drzwiami w tę wiszącą kartę USB... przestraszyłem się, że się rozwaliła. Kilka jej restartów nie pomogło. Rozkręciłem... w środku wyglądało bardzo solidnie i raczej na nienaruszone... postanowiłem sprawdzić jeszcze jedną możliwość – zrestartowałem laptopa (samo ifdown/ifup, czy nawet wyładowywanie modułu nie pomagał)... ruszyło... uff...
Na koniec zamontowałem trochę solidniej nadajnik:
A teraz żonka siedzi przy laptopiku, bez kabelka i nie narzeka. Wiec chyba jest ok. :-) Tylko czemu zawsze w tą radiówką musi być tyle problemów?...
Śledzenie komentarzy (RSS)
10 grudnia 2006 22:17:06
To ja jeszcze dwugodzinną bakterię poproszę :-)