Ich kann meine Realtek 8723-Treiberquelle nicht kompilieren

Ich kann meine Realtek 8723-Treiberquelle nicht kompilieren

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, __devinitdass die Makrosaus dem Kernel in 3.8 entfernt. Ich habe den rtl8192ceTreiber (aus demselben Quellbaum) zum Kompilieren und Laden gebracht, indem ich __devinitihn aus pci.hund entfernt pci.cund außerdem alle Instanzen von __devinitdatajeweils entfernt habe sw.c(eine pro Treiberverzeichnis).

A grep -R __devinitim 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).

verwandte Informationen