Der Ralink 148f:760b mt7601-Treiber lässt sich unter 12.04 auch mit Patch nicht erstellen

Der Ralink 148f:760b mt7601-Treiber lässt sich unter 12.04 auch mit Patch nicht erstellen

Hallo liebe Ubuntunianer ;)

Ich habe diesen billigen Ralink-WLAN-Adapter gekauft und dachte, dass er wie von Zauberhand funktionieren würde, so wie ich es von Ubuntu gewohnt bin. ;) Allerdings hat mir diese Treiberinstallation viel mehr Probleme bereitet als erwartet. Ich habe mehrere Stunden lang die Foren durchforstet und alles mögliche ausprobiert. Nun ja... ich wusste von Anfang an, dass dies der richtige Ansatz (ich meine die Antwort) sein würde:

Installation des Wi-Fi-Adapters Ralink MT7601U (148f:7601)

Aber selbst mit dem angewendeten Patch erhalte ich Folgendes:

ahti@ahti:~/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913$ make
make -C tools
make[1]: Siirrytään hakemistoon "/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/tools"
gcc -g bin2h.c -o bin2h
make[1]: Poistutaan hakemistosta "/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/tools"
/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/tools/bin2h
cp -f os/linux/Makefile.6 /home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/Makefile
make -C /lib/modules/3.2.0-70-generic/build SUBDIRS=/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux modules
make[1]: Siirrytään hakemistoon "/usr/src/linux-headers-3.2.0-70-generic"
  CC [M]  /home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_profile.o
In file included from /home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/rtmp_os.h:44:0,
                 from /home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/rtmp_comm.h:75,
                 from /home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/rt_config.h:33,
                 from /home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_profile.c:28:
/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/os/rt_linux.h:282:2: virhe: unknown type name ”kuid_t”
/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/os/rt_linux.h:283:2: virhe: unknown type name ”kgid_t”
/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_profile.c: Funktio ”announce_802_3_packet”:
/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_profile.c:331:16: varoitus: käyttämätön muuttuja ”pAd” [-Wunused-variable]
/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_profile.c: Funktio ”STA_MonPktSend”:
/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_profile.c:399:9: varoitus: format ”%d” expects argument of type ”int”, but argument 3 has type ”long unsigned int” [-Wformat]
make[2]: *** [/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_profile.o] Virhe 1
make[1]: *** [_module_/home/ahti/data/drivers/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux] Virhe 2
make[1]: Poistutaan hakemistosta "/usr/src/linux-headers-3.2.0-70-generic"
make: *** [LINUX] Virhe 2

Entschuldigen Sie, dass meine Konsolenausgabe auf Finnisch ist (Wie ändere ich diese verdammte Konsolenausgabe überhaupt auf Englisch? Vor allem für Apt und den Bau von Tools, wenn nicht, ist es möglich, in der Terminalsitzung für alles das englische Gebietsschema zu verwenden? Nicht möglich?)

Aber ja, das ist im Wesentlichen mein derzeitiger Standpunkt.

Ich habe auch versucht,ndis-Wrapper-Ansatz, aber Unshield konnte die ausführbare Datei des Windows-Treibers nicht extrahieren und ich konnte die .sys/.inf-Kombination nirgends finden, also habe ich diese Idee verworfen.

Jede Hilfe ist willkommen. Ich weiß, dass es sich hier um ein Problem mit dem Benutzernamensraum handelt, aber ich habe keine Kernel-Codierung durchgeführt, bin aber trotzdem Programmierer und kann das Problem daher nicht alleine lösen.

Oh, und ein kleines bisschen meiner Systeminfos, falls nötig: Ubuntu 12.04 (genau), Kernel: 3.2.0-70-generic (#105-Ubuntu SMP Mi 24. Sep 2014 19:49:16 UTC), GCC-Version: 4.6 (x86_64-linux-gnu), Gnome 3.4.2

Vielen Dank im Voraus!

Antwort1

Ich antworte mir selbst.

Ich war zu eifrig dabei, den Patch anzuwenden. Ohne den Patch wurde der Treiber kompiliert. Allerdings scheint er entweder falsch zugeordnet zu sein oder einfach nicht mit meinem 148f:760b-USB-Adapter (<- beachten Sie das b statt 1) ​​zu funktionieren. Ich habe sogar die Geräteliste geändert, um einen neuen Alias ​​hinzuzufügen, aber selbst nach dem Laden des Treibers oder einer Reihe anderer damit verbundener Dinge wurde der Adapter einfach nicht erkannt.

Aber als ich den Treiber unter Windows 7 installierte (unter Windows XP schien er nicht zu funktionieren) und nach dem Installationsvorgang den Treiberordner unter C:/ProgramData/Mediatek Driver/RT2870 Wireless LAN Card/Driver/ nach Ubuntu kopierte und ihn mit dem ndis-Wrapper und dem ndiswrapper-dkms-Paket lud, war der Adapter sofort funktionsfähig. Tatsächlich erkannte er unter Windows mein WLAN aus irgendeinem Grund überhaupt nicht, aber unter Ubuntu war es nur ein Klick und ich war sofort drahtlos online.

Also, hier und da ein merkwürdiges Verhalten, aber es funktioniert endlich.

Antwort2

Sie verwenden Ubuntu 12.04 wahrscheinlich nicht mehr, aber hier ist trotzdem die Lösung für den Kompilierungsfehler, der beim Anwenden der Patches aufgetreten ist:

Die Patches funktionieren nur sofort mit Linux-Kernel >=3.5. Damit es mit dem Ubuntu-Kernel 12.04 funktioniert3.2eine kleine Korrektur muss man machen:

Suchen Sie in include/os/rt_linux.hnach dem folgenden Block. In meiner Version beginnt er in Zeile 280, aber Ihre Version kann je nach Quelle Ihrer Quellen etwas anders sein:

typedef struct _OS_FS_INFO_
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)
    uid_t               fsuid;
    gid_t               fsgid;
#else
    kuid_t              fsuid;
    kgid_t              fsgid;
#endif
    mm_segment_t    fs;
} OS_FS_INFO;

Holen Sie sich diese Zeile (in meinem Fall 282):

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)

Und ändern Sie es in

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)

Versuchen Sie es jetzt zu kompilieren, dann sollte es funktionieren :)

verwandte Informationen