[erledigt] Realtek W-LAN arbeitet nicht.

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
m2j
Beiträge: 79
Registriert: 13.11.2009 22:09:55

[erledigt] Realtek W-LAN arbeitet nicht.

Beitrag von m2j » 05.04.2010 11:25:15

Hallo,

ich hab’ hier ein Netbook mit Realtek W-LAN. Leider bekome ich die Karte nicht zum laufen:

Code: Alles auswählen

$ lspci | grep Network
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8172 (rev 10)
Ich habe Squeeze auf 686 laufen. Getestet habe nich neben dem Kernel 2.6.32-3 auch den 2.6.32-4 aus Sid und den 2.6.33-2 aus Experimantal.

Soweit ich das herausgefunden habe, wird das Kernel-Modul r8192_pci benötigt. An firmware habe ich Einiges, das passen könnte, aus den Debianquellen installiert, weiß aber nicht, was der Chip braucht.

Beim Booten wird kein Kernelmodul für den Chip geladen. Auch nachdem ich r8192_pci mit modprobe nachgeladen habe, listet rfkill die Karte nicht. iwconfig listet die Karte auch nicht. (BTW: Kann ich davon ausgehen, dass die Karte nichts macht, wenn rfkill und iwconfig sie nicht erkennen?)

Ein Hardwareschalter ist AFAIK nicht vorhanden.

Vielleicht kann auch damit jemand etwas anfangen:
In /sys/devices/pci0000:00/0000:00:1c.2/0000:03:00.0/enable steht nach dem Booten „0“. Wenn ich eine positive Zahl nach enable schreibe, dann erhöht sich enable um eins. Beim schreiben einer Null verringert sich enable um eins bis auf „0“. Dies scheint aber keine Auswirkung auf das nicht-funktionieren der Karte zu haben.
Zuletzt geändert von m2j am 06.04.2010 01:57:48, insgesamt 1-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Realtek W-LAN arbeitet nicht.

Beitrag von rendegast » 05.04.2010 21:31:38

Code: Alles auswählen

$ lspci | grep Network
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8172 (rev 10)
fehlt das 10ec:8172, 'lspci -nn'

Code: Alles auswählen

$ /sbin/modinfo r8192_pci
filename:       /lib/modules/2.6.33.1/kernel/drivers/staging/rtl8192e/r8192_pci.ko
description:    Linux driver for Realtek RTL819x WiFi cards
version:        V 1.1
...
alias:          pci:v000007AAd00000047sv*sd*bc*sc*i*
alias:          pci:v000007AAd00000044sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008192sv*sd*bc*sc*i*

Eventuell hilft nach

Code: Alles auswählen

$ /sbin/modprobe -c | grep 8192
alias pci:v000007AAd00000044sv*sd*bc*sc*i* r8192_pci
alias pci:v000007AAd00000047sv*sd*bc*sc*i* r8192_pci
alias pci:v000010ECd00008192sv*sd*bc*sc*i* r8192_pci
dieses unterhalb von /etc/modprobe.d/ unterzubringen:

Code: Alles auswählen

alias pci:v000010ECd00008172sv*sd*bc*sc*i* r8192_pci
Auf welche Firmware (Pfad/Name) dann zugegriffen wird,
kann vielleicht aus einem 'strace' beim Laden des Moduls gelesen werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

m2j
Beiträge: 79
Registriert: 13.11.2009 22:09:55

Re: Realtek W-LAN arbeitet nicht.

Beitrag von m2j » 06.04.2010 01:57:25

Hallo, ich habe eine Firmware bei Realtek gefunden. Nachdem ich das Kernel-Modul aus staging in den regulären Zweig verschoben habe, wird das Modul auch automatisch ohne Eintrag in /etc/modules geladen.

Ich bin nur ein wenig verwundert, dass Debian den Treiber zwar im Kernel-Paket hat, aber die Firmware in keinem non-free Paket zu finden ist.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [erledigt] Realtek W-LAN arbeitet nicht.

Beitrag von rendegast » 06.04.2010 07:05:03

Teste mal
packages.debian.org/file:Dateinameteil
ZBsp.
packages.debian.org/file:qtsql.so.4
(Jedoch finde ich auch nichts, *.img (s.u.))

Der Realtek-Treiber, rtl8192se_linux_2.6.0015.0127.2010/firmware/RTL8192SE/ :

Code: Alles auswählen

rtl8192sfw.bin 	80 KB 	23.02.2010 	15:43:26
rtl8192sfw492.bin 	75 KB 	23.02.2010 	15:43:26
rtl8192sfw74.bin 	88 KB 	23.02.2010 	15:43:26
Auf die aber nur einmal Bezug genommen wird (gesucht nach "rtl8192sfw"),
HAL/rtl8192/rtl8192s/r8192S_firmware.c :

Code: Alles auswählen

