web-dev-qa-db-fra.com

Impossible de compiler le pilote RealTek RTL8188CE sur Ubuntu 13.10

J'essaie de compiler les pilotes Realtek sur ma machine et j'obtiens les erreurs suivantes:

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

Comment puis-je réparer cela?

7
Freedom_Ben

Apparemment, les en-têtes Linux ont suffisamment changé depuis 13.04 pour casser ce pilote. Après de nombreux jours de travail, j'ai finalement résolu les problèmes de compilation et obtenu le pilote de travail. Vous pouvez trouver le pilote corrigé, ainsi que les détails de toutes mes modifications par rapport à la version originale publiée par Realtek, sur mon dépôt Github ici: https://github.com/FreedomBen/rtl8188ce-linux-driver

Pour ceux qui sont intéressés, les changements les plus importants ont été la suppression de create_proc_entry() et d'autres fonctions connexes qui placent les informations de débogage dans le répertoire _/proc_. Je n'ai pas encore converti le code pour utiliser les fonctions de remplacement, ainsi, les informations de débogage ne seront pas signalées. Cela n'affecte en aucun cas les performances du pilote.

L'autre grand changement a été la restructuration de struct ieee80211_hw , struct ieee80211_conf et l'ajout de struct cfg80211_chan_def qui a remplacé ce qui était jadis le membre channel de _ieee80211_conf_.

Il existe également une nouvelle fonction d'assistance cfg80211_get_chandef_type() pour récupérer le type de canal au lieu de l'ancienne méthode directe.

10
Freedom_Ben

rtl8188ce n'est plus pris en charge par les versions 3.9 et supérieures du noyau.

J'ai eu la même carte WIFI pour mon bureau.

La meilleure carte pour le support open source que j'utilise actuellement est Atheros.

  • L'option n ° 1 utilise "Ubuntu 12.04 LTS" car elle prend en charge rtl8188ce via le pilote rtl8192ce.

  • L'option n ° 2 fait votre recherche sur les cartes wifi qui supportent les noyaux open source.

  • Option n ° 3 après avoir effectué des recherches, utilisez la carte qui fonctionnera avec le dernier noyau 3.12 et supérieur.

Après mon expérience avec Realtek, je ne les utiliserai plus car rtl8188ce est une mauvaise carte pour Windows et Linux.

0
Brian Mulford