A execução do makefile resulta em “/ sbin / modprobe: opção inválida - 'l'”

3

Estou tentando configurar o Slackware 14.0 em um Netbook Asus EEE PC Flare Series. Atualmente estou tentando configurar o wifi. Quando eu digito o seguinte:

# iwconfig

Eu recebo:

lo        no wireless extensions.

O que eu descobri significa que não tenho o driver da minha placa sem fio instalada ( com base nisso - consulte Subcabeçalho sem fios . Eu verifiquei lspci e aqui está a informação na minha placa de rede:

02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev-01)

Eu consegui encontrar um guia aqui detalhando como instalar o driver correto. Eu baixei o tarball do tutorial, o transferi para o computador rodando o Slackware via usb, o extraí e executei os comandos do tutorial. Quando cheguei à parte em que corri make , no entanto, recebi a seguinte saída:

# make
/sbin/modprobe: invalid option -- 'l'
/sbin/modprobe: invalid option -- 'l'
./scripts/gen-compat-autoconf.sh config.mk > include/linux/compat_autoconf.h

Em que ponto fica preso. Eu finalmente cancelei com Ctrl + C e tentei executar make clean . Isso também gerou o erro /sbin/modprobe: invalid option -- 'l' várias vezes, mas terminou.

Neste ponto, eu pesquisei um pouco e, eventualmente, encontrei este de 2 anos atrás, que afirma que o -l flag não foi implementado no kernel naquele ponto, mas estava em uma lista TODO. Eu verifiquei o homem modprobe e o -l bandeira não foi mencionado em qualquer lugar, nem havia uma seção TOOD. Também verifiquei o arquivo make e, com certeza, ele tenta chamar /sbin/modprobe com o -l flag, fazendo com que o processo make falhe.

Alguém encontrou esse problema com modprobe antes? Existe algum comando alternativo que eu possa substituir? (Eu posso editar o makefile). Qualquer ajuda seria muito apreciada.

    
por PandaConda 21.08.2014 / 00:28

1 resposta

5

A versão de modprobe no Ubuntu 12.04 (de module-init-tools version 3.16 ) tem uma opção -l , com descrição

   -l --list List  all  modules  matching the given wildcard (or "*" if no
             wildcard is given).  This option is  provided  for  backwards
             compatibility  and  may  go  away  in future: see find(1) and
             basename(1) for a more flexible alternative.

Por exemplo,

$ modprobe -l 'ath*'
kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
kernel/drivers/net/wireless/ath/ath6kl/ath6kl.ko
kernel/drivers/net/wireless/ath/ath.ko
kernel/drivers/bluetooth/ath3k.ko

Com base nisso, pode ser possível substituir o comando por um comando como find /path/to/kernel/drivers -name 'xxx' , por exemplo,

$ find /lib/modules/'uname -r' -name 'ath*.ko' -type f -printf '%P\n'
kernel/drivers/net/wireless/ath/ath6kl/ath6kl.ko
kernel/drivers/net/wireless/ath/ath.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
kernel/drivers/bluetooth/ath3k.ko
    
por 21.08.2014 / 01:16