Não é possível compilar o driver RealTek RTL8188CE no Ubuntu 13.10

7

Estou tentando compilar os drivers Realtek em minha máquina e estou recebendo os seguintes erros:

make -C /lib/modules/3.11.0-12-generic/build M=/home/david/Downloads/rtl8188ce-linux-driver modules
make[1]: Entering directory '/usr/src/linux-headers-3.11.0-12-generic'
  CC [M]  /home/david/Downloads/rtl8188ce-linux-driver/base.o
/home/david/Downloads/rtl8188ce-linux-driver/base.c: In function ‘rtl_action_proc’:
/home/david/Downloads/rtl8188ce-linux-driver/base.c:885:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.freq = hw->conf.channel->center_freq;
                                ^
/home/david/Downloads/rtl8188ce-linux-driver/base.c:886:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.band = hw->conf.channel->band;
                                ^
/home/david/Downloads/rtl8188ce-linux-driver/base.c: In function ‘rtl_send_smps_action’:
/home/david/Downloads/rtl8188ce-linux-driver/base.c:1451:24: error: ‘struct ieee80211_conf’ has no member named ‘channel’
   info->band = hw->conf.channel->band;
                        ^
make[2]: *** [/home/david/Downloads/rtl8188ce-linux-driver/base.o] Error 1
make[1]: *** [_module_/home/david/Downloads/rtl8188ce-linux-driver] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.11.0-12-generic'
make: *** [all] Error 2

Como posso corrigir isso?

    
por Freedom_Ben 29.10.2013 / 00:29

2 respostas

10

Aparentemente, os cabeçalhos do Linux mudaram o suficiente desde 13.04 para quebrar esse driver. Depois de muitos dias de trabalho, finalmente consertei os problemas de compilação e consegui que o driver funcionasse. Você pode encontrar o driver fixo, juntamente com o detalhamento de todas as minhas alterações da versão original lançada pela Realtek, no meu repositório Github aqui: link

Para quem estiver interessado, as maiores mudanças foram a remoção de create_proc_entry() e outras funções relacionadas que colocam informações de depuração no diretório /proc . Eu ainda não converti o código para usar as funções de substituição, então a partir de agora as informações de depuração não serão reportadas. Isso não afeta de maneira alguma o desempenho do driver.

A outra grande mudança foi a reestruturação de struct ieee80211_hw , struct ieee80211_conf , e a adição de struct cfg80211_chan_def que substituiu o que costumava ser o channel membro de ieee80211_conf .

Há também uma nova função auxiliar cfg80211_get_chandef_type() para recuperar o tipo de canal em vez do antigo método.

    
por Freedom_Ben 29.10.2013 / 00:29
0

rtl8188ce não é mais suportado no kernel 3.9 & amp; para cima.

Eu tinha o mesmo cartão Wi-Fi da minha área de trabalho.

As melhores cartas para suporte de código aberto que eu estou usando agora são Atheros.

  • Opção # 1 use "Ubuntu 12.04 LTS", pois ele suporta rtl8188ce via driver rtl8192ce.

  • Opção # 2 faça sua pesquisa em placas wifi que suportam kernels de código aberto.

  • Opção # 3 depois de fazer a pesquisa, use o cartão que funcionará com o kernel mais recente 3.12 & amp; para cima.

Após minha experiência com o Realtek, não os utilizarei novamente, já que o rtl8188ce é um cartão ruim para o Windows & amp; Linux.

    
por Brian Mulford 16.12.2013 / 02:57