Du bist nicht angemeldet.

#1 02.09.2008 17:02:26

Benny
Mitglied

eth1 (ipw2915) existiert laut System nicht

Hi,

ich bin heute auf ein Problem gestoßen, welches ich so noch nie hatte. Der Rechner erkennt meine WLAN-Karte nicht. Selbst ein "ls /sys/class/net/" bringt mir nur die Schnittstellen "eth0 irda0 lo".
Ein "dmesg | grep -i ipw2200" wirft mir folgendes raus:

ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
firmware: requesting ipw2200-bss.fw
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
ipw2200: Unable to load firmware: -2
ipw2200: failed to register network device
ipw2200: probe of 0000:02:02.0 failed with error -5

Das Paket ipw2200-fw ist aber installiert. "ls /lib/firmware" bestätigt dies auch:

LICENSE.ipw2200-fw ipw2200-bss.fw ipw2200-ibss.fw ipw2200-sniffer.fw

Ich habe eth1 in die /etc/rc.conf eingetragen. In der /etc/mkinitcpio.conf habe ich unter HOOKS "firmware" eingetragen. Dennoch wird die Firmware nicht geladen.

Wie kann ich dieses Problem beheben?

Gruß
Benny

Edit:
Mit dem Befehl:

rmmod ipw2200 && modprobe ipw2200

geht die Karte wunderbar. Zum besseren Verständis hier meine rc.conf und mkinitcpio.conf:

rc.conf

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime"
# USEDIRECTISA: use direct I/O requests instead of /dev/rtc for hwclock
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="de_DE.utf8"
HARDWARECLOCK="localtime"
USEDIRECTISA="no"
TIMEZONE="Europe/Berlin"
KEYMAP="de-latin1-nodeadkeys"
CONSOLEFONT="lat9w-16"
CONSOLEMAP=
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="yes"
#MOD_BLACKLIST=() #deprecated
MODULES=(e1000 slhc ipw2200 ac97_bus snd-mixer-oss snd-pcm-oss snd-page-alloc snd-pcm snd-timer snd snd-ac97-codec snd-intel8x0 snd-intel8x0m soundcore)

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="odin"

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   - prefix an entry in INTERFACES with a ! to disable it
#   - no hyphens in your interface names - Bash doesn't like it
# 
# DHCP:     Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#
eth0="dhcp"
eth1="dhcp"
INTERFACES=(lo !eth0 !eth1)

# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   - prefix an entry in ROUTES with a ! to disable it
#
gateway="dhcp"
ROUTES=(!gateway)
 
# Enable these network profiles at boot-up.  These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(@syslog-ng !hotplug !pcmcia !network dbus hal netfs !crond acpid alsa dhcdbd networkmanager portmap fam)

mkinitcpio.conf

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES="piix ide_disk reiserfs"
MODULES="pata_acpi ata_generic scsi_mod ata_piix"

# BINARIES
# This setting includes, into the CPIO image, and additional
# binaries a given user may wish.  This is run first, so may
# be used to override the actual binaries used in a given hook.
# (Existing files are NOT overwritten is already added)
# BINARIES are dependancy parsed, so you may safely ignore libraries
BINARIES=""

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in anyway.  This is useful for config files.
# Some users may wish to include modprobe.conf for custom module options,
# like so:
#    FILES="/etc/modprobe.conf"
FILES=""

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'modload' may be used in place of 'udev', but is not recommended
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
#    This setup specifies all modules in the MODULES setting above.
#    No raid, lvm2, or encrypted root is needed.
#    HOOKS="base"
#
#    This setup will autodetect all modules for your system and should
#    work as a sane default
#    HOOKS="base udev autodetect pata scsi sata filesystems"
#
#    This is identical to the above, except the old ide subsystem is
#    used for IDE devices instead of the new pata subsystem.
#    HOOKS="base udev autodetect ide scsi sata filesystems"
#
#    This setup will generate a 'full' image which supports most systems.
#    No autodetection is done.
#    HOOKS="base udev pata scsi sata usb filesystems"
#
#    This setup assembles an pata raid array with an encrypted root FS.
#    Note: See 'mkinitcpio -H raid' for more information on raid devices.
#    HOOKS="base udev pata raid encrypt filesystems"
#
#    This setup loads an lvm2 volume group on a usb device.
#    HOOKS="base udev usb lvm2 filesystems"
HOOKS="base udev fw autodetect firmware pata scsi sata usb net keymap filesystems"

