ubuntuusers.de

Realtek RTL8188ce Treiber installieren.

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

Rasant

(Themenstarter)

Anmeldungsdatum:
19. September 2008

Beiträge: 234

Ja das mit dem Ethernet-Treiber war definitiv über die Backports.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Das aktuelle Treiberpaket von Realtek liegt ja bereits vor. Paket ansonsten hier im Anhang.

Gepatchtes Paket für Ubuntu 13.04 ebenfalls hier im Anhang.

Link zum angepassten Quellcode für Ubuntu 13.10 und Kernel 3.11 etwas weiter unten.

Zunächst benötigte Werkzeuge und Archiv herunterladen und entpacken:

sudo apt-get install --reinstall build-essential linux-headers-$(uname -r)
wget https://media-cdn.ubuntu-de.org/forum/attachments/39/19/5443987-rtl_92ce_92se_92de_8723ae_88ee_0012.0207.2013.tar.gz
tar xvf 5443987-rtl_92ce_92se_92de_8723ae_88ee_0012.0207.2013.tar.gz
cd rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013 

Module bauen, installieren und die Firmware kopieren:

cd rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/
make
sudo make install
sudo depmod -a
sudo update-initramfs -u
sudo cp -r firmware/* /lib/firmware  

Zunächst schauen ob der neue Treiber verwendet wird:

modinfo rtl8192ce 

Sollte sein:

filename:       /lib/modules/3.2.0-39-generic/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko
firmware:       rtlwifi/rtl8192cfw.bin
description:    Realtek 8192C/8188C 802.11n PCI wireless
license:        GPL
author:         Larry Finger	<Larry.Finger@lwfinger.net>
author:         Realtek WlanFAE	<wlanfae@realtek.com>
author:         lizhaoming	<chaoming_li@realsil.com.cn>
srcversion:     8371CA3A9E899B11125FFDE
alias:          pci:v000010ECd00008176sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008177sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008178sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008191sv*sd*bc*sc*i*
depends:        rtlwifi,mac80211
vermagic:       3.2.0-39-generic SMP mod_unload modversions 
parm:           swlps:bool
parm:           swenc:using hardware crypto (default 0 [hardware]) (bool)
parm:           ips:using no link power save (default 1 is open) (bool)
parm:           fwlps:using linked fw control power save (default 1 is open) (bool)

Wie man sieht verwende ich hier allerdings den 3.2.0-39-generic Kernel (64bit)

Alles ok? Dann den Rechner für etwa eine Minute ausschalten und Stromquellen entfernen (Netz/Akku) um die alte Firmware sicher zu entladen.

Das Paket installiert folgende Module und unterstützt dazu die passenden Geräte-ID:

  • rtl8192ce

10EC:8176
10EC:8177
10EC:8178
10EC:8191
  • rtl8192se

10EC:8174
10EC:8173
10EC:8172
10EC:8171
10EC:8192
  • rtl8192de

10EC:002B
10EC:8193
  • rtl8723e

10EC:8723
  • rtl8188ee

10EC:8179

*


Änderungen im Quellcode des Pakets für Ubuntu 13.04:

Nur in rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013: base.c.save.
diff -ru rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/pci.c rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/pci.c
--- rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/pci.c	2013-02-07 08:20:58.000000000 +0100
+++ rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/pci.c	2013-08-20 12:13:07.000000000 +0200
@@ -1894,7 +1894,7 @@
  * hw pointer in rtl_pci_get_hw_pointer */
 struct ieee80211_hw *hw_export = NULL;
 
-int __devinit rtl_pci_probe(struct pci_dev *pdev,
+int/* __devinit*/ rtl_pci_probe(struct pci_dev *pdev,
 			    const struct pci_device_id *id)
 {
 	struct ieee80211_hw *hw = NULL;
diff -ru rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/pci.h rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/pci.h
--- rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/pci.h	2013-02-07 08:20:58.000000000 +0100
+++ rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/pci.h	2013-08-20 12:13:36.000000000 +0200
@@ -244,7 +244,7 @@
 
 extern struct rtl_intf_ops rtl_pci_ops;
 
-int __devinit rtl_pci_probe(struct pci_dev *pdev,
+int /*__devinit*/ rtl_pci_probe(struct pci_dev *pdev,
 			    const struct pci_device_id *id);
 void rtl_pci_disconnect(struct pci_dev *pdev);
 int rtl_pci_suspend(struct device *dev);
diff -ru rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8188ee/sw.c rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8188ee/sw.c
--- rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8188ee/sw.c	2013-02-07 08:20:58.000000000 +0100
+++ rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8188ee/sw.c	2013-08-20 12:14:44.000000000 +0200
@@ -377,7 +377,7 @@
 	.maps[RTL_RC_HT_RATEMCS15] = DESC92C_RATEMCS15,
 };
 
-static struct pci_device_id rtl88ee_pci_ids[] __devinitdata = {
+static struct pci_device_id rtl88ee_pci_ids[] /*__devinitdata*/ = {
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8179, rtl88ee_hal_cfg)},
 	{},
 };
diff -ru rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8192ce/sw.c rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8192ce/sw.c
--- rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8192ce/sw.c	2013-02-07 08:20:58.000000000 +0100
+++ rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8192ce/sw.c	2013-08-20 12:15:24.000000000 +0200
@@ -336,7 +336,7 @@
 	.maps[RTL_RC_HT_RATEMCS15] = DESC92C_RATEMCS15,
 };
 
-static struct pci_device_id rtl92ce_pci_ids[] __devinitdata = {
+static struct pci_device_id rtl92ce_pci_ids[] /*__devinitdata*/ = {
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8191, rtl92ce_hal_cfg)},
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8178, rtl92ce_hal_cfg)},
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8177, rtl92ce_hal_cfg)},
diff -ru rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8192de/sw.c rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8192de/sw.c
--- rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8192de/sw.c	2013-02-07 08:20:58.000000000 +0100
+++ rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8192de/sw.c	2013-08-20 12:15:53.000000000 +0200
@@ -364,7 +364,7 @@
 	.maps[RTL_RC_HT_RATEMCS15] = DESC92D_RATEMCS15,
 };
 
-struct pci_device_id rtl92de_pci_ids[] __devinitdata = {
+struct pci_device_id rtl92de_pci_ids[] /*__devinitdata*/ = {
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8193, rtl92de_hal_cfg)},
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x002B, rtl92de_hal_cfg)},
 	{},
diff -ru rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8192se/sw.c rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8192se/sw.c
--- rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8192se/sw.c	2013-02-07 08:20:58.000000000 +0100
+++ rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8192se/sw.c	2013-08-20 12:16:26.000000000 +0200
@@ -363,7 +363,7 @@
 	.maps[RTL_RC_HT_RATEMCS15] = DESC92S_RATEMCS15,
 };
 
-struct pci_device_id rtl92se_pci_ids[] __devinitdata = {
+struct pci_device_id rtl92se_pci_ids[] /*__devinitdata*/ = {
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8192, rtl92se_hal_cfg)},
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8171, rtl92se_hal_cfg)},
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8172, rtl92se_hal_cfg)},
diff -ru rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8723e/sw.c rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8723e/sw.c
--- rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/rtl8723e/sw.c	2013-02-07 08:20:58.000000000 +0100
+++ rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207_patched.2013/rtl8723e/sw.c	2013-08-20 12:16:54.000000000 +0200
@@ -356,7 +356,7 @@
 	.maps[RTL_RC_HT_RATEMCS15] = DESC92C_RATEMCS15,
 };
 
-static struct pci_device_id rtl8723e_pci_ids[] __devinitdata = {
+static struct pci_device_id rtl8723e_pci_ids[] /*__devinitdata*/ = {
 	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8723, rtl8723e_hal_cfg)},
 	{},
 };

Dank dafür an haxwell (Info) und jschuster (Umsetzung und Test)

rtl_92ce_92se_92de_8723ae_88ee_0012.0207.2013.tar.gz (697.9 KiB)
Download rtl_92ce_92se_92de_8723ae_88ee_0012.0207.2013.tar.gz
rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched.tar.gz (701.3 KiB)
Download rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched.tar.gz

Rasant

(Themenstarter)

Anmeldungsdatum:
19. September 2008

Beiträge: 234

@ elektronenblitz63, ich werde erst morgen dazu kommen. Vielen Dank, und bis dann!

Rasant

(Themenstarter)

Anmeldungsdatum:
19. September 2008

Beiträge: 234

@ elektronenblitz63,

Mein wlan funktioniert!

Nach deiner Anleitung hat es jetzt funktioniert.

Sachen gibt es...

Ob es wirklich daran gelegen hat, den Akku raus zu nehmen und die Spannungsversorgung zu trennen? Ich werde es wohl nie erfahren, denn rückgängig werde ich es nicht machen, um raus zu finden, wo dran es denn jetzt gelegen hat. ☺ Aber interessant wäre es ja...

Ein riesiges DANKESCHÖN, an Dich! Und natürlich auch an dieses großartige Forum!

Gruß Rasant

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Prima ☺

Die Installation ist jetzt allerdings nur für den momentan verwendeten Kernel gültig! Installation nach einem Kernelupgrade also entsprechend wiederholen oder bei dem älteren kernel bleiben.

cd rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/
make clean
make
sudo make install
sudo depmod -a
sudo update-initramfs -u 

Rasant

(Themenstarter)

Anmeldungsdatum:
19. September 2008

Beiträge: 234

Ich habe alle Aktualisierungen deaktiviert. So lange wie keine Probleme auftreten, sehe ich auch keine Notwendigkeit, an dem laufenden System, irgend etwas zu verändern.

Mit dem neuen Kernel hatte ich sowieso massive Probleme. Es ist des öfteren der ganze Computer eingefroren, so das ich nur noch den Ausschalter lange drücken konnte, um dann einen Neustart zu machen. Dieses Problem habe ich mit dem "alten Kernel" nicht mehr.

