
Ich versuche, die Realtek-Treiber auf meinem Computer zu kompilieren und erhalte die folgenden Fehlermeldungen:
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?
Antwort1
Anscheinend haben sich die Linux-Header seit 13.04 so stark geändert, dass dieser Treiber nicht mehr funktioniert. Nach vielen Tagen Arbeit habe ich die Kompilierungsprobleme endlich behoben und den Treiber zum Laufen gebracht. Den korrigierten Treiber sowie alle Einzelheiten meiner Ä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 es interessiert: Die größten Änderungen waren die Entfernung von create_proc_entry()
und anderer damit verbundener Funktionen, die Debuginformationen in das /proc
Verzeichnis einfügten. Ich habe den Code noch nicht konvertiert, um die Ersatzfunktionen zu verwenden, daher werden die Debuginformationen ab sofort nicht gemeldet. Dies hat jedoch keinerlei Auswirkungen auf die Leistung des Treibers.
Die andere große Veränderung war die Umstrukturierungstruct ieee80211_hw
,struct ieee80211_conf
und die Hinzufügung vonstruct cfg80211_chan_def
welches das ehemalige channel
Mitglied von ersetzte ieee80211_conf
.
Es gibt auch eine neue Hilfsfunktioncfg80211_get_chandef_type()
zum Abrufen des Kanaltyps anstelle der alten direkten Methode.
Antwort2
rtl8188ce wird auf Kernel 3.9 und höher nicht mehr unterstützt.
Ich hatte die gleiche WLAN-Karte für meinen Desktop.
Die besten Karten für Open-Source-Unterstützung, die ich derzeit verwende, sind Atheros.
Option Nr. 1: Verwenden Sie „Ubuntu 12.04 LTS“, da es rtl8188ce über den rtl8192ce-Treiber unterstützt.
Option Nr. 2: Informieren Sie sich über WLAN-Karten, die Open-Source-Kernel unterstützen.
Option Nr. 3: Verwenden Sie nach der Recherche die Karte, die mit dem neuesten Kernel 3.12 und höher funktioniert.
Nach meinen Erfahrungen mit Realtek werde ich sie nicht wieder verwenden, da rtl8188ce eine schlechte Karte für Windows und Linux ist.