Karta WiFi USB RT2570 w Linuksie
W obudowie mojego nowego komputera (Tani komputer dla elektronika amatora II), została fabrycznie zamontowa karta WiFi z interfejsem USB. Jest to niewielka płytka, umiejscowiona w przodu, za frontowym panelem. Kabelek USB jest wpięty do huba będącego częścią modułu z m.in. czytnikiem kart. Po zainstalowaniu sterowników w Windows XP, WiFi działało wyśmienicie. W linuksie już niestety było dużo gorzej. Najpierw zainstalowałem Minta 15 w 64 bitowej wersji. Internet niby był, ale działało to bardzo niestabilnie. Zrywało połączenie, pingi do routera wynosiły od 50 do ponad 2000ms. Zainstalowałem Minta w wersji 32 bitowej, ale sieć bezprzewodowa nadal funkcjonowała kiepsko. Gdyby nie fakt, że pod XP wszystko działało bez najmniejszego problemu, uznałbym tą sieciówkę za uszkodzoną. W tym wypadku pozostało ustalić, co jest przyczyną niestabilnego połączenia.
Sterowniki do WiFi USB RT2570 w Linux
Na początek chciałem dokładnie określić, z jaką kartą mam do czynienia. W tym celu w konsoli wpisałem lsusb:
W systemie jest ona rozpoznawana jako 148F:2570, czyli dostawcą jest Ralink Technology Corp., a model to 2570. Następnie wpisałem inxi -N, co pozwoliło mi ustalić, że karta używa sterownika rt2500usb. Poszperałem trochę w internecie i okazało się, że w przypadku mojej sieciówki, ten driver jest problematyczny. Opisane na forach różne metody zmian w konfiguracji tego sterownika nie rozwiązywały mojego problemu. Miałem do wyboru – poszukać dalej, lub podłączyć zewnętrzną sieciówkę USB. Wybrałem to pierwsze rozwiązanie.
RT2570 USB i ndiswrapper
Na jednym z niemieckich for znalazłem opisany dokładnie ten sam problem. Nawet obudowa z postu była taka sama jak moja. Solucja polegała na zastosowaniu ndiswrappera, który umożliwia wykorzystanie sterowników kart wifi z systemu Windows. Na początek trzeba zablokować problematyczny sterownik. Ja wpisałem w konsoli:
echo 'blacklist rt2500usb' >> /etc/modprobe.d/blacklist.conf
Czyli wyglądało to tak:
Można też otworzyć plik blacklist.conf w jakimś edytorze tekstu i w nim dopisać linijkę blacklist rt2500usb. Tym samym system nie będzie korzystał z tego sterownika.
Następny krok, to odpalenie ndiswrappera, czyli w Mint będzie to graficzna aplikacja o nazwie Wireless Network Drivers. Przycisk [Install new Driver] umożliwia wskazanie windowsowego sterownika. W przypadku mojej karty niezbędne pliki są w tym archiwum:
>> POBIERZ Ralink_rt2500usb_v2.01.01.015
Po załadowaniu drivera:
Kluczowy zapis to: Hardware present: Yes. Teraz należy sprawdzić, czy w systemie startuje poprawnie moduł ndiswrappera. Załatwia to polecenie:
modprobe ndiswrapper
Jeśli nie zostanie zwrócony żaden błąd, to jest ok. Jeśli okaże się, że modułu nie ma w systemie, lub jest stary, to wystarczy go zainstalować/zaktualizować:
apt-get install ndiswrapper-dkms
Warto zrobić restart systemu. Po jego uruchomieniu i ponownym wydaniu polecenia:
inxi -N
powinniśmy otrzymać linijkę informującą, że sterownikiem dla rt2570 jest ndiswrapper:
Podsumowanie
Powyższy sposób powoduje, że karta działa, pingi są prawidłowe i nie ma większyć problemów:
Jedyne wady jakie zaobserwowałem, to nieco dłuższy czas łączenia zaraz po starcie systemu, sporadycznie następuje rozłączenie i nie widać ssida naszej sieci. Pomaga wtedy ręczne łączenie z zapisanym profilem. Są to jednak zdarzenia występujące bardzo rzadko, dzięki czemu nie są uciążliwe.
A jak w windowskie uzyskać ID urządzenie? I czy jest jakaś baza takich IDów?
W Windows 7: W menedżerze urządzeń klikasz dwa razy na wybranym sprzęcie, przechodzisz do zakładki szczegóły, z listy właściwość wybierasz identyfikator sprzętu i otrzymujesz np. taki ciąg: PCI\VEN_10EC&DEV_8176&SUBSYS_11391A3B&REV_01
VEN_10EC – vendor (producent) o kodzie 10EC
DEV_8176 – devide (urządzenie) o kodzie 8176