Tentando compilar o driver ralink (chipset RT5370); arquivos de cabeçalho falhando

0

Eu estou tentando compilar o driver fornecido com um adaptador wi-fi Ralink 5370 usb que eu comprei, para Lubuntu 14.4.1 (versão de 32 bits). Estou executando 3.16.0-24-generic kernel.

O arquivo de cabeçalho está dando um erro de conversão de tipo quando tento compilar usando sudo make conforme o procedimento geral aqui :

/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../os/linux/sta_ioctl.c: In function ‘rt_ioctl_giwscan’:
./arch/x86/include/asm/string_32.h:182:25: warning: array subscript is below array bounds [-Warray-bounds]
 #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
                         ^
include/net/iw_handler.h:542:3: note: in expansion of macro ‘memcpy’
   memcpy(stream + point_len, extra, iwe->u.data.length);
   ^
  CC [M]  /home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../os/linux/rt_linux.o
/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../os/linux/rt_linux.c: In function ‘__RtmpOSFSInfoChange’:
/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../os/linux/rt_linux.c:1126:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
   pOSFSInfo->fsuid = current_fsuid();
                    ^
/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../os/linux/rt_linux.c:1127:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
   pOSFSInfo->fsgid = current_fsgid();
                    ^
scripts/Makefile.build:257: recipe for target '/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../os/linux/rt_linux.o' failed
make[2]: *** [/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../os/linux/rt_linux.o] Error 1
Makefile:1345: recipe for target '_module_/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux' failed
make[1]: *** [_module_/home/username/wifidriver/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-24-generic'
Makefile:356: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2

Saída relevante de lsusb

Bus 001 Device 002: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

Como devo estar me aproximando disso? Esse erro do compilador parece estranho o suficiente para eu questionar se eu deveria estar mergulhando nele; ou seja, se meu tempo fosse melhor gasto de alguma outra forma.

    
por Escher 24.11.2014 / 22:57

1 resposta

0

Para a referência de alguém tentando resolver o mesmo problema, a resposta correta foi ignorar o driver de dispositivo fornecido pelo fornecedor e usar o driver pré-compilado do Debian rt2800usb em vez disso - apenas apt-get install firmware-ralink; sudo modprobe rt2800usb; . Aparentemente, o driver de Ralink precisou de patch para fazer a compilação desde o Ubuntu 12-ish.

@ Michael Kjörling obrigado por esclarecer. Eu pretendia que o código de saída de erro meramente destacasse a improbabilidade de que a solução mais simples e melhor era começar a invadir com o código do driver. Não há como ter tempo ou habilidade suficiente em C para me aprofundar em drivers de hardware. Não foi fácil saber usar o computing SE - reconhecer um erro de driver de dispositivo pelo erro do compilador quando compilado no linux pode ser qualquer um dos três.

    
por 03.12.2014 / 23:14