Zaloguj się

Jog Jajcusia

xmpp:jajcus@jajcus.net

Powrót na stronę główną

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


Komentarze

Ika

10 grudnia 2006 22:17:06

To ja jeszcze dwugodzinną bakterię poproszę :-)

SoR

10 grudnia 2006 22:25:16

Chyba wykorzystam starego laptopa 486 + wifi orinoco na hermesie, ciekawe czy będzie znośnie chodzić. W sumie ciekawe rozwiązanie zamiast kupować jakiegoś AP.

zdzichu

10 grudnia 2006 22:26:47

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’‘ :-/

Zal

10 grudnia 2006 22:27:35

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 :]

Jajcuś

10 grudnia 2006 22:34:11

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ł.

Piotreckh

10 grudnia 2006 22:39:56

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ł.

Grucha

10 grudnia 2006 23:18:02

SoR: czym robisz AP z hermesa ?

Ja-Joanna

11 grudnia 2006 00:05:52

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?

danadam

11 grudnia 2006 18:09:31

Jak widzę FCS nikogo nie zainteresował. Chyba tylko ja taki dziwny jestem ;-). FCS to Frame Check Sequence, zawiera sumę kontrolną z zawartości ramki ethernetowej.

Jajcuś

11 grudnia 2006 18:12:17

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.

SirRoman

17 kwietnia 2007 02:58:33

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

Dodaj nowy komentarz

Dostępne jest formatowanie Textile

Podpis:
Treść:
Strona WWW (opcjonalnie):
Wpisz kod:code
 
 

Śledzenie komentarzy (RSS) TrackBack URI


Jesteście obserwowani...