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 __devinit
macros foramremovido do kernel em 3.8. Consegui que o rtl8192ce
driver (da mesma árvore de origem) compilasse e carregasse removendo __devinit
from pci.h
e pci.c
) e também removendo todas as instâncias de __devinitdata
cada sw.c
(uma por diretório de driver).
A grep -R __devinit
na 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).