
Olá colegas Ubuntunianos ;)
Comprei este adaptador wifi Ralink barato pensando que funcionaria como mágica, como estou acostumado com o Ubuntu. ;) No entanto, a instalação deste driver tem me causado muito mais problemas do que eu esperava. Eu vasculhei as placas por várias horas tentando de tudo. Bem... eu sabia desde o início que esta seria a abordagem correta (quero dizer a resposta):
Instalação do adaptador Wi-Fi Ralink MT7601U (148f:7601)
Mas, mesmo com o patch aplicado, recebo o seguinte:
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
Desculpe por a saída do meu console estar em finlandês (como faço para alterar a maldita saída do console em inglês, aliás? Para ferramentas apt e de construção, principalmente se não for possível usar a localidade em inglês para tudo na sessão do terminal? Não é possível?)
Mas sim, é basicamente onde estou no momento.
Eu também tentei usarabordagem do wrapper ndis, mas o unshield não conseguiu extrair o executável do driver do Windows e não consegui encontrar o combo .sys/.inf em lugar nenhum, então essa ideia foi abandonada.
Qualquer ajuda será apreciada. Eu sei que este é um problema de namespace do usuário, mas não fiz nenhuma codificação do kernel, mas sou um programador, portanto não posso resolver isso sozinho.
Ah, e um pouquinho das informações do meu sistema, se necessário: Ubuntu 12.04 (preciso), Kernel: 3.2.0-70-generic (# 105-Ubuntu SMP Quarta, 24 de setembro 19:49:16 UTC 2014), versão GCC: 4.6 (x86_64 -linux-gnu), Gnome 3.4.2
Muito obrigado antecipadamente!
Responder1
Respondendo para mim mesmo.
Eu estava muito ansioso para aplicar o patch. Sem o patch aplicado, o driver foi compilado. No entanto, parece mapear incorretamente ou simplesmente não funcionar com meu adaptador USB 148f:760b (<- observe o b em vez de 1). Até modifiquei a lista de dispositivos para adicionar um novo alias, mas mesmo depois de carregar o driver ou um monte de outras coisas relacionadas a ele, o adaptador simplesmente não foi reconhecido.
Mas quando instalei o driver no Windows 7 (parecia não funcionar no Windows XP) e após o processo de instalação copiei a pasta do driver localizada em C:/ProgramData/Mediatek Driver/RT2870 Wireless LAN Card/Driver/ para Ubuntu e carregou-o com o wrapper ndis e com o pacote ndiswrapper-dkms, o adaptador ficou imediatamente funcional. Na verdade, no lado do Windows ele não reconheceu meu wlan por algum motivo, mas no Ubuntu foi apenas um clique e eu estava imediatamente online sem fio.
Então, comportamento estranho aqui e ali, mas finalmente funcionando.
Responder2
Você provavelmente não está mais usando o Ubuntu 12.04, mas de qualquer forma, aqui está a solução para o erro de compilação que você teve quando os patches foram aplicados:
Os patches só funcionam imediatamente com o kernel Linux >=3.5. Para fazê-lo funcionar com o kernel 12.04 do Ubuntu3.2você tem que fazer uma pequena correção:
Em include/os/rt_linux.h
, procure o seguinte bloco. Na minha versão começa na linha 280, mas a sua pode ser um pouco diferente dependendo de onde você obteve suas fontes:
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;
Obtenha esta linha (282 no meu caso):
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)
E mude para
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
Tente compilar agora e deve funcionar :)