Não consigo obter a minha fonte de driver Realtek 8723 compilada

1

Eu tenho um Lenovo IdeaPad Yoga 13. A WLAN não funciona com o fedora 18. Então eu pesquisei e encontrei esses 2 links:

link link

Então eu baixei o código fonte do gcc, kernel-header, kernel-devel e patch. Eu comento a linha 320 em base.c out. Mas eu 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 no 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.

    
por Sir l33tname 29.04.2013 / 22:32

4 respostas

1

Portanto, as soluções são realmente simples, pegue a fonte mais recente em: link

make & make install

Então, isso funciona bem para o realtek-8723.

E há uma pequena postagem no blog que escrevi sobre isso - > link

    
por 01.05.2013 / 22:22
1

Parece que as macros __devinit foram removidas do kernel em 3.8 . Eu obtive o driver rtl8192ce (da mesma árvore de origem) para compilar e carregar removendo __devinit de pci.h e pci.c ) e também removendo todas as instâncias de __devinitdata de cada sw.c (uma por driver diretório).

Um grep -R __devinit na raiz de origem deve mostrar todos os arquivos que você precisa modificar.

    
por 28.08.2013 / 17:45
0

Você tentou isso?

int __devinit = rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);
    
por 29.04.2013 / 22:49
0

O Fedora tem kernels bastante novos, muitas vezes as fontes do driver flutuantes são para versões mais antigas do kernel. Verifique a versão necessária do kernel, vasculhe os fóruns do Fedora, verifique se há relatos de erros possivelmente relevantes, procure drivers não oficiais pelos hackers do kernel ( não o fornecedor; os fornecedores geralmente vivem sob a ilusão de que é possível ter uma fonte trabalhando para uma ampla gama de versões do kernel, outras apenas montando um blob de origem para o That Other Unnameable System em algo que tem uma semelhança superficial com um driver nativo do Linux, alguns hereges não-corrigíveis tentam ambos).

    
por 29.04.2013 / 23:26