Page 1 of 1

[HOW-TO/NET-WIRELESS] Broadcom 43xx + WPA = działa

Posted: Sat Nov 11, 2006 8:49 pm
by Poe
Witam. Po długich walkach z moim broadcomem 4318 AirPort One na laptopie HP Pavilion dv5000 (dv5224nr, turion64 ML-37) udało mi się zmusić go do działania, a wiem, że ludzie mają z tą kartą dość częśto problemy, więc postanowiłem napisać proste how-to krok po kroku.

A więc po pierwsze musimy się uzbroić w źródła kernela z serii 2.6.18, gdyż na 2.6.19 ndiswrapper nie chce się skompilować (bugs.gentoo.org).
w kernelu nie wolno mieć wkompilowanych driverów do naszej karty. należy je wywalić, jeżeli mamy zaznaczone

Code: Select all

Device Drivers -> Network Device Support -> Wireless LAN (non-hamradio) -> < >   Broadcom BCM43xx wireless support  
rekompilujemy kernela, bootujemy się na niego.
teraz ndiswrapper

Code: Select all

emerge ndiswrapper
teraz należy zassać te drivery:
ftp://ftp.support.acer-euro.com/noteboo ... 80211g.zip
lub stąd
http://adyton.com.pl/~poe/files/80211g.zip

rozpakowujemy je i wchodzimy do rozpakowanego katalogu (80211g)
teraz usuwamy standardowe drivery z ndiswrappera

Code: Select all

#ndiswrapper -l
nazwa_drivera
nazwa_drivera2
#ndiswrapper -r nazwa_drivera
#ndiswrapper -r nazwa_drivera2
i instalujemy te ściągnięte

Code: Select all

#ndiswrapper -i bcmwl5.inf
po poprawnym zainstalowaniu edytujemy pilk /etc/modules.autoload.d/kernel-2.6 i dodajemy do listy modul ndiswrapper. zapisujemy i wychodzimy. teraz musimy zrebootować komputer żeby przeładował kernela i zaladowal moduly ndiswrappera (u mnie trzeba było zrebootować, modprobe ndiswrapper + modules-update nie dało rezultatu odpowiedniego).
kiedy ponownie się zabootujemy kompilujemy pakiet

Code: Select all

emerge wireless-tools
i po skonczonej kompilacji uruchamiamy iwconfig. powinnismy zobaczyć interfejs wlan0 i ogolny zarys podobny jak w ifconfigu.

teraz szyfrowanie WPA-PSK. musimy skompilować pakiet wpa_supplicant

Code: Select all

emerge wpa_supplicant
i odpowiednio skonfigurować.
najpierw

Code: Select all

#wpa_passphrase <ESSID> <KLUCZ>
wygeneruje nam to szereg znaków. należy go skopiować.
teraz plik /etc/wpa_supplicant/wpa_supplicant.conf (UWAGA: mi zadzialalo dopiero jak config tu dałem. wiem, że niekiedy działa tylko wtedy jak config jest bezpośrednio w /etc)
taki najprostszy plik powinien wygladać tak

Code: Select all

network={
        ssid="ESSID"
        key_mgmt=WPA-PSK
        psk=TU_WKLEJAMY_WYGENEROWANE_ZNAKI
}
często jeszcze trzeba wywolać komendę, aczkolwiek nie zawsze

Code: Select all

#wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
zbliżamy się do końca. teraz pozostał plik /etc/conf.d/net

Code: Select all

#wlan0
modules_wlan0=( "wpa_supplicant" )
wpa_supplicant_wlan0="-Dwext"
config_wlan0=( "192.168.x.x netmask 255.255.255.0 brd 192.168.x.x" )
routes_wlan0=( "default gw 192.168.x.x" )
lub, jeżeli używamy dhcp, dodać jak w przypadku normalnego polączenia odpowiedni wpis o dhcp zamiast config_wlan0 i routes_wlan0.
teraz należy wykonać symlink w /etc/init.d net.wlan0 => net.lo
i uruchomić interfejs

Code: Select all

#/etc/init.d/net.wlan0 start
jeżeli wszystko przeszło bez błędów powinniśmy mieć już połączenie i iwconfig wyglądający tak

Code: Select all

wlan0     IEEE 802.11g  ESSID:"NASZ_SSID"  
          Mode:Managed  Frequency:2.422 GHz  Access Point: MAC_ROUTERA   
          Bit Rate=36 Mb/s   Tx-Power:24 dBm   
          RTS thr:2347 B   Fragment thr:2346 B   
          Encryption key:**************   Security mode:restricted
          Power Management:off
          Link Quality:51/100  Signal level:-63 dBm  Noise level:-96 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:12810  Invalid misc:42495   Missed beacon:0
UWAGA: czasami zdarza się tak, że nie działa połączenie, jeżeli są uruchomione interfejsy kablowe (ethX). należy je wylaczyć

Code: Select all

#/etc/init.d/net.ethX stop
UWAGA: Aby całość działała należy jeszcze mieć WŁĄCZONĄ opcje rozgłaszania ssida na routerze. w przeciwnym wypadku z połaczenia najprawdopodobniej nici.
UWAGA: Całe how-to jest zrobione dla systemów x86_64

I to by było na tyle. Teraz powinniśmy cieszyć się działającym internetem bez skrępowania skrętką.
życzę wysokich transferów i dalekiego zasięgu.
pozdrawiam

Poe

Posted: Thu Feb 15, 2007 3:37 pm
by dnadesign
Hej. Sterowniki do BC 43xx mam wkompilowane jako moduł do kernela 2.6.19 na AMD64 i wszystko chodzi prawie bez problemu. Jednak zauważyłem jedną zasadniczą wadę: przy niskim zasięgu (poniżej 45% siły sygnału) sterowniki potrafią się zawiesić. Modprobe -r zablokuje w tym przypadku konto root'a na stałe (dziwna rzecz, ale się dzieje) i każde su, sudo czy normalne logowanie na root zawiesi daną konsolę.
A co do samego NdisWrapper, to powiem tak: koszmarnie wolne. Myślałem, że zejdę na zawał kiedy przy sile sygnału 100% miałem większość przesłanych pakietów zaznaczonych jako Invalid (używając aktualnego NdisWrappera), więc IMHO najlepiej jest się trochę pomęczyć i jednak skonfigurować sobie sterowniki do BC 43xx, gdzie tego typu problemy w ogóle nie występują (nie wiem co sterowniki mają do jakości sygnału, ale po tym co się u mnie działo stwierdzam, że coś jednak mają).

Pozdrawiam,
DNA DesigN

Posted: Wed Mar 28, 2007 2:32 am
by XianN
dnadesign wrote:...(nie wiem co sterowniki mają do jakości sygnału, ale po tym co się u mnie działo stwierdzam, że coś jednak mają).
Ano chyba maja ;)
http://bcm43xx.berlios.de/?go=devices
Przyklad:

Code: Select all

Chip ID  Bus Type  	   Status
4318  	PCI/Cardbus  	Unstable (transmission power issues, work in progress)
A co do ndiswrapper'a, to ja nie widze zadnych pakietow zaznaczonych jako nieprawidlowe. Natomiast zachowuje sie baaardzo niestabilnie i co chwila musze restartowac polaczenie...