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

## 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

```

Device Drivers -> Network Device Support -> Wireless LAN (non-hamradio) -> < >   Broadcom BCM43xx wireless support  

```

rekompilujemy kernela, bootujemy się na niego. 

teraz ndiswrapper

```

emerge ndiswrapper

```

teraz należy zassać te drivery:

ftp://ftp.support.acer-euro.com/notebook/aspire_3020_5020/driver/winxp64bit/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

```

#ndiswrapper -l

nazwa_drivera

nazwa_drivera2

#ndiswrapper -r nazwa_drivera

#ndiswrapper -r nazwa_drivera2

```

i instalujemy te ściągnięte

```

#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 

```

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

```

emerge wpa_supplicant

```

i odpowiednio skonfigurować. 

najpierw

```

#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

```

network={

        ssid="ESSID"

        key_mgmt=WPA-PSK

        psk=TU_WKLEJAMY_WYGENEROWANE_ZNAKI

}

```

często jeszcze trzeba wywolać komendę, aczkolwiek nie zawsze

```

#wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf

```

zbliżamy się do końca. teraz pozostał plik /etc/conf.d/net

```

#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

```

#/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

```

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ć

```

#/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

----------

## 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

----------

## 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  :Wink: 

http://bcm43xx.berlios.de/?go=devices

Przyklad:

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

----------

