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:

[img:wifi
full-prof]

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?…

11 uwag do wpisu “WiFi w domu, z przygodami oczywiście

  1. WPA powinno działać, bo to jest głównie nabudówka na WEP. Ale hostapd jest niesamowicie wybredny jeśli chodzi o sprzęt z którym działa: jakies 3 konkretne sterowniki pod Linuksa jako takiego, teoretycznie to, co ma sterowniki pod Devicescape i wszystko, co ma sterowniki pod FreeBSD. W Linuksie będzie się dało używac wifi, jak już stos Devicescape trafi do jądra. Co stanie się pewnie ,,za pół roku’‘ :-/

    Polubienie

  2. Zawsze są problemy, święta racja ;] A co do zabezpieczeń – dla mnie (prócz WEP, filtrowania MAC oraz ukrywania ESSID) najskuteczniejszym okazało się zmniejszenie mocy nadajnika do 1/8 pierwotnej mocy. W moim przypadku chyba najlepsze rozwiązanie :]

    Polubienie

  3. zdzichu: WPA to WEP + 802.1x + cośtamjeszcze. I tego „cośtamjeszcze” zapewne w firmware/sterowniku by mi brakowało. No i w ogóle nie ma o czym gadać, jeśli zwykły WEP nie zadziałał.

    Polubienie

  4. A Ndiswrapper? To nie jest lepsze rozwiązanie od kiepskich sterowników?
    Wiem, że to prowizorka, ale mi działało 2 lata z kartą PCI Planeta wydajniej niż ówczesne otwarte sterowniki dla RTL8180. Teraz jak sobie wybierałem kartę na PCMCIA, to odrazu z myślą, że uruchomię przez NDISwrappera i nie będę dalej kombinował.

    Polubienie

  5. No, ja też miałam kiedyś do czynienia z atmelwlandriver i tym drugim, wówczas to był chyba jeszcze debian, a może już ubuntu, nie wiem. W każdym razie trwało dwa tygodnie, zanim mi się udało to uruchomić. W dodatku karta WLAN była zewnętrzna, na usb…
    A WLAN był konieczny, bo to mieszkanie było tzw „studenckie” i router stał u koleżanki w pokoju, a my się nie chciałyśmy potykać o kable przechodzące przez przedpokój.
    Ale udało się.
    PS: Czemu jestem nagle niezalogowana na Twojej stronie, choć jestem zalogowana na joggerze?

    Polubienie

  6. danadam: też mi się tak wydawało, ale sprawdzać już mi się nie chciało, a głupstwa też nie chciałem palnąć przez przypadek 😉 W każdym razie, tu nie było to bardzo istotne.

    Polubienie

  7. ehhh Jajcuś od razu zwalasz winę na linuxa i, że zawsze są problemy z wifi…. Ja powiem tak… Jak sie korzysta (przepraszam za określenie) z lipnych, tandetnych, egzotycznych kart (w dodatku jakichś starych śmieci) to nie ma się co dziwić… Weź kartę na Prismie (praktycznie obojętnie jakim), na Atherosie (tez praktycznie obojetnie jakim – no może z małymi wyjątkami), a zobaczysz, że nie taki diabeł straszny – wtedy wszystko działa z palca 😉 Pozdrawiam

    Polubienie

Co o tym sądzisz?

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s