Broadcom 4311 rev01
Często montowany w laptopach bcm4311 sprawia problem na linuksie.
Spróbujmy rozwiązać ten problem.
Sprawdźmy, czy rzeczywiście mamy bcm4311
wynik 14e4:4311 (rev 01)
Potrzebne pliki :
1. kernel-source (zgodny z wersją kernela)
2. najnowszy ndiswrapper
3. driver Hewlett Packard sp33008.exe
4. pakiet - cabextract lub unzip
1 . Zaczynamy od odinstalowania wszelkich wcześniejszych wersji ndiswrappera.
Jeżeli instalacja była z rpm to jako root w konsoli Jeżeli ze źródeł to usuwamy go z poziomu katalogu ndiswrappera poleceniem Sprawdzamy czy został usunięty ndiswrapper
Usuwamy wcześniej ewentualnie załadowany moduł ndiswrapper
W systemie mamy jeszcze dystrybucyjny moduł bcm43xx. Jeżeli jest, to należy dodać go do balcklist
Sprawdź jako root czy jest
Jeżeli jest, to należy zablokować jego ładowanie przy starcie systemu
Kod:
echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist
lub tradycyjnie
Kod:
echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.conf
które wydaje się poprawiejsze w MDV.
Sprawdzamy
2. Kernel. kernel-source i /build
Teraz potrzebujemy sprawdzić posiadanie właściwego kernela z jego źródłami (kernel-source)
W MDV2008 możemy spotkać dodatkową trudność z dowiązaniem symbolicznym, ale o tym za chwilę.
Sprawdzamy używany kernel
Sprawdzamy zgodność źródeł kernela
Jeżeli mamy tu zgodność wersji kernela i kernel-source, to przyszedł czas na sprawdzenie dowiązania symbolicznego /build.
W MDV2008 może być z tym problem.
Sprawdzamy
Kod:
ls -la /lib/modules/`uname -r`/build
Jeżeli otrzymany wynik w konsoli nie będzie protestował migającym podświetleniem i wskazuje poprawnie dowiązanie, to jesteśmy na dobrej drodze.
Jeżeli jednak otrzymamy błąd lub brak /build, to musimy go utworzyć.
Przy błędzie usuwamy plik build
Kod:
rm /lib/modules/`uname -r`/build
Czas na stworzenie dowiązania.
Sprawdzamy
Normalnie dowiązanie symboliczne dla build tworzymy poleceniem
Kod:
ln -s /usr/src/`uname -r` /lib/modules/`uname -r`/build
ale w np. w MDV2008 otrzymamy
/usr/src/2.6.22.6-1mdv/
/lib/modules/2.6.22-6mdvlegacy/
zatem powyższe polecenie wywoła błąd.
Musimy zmodyfikować polecenie na takie
Kod:
ln -s /usr/src/2.6.22.6-1mdv /lib/modules/`uname -r`/build
Mam nadzieję, że jest to jasne.
3. Instalacja najnowszego ndiswrappera
Pobierz najnowszego ndiswrappera
Strona projektu :
http://sourceforge.net/projects/ndiswrapper
http://dfn.dl.sourceforge.net/source...er-1.48.tar.gz
W dniu pisania tego opisu najnowszy ndiswrapper to ndiswrapper-1.48.tar.gz
Kod:
tar xvzf ndiswrapper-1.48.tar.gz
jako root
Zakładam, że make i make install zakończone powodzeniem bez jakiegokolwiek błędu.
Sprawdzamy
4. Przygotowanie drivera
Pobieramy driver HP sp33008.exe z adresu
ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe
można przy połączeniu internetowym pobrać poleceniem
Kod:
wget ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe -O${HOME}/sp33008.exe
Do pobrania również w dziale Download naszego forum TUTAJ
opis drivera na stronie ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.html
Należy doinstalować pakiety
Kod:
urpmi cabextract unzip
lub ręcznie, gdy nie mamy połączenia z internetem.
Np. dla MDV2007.1 będzie to cabextract-1.2-2mdv2007.1.i586.rpm
Przygotowanie drivera.
Tworzymy katalog /bcm4311
Jako user ( nie jako root - w konsoli wyjście z uprawnień root i przejście do uprawnień roota przez polecenie exit )
Kod:
mv sp33008.exe bcm4311
Kod:
cabextract sp33008.exe
lub
Po wypakowaniu wykonujemy polecenie jako root
Kod:
ndiswrapper -i bcmwl5.inf
Powinno wykonać i zobaczymy
Kod:
installing bcmwl5 ... forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2
Sprawdzamy i wynik powinien być taki
Kod:
ndiswrapper -l installed drivers: bcmwl5 driver installed, hardware (14E4:4324) present (alternate driver: bcm43xx)
Jako root
Kod:
ndiswrapper -a 14E4:4324 bcmwl5
Sprawdzamy
Kod:
ls /etc/ndiswrapper bcmwl5
Kod:
ls /etc/ndiswrapper/bcmwl5 14E4:4311:1363:103C.5.conf 14E4:4319:1359:103C.5.conf 14E4:4311:1364:103C.5.conf 14E4:4319:135A:103C.5.conf 14E4:4311:1365:103C.5.conf 14E4:4319.5.conf 14E4:4311.5.conf 14E4:4320:00E7:0E11.5.conf 14E4:4312:135F:103C.5.conf 14E4:4320:12F4:103C.5.conf 14E4:4312:1360:103C.5.conf 14E4:4320:12F8:103C.5.conf 14E4:4312:1361:103C.5.conf 14E4:4320:12FA:103C.5.conf 14E4:4312:1362:103C.5.conf 14E4:4320:12FB:103C.5.conf 14E4:4312.5.conf 14E4:4320.5.conf 14E4:4318:1355:103C.5.conf 14E4:4324:12F9:103C.5.conf 14E4:4318:1356:103C.5.conf 14E4:4324:12FC:103C.5.conf 14E4:4318:1357:103C.5.conf 14E4:4324.5.conf 14E4:4318.5.conf bcmwl5.inf 14E4:4319:1358:103C.5.conf bcmwl5.sys
Jeżeli wynik jest taki jak podałem, to kopiujemy 14E4:4324.5.conf do .conf
Kod:
cp /etc/ndiswrapper/bcmwl5/14E4:4324.5.conf /etc/ndiswrapper/bcmwl5/.conf
Musimy zmienić w tym pliku wartość
Afterburner|1
na
Afterburner|0
Kod:
mcedit /etc/ndiswrapper/bcmwl5/.conf
Zamieniamy na taką zawartość
Kod:
NdisVersion|0x50001
Environment|1
class_guid|4d36e972-e325-11ce-bfc1-08002be10318
NetworkAddress|XX:XX:XX:XX:XX:XX
driver_version|Broadcom,03/23/2006, 4.40.19.0
BusType|5
11HNetworks|1
Afterburner|0
Zapisujemy przez F2 i wychodzimy z mcedit przez F10.
Ładujemy moduł
Kod:
modprobe ndiswrapper
Sprawdzamy
Konfigurujemy interfejs ( tu możemy mieć albo wlan0, albo eth0, albo eth1.... - różnie to bywa )
Po konfiguracji interfejsu sprawdzamy
Kod:
ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ...
couldn't add module alias: at /usr/sbin/ndiswrapper line 717.
Może tu być eth0 zamiast wlan0
Sprawdźmy czy ndiswrapper wybrał dobry interfejs sieciowy:
Kod:
cat /etc/modprobe.d/ndiswrapper
Jeżeli zawartość pliku jest błędna lub zawiera więcej niż tylko alias wlan0 ndiswrapper (interfejs może się różnić) edytujemy plik:
Kod:
mcedit /etc/modprobe.d/ndiswrapper
i korygujemy wpis. Zapisujemy zmiany.
Analogicznie sprawdzamy wpis w /etc/modprobe.conf odnośnie alias wlan0 ndiswrapper
Jeżeli interfejs poprawnie został skonfigurowany to możemy teraz sprawdzić ponownie
Polecenia pomocne to ( jeżeli to będzie oczywiście wlan0, jeżeli nie to zmień w poniższych poleceniach )
Kod:
ifdown wlan0 ifup wlan0 iwlist wlan0 scanning
Jeżeli sieć działa poprawnie to możesz jeszcze dopisać
ndiswrapper
w /etc/modules
i na końcu dopisz ndiswrapper
zapisz zmiany.
lub
Kod:
echo ndiswrapper >> /etc/modules
Pozostanie jeszcze ewentualnie sprawa obsługi WPA.
Instalujemy WPA_Supplicant:
Kod:
urpmi wpa_supplicant
Tworzymy plik /etc/default/wpa_supplicant
Kod:
touch /etc/default/wpa_supplicant
wpisujemy w nim ENABLED=0
Kod:
echo 'ENABLED=0' | sudo tee -a /etc/default/wpa_supplicant
Zrestartuj dbus-a:
Kod:
/etc/init.d/dbus restart
W innych dystrybucjach niż MDV będzie wpasupplicant zamiast wpa_supplicant
Przy kluczu WEP odpowiedni wpis w ifcfg-wlan0 (lub odpowiednio eth1....)
WIRELESS_ENC_KEY="restricted s:<klucz>"
lub
WIRELESS_ENC_KEY="open s:<klucz>"
================================================
Opis przygotowany na podstawie różnych opisów w internecie.
===============================
Dopisane :
W MDV2008 wymagane :
kernel-desktop
kernel-desktop-devel
lub odpowiednio
kernel-laptop
kernel-laptop-devel