web-dev-qa-db-fra.com

Ralink 148f: le pilote mt7601 de 760b ne repose pas sur 12.04, même avec un correctif

Bonjour les Ubuntuniens;)

J'ai acheté cet adaptateur wifi Ralink bon marché en pensant qu'il fonctionnerait comme par magie, comme je suis habitué avec Ubuntu. ;) Cependant, l'installation de ce pilote m'a causé bien plus de problèmes que prévu. J'ai parcouru les planches pendant plusieurs heures pour tout essayer. Eh bien ... Je savais depuis le début que ce serait la bonne approche (je veux dire la réponse):

Installation de l'adaptateur Wi-Fi Ralink MT7601U (148f: 7601)

Mais, même avec le correctif appliqué, je reçois ce qui suit:

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

Désolé, la sortie de ma console est en finnois (comment puis-je changer ces sorties de console en anglais quand même, d'ailleurs? Pour apt et les outils de construction principalement s'il n'est pas possible d'utiliser l'anglais local pour tout ce qui se passe dans une session de terminal? Impossible?)

Mais oui, c'est essentiellement là où je suis en ce moment.

J'ai également essayé d'utiliser approche wrapper ndis , mais unshield n'a pas pu extraire l'exécutable du pilote Windows et je ne pouvais pas trouver le combo .sys/.inf où que ce soit, l'idée a donc été abandonnée.

Toute aide appréciée. Je sais que c'est un problème d'espace de noms d'utilisateur, mais je n'ai pas encore codé le noyau. Néanmoins, je suis un codeur, je ne peux donc pas résoudre ce problème moi-même.

Oh, et tinybit de mes informations système si nécessaire: Ubuntu 12.04 (précis), Noyau: 3.2.0-70-generic (n ° 105-Ubuntu SMP mer 24 sept. 19:49:16 UTC 2014), version GCC: 4.6 (x86_64 -linux-gnu), Gnome 3.4.2

Merci d'avance!

2
Ahti Komu

Répondre à moi-même.

J'étais trop désireux d'appliquer le patch. Sans le correctif appliqué, le pilote compilé. Cependant, il semble que la carte ne fonctionne pas correctement ou ne fonctionne tout simplement pas avec mon adaptateur USB 148f: 760b (<- remarquez le b au lieu de 1). J'ai même modifié la liste des périphériques pour ajouter un nouvel alias, mais même après le chargement du pilote ou un tas d'autres éléments associés, l'adaptateur n'était tout simplement pas reconnu.

Mais quand j’ai installé le pilote sous Windows 7 (cela ne semblait pas fonctionner sous Windows XP) et que le processus d’installation a été copié après le dossier du pilote situé dans C:/ProgramData/Pilote Mediatek/Carte LAN sans fil/Pilote RT2870/vers Ubuntu et chargé avec ndis wrapper et avec le package ndiswrapper-dkms, l’adaptateur était immédiatement opérationnel. En fait, du côté de Windows, mon wlan n’était pas du tout reconnu pour une raison quelconque, mais sous Ubuntu, ce n’était qu’un clic et j’étais immédiatement en ligne sans fil.

Donc, comportement étrange ici et là, mais finalement travailler.

2
Ahti Komu

Vous n'utilisez probablement plus Ubuntu 12.04, mais dans tous les cas, voici la solution à l'erreur de compilation que vous avez eue lors de l'application des correctifs:

Les correctifs fonctionnent uniquement avec le noyau Linux> = .5. Pour que cela fonctionne avec le noyau 12.04 d’Ubuntu .2 vous devez faire une petite correction:

Dans include/os/rt_linux.h, recherchez le bloc suivant. Dans ma version, il commence à la ligne 280, mais le vôtre peut être légèrement différent selon l'endroit où vous avez obtenu vos sources:

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;

Obtenez cette ligne (282 dans mon cas):

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

Et changez le en

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

Essayez de compiler maintenant, et ça devrait marcher :)

0
MestreLion