Como obtenho o driver ath9k do backports-3.12-8 instalado no Xubuntu 13.10?

4

Eu baixei os arquivos do kernel 3.12-8 linux-headers-all.deb, linux -headers-generic_i368.deb; linux-image-generic_i386.deb do kernel.org e instalou-os via:

 dpkg -i *.deb

Agora eu estou tentando eliminar algumas falhas de sinal wifi, que provavelmente são causadas pelo próprio driver. Aparentemente, houve algumas correções no driver ath9k, então gostaria de substituir o padrão por uma versão de backports.

Eu baixei backports -3.12.8-1.tar.gz do kernel.org e tentou colocar o módulo ath9k pronto:

cd ~/.source/backports-3.12.8-1/
sudo apt-get install build-essential
sudo apt-get build-dep linux-image-$(uname -r)
sudo ln -s /usr/src/linux-headers-$(uname -r) /usr/src/linux
make defconfig-ath9k

Isso me deixa com o seguinte "ERRO em falta de protótipos":

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

Mas quando eu continuar com:

sudo modprobe -r ath9k
sudo make
sudo checkinstall

tudo funciona !!!

Então, minhas perguntas são:

  • Este módulo depende de outros módulos do kernel?

      

    Sim, o seguinte comando diz:

         

    modinfo ath9k

  • Se sim, onde estão as informações sobre essas coisas?

      

    Dê uma olhada em wireless.kernel.org/en/users/Drivers/ath9k.

  • Existe uma maneira correta de instalar este módulo do kernel resp. motorista?

      

    Provavelmente obtendo um pro na compilação do kernel: -).

THX

    
por suqed 25.01.2014 / 08:54

2 respostas

0

Eu recomendaria a instalação de um novo kernel, embora ele deva estar funcionando desde a versão 2.6.30 ou uma versão como essa. Eu estou usando isso como um AP no kernel 3.13.0-24-generic , mesmo sabendo que é melhor instalar um novo kernel. Eu estava usando em http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.18.12-vivid/ ou um similar (até meu HDD cair). Eu posso lhe dar detalhes do usado no kernel mencionado.

  1. depende: ath9k_hw, mac80211, ath9k_common, cfg80211, ath
  2. Eu vi os recursos de informações e hardware em algum lugar, mas não me lembro onde estava
  3. É claro :) Procure por compat-wireless
por Pavol Polacko 25.04.2015 / 14:58
0

Para aqueles que podem tropeçar nessa questão, como eu acabei de fazer:

  

Isso me deixa com o seguinte "ERRO em falta de protótipos":

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

Estas linhas não são realmente erros. O comando make executa vários outros comandos, conforme especificado em um arquivo chamado Makefile . Por padrão, make gravará esses comandos no terminal antes de executá-los. Por exemplo, se Makefile disser para executar foo , em seguida, bar , em seguida, baz , o make gravará foo para o terminal e, em seguida, executará o comando foo ; em seguida, ele gravará bar no terminal e executará bar ; Em seguida, ele gravará baz no terminal e executará baz .

Nesse caso, essas cc lines são comandos que make recebeu para executar Makefile . O comando cc executará o compilador C do sistema , que provavelmente é GCC . As coisas que começam com - são opções , que afetam o comportamento do compilador C.

Para compiladores como o GCC, as opções que começam com -W dizem ao compilador para distribuir avisos quando ele vê código que é tecnicamente válido, mas é frequentemente uma má ideia (por exemplo, algum padrão no código que muitos programadores pensam irá agir de alguma forma, mas irá realmente agir em outro).

Nesse caso, -Wall ativa muitos (não todos!) avisos do GCC. -Wmissing-prototypes e -Wstrict-prototypes ativam avisos extras para identificar problemas relacionados ao recurso de protótipo de função do C .

Portanto, essas mensagens estão realmente nos dizendo que o comando cc está prestes a ser executado e que (entre outras coisas) ele deve nos avisar se achar que o código está desonesto; em particular, se protótipos de funções estão sendo mal utilizados.

Os avisos do GCC são parecidos com isto:

main.c: In function ‘main’:
main.c:1:5: warning: traditional C rejects ISO C style function definitions [-Wtraditional]
 int main(int argc, char **argv) {
     ^

Como nada disso aparece na sua saída, nenhum aviso ou erro ocorreu; mesmo com essas verificações extras em -W habilitadas.

    
por Warbo 11.05.2017 / 16:58