No se puede compilar el controlador RealTek RTL8188CE en Ubuntu 13.10

No se puede compilar el controlador RealTek RTL8188CE en Ubuntu 13.10

Estoy intentando compilar los controladores Realtek en mi máquina y obtengo los siguientes errores:

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

¿Cómo puedo arreglar esto?

Respuesta1

Aparentemente, los encabezados de Linux han cambiado lo suficiente desde la versión 13.04 como para romper este controlador. Después de muchos días de trabajo, finalmente solucioné los problemas de compilación y logré que el controlador funcionara. Puede encontrar el controlador corregido, junto con los detalles de todos mis cambios de la versión original lanzada por Realtek, en mi repositorio de Github aquí: https://github.com/FreedomBen/rtl8188ce-linux-driver

Para aquellos que estén interesados, los cambios más importantes fueron la eliminación de create_proc_entry()otras funciones relacionadas que colocan información de depuración en el /procdirectorio. Todavía no he convertido el código para usar las funciones de reemplazo, por lo que a partir de ahora no se informará la información de depuración. Sin embargo, esto no afecta en modo alguno al rendimiento del conductor.

El otro gran cambio fue la reestructuración destruct ieee80211_hw,struct ieee80211_conf, y la adición destruct cfg80211_chan_defque reemplazó al que solía ser channelmiembro de ieee80211_conf.

También hay una nueva función de ayuda.cfg80211_get_chandef_type()para recuperar el tipo de canal en lugar del antiguo método directo.

Respuesta2

rtl8188ce ya no es compatible con el kernel 3.9 y superiores.

Tenía la misma tarjeta WIFI para mi escritorio.

La mejor tarjeta para soporte de código abierto que estoy usando ahora es Atheros.

  • ° 1 use "Ubuntu 12.04 LTS", ya que admite rtl8188ce a través del controlador rtl8192ce.

  • ° 2: investigue sobre tarjetas wifi que admitan núcleos de código abierto.

  • Opción #3 después de investigar, use la tarjeta que funcionará con el último kernel 3.12 y superior.

Después de mi experiencia con Realtek, no los volveré a usar porque la rtl8188ce es una tarjeta deficiente para Windows y Linux.

información relacionada