Não consigo compilar minha fonte de driver Realtek 8723

Não consigo compilar minha fonte de driver Realtek 8723

Eu tenho um Lenovo IdeaPad Yoga 13. WLAN não funciona imediatamente com o fedora 18. Então pesquisei no Google e encontrei estes 2 links:

https://askubuntu.com/questions/139632/wireless-card-realtek-rtl8723ae-bt-is-not-recognized https://ask.fedoraproject.org/question/9633/i-can-not-get-my-realtek-8723-chip-to-work/

Então baixei o source install gcc, kernel-header, kernel-devel e patch. Comento a linha 320 em base.c out. Mas ainda recebo um erro.

make -C /lib/modules/3.8.9-200.fc18.x86_64/build M=/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 modules
make[1]: Entering directory `/usr/src/kernels/3.8.9-200.fc18.x86_64'
  CC [M]  /home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o
In file included from /home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:39:0:
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/pci.h:245:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rtl_pci_probe’
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_action_proc’:
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:870:25: error: ‘RX_FLAG_MACTIME_MPDU’ undeclared (first use in this function)
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:870:25: note: each undeclared identifier is reported only once for each function it appears in
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_send_smps_action’:
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1432:16: error: ‘struct <anonymous>’ has no member named ‘sta’
make[2]: *** [/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o] Error 1
make[1]: *** [_module_/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.8.9-200.fc18.x86_64'
make: *** [all] Error 2

A linha 245 em pci.h é esta:

int __devinit rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);

E sim, eu tento como usuário normal e como root.

Minha pergunta é como posso compilar isso ou o que deve ser corrigido.

Responder1

Portanto, as soluções são realmente simples, obtenha a fonte mais recente de: https://github.com/lwfinger

fazer e fazer instalar

Portanto, isso funciona bem para o realtek-8723.

E há uma pequena postagem no blog que escrevi sobre isso ->http://l33tsource.com/blog/2013/05/08/Yoga-with-WLAN.html

Responder2

Parece que as __devinitmacros foramremovido do kernel em 3.8. Consegui que o rtl8192cedriver (da mesma árvore de origem) compilasse e carregasse removendo __devinitfrom pci.he pci.c) e também removendo todas as instâncias de __devinitdatacada sw.c(uma por diretório de driver).

A grep -R __devinitna raiz de origem deve mostrar todos os arquivos que você precisa modificar.

Responder3

Você tentou isso?

int __devinit = rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);

Responder4

O Fedora tem kernels bastante novos, muitas vezes as fontes de driver disponíveis são para versões mais antigas do kernel. Verifique a versão do kernel necessária, vasculhe os fóruns do Fedora, verifique relatórios de bugs possivelmente relevantes, procure por drivers ainda não oficiais feitos pelos hackers do kernel (nãoO vendedor; os fornecedores muitas vezes vivem sob a ilusão de que é possível ter uma fonte funcionando para uma ampla gama de versões de kernel, outros apenas encaixam um blob de fonte para Aquele Outro Sistema Inominável em algo que tem uma semelhança superficial com um driver Linux nativo, alguns hereges incorrigíveis experimente ambos).

informação relacionada