No puedo compilar la fuente del controlador Realtek 8723

No puedo compilar la fuente del controlador Realtek 8723

Tengo un Lenovo IdeaPad Yoga 13. La WLAN no funciona de inmediato con Fedora 18. Así que busqué en Google y encontré estos 2 enlaces:

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/

Entonces descargué la instalación fuente gcc, kernel-header, kernel-devel y patch. Comento la línea 320 en base.c. Pero todavía recibo un error.

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

La línea 245 en pci.h es esta:

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

Y sí, lo intento como usuario normal y como root.

Mi pregunta es cómo puedo compilar esto o qué se debe arreglar.

Respuesta1

Entonces, la solución es realmente simple: tome la fuente más reciente de: https://github.com/lwfinger

hacer y hacer instalar

Entonces esto funciona bien para realtek-8723.

Y hay una pequeña publicación de blog que escribí al respecto ->http://l33tsource.com/blog/2013/05/08/Yoga-with-WLAN.html

Respuesta2

Parece que las __devinitmacros eraneliminado del kernel en 3.8. Obtuve el rtl8192cecontrolador (del mismo árbol fuente) para compilar y cargar eliminándolo __devinitde pci.hy pci.c) y también eliminando todas las instancias de __devinitdatacada uno sw.c(una por directorio de controlador).

Una grep -R __deviniten la raíz de origen debería mostrarle todos los archivos que tiene que modificar.

Respuesta3

¿Intentaste esto?

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

Respuesta4

Fedora tiene kernels bastante nuevos, a menudo las fuentes de controladores que circulan son para versiones de kernel más antiguas. Verifique la versión requerida del kernel, busque en los foros de Fedora, busque informes de errores posiblemente relevantes, busque controladores aún no oficiales de los hackers del kernel (noel vendedor; Los proveedores a menudo viven bajo la ilusión de que es posible tener una fuente que funcione para una amplia gama de versiones del kernel, otros simplemente encajan una fuente para ese otro sistema innombrable en algo que tiene un parecido superficial con un controlador nativo de Linux, algunos herejes incorregibles. prueba ambos).

información relacionada