Linux, nie można uzyskać sterowników wifi do pracy lub kompilacji

2

Mam ogólny bezprzewodowy klucz USB Ralink i nową instalację Linux Mint 17 (cynamon). Chciałbym móc używać klucza sprzętowego do łączenia się z moim Wi-Fi, dzięki czemu mogę zwolnić kilka kabli Cat5, o których mówiłem.

Niestety nie działa domyślnie i nie mogę skompilować ze źródła (ma błędy). Przepraszam za długi post, ale jest to skondensowana wersja tego, co próbowałem w ciągu ostatnich kilku tygodni.

Aby zaoszczędzić trochę czasu, wkleję odpowiednie informacje systemowe poniżej. Po pierwsze, uname -a

Linux stutter 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Oto wyjście z lsusb; aby pokazać, że urządzenie jest rozpoznawane. Urządzenie 5.

Bus 001 Device 005: ID 148f:7601 Ralink Technology, Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 413c:2005 Dell Computer Corp. RT7D50 Keyboard
Bus 002 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Wyjście z iwconfig; aby pokazać, że nie jest używany jako urządzenie wifi. Rozumiem, że na tej liście powinien znajdować się „ra0”. eth0 i eth1 są portami przewodowymi na mojej płycie głównej - mają dwa.

eth0      no wireless extensions.
eth1      no wireless extensions.
lo        no wireless extensions.

Następnie lsmod, aby pokazać, że załadowano prawidłowe moduły jądra. Jest przycięty dla zwięzłości.

rt2800usb              27034  0 
rt2x00usb              20742  1 rt2800usb
rt2800lib              89076  1 rt2800usb
rt2x00lib              55307  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              626489  3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211              484040  2 mac80211,rt2x00lib
crc_ccitt              12707  1 rt2800lib
bnep                   19624  2 
rfcomm                 69160  0 
bluetooth             395423  10 bnep,rfcomm
....

