Como faço para que uma placa wireless Ralink RT3290 funcione no Debian Jessie?

3

Eu tenho um HP Pavillion Touch 14-N009LA com uma placa wireless Ralink RT3290 rodando Debian Jessie com o kernel 3.12.9-1. Essa distro parece que os drivers sem fio foram incluídos e de outro post aqui parece que deve funcionar com o módulo rt2800pci, que é listado por lsmod e carrega bem. No entanto, sempre que emito ifconfig wlan0 up , recebo SIOCSIFFLAGS: No such file or directory . Eu tentei usar as fontes de compatibilidade do kernel.org do post anteriormente linkado e elas não funcionaram, depois de instalá-las eu não posso carregar o módulo e eu devo desinstalá-las e usar o módulo Debian-empacotado. Eu tentei compilar as fontes do driver de este outro segmento e eles não compilam. Não tenho certeza se baixar o arquivo binário vinculado nesse encadeamento será uma boa ideia, já que esse é para o Ubuntu e eu estou executando o Debian Testing. Eu tentei aplicar esta correção aqui para o Arch / Gentoo , mas não consegui encontrar o arquivo correto.

Após o terceiro link, consegui diagnosticar um pouco essa situação, e é isso que eu recebo executando dmesg logo após tentar exibir wlan0 :

[ 4374.981101] ieee80211 phy1: rt2x00lib_request_firmware: Info - Loading firmware file 'rt3290.bin'
[ 4374.981132] rt2800pci 0000:02:00.0: firmware: failed to load rt3290.bin (-2)

Então, basicamente, parece que eu preciso obter os drivers para compilar. Eu tenho build-essential e linux-headers-amd64 para minha versão em execução do kernel, tentei com HAS_WPA_SUPPLICANT=y e HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y , bem como com apenas HAS_NATIVE_WPA_SUPPLICANT_SUPPORT on, e é isso que recebo:

black@rockshooter:~/WA/DPO_RT3290_LinuxSTA_V2600_20120508$ make
make -C tools
make[1]: Entering directory '/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory '/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/tools'
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/tools/bin2h
cp -f os/linux/Makefile.6 /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/Makefile
make -C /lib/modules/3.12-1-amd64/build SUBDIRS=/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux modules
make[1]: Entering directory '/usr/src/linux-headers-3.12-1-amd64'
  CC [M]  /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.o
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c: In function ‘duplicate_pkt’:
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:508:3: warning: passing argument 1 of ‘memmove’ makes pointer from integer without a cast [enabled by default]
   NdisMoveMemory(skb->tail, pHeader802_3, HdrLen);
   ^
In file included from /usr/src/linux-headers-3.12-1-common/arch/x86/include/asm/string.h:4:0,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/string.h:17,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/dynamic_debug.h:111,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/kernel.h:14,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/cache.h:4,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/time.h:4,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/stat.h:18,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/module.h:10,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/os/rt_linux.h:18,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_os.h:42,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_comm.h:56,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:35:
/usr/src/linux-headers-3.12-1-common/arch/x86/include/asm/string_64.h:58:7: note: expected ‘void *’ but argument is of type ‘sk_buff_data_t’
 void *memmove(void *dest, const void *src, size_t count);
       ^
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:510:3: warning: passing argument 1 of ‘memmove’ makes pointer from integer without a cast [enabled by default]
   NdisMoveMemory(skb->tail, pData, DataSize);
   ^
In file included from /usr/src/linux-headers-3.12-1-common/arch/x86/include/asm/string.h:4:0,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/string.h:17,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/dynamic_debug.h:111,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/kernel.h:14,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/cache.h:4,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/time.h:4,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/stat.h:18,
                 from /usr/src/linux-headers-3.12-1-common/include/linux/module.h:10,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/os/rt_linux.h:18,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_os.h:42,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_comm.h:56,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:35:
/usr/src/linux-headers-3.12-1-common/arch/x86/include/asm/string_64.h:58:7: note: expected ‘void *’ but argument is of type ‘sk_buff_data_t’
 void *memmove(void *dest, const void *src, size_t count);
       ^
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c: In function ‘ClonePacket’:
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:662:20: warning: assignment makes integer from pointer without a cast [enabled by default]
   pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len;
                    ^
In file included from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_os.h:42:0,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_comm.h:56,
                 from /home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:35:
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c: In function ‘RtmpOsPktInit’:
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/include/os/rt_linux.h:992:34: warning: assignment makes integer from pointer without a cast [enabled by default]
   ((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len))
                                  ^
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:681:2: note: in expansion of macro ‘SET_OS_PKT_DATATAIL’
  SET_OS_PKT_DATATAIL(pRxPkt, pData, DataSize);
  ^
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c: In function ‘wlan_802_11_to_802_3_packet’:
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:708:15: warning: assignment makes integer from pointer without a cast [enabled by default]
  pOSPkt->tail = pOSPkt->data + pOSPkt->len;
               ^
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c: In function ‘__RtmpOSFSInfoChange’:
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:1136:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
   pOSFSInfo->fsuid = current_fsuid();
                    ^
/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.c:1137:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
   pOSFSInfo->fsgid = current_fsgid();
                    ^
make[4]: *** [/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../os/linux/rt_linux.o] Error 1
make[3]: *** [_module_/home/black/WA/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.12-1-amd64'
make: *** [LINUX] Error 2
    
por RAKK 19.02.2014 / 18:26

3 respostas

6

No Debian 8: Você precisa do pacote não-livre firmware-ralink .

apt-get install firmware-ralink

No Debian 9: O pacote não-livre é firmware-misc-nonfree .

apt-get install firmware-misc-nonfree

Verifique também o wiki do Debian .

    
por 19.02.2014 / 20:33
0

Então ... isso é realmente bizarro, e eu não posso garantir que funcionará, mas funcionou para mim e eu queria colocar essa informação em algum lugar que muitas pessoas acabariam vendo e tendo algo para tentar se eles ainda não puderem obter o rt3290 funcionando.

Eu não consegui fazer o rt3290 funcionar para a vida de mim sob o Debian Squeeze, não importando o que eu tentei, instalando o pacote firmware-ralink, tentando compilar os drivers manualmente (sem sucesso devido a falta de dependências que causam problemas se forçado a entrar no sistema), etc.

Eu comprei um dongle sem fio TP-Link, confirmado para funcionar com o Linux, para que eu pudesse ter o wireless no meu laptop novamente.

Eu instalei estes drivers: link

... e agora meu rt3290 funciona perfeitamente ...? Quelle surpresa!

Sim. Eu também não entendo. Eu realmente não tenho muitos dados para fazer backup da minha resposta além do fato de que meu dongle está desconectado ao meu lado e eu estou conectado com o meu rt3290, mas se alguém "resolveu" o problema dessa maneira, Eu adoraria ter visto essa solução bizarra em algum lugar enquanto eu estava lutando. Então, se há alguém lá fora ainda com os mesmos problemas que eu, espero que você encontre essa resposta por meio do google e experimente os drivers do TP-Link.

    
por 18.03.2016 / 21:25
0

se você estiver usando o debian 8 ou o debian 9, assim como o ubuntu do 16, a unidade já estará instalada. O problema é que a unidade não consegue lidar com o nome dado à interface. Para o disco funcionar apenas renomeie o cartão. no arquivo "/ etc / default / grub" mude as linhas para que fique assim: GRUB_CMDLINE_LINUX="net.ifnames = 0 biosdevname = 0" então execute o seguinte comando: sudo grub-mkconfig -o / boot / grub / grub .cfg Isso é apenas reiniciar a máquina. Que a unidade estará funcionando.

    
por 15.10.2018 / 23:32

Tags