Ich habe ein Lenovo IdeaPad Yoga 13. WLAN funktioniert mit Fedora 18 nicht sofort. Also habe ich ein bisschen gegoogelt und diese beiden Links gefunden:
https://askubuntu.com/questions/139632/wireless-card-realtek-rtl8723ae-bt-is-not-recognized https://ask.fedoraproject.org/question/9633/ich-kann-meinen-realtek-8723-chip-nicht-zum-funktionieren-bringen/
Also habe ich die Quelle heruntergeladen, GCC, Kernel-Header, Kernel-Devel und Patch installiert. Ich habe die Zeile 320 in base.c auskommentiert. Aber ich bekomme immer noch einen Fehler.
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
Die Zeile 245 in pci.h lautet:
int __devinit rtl_pci_probe(Struktur pci_dev *pdev,const Struktur pci_device_id *id);
Und ja, ich versuche es als normaler Benutzer und als Root.
Meine Frage ist nun wie ich dies kompilieren kann bzw. was behoben werden muss.
Antwort1
Die Lösung ist also wirklich einfach: Nutzen Sie die neueste Quelle von: https://github.com/lwfinger
machen und machen installieren
Das funktioniert also gut für Realtek-8723.
Und ich habe einen kleinen Blog-Beitrag dazu geschrieben ->http://l33tsource.com/blog/2013/05/08/Yoga-mit-WLAN.html
Antwort2
Es scheint, __devinit
dass die Makrosaus dem Kernel in 3.8 entfernt. Ich habe den rtl8192ce
Treiber (aus demselben Quellbaum) zum Kompilieren und Laden gebracht, indem ich __devinit
ihn aus pci.h
und entfernt pci.c
und außerdem alle Instanzen von __devinitdata
jeweils entfernt habe sw.c
(eine pro Treiberverzeichnis).
A grep -R __devinit
im Quellstamm sollte Ihnen alle Dateien anzeigen, die Sie ändern müssen.
Antwort3
Haben Sie das versucht?
int __devinit = rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);
Antwort4
Fedora hat relativ neue Kernel, oft sind die im Umlauf befindlichen Treiberquellen für ältere Kernel-Versionen. Überprüfen Sie die erforderliche Kernel-Version, stöbern Sie in den Fedora-Foren, suchen Sie nach möglicherweise relevanten Fehlerberichten, suchen Sie nach noch nicht offiziellen Treibern der Kernel-Hacker (nichtder Anbieter; Anbieter leben oft in der Illusion, dass es möglich sei, eine Quelle für eine große Bandbreite an Kernel-Versionen zum Laufen zu bringen, andere quetschen einfach einen Quellcode-Blob für „Das andere unbenennbare System“ in etwas hinein, das oberflächlich einem nativen Linux-Treiber ähnelt, und einige unverbesserliche Ketzer versuchen beides).