Beitrag geändert von Benny (02.09.2008 17:20:31)

Offline

#2 02.09.2008 17:35:53

GerBra
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Kam dieses Problem von einem Boot auf den anderen, hatte es also vorher unter gleicher
Konstellation funktioniert? Wurden zwischen beiden Zuständen Pakete aktualisiert?

Stand ist momentan ?:
Nach Reboots funktioniert reproduzierbar der ipw2200 Treiber nicht wg. dem Firmware-Problem?
Ein Entladen des Modules und Neuladen funktioniert hingegen?

Welche Version von udev hast du?

Offline

#3 02.09.2008 17:44:29

Benny
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

> Kam dieses Problem von einem Boot auf den anderen, hatte es also vorher unter gleicher
Konstellation funktioniert? Wurden zwischen beiden Zuständen Pakete aktualisiert?
Ich hatte Mitte April einmal Arch drauf. Da ging es. Es gab nur andere Probleme.
Dies hier ist eine frische Installation von Arch.

> Stand ist momentan ?:
Arch bootet, eth1 wird nicht erkannt, rmmod ipw2200 && modprobe ipw2200 behebt das Problem und das WLAN funktioniert ohne Probleme.

> Nach Reboots funktioniert reproduzierbar der ipw2200 Treiber nicht wg. dem Firmware-Problem?
Ja - die Fehlermeldung oben besteht immer und wird beim Boot angezeigt.

> Ein Entladen des Modules und Neuladen funktioniert hingegen?
Reibungslos.

> Welche Version von udev hast du
1.2.3-1

Offline

#4 02.09.2008 18:23:39

GerBra
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Benny schrieb:

> Welche Version von udev hast du
1.2.3-1

Das kann nicht sein, udev ist aktuell 119-1
pacman -Q udev
Du hast vom aktuellen ISO die Installation gemacht und dein System ist auf einem aktuellen Stand
(also pacman -Syu ausgeführt)?
Welchen Kernel verwendest du aktuell (pacman -Q kernel26)?

Gelesen habe ich von dem Phänomen bisher nicht, einzige Erklärung wäre das zum Zeitpunkt des
Modulladens auf /lib/firmware nicht zugegriffen werden könnte, was aber Quatsch ist.

Versuche mal folgendes (wenn dein System aktuell ist):
Entferne mal ipw2200 aus dem MODULES abschnitt der rc.conf (Wird normalerweise von udev
geladen)
Oder erstelle dir ein neues initrd-Image (den firmware-Hook brauchst du IMHO nicht, aber laß ihn
mal): mkinitcpio -p kernel26

Offline

#5 02.09.2008 18:35:00

Benny
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

> pacman -Q udev
[root@odin ~]# pacman -Q udev
udev 119-1

Du hast vom aktuellen ISO die Installation gemacht und dein System ist auf einem aktuellen Stand
(also pacman -Syu ausgeführt)?
Von der FrOSCon-CD und ja - pacman -Syu wurde ausgeführt. Das System ist aktuell.

> Welchen Kernel verwendest du aktuell (pacman -Q kernel26)?
[root@odin ~]# pacman -Q kernel26
kernel26 2.6.26.3-1

> Gelesen habe ich von dem Phänomen bisher nicht, einzige Erklärung wäre das zum Zeitpunkt des
Modulladens auf /lib/firmware nicht zugegriffen werden könnte, was aber Quatsch ist.
Das Problem wurde schonmal im englischen Forum erörtert. Damals half es mir bei der Problemlösung, diesesmal will es jedoch nicht funktionieren.

