Moritz
Life is hard and so am I
Hallo liebe Linux'erInnen!
Ich beschäftige mich seit einiger Zeit mit meiner WLAN-Karte mit dem Chip von Realtek (RTL8180).
Erhältlich unter anderem auf der Level1 WPC-0101 oder der Linksys WPC100.
Diese Chip wird nicht native vom Kernel unterstützt.
Da ich eh den 2.4.22 nutze habe ich PCMCIA neukonfiguriert. Damit meine
normale CardBus NIC läuft benötige ich das Modul tulip_cb, dass man nur von
pcmcia-cs (http://pcmcia-cs.sf.net), wenn man im Kernel das PCMCIA-Subsystem
deaktiviert:
Soweit so gut. Die für WLAN nötigen Tools wireless_tools (
http://hpl.hp.com/personal/Jean_Tourrilhes/Linux/ ) und wlan-ng ( http://www.linux-wlan.com )
sind ebenfalls installiert.
Die Treiber des Chips finden sich auf der Realtek-Homepage
( http://www.realtek.com.tw/downloads/downloads1-3.aspx?Keyword=8180 )
zumindest für RedHat 7.2 und 9.0 ( ftp://210.51.181.211/cn/wlan/rtl8180l/rtl8180_linuxdrv_v14_rh90.zip ).
Die habe ich dann entpackt und der README nachbearbeitet:
Im Makefile muss in jedem Fall das KERNELRELEASE und der INCLUDEPATH
angepasst werden
Die anderen einstellbaren Sachen wie z.B.IO_FLAGS oder ENDIAN_FLAGS verstehe
ich nicht und habe ich nicht verändert. Danach kann Kompeliert werden:
Erstmal beschreibe ich, wie es weitergehen würde, wenn ich keinen Fehler
bekomme, da ja vielleicht andere Leute mehr "Glück" haben und die interessiert
mein Fehler ja nicht.
Diese beiden Konfigurationen müssen in die /etc/pcmcia/wlan-ng.conf
eingetragen werden.
Der erste Eintrag zeigt dem PCMCIA-Daemon, dass es das Modul rtl8180_24x
gibt und der zweite weißt der Karte mit der manfid 0x0000, 0x024c das Modul
rtl8180_24x zu. Entnehmen kann man diese Informationen cardctl:
Nach dem nächsten Neustart des PCMCIA-Daemons (oder des Rechners ;-)) sollt
die Karte laufen.
Sollte, tut sie bei mir aber nicht :-(((
In meinem Syslog werden folgende Infos gespeichert:
lilo habe ich bereits mit append="pci=biosirq" angepasst (wurde mir vom
kernel via syslog befohlen)
Ich kann die Fehlermeldung allerdings nur schwer verstehen: Irgendwie werden
IRQs über vier Pins vergeben (A,B,C,D). Und das entweder vom BIOS oder vom
OS. Im BIOS kann man deswegen solche Kleinigkeiten einstellen, aber egal was
ich wähle, immer bekomme ich die gleiche Fehlermeldung. (glaube ich... habe
nie ge'diff't)
Es wird also kein IRQ zugewiesen (die erste Karte ist meine normal NIC)
Hat jemand nen Rat?
Vielen Dank im Vorraus!
Moritz
PS: Entschuldigung für die extrem lange Mail, aber es gab bisher kaum gut
dokumentierte Anleitungen für den RTL8180-Chip und so dachte ich schreibe es
mal für andere auf, die vielleicht weniger Probleme haben als ich.
PPS: Benutze wie oben schon beschrieben den 2.4.22 mit DevFS und gcc 3.3.2
(nur zur Info)
Ich beschäftige mich seit einiger Zeit mit meiner WLAN-Karte mit dem Chip von Realtek (RTL8180).
Erhältlich unter anderem auf der Level1 WPC-0101 oder der Linksys WPC100.
Diese Chip wird nicht native vom Kernel unterstützt.
Da ich eh den 2.4.22 nutze habe ich PCMCIA neukonfiguriert. Damit meine
normale CardBus NIC läuft benötige ich das Modul tulip_cb, dass man nur von
pcmcia-cs (http://pcmcia-cs.sf.net), wenn man im Kernel das PCMCIA-Subsystem
deaktiviert:
Code:
#
# PCMCIA/CardBus support
#
# CONFIG_PCMCIA is not set
#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
CONFIG_NET_WIRELESS=y
http://hpl.hp.com/personal/Jean_Tourrilhes/Linux/ ) und wlan-ng ( http://www.linux-wlan.com )
sind ebenfalls installiert.
Die Treiber des Chips finden sich auf der Realtek-Homepage
( http://www.realtek.com.tw/downloads/downloads1-3.aspx?Keyword=8180 )
zumindest für RedHat 7.2 und 9.0 ( ftp://210.51.181.211/cn/wlan/rtl8180l/rtl8180_linuxdrv_v14_rh90.zip ).
Die habe ich dann entpackt und der README nachbearbeitet:
Code:
[root@Atlas root]# unzip rtl8180_linuxdrv_v14_rh90.zip
Archive: rtl8180_linuxdrv_v14_rh90.zip
inflating: release/Makefile
inflating: release/priv_part.o
inflating: release/r8180_export.h
inflating: release/r8180_if.c
inflating: release/r8180_if.h
inflating: release/r8180_pci_init.c
inflating: release/r8180_pci_init.h
inflating: release/r8180_type.h
inflating: release/readme
inflating: release/rls_note_1030
inflating: release/wlandown
inflating: release/wlanup
[root@Atlas root]# cd release/
[root@Atlas release]# vi Makefile
angepasst werden
Code:
#-----------------------------------------------
#Specify kernel version and include path
#-----------------------------------------------
KERNELRELEASE=2.4.22
INCLUDEPATH=-I /usr/src/linux-$(KERNELRELEASE)/include/
ich nicht und habe ich nicht verändert. Danach kann Kompeliert werden:
Code:
[root@Atlas release]# make
gcc -O6 -Wall -DMODULE -D__KERNEL__ -DLINUX -I
/usr/src/linux-2.4.22/include/ -DRTL_IO_MAP -DRTL_LITTLE_ENDIAN -DRTL_ACT_AS_STA
-DRTL8180_DRV_ON_PC -DENABLE_DBG_PRINT -c -o r8180_pci_init.o
r8180_pci_init.c
In file included from /usr/src/linux-2.4.22/include/asm/semaphore.h:39,
from /usr/src/linux-2.4.22/include/linux/fs.h:200,
from /usr/src/linux-2.4.22/include/linux/capability.h:17,
from /usr/src/linux-2.4.22/include/linux/binfmts.h:5,
from /usr/src/linux-2.4.22/include/linux/sched.h:9,
from r8180_pci_init.c:26:
/usr/src/linux-2.4.22/include/asm/system.h: In function `__set_64bit_var':
/usr/src/linux-2.4.22/include/asm/system.h:190: warning: dereferencing
type-punned pointer will break strict-aliasing rules
/usr/src/linux-2.4.22/include/asm/system.h:190: warning: dereferencing
type-punned pointer will break strict-aliasing rules
gcc -O6 -Wall -DMODULE -D__KERNEL__ -DLINUX -I
/usr/src/linux-2.4.22/include/ -DRTL_IO_MAP -DRTL_LITTLE_ENDIAN -DRTL_ACT_AS_STA
-DRTL8180_DRV_ON_PC -DENABLE_DBG_PRINT -c -o r8180_if.o r8180_if.c
In file included from /usr/src/linux-2.4.22/include/asm/semaphore.h:39,
from /usr/src/linux-2.4.22/include/linux/fs.h:200,
from /usr/src/linux-2.4.22/include/linux/capability.h:17,
from /usr/src/linux-2.4.22/include/linux/binfmts.h:5,
from /usr/src/linux-2.4.22/include/linux/sched.h:9,
from r8180_if.c:27:
/usr/src/linux-2.4.22/include/asm/system.h: In function `__set_64bit_var':
/usr/src/linux-2.4.22/include/asm/system.h:190: warning: dereferencing
type-punned pointer will break strict-aliasing rules
/usr/src/linux-2.4.22/include/asm/system.h:190: warning: dereferencing
type-punned pointer will break strict-aliasing rules
--- Generate open part open_part.o ---
--- Generate rtl8180 linux driver rtl8180_24x.o on 2.4.22 ---
bekomme, da ja vielleicht andere Leute mehr "Glück" haben und die interessiert
mein Fehler ja nicht.
Diese beiden Konfigurationen müssen in die /etc/pcmcia/wlan-ng.conf
eingetragen werden.
Code:
device "rtl8180_24x"
class "wlan-ng" module "rtl8180_24x"
card "Level1 WPC-0101 11Mb/s 802.11b WLAN Card"
manfid 0x0000, 0x024c
bind "rtl8180_24x"
gibt und der zweite weißt der Karte mit der manfid 0x0000, 0x024c das Modul
rtl8180_24x zu. Entnehmen kann man diese Informationen cardctl:
Code:
[root@Atlas release]# cardctl ident
Socket 0:
product info: "Realtek", "Rtl8180"
manfid: 0x0000, 0x024c
function: 6 (network)
PCI id: 0x10ec, 0x8180
Socket 1:
product info: "CardBus", "Fast Ethernet", "V1.0", ""
manfid: 0x13d1, 0xab02
function: 6 (network)
PCI id: 0x13d1, 0xab02
die Karte laufen.
Sollte, tut sie bei mir aber nicht :-(((
In meinem Syslog werden folgende Infos gespeichert:
Code:
Nov 7 16:47:23 atlas kernel: cs: cb_alloc(bus 1): vendor 0x10ec, device 0x8180
Nov 7 16:47:23 atlas cardmgr[103]: socket 0: Level1 WPC-0101 11Mb/s 02.11b WLAN Card
Nov 7 16:47:23 atlas cardmgr[103]: executing: 'modprobe rtl8180_24x'
Nov 7 16:47:24 atlas kernel:
Nov 7 16:47:24 atlas kernel:
Nov 7 16:47:24 atlas kernel: ******** RTL8180 Wireless Lan Driver 2003-10-17 loaded********
Nov 7 16:47:24 atlas kernel: PCI: No IRQ known for interrupt pin A of device .
Nov 7 16:47:24 atlas kernel: PCI: Setting latency timer of device to 64
Nov 7 16:47:24 atlas kernel: RTL8180: : region #0 not a PIO resource, aborting
Nov 7 16:47:24 atlas kernel: unregister_netdevice: device lan%%d/c1a80c00 never was registered
Nov 7 16:47:24 atlas kernel: RTL8180: wlan driver load failed
Nov 7 16:47:24 atlas kernel: rtl8180: No devices found, RTL8180 Wireless Lan Driver 2003-10-17 unregistered
Nov 7 16:47:24 atlas cardmgr[103]: + /lib/modules/2.4.22/pcmcia/rtl8180_24x.o: init_module: No such device
Nov 7 16:47:24 atlas cardmgr[103]: + /lib/modules/2.4.22/pcmcia/rtl8180_24x.o: insmod /lib/modules/2.4.22/pcmcia/rtl8180_24x.o failed
Nov 7 16:47:24 atlas cardmgr[103]: + /lib/modules/2.4.22/pcmcia/rtl8180_24x.o: insmod rtl8180_24x failed
Nov 7 16:47:24 atlas cardmgr[103]: + Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
Nov 7 16:47:24 atlas cardmgr[103]: + You may find more information in syslog or the output from dmesg
Nov 7 16:47:24 atlas cardmgr[103]: modprobe exited with status 255
Nov 7 16:47:24 atlas cardmgr[103]: executing: 'insmod /lib/modules/2.4.22/pcmcia/rtl8180_24x.o'
Nov 7 16:47:24 atlas kernel:
Nov 7 16:47:24 atlas kernel:
Nov 7 16:47:24 atlas kernel: ******** RTL8180 Wireless Lan Driver 2003-10-17 loaded********
Nov 7 16:47:24 atlas cardmgr[103]: + /lib/modules/2.4.22/pcmcia/rtl8180_24x.o: init_module: No such device
Nov 7 16:47:24 atlas kernel: PCI: No IRQ known for interrupt pin A of device .
Nov 7 16:47:24 atlas cardmgr[103]: + Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
Nov 7 16:47:24 atlas kernel: RTL8180: : region #0 not a PIO resource, aborting
Nov 7 16:47:24 atlas cardmgr[103]: + You may find more information in syslog or the output from dmesg
Nov 7 16:47:24 atlas kernel: unregister_netdevice: device wlan%%d/c1a80c00 never was registered
Nov 7 16:47:24 atlas cardmgr[103]: insmod exited with status 1
Nov 7 16:47:24 atlas kernel: RTL8180: wlan driver load failed
Nov 7 16:47:24 atlas kernel: rtl8180: No devices found, RTL8180 Wireless Lan Driver 2003-10-17 unregistered
Nov 7 16:47:25 atlas cardmgr[103]: get dev info on socket 0 failed: Resource temporarily unavailable
kernel via syslog befohlen)
Ich kann die Fehlermeldung allerdings nur schwer verstehen: Irgendwie werden
IRQs über vier Pins vergeben (A,B,C,D). Und das entweder vom BIOS oder vom
OS. Im BIOS kann man deswegen solche Kleinigkeiten einstellen, aber egal was
ich wähle, immer bekomme ich die gleiche Fehlermeldung. (glaube ich... habe
nie ge'diff't)
Code:
[root@Atlas release]# cat /proc/pci
[...]
Bus 5, device 0, function 0:
Ethernet controller: (rev 17).
IRQ 9.
Master Capable. Latency=64. Min Gnt=255.Max Lat=255.
Bus 1, device 0, function 0:
Ethernet controller: (rev 32).
Master Capable. Latency=64. Min Gnt=32.Max Lat=64.
Hat jemand nen Rat?
Vielen Dank im Vorraus!
Moritz
PS: Entschuldigung für die extrem lange Mail, aber es gab bisher kaum gut
dokumentierte Anleitungen für den RTL8180-Chip und so dachte ich schreibe es
mal für andere auf, die vielleicht weniger Probleme haben als ich.
PPS: Benutze wie oben schon beschrieben den 2.4.22 mit DevFS und gcc 3.3.2
(nur zur Info)
Zuletzt bearbeitet: