
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 consertar isso?
Responder1
Aparentemente, os cabeçalhos do Linux mudaram o suficiente desde 13.04 para quebrar este driver. Depois de muitos dias de trabalho, finalmente resolvi os problemas de compilação e coloquei o driver em funcionamento. Você pode encontrar o driver corrigido, junto com o detalhamento de todas as minhas alterações da versão original lançada pela Realtek, em meu repositório Github aqui: https://github.com/FreedomBen/rtl8188ce-linux-driver
Para os interessados, 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 /proc
diretório. Ainda não converti o código para usar as funções de substituição, portanto, a partir de agora, as informações de depuração não serão relatadas. Porém, isso não afeta de forma alguma o desempenho do driver.
A outra grande mudança foi a reestruturaçãostruct ieee80211_hw
,struct ieee80211_conf
, e a adição destruct cfg80211_chan_def
que substituiu o que costumava ser channel
membro do ieee80211_conf
.
Há também uma nova função auxiliarcfg80211_get_chandef_type()
para recuperar o tipo de canal em vez do antigo método direto.
Responder2
rtl8188ce não é mais suportado no kernel 3.9 e superior.
Eu tinha a mesma placa WIFI para meu desktop.
As melhores placas para suporte de código aberto que estou usando agora são Atheros.
A opção nº 1 usa "Ubuntu 12.04 LTS", pois suporta rtl8188ce via driver rtl8192ce.
Opção nº 2: faça sua pesquisa sobre placas wifi que suportam kernels de código aberto.
Opção nº 3, depois de fazer pesquisas, use a placa que funcionará com o kernel 3.12 e superior mais recente.
Depois da minha experiência com Realtek, não irei usá-los novamente, pois rtl8188ce é uma placa ruim para Windows e Linux.