Więc powinno działać po wyjęciu z pudełka, ale tak nie jest. Moją następną myślą było skompilowanie ze źródła. Idę na stronę pobierania 2870 ( http://www.mediatek.com/en/downloads/rt2870usbrt2870rt2770/ ), co uważam za dokładną wersję tego chipsetu - chociaż nie mam instrukcji do tego urządzenia, więc nie jestem pewien. W każdym razie, ściągam pakiet, zawyżam go, modyfikuję następujące linie w os / linux / config.mk:

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

Następnie upewniam się, że mam wszystkie odpowiednie pakiety

sudo apt-get install build-essential linux-headers-$(uname -r) linux-firmware

I wróć do najwyższego poziomu, wypróbowując „make”. Nie minęło wiele czasu, zanim trafiłem na pierwsze błędy:

/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1141:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
   pOSFSInfo->fsuid = current_fsuid();
                    ^
/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1142:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
   pOSFSInfo->fsgid = current_fsgid();
                    ^
make[2]: *** [/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.o] Error 1
make[1]: *** [_module_/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-24-generic'
make: *** [LINUX] Error 2

Błędy te występują w każdej wersji źródła na ich stronie, a żaden z nich nie jest dla mnie tworzony. Przyznaję, że mógłbym prawdopodobnie spróbować je sam naprawić, ale wolałbym po prostu kupić nowe urządzenie, które ma sterowniki, które faktycznie działają, zamiast próbować połączyć taśmę razem.

Więc teraz utknąłem - wydaje mi się, że moje sterowniki giełdowe nie wierzą, że moje urządzenie jest dla nich, kompilacja ze źródła wydaje się wymagać mnóstwa poprawek, a nikt inny nie wydaje się napotkać tych problemów ocean ludzi, którzy byli w stanie skompilować ze źródła).

Doceniam każdą pomoc, wiem, że jest to dość niszowe pytanie z dużą ilością informacji.

Knetic
źródło

Odpowiedzi:

2

Kod dostawcy + produktu 148f: 7601 wyświetlany przez lsusb jest wystarczającą informacją. Patrząc w górę WikiDevi , widzimy, że twój klucz sprzętowy to TP-Link TL-WN727N v4 lub Shenzhen Ogemray Technology GWF-7A05. W każdym przypadku rt2800usb nie jest odpowiednim sterownikiem: komendą

 # modinfo rt2800usb | grep 148F | grep 7601

który wyszukuje kod dostawcy i produktu klucza sprzętowego wśród tych, dla których załadowano rt2800usb, nie daje żadnego wyniku. Dlatego potrzebujesz innego sterownika. To wyjaśnia, dlaczego nawet po udanej kompilacji i instalacji rt2800usb twój interfejs jeszcze się nie pojawił.

Ta sama strona Wikidevi sugeruje mt7601u_sta jako najbardziej prawdopodobny moduł Linux. Możesz to zdobyć tutaj . Z pewnością jest to sterownik, którego szukasz: w pliku DPO_MT7601U_LinuxSTA_3.0.0.4_20130913 / common / rtusb_dev_id.c , możesz znaleźć linię

          {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */

co pojawi się na wyjściu modinfo mt7601u_sta .

To jednak koniec dobrych wiadomości: nie kompiluje się ani na moim Archie, ani na moich systemach Debian Jessie. Ponadto, Googling wokół wydaje się, że nikomu nie udało się skompilować go pomyślnie na ostatnim jądrze. Widziałem raporty od 3.12 do 3.15.

Aby być bezpiecznym, sprawdziłem również, czy najnowsze backporty, tutaj , obsługuj tę kartę. Nie robią tego i możesz to sprawdzić samodzielnie, kompilując i instalując wifi defconfig, a następnie próbując modinfo na nowo wybitym rt2800usb. Brak szczęścia.

MariusMatutiae
źródło
Dziękujemy za poświęcenie czasu na dokładne zapoznanie się z przedmiotami - naprawdę to doceniam. Gdybym mógł dać ci za to podwójną dawkę, zrobiłbym to. Nie miałem pojęcia, że ​​identyfikator wyświetlany przez lsusba wystarczy, by dowiedzieć się, jaka to marka. Biorąc pod uwagę, że urządzenie wydaje się być porzucone przez jego twórców, po prostu wyskoczę na nowe urządzenie - jedno, o którym wiem, że jest aktywnie obsługiwane.
Knetic
@Kicic tak, zgadzam się, że to mądrzejszy wybór
MariusMatutiae
1

Z to pytanie przez ” niekompatybilne typy podczas przypisywania do typu „int” z typu „kgid_t” „spróbuj zainstalować firmware-ralink przed budowaniem (w razie wątpliwości zawsze szukaj komunikatu o błędzie kompilatora):

sudo apt-get install firmware-ralink

Jeśli tego nie zrobisz, przejdź do swojego ostatniego pomysłu na zakup urządzenia, o którym domyślnie wiadomo, że współpracuje z Mintem (co możesz zrobić mimo wszystko, więc nie musisz przez to przechodzić za każdym razem, gdy np. Otrzymujesz aktualizację jądra lub jeśli skonfigurować nowy system).

Jason C
źródło
To się udało! Źródło teraz się kompiluje. Dziękuję Ci! Jednak po zainstalowaniu sudo i późniejszym modprobingu nadal nie ma interfejsu ra0. Podejrzewam, że musiałem źle zapamiętać wersję ralink, ale uruchomienie lsusb na urządzeniu nie daje mi niczego poza tym, że jest to „urządzenie zgodne z ralink”. Czy są jakieś inne sposoby określania wersji chipsetu lub ustalania, dlaczego nie ma interfejsu ra0?
Knetic
@Knetic Spróbuj ifup ra0 lub ifup -a?
Jason C
ifup -a nie daje mi żadnego wyjścia. ifup ra0 informuje mnie, że jest to nieznany interfejs. iwconfig niczego nie pokazuje, mimo że moduł jest zdecydowanie załadowany i urządzenie jest zdecydowanie rozpoznawane.
Knetic
dostaję E: Unable to locate package firmware-ralink
Jonathan