Linux, não é possível obter drivers wifi USB para trabalhar ou compilar

2

Eu tenho um dongle usb sem fio genérico Ralink e uma nova instalação do Linux Mint 17 (canela). Eu gostaria de poder usar o dongle para conectar ao meu wifi, para que eu possa liberar alguns cabos cat5 que eu tenho espalhados.

Infelizmente, ele não funciona por padrão e não consigo compilar a partir da fonte (há erros). Peço desculpas pelo longo post, mas esta é uma versão condensada do que tentei nas últimas semanas.

Para economizar tempo, colarei as informações relevantes do sistema abaixo. Primeiro, uname -a

Linux stutter 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Aqui está a saída do lsusb; para mostrar que o dispositivo é reconhecido. Dispositivo 5.

Bus 001 Device 005: ID 148f:7601 Ralink Technology, Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 413c:2005 Dell Computer Corp. RT7D50 Keyboard
Bus 002 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

A saída do iwconfig; para mostrar que não está sendo usado como um dispositivo wifi. Eu entendo que deveria haver um "ra0" nesta lista. eth0 e eth1 são ambas as portas com fio na minha placa-mãe - tem duas.

eth0      no wireless extensions.
eth1      no wireless extensions.
lo        no wireless extensions.

Em seguida, um lsmod, para mostrar que os módulos corretos do kernel estão carregados. É aparado por brevidade.

rt2800usb              27034  0 
rt2x00usb              20742  1 rt2800usb
rt2800lib              89076  1 rt2800usb
rt2x00lib              55307  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              626489  3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211              484040  2 mac80211,rt2x00lib
crc_ccitt              12707  1 rt2800lib
bnep                   19624  2 
rfcomm                 69160  0 
bluetooth             395423  10 bnep,rfcomm
....

Então, deve funcionar fora da caixa, mas isso não acontece. Meu próximo pensamento foi compilar da fonte. Eu vou para a página de download 2870 ( link ), que eu acredito ser a versão exata para a qual este chipset foi construído - embora eu não tenha o manual para este dispositivo, então não tenho certeza. De qualquer forma, eu faço o download do pacote, insiro-o, modifico as seguintes linhas em os / linux / config.mk:

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

Em seguida, garanto que recebi todos os pacotes certos

sudo apt-get install build-essential linux-headers-$(uname -r) linux-firmware

E volte ao nível superior, experimentando um "make". Não demora muito para eu acertar os primeiros erros:

/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1141:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
   pOSFSInfo->fsuid = current_fsuid();
                    ^
/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1142:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
   pOSFSInfo->fsgid = current_fsgid();
                    ^
make[2]: *** [/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.o] Error 1
make[1]: *** [_module_/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.13.0-24-generic'
make: *** [LINUX] Error 2

Esses erros estão presentes em todas as versões da origem em seus sites, e nenhum deles foi criado para mim. Eu admito que eu provavelmente poderia tentar consertá-los eu mesmo, mas eu prefiro apenas comprar um novo dispositivo que tenha drivers que realmente funcionem, ao invés de tentar gravar este aqui.

Então, agora estou preso - Meus drivers de ações parecem não acreditar que meu dispositivo é para eles, compilar a partir da fonte parece exigir uma tonelada de patches, e ninguém mais parece encontrar esses problemas (cada pesquisa parece elaborar um oceano de pessoas que puderam compilar a partir da fonte).

Eu aprecio qualquer ajuda, eu sei que isso é meio que uma pergunta de nicho com muita informação.

    
por Knetic 28.06.2014 / 20:52

2 respostas

2

O código do fornecedor + produto 148f: 7601 exibido pelo lsusb é uma informação suficiente. Ao procurar WikiDevi , podemos ver que seu dongle é um TP-Link TL-WN727N v4, ou um Shenzhen Ogemray Tecnologia GWF-7A05. Em qualquer caso, o rt2800usb não é o driver apropriado: o comando

 # modinfo rt2800usb | grep 148F | grep 7601

que procura o código do fornecedor e do produto do seu dongle entre aqueles para os quais o rt2800usb está carregado, não produz saída. Por isso você precisa de um driver diferente. Isso explica porque, mesmo após uma compilação e instalação bem-sucedida do rt2800usb, sua interface ainda não foi criada.

A mesma página do Wikidevi sugere mt7601u_sta como o módulo Linux mais provável. Você pode obtê-lo de aqui . Este é certamente o driver que você está procurando: no arquivo DPO_MT7601U_LinuxSTA_3.0.0.4_20130913 / common / rtusb_dev_id.c , você pode encontrar a linha

          {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */

que é o que aparecerá na saída de modinfo mt7601u_sta .

Isso, no entanto, é o fim da boa notícia: ele não compila nem no meu Arch nem no Debian Jessie. Além disso, pesquisando ao redor parece que ninguém conseguiu fazê-lo compilar com sucesso em um kernel recente. Eu vi relatórios para 3.12 a 3.15.

Só por segurança, também verifiquei se os backports mais recentes, aqui , suporte este cartão. Eles não, e você pode verificar por si mesmo, compilando e instalando o defconfig wifi, em seguida, tentando modinfo no rt2800usb recém cunhada. Sem sorte.

    
por 29.06.2014 / 12:37
1

De esta questão através de " tipos incompatíveis ao atribuir ao tipo 'int' do tipo 'kgid_t' ", tente instalar o firmware-ralink antes de construir (em caso de dúvida, procure sempre a mensagem de erro do compilador):

sudo apt-get install firmware-ralink

Se isso não der certo, vá com sua última idéia de comprar um dispositivo conhecido por trabalhar com o Mint por padrão (o que você pode querer fazer de qualquer maneira, então você não precisa passar por isso toda vez que você obtém uma atualização do kernel, ou se você configurar um novo sistema).

    
por 28.06.2014 / 21:11