
Привет, собратья-убунцы ;)
Я купил этот дешевый адаптер Ralink Wi-Fi, думая, что он будет работать как по волшебству, как я привык с Ubuntu. ;) Однако эта установка драйвера доставила мне гораздо больше проблем, чем я ожидал. Я рылся в платах несколько часов, пробуя все подряд. Ну... Я с самого начала знал, что это будет правильным подходом (я имею в виду ответ):
Установка Wi-Fi адаптера Ralink MT7601U (148f:7601)
Но даже с установленным патчем я получаю следующее:
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
Извините, что мой консольный вывод на финском языке (Как мне, кстати, изменить этот чертов консольный вывод на английский? В основном для apt и инструментов сборки, если невозможно использовать английскую локаль для всего в терминальной сессии? Это невозможно?)
Но да, это, по сути, то, где я сейчас нахожусь.
Я также пытался использоватьподход ndis-обертки, но unshield не смог извлечь исполняемый файл драйвера Windows, и я нигде не смог найти комбинацию .sys/.inf, поэтому эта идея была отброшена.
Любая помощь приветствуется. Я знаю, что это проблема пространства имен пользователя, но я не занимался кодированием ядра, тем не менее я кодер, поэтому не могу решить это самостоятельно.
О, и немного информации о моей системе, если нужно: Ubuntu 12.04 (точная), ядро: 3.2.0-70-generic (#105-Ubuntu SMP Ср Сен 24 19:49:16 UTC 2014), версия GCC: 4.6 (x86_64-linux-gnu), Gnome 3.4.2
Спасибо заранее!
решение1
Отвечаю сам себе.
Я слишком хотел применить патч. Без применения патча драйвер скомпилировался. Однако, похоже, он либо неправильно отображает, либо просто не работает с моим usb-адаптером 148f:760b (<- обратите внимание на b вместо 1). Я даже изменил список устройств, чтобы добавить новый псевдоним, но даже после загрузки драйвера или кучи других вещей, связанных с ним, адаптер просто не распознавался.
Но когда я установил драйвер в Windows 7 (в Windows XP он, похоже, не работал) и после процесса установки скопировал папку драйвера, расположенную в C:/ProgramData/Mediatek Driver/RT2870 Wireless LAN Card/Driver/, в Ubuntu и загрузил ее с помощью ndis wrapper и пакета ndiswrapper-dkms, адаптер сразу же заработал. На самом деле, на стороне Windows он по какой-то причине вообще не распознал мой wlan, но на Ubuntu это было всего одним щелчком мыши, и я сразу же оказался в сети по беспроводной сети.
Итак, иногда возникают странности в поведении, но в итоге все работает.
решение2
Вы, вероятно, уже не используете Ubuntu 12.04, но в любом случае, вот решение ошибки компиляции, которая возникла при применении патчей:
Патчи работают «из коробки» только с ядром Linux >=3.5. Чтобы заставить его работать с ядром Ubuntu 12.043.2Вам придется сделать небольшую поправку:
В include/os/rt_linux.h
, найдите следующий блок. В моей версии он начинается со строки 280, но ваша версия может немного отличаться в зависимости от того, откуда вы взяли исходники:
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;
Получите эту строку (в моем случае 282):
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)
И измените его на
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
Попробуйте скомпилировать сейчас, должно заработать :)