> Entferne mal ipw2200 aus dem MODULES abschnitt der rc.conf
Hat nichts gebracht.

> Oder erstelle dir ein neues initrd-Image (den firmware-Hook brauchst du IMHO nicht, aber laß ihn
mal): mkinitcpio -p kernel26
Das war es. Anscheinend muss man die initrd-Image nochmal neu erstellen, damit die firmware geladen wird smile
Ich verfass demnächst eine Doku dazu.

Beitrag geändert von Benny (02.09.2008 18:53:52)

Offline

#6 02.09.2008 19:10:46

GerBra
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Benny schrieb:

> Oder erstelle dir ein neues initrd-Image (den firmware-Hook brauchst du IMHO nicht, aber laß ihn
mal): mkinitcpio -p kernel26
Das war es. Anscheinend muss man die initrd-Image nochmal neu erstellen, damit die firmware geladen wird smile
Ich verfass demnächst eine Doku dazu.

Hmm, trotzdem finde ich das seeeehr komisch...
Zu den Hooks: Ja, wenn du in der mkinitcpio.conf etwas änderst dann muß das initrd-image neu
erstellt werden. Jetzt (mit dem Hook) ist das firmware-Verzeichniss mit in der initrd, vorher wohl nicht.

Erklärbar wäre es IMHO: Durch den udev-Hook (und da deine WLan-Hardware immer verfügbar ist)
wird das Modul schon in der initrd-Phase geladen, findet da aber die Firmware nicht (da / ja noch
nicht gemountet ist). Durch den Firmware-Hook ist das jetzt beseitigt.

Jetzt - um alles in der Welt wink frag ich mich: für was braucht es einen WLan-Modul/Firmware in der
initrd (Initiale RAM-Disk)... Mein Verständniss dieser initrd ist: stellt ein Minimal-System an Software
plus Module bereit um die Festplatte mit der Root(/)-Partition ansprechen zu können. Plus evtl.
anderer Aufgaben (Festplatte entschlüssen z.B.) die dafür notwendig sind. Hooks wie usb, fw,
firmware bräuchte man ebenfalls nur wenn Module/Vorgänge darin zum Ansprechen der Root-Partition
notwendig wären.

Abhilfe könnte man in deinem Fall sicher schaffen, wenn man das ipw2200 Modul in der mkinitcpio.conf
blacklistet. Somit würde es erst durch udev nach der Übergabe der initrd an kinit geladen werden,
das langt auch noch wink Würde auch die initrd kleiner machen(Ladezeit).

Offline

#7 02.09.2008 19:13:22

Benny
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Ich spiel mal ein wenig rum und schau, ob ich es verkleinern kann.

Offline

#8 02.09.2008 19:20:14

GerBra
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Ja, wäre interessant. Wird jetzt zwar nicht die Welt ausmachen....
Hier noch ein Link zum Blacklisten:
http://wiki.archlinux.org/index.php/Mki … ng_modules

Offline

#9 02.09.2008 19:33:23

Benny
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Ja, das habe ich schon gefunden.
Habe fw und firmware aus den Hooks genommen und firmware geblacklistet. Selbes Problem.
Ich nehme mal an, dass initrd die Firmware fix braucht. In Gentoo war es das selbe. Dort lies sich die Karte auch erst mit der Firmware betreiben. Aber da musste ich es vorab laden.

Sehr seltsam ...

Offline

#10 02.09.2008 19:41:27

GerBra
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Wenn's kein Vertipper war: du mußt ipw2200 blacklisten, also das Modul.
Die unbenötigten Hooks halt nur nicht in HOOKS= auftauchen lassen.

Offline

#11 02.09.2008 19:49:16

Benny
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

Ah, OK - dann teste ich das mal.

Offline

#12 02.09.2008 19:58:35

Benny
Mitglied

Re: eth1 (ipw2915) existiert laut System nicht

So, ich habe es gerade mal ausgetestet und es muss definitiv unter HOOKS eingetragen sein, damit es funktioniert.
Frag mich bitte nicht warum ...

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums