RealTek RTL8188CE-Treiber kann unter Ubuntu 13.10 nicht kompiliert werden

7

Ich versuche, die Realtek-Treiber auf meinem Computer zu kompilieren, und erhalte die folgenden Fehler:

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

Wie kann ich das beheben?

Freedom_Ben
quelle

Antworten:

10

Anscheinend haben sich die Linux-Header seit 13.04 genug geändert, um diesen Treiber zu beschädigen. Nach vielen Arbeitstagen habe ich endlich die Kompilierungsprobleme behoben und den Treiber zum Laufen gebracht. Den festen Treiber sowie alle meine Änderungen gegenüber der von Realtek veröffentlichten Originalversion finden Sie in meinem Github-Repo hier: https://github.com/FreedomBen/rtl8188ce-linux-driver

Für diejenigen, die interessiert sind, waren die größten Änderungen das Entfernen create_proc_entry()und andere verwandte Funktionen, die Debugging-Informationen in das /procVerzeichnis stellen. Ich habe den Code noch nicht konvertiert, um die Ersatzfunktionen zu verwenden, daher werden die Debug-Informationen ab sofort nicht gemeldet. Dies hat jedoch keinerlei Auswirkungen auf die Leistung des Treibers.

Die andere große Veränderung war die Umstrukturierung der struct ieee80211_hw, struct ieee80211_confund die Zugabe von struct cfg80211_chan_defersetze , was das sein verwendete channelMitglied ieee80211_conf.

Es gibt auch eine neue Hilfsfunktion cfg80211_get_chandef_type()zum Abrufen des Kanaltyps anstelle der alten direkten Methode.

Freedom_Ben
quelle
Ich erhalte den gleichen Fehler beim Herunterladen von Ihrem Git auf Basis 14.04 Kernel und seit dem Upgrade auf 3.16. Danke
Tahnoon Pasha
@TahnoonPasha Um klar zu sein, bist du auf Kernel 3.16?
Freedom_Ben
Hallo @FreedomBen. Das stimmt, ich bin am 3.16. Ich habe es seitdem zu kompilieren, aber es zeigt sich, dass die alten Treiber mit ./am_I_using_this_driver... verwendet werden
Tahnoon Pasha
@TahnoonPasha, danke für die Heads-Ups. Ich habe noch keine Unterstützung für Kernel 3.16.x hinzugefügt, aber es sieht so aus, als wäre es Zeit. Haben Sie sich selbst aktualisiert oder hat Ubuntu das Upgrade durch die normalen Repos verschoben?
Freedom_Ben
1
Hallo @Freedom_Ben, ich habe mich selbst aktualisiert. Nach dem Update auf Ihren Treiber wurden weiterhin dauerhafte Abbrüche im Netzwerk angezeigt. Ich habe mich in den BBs umgesehen und gelesen, dass das Aktualisieren des Kernels eine Möglichkeit war, den Treiber zu stabilisieren, also habe ich beide ausprobiert. Überraschung, Überraschung ... es hat nicht funktioniert. ;-) Erhalte immer noch alle 20 Minuten oder so Drop-Offs und muss die Verbindung erneut herstellen, aber zumindest ist es eine gute Verbindung, wenn es eingeschaltet ist, da ich deinen gepatchten Treiber kompiliert habe. Vielen Dank für Ihre Arbeit daran. :-)
Tahnoon Pasha
0

rtl8188ce wird ab Kernel 3.9 und höher nicht mehr unterstützt.

Ich hatte die gleiche WIFI-Karte für meinen Desktop.

Die besten Karten für Open Source-Unterstützung, die ich jetzt verwende, sind Atheros.

  • Option 1 verwendet "Ubuntu 12.04 LTS", da es rtl8188ce über den rtl8192ce-Treiber unterstützt.

  • Option 2 recherchieren Sie nach WLAN-Karten, die Open Source-Kernel unterstützen.

  • Option 3 Verwenden Sie nach der Recherche die Karte, die mit dem neuesten Kernel 3.12 und höher funktioniert.

Nach meiner Erfahrung mit Realtek werde ich sie nicht mehr verwenden, da rtl8188ce eine schlechte Karte für Windows und Linux ist.

Brian Mulford
quelle
1
Ich verstehe die Frustration, aber ich denke nicht, dass die Vorschläge kurzfristig praktisch sind, Entschuldigungen und daher die seltene Ablehnung.
Tahnoon Pasha