Ich denke, dass ich in einem Jahr noch mal diesen Thread raus krame und dann einen riesigen Haufen Aktualisierungen machen werde. Und dann natürlich den Treiber mit dieser Anleitung noch mal installiere.

Gruß Rasant

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Aktualisierungen sollten auf alle Fälle durchgeführt werden. Wie Du andere Kernel vom Upgrade Prozess ausklammern kannst, hat tomtomtom ja schon gezeigt.

haxwell

Anmeldungsdatum:
2. August 2013

Beiträge: Zähle...

First, of all thank you for this solution! Perfect!

Almost perfect! I got errors when I ran make. I suspect it is because I am on kernel 3.8.0-19.. I had to comment out the strings (underscore-underscore)devinit and (underscore-underscore)devinitdata in the [dot]c and [dot]h files that were in the .tar.gz file.

The rest of the instructions were perfect.

Thank you!

man0riaX

Anmeldungsdatum:
15. April 2008

Beiträge: 182

Hallo,

wenn ich unter Ubuntu 13.10 versuche, das Paket zu installieren, kommt folgende Fehlermeldung:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
phil@phil-laptop:~/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched$ make
make -C /lib/modules/3.11.0-15-generic/build M=/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-3.11.0-15-generic'
  CC [M]  /home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched/base.o
/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched/base.c: In function ‘rtl_action_proc’:
/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched/base.c:885:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.freq = hw->conf.channel->center_freq;
                                ^
/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched/base.c:886:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.band = hw->conf.channel->band;
                                ^
/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched/base.c: In function ‘rtl_send_smps_action’:
/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched/base.c:1451:24: error: ‘struct ieee80211_conf’ has no member named ‘channel’
   info->band = hw->conf.channel->band;
                        ^
make[2]: *** [/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched/base.o] Fehler 1
make[1]: *** [_module_/home/phil/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched] Fehler 2
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-3.11.0-15-generic'
make: *** [all] Fehler 2

Mache ich was falsch oder gibt es dazu einen Fix?

1
2
phil@phil-laptop:~/Downloads/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013_patched$ uname -a
Linux phil-laptop 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9 18:17:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Danke und viele Grüße,

Phil

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
das Treiberpaket ist dann inzwischen zu alt für den verwendeten Kernel. Realtek bietet auch nichts aktuelleres an. So direkt läuft die Karte nicht unter 13.10 mit Kernel 3.11?

Alternativ kannst Ubuntu 12.04-3-LTS mit Kernel 3.8 (oder Kernel 3.2/3.5) verwenden.

man0riaX

Anmeldungsdatum:
15. April 2008

Beiträge: 182

Hi,

Naja, die Karte wird erkannt, allerdings sehr instabil. Ich habe in der Zwischenzeit einen Fix gefunden, den kann ich aber erst hier posten, wenn mein Laptop wieder läuft. Gerade schreibe ich vom Smartphone.

Bolle

Avatar von Bolle

Anmeldungsdatum:
23. Februar 2006

Beiträge: 1415

@man0riaX:

Würd mich mal interessieren welchen Fix du meinst:

Hab das gleiche Problem mit einen Edimax Stick.

Der Patch von Realtek ist zu alt für Kernel 3.11. Mit Ndiswrapper bekomm ich es nicht hin. Und alles andere ist mir in dem Fall (ist nicht mein Recher) zu aufwändig.

EDIT: Dieser Stick hier hat den Chipsatz und es gibt Linux Treiber. http://www.edimax.com/en/support_detail.php?pd_id=347&pl1_id=1&pl2_id=#01

Aber wie installieren?

man0riaX

Anmeldungsdatum:
15. April 2008

Beiträge: 182

Guten morgen,

also bei mir hat der folgende modifizierte Treiber geholfen[1].

Viele Grüße,

Phil

[1] https://github.com/FreedomBen/rtl8188ce-linux-driver

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
@Bolle
Du bist hier sowieso falsch mit deinem USB-Stick, hier geht es um eine PCIe WLAN-Karte. → WLAN/Karten/Edimax

Eröffne eine neue Anfrage und zeige die erforderlichen Informationen zur Hardware gemäß „Vor dem Erstellen eines neuen Beitrags bitte lesen“ wenn der Wiki-Link oben nicht ausreichend ist.

elsterkrug

Anmeldungsdatum:
14. Juli 2013

Beiträge: 34

man0riaX schrieb:

Guten morgen,

also bei mir hat der folgende modifizierte Treiber geholfen[1].

Viele Grüße,

Phil

[1] https://github.com/FreedomBen/rtl8188ce-linux-driver

Hallo manOriaX, habe auch Probleme mit meiner Wlan-Karte rtl8192ce unter Ubuntu 12.04 allerdings mit Kernel 3.11, könnte ich den Treiber dann verwenden? Wie instlliere ich ihn aus der Webadresse, die du angegeben hast. elsterkrug