#ifdef _RTL8192_EXT_PATCH_
				const char 		*pFwImageFileName[1] = {"RTL8191SE_MESH/rtl8192sfw.bin"};
#else
				const char 		*pFwImageFileName[1] = {"RTL8192SE/rtl8192sfw.bin"};
#endif



Im Quelltext des staging-Treibers des Kernel 2.6.32 / 2.6.33
drivers/staging/rtl8192e/r819xE_firmware.c
steht aber etwas von
RTL8192E/{boot,main,data}.img :

Code: Alles auswählen

        rt_firmware             *pfirmware = priv->pFirmware;
        const struct firmware   *fw_entry;
        const char *fw_name[3] = { "RTL8192E/boot.img",
                                   "RTL8192E/main.img",
                                   "RTL8192E/data.img"};
        int rc;
Analog:
$ strings r8192_pci.ko | egrep -i "fw|firm|img"
D$fw
init_firmware
CPUcheck_firmware_ready
<7>rtl819xE:ERROR in %s(): undefined firmware state(%d)
<7>rtl819xE:Load Firmware finished!
<7>rtl819xE:TxCheckStuck(): Fw indicates no Tx condition!
<7>rtl819xE:FW RF CTRL is not ready now
<7>rtl819xE: PlatformInitFirmware()==>
<7>rtl819xE:PlatformInitFirmware: undefined firmware state
<7>rtl819xE:request firmware fail!
<7>rtl819xE:img file size exceed the container buffer fail!
<7>rtl819xE:Download Firmware: Put code fail!
<7>rtl819xE:Download Firmware: Put code ok!
<7>rtl819xE:Download Firmware: Boot ready!
<7>rtl819xE:Download Firmware: Firmware ready!
<7>rtl819xE:CPUcheck_firmware_ready fail(%d)!
<7>rtl819xE:Firmware Download Success
<7>rtl819xE:Load Firmware!
RTL8192E/boot.img
RTL8192E/main.img
RTL8192E/data.img
request_firmware
release_firmware
An anderer Stelle aber nochmal "rtl8192sfw" (Firmware aus dem Realtek-Paket),
drivers/staging/rtl8192su/r8192S_firmware.c (Treiber für die usb-Version):

Code: Alles auswählen

#ifdef _RTL8192_EXT_PATCH_
				const char 		*pFwImageFileName[1] = {"RTL8191SE_MESH/rtl8192sfw.bin"};
#else
				const char 		*pFwImageFileName[1] = {"RTL8192SE/rtl8192sfw.bin"};
#endif
Dummerweise finde ich keinen Binär- oder Hexcode,
weder in drivers/staging noch in dem eigentlich dafür vorgesehenen Verzeichnis firmware/,
das Ding ist also nicht komplett.



Du solltest Dich also an das Realtek-Paket halten, und den staging-Treiber deaktivieren (blacklisten, Endung ändern, verschieben)?
(Im google habe ich nur 5 Treffer für "rtl8192_pci"!)
-----------------------------------
EDIT: Ups, es sollte "r8192_pci" heißen, das gibt mehr Treffer ;)
Und wenn ich das verfeinere "r8192_pci boot main data", ist dieser thread der erste, der das erwähnt :))
Zuletzt geändert von rendegast am 06.04.2010 16:18:20, insgesamt 3-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Realtek W-LAN arbeitet nicht.

Beitrag von Danielx » 06.04.2010 11:56:14

rendegast hat geschrieben:Auf welche Firmware (Pfad/Name) dann zugegriffen wird,
kann vielleicht aus einem 'strace' beim Laden des Moduls gelesen werden.
Ein

Code: Alles auswählen

dmesg | grep "firmware: requesting"
könnte auch helfen und in etwa so etwas ausgeben:
firmware: requesting RTL8192SU/rtl8192sfw.bin
m2j hat geschrieben:Ich bin nur ein wenig verwundert, dass Debian den Treiber zwar im Kernel-Paket hat, aber die Firmware in keinem non-free Paket zu finden ist.
Habe mal in das Debian-SVN gesehen, zumindest wird daran gearbeitet:
http://svn.debian.org/viewsvn/kernel?vi ... sion=15379

Code: Alles auswählen

firmware-nonfree (0.24) UNRELEASED; urgency=low

  * Update to linux-support-2.6.32-3.
  * Add firmware-realtek package, initially containing Realtek RTL8192
    firmware for use with rtl8192su driver

 -- Ben Hutchings <ben@decadent.org.uk>  Mon, 15 Mar 2010 13:50:12 +0000
Allerdings hat er das am nächsten Tag wieder rückgängig gemacht:
http://svn.debian.org/viewsvn/kernel?vi ... sion=15397

Code: Alles auswählen

Revert r15379; this firmware is used by yet another Realtek driver
Gruß,
Daniel

Antworten