Liste aller geladenen Module bekommen?
Hallo Leute. Ich habe einen WLAN-Adapter, der nie nach dem Start funktioniert. Starte ich aber die Netzwerkkonfiguration von Yast und verlasse sie wieder, ohne dort etwas zu verändern, dann funktioniert alles. Jetzt möchte ich wissen, woran das liegt. Ein rcnetwork restart bringt den WLAN-Adapter nicht zum laufen. Also vermute ich, daß Yast irgend ein Modul lädt, welches vorher nicht geladen war. Daher die Frage: wie kriege ich raus, welche Module der Kernel aktuell geladen hat? Danke für Tips. -- Andre Tann
Andre Tann wrote:
Hallo Leute.
Ich habe einen WLAN-Adapter, der nie nach dem Start funktioniert. Starte ich aber die Netzwerkkonfiguration von Yast und verlasse sie wieder, ohne dort etwas zu verändern, dann funktioniert alles.
Jetzt möchte ich wissen, woran das liegt. Ein rcnetwork restart bringt den WLAN-Adapter nicht zum laufen. Also vermute ich, daß Yast irgend ein Modul lädt, welches vorher nicht geladen war.
Daher die Frage: wie kriege ich raus, welche Module der Kernel aktuell geladen hat?
Danke für Tips.
Hi, modprobe -l Grüße, David
David Geiger wrote:
Andre Tann wrote:
Hallo Leute.
Ich habe einen WLAN-Adapter, der nie nach dem Start funktioniert. Starte ich aber die Netzwerkkonfiguration von Yast und verlasse sie wieder, ohne dort etwas zu verändern, dann funktioniert alles.
Jetzt möchte ich wissen, woran das liegt. Ein rcnetwork restart bringt den WLAN-Adapter nicht zum laufen. Also vermute ich, daß Yast irgend ein Modul lädt, welches vorher nicht geladen war.
Daher die Frage: wie kriege ich raus, welche Module der Kernel aktuell geladen hat?
Danke für Tips.
Hi,
modprobe -l Sorry, lsmod. modprobe -l ist die Liste _aller_ Module. ;)
On Sat, 19 Nov 2005 15:24:49 +0100, David Geiger wrote:
Sorry, lsmod.
Und das nächste Mal zitierst du bitte vernünftig (siehe http://learn.to/quote), denn solche Fullquotes sind hier äußerst unbeliebt. Philipp
Philipp Thomas wrote:
On Sat, 19 Nov 2005 15:24:49 +0100, David Geiger wrote:
Sorry, lsmod.
Und das nächste Mal zitierst du bitte vernünftig (siehe http://learn.to/quote), denn solche Fullquotes sind hier äußerst unbeliebt.
Als ob das jetzt jemand interessieren würde, ob da jetzt 5 Zeilen oder 1 stehen. Außer man will sich natürlich dran stören... ;) Ich bin zumindest immer dankbar, wenn ich eine Antwort bekomme. Egal ob sie "richtig" zitiert ist oder nicht.
On Sat, 19 Nov 2005 21:08:50 +0100, David Geiger wrote:
Als ob das jetzt jemand interessieren würde,
Du wirst dich wundern, aber es gibt eine Reihe von Leuten, die das interessiert. Ausserdem gehört es zur Etikette dieser Liste (die du aber wahrscheinlich ignoriert hast). Mails mit Fullquote, möglichst noch mehrere Ebenen tief, ignoriere ich einfach bzw. lese ich mit D. Philipp -- This is the Gentoo generation: Can't program but wants to compile everything from source.
Andre Tann schrieb:
Daher die Frage: wie kriege ich raus, welche Module der Kernel aktuell geladen hat?
Du gehst als normaler User in dein Home-Verzeichnis. Dann führst du folgenden Befehl aus: "lsmod > module_vorher". Dadurch werden alle geladenen Module in die Datei module_vorher geschrieben. Dann startest du Yast, lädst das Netzwerk-Teil von Yast. Wenn die Karte funktioniert, führst du folgenden Befehl aus: "lsmod > module_nachher". Dadurch werden alle geladenen Module in die Datei module_nachher geschrieben. Dann führst du noch folgenden Befehl aus: "diff module_vorher module_nachher". Dieser Befehl vergleicht die beiden Dateien und gibt dir die Unterschiede aus. < (Spitze nach links) heißt, dass das Modul vorher geladen war, aber jetzt nicht mehr ist, > (Spitze nach rechts) heißt, dass das Modul vorher nicht geladen war, und danach aber geladen ist. Außerdem gibt dir das Programm diff auch noch die Zeilennummern und die Zeichennummern aus, um die du dich aber nicht kümmern musst. Wenn du alle Veränderungen notiert hast, kannst du mit: "rm module_vorher module_nachher" die beiden Dateien wieder löschen. Viel Erfolg Martin Ereth
Hallo Martin, danke für Deine Beschreibung. So habe ich es nun gemacht, und das Ergebnis ist
aes_i586 39168 0 af_packet 20744 4 arc4 1920 3 firmware_class 9472 1 ipw2200 ieee80211 37156 1 ipw2200 ieee80211_crypt 5320 4 ieee80211_crypt_ccmp,ieee80211_crypt_tkip,ipw2200,ieee80211 ieee80211_crypt_ccmp 6980 0 ieee80211_crypt_tkip 10052 3 < ip_tables 20352 7 ipt_LOG,ipt_limit,ipt_state,ipt_REJECT,iptable_mangle,iptable_filter,iptable_nat < ipt_LOG 6912 3 ip_tables 20352 8 ipt_pkttype,ipt_LOG,ipt_limit,ipt_state,ipt_REJECT,iptable_mangle,iptable_filter,iptable_nat ipt_LOG 6912 7 < ipt_limit 2432 3 < ipt_state 2048 2 ipt_limit 2432 7 ipt_pkttype 1792 1 ipt_state 2048 12 ipw2200 124904 0 michael_mic 2688 3
Welches Modul könnte denn dafür verantwortlich sein, daß das WLAN nachher läuft? Ich kenne mich mit den Namen nicht so aus, aber hat es irgendwas mit den ieee80211 und ieee80211_crypt* zu tun? Könnte ich einfach hergehen, und diese Module mit modprobe nachladen? Da ich mich mit diesen Dingen nicht so auskenne frage ich lieber nach. Nicht daß ich mir am Kernel was kaputtmache. -- Andre Tann
Hallo Andre Andre Tann schrieb:
Welches Modul könnte denn dafür verantwortlich sein, daß das WLAN nachher läuft? Ich kenne mich mit den Namen nicht so aus, aber hat es irgendwas mit den ieee80211 und ieee80211_crypt* zu tun?
Der Standard für WLAN hat doch auch irgendwas mit 802.11im Namen.
Könnte ich einfach hergehen, und diese Module mit modprobe nachladen?
Na klar! Also einfach "modprobe Modulname"
Da ich mich mit diesen Dingen nicht so auskenne frage ich lieber nach. Nicht daß ich mir am Kernel was kaputtmache.
Also am Kernel kann man mit modprobe nix kaputt machen, denn modprobe liest nur die Module aus, die verwendet werden sollen, oder entfernt die, die nicht verwendet werden sollen. Modprobe löscht oder ändert an Kernel-Dateien nichts. Nachdem du jetzt die vermutlichen Module weisst, würde ich darüber nachdenken, das ganze in ein script zu fassen: Name des Skripts: wlan_on nicht vergessen, das Skript ausführbar zu machen: "chmod +x wlan_on" -------- #!/bin/sh # Martin Ereth 19.11.2005 # insert WLAN-modules echo "inserting W-LAN modules " modprobe x modprobe y modprobe z echo "done." -------- Du musst jetzt nur noch statt x, y und z deine Modulnamen reinschreiben und das Skript ausführbar machen (siehe oben). So könntest du auch, wenn nötig, ein Skript schreiben, das die Module wieder entlädt, sodass WLAN wieder deaktiviert ist. Noch Viel Erfolg Martin Ereth
Martin Ereth, Samstag, 19. November 2005 19:33:
Na klar! Also einfach "modprobe Modulname"
So, jetzt habe ich also die nötigen Module identifiziert. Daß ich mir ein Skript bauen kann, welches die Module lädt ist mir klar, ebenso, daß ich dieses Skript irgendwo in den Startprozeß einbinden könnte, boot.local oder so. Aber was wäre denn der saubere Weg, bestimmte Module beim Start laden zu lassen? Es muß doch irgendwo eine Definition geben, welche Module benötigt werden. Danke! -- Andre Tann
Am Samstag, 19. November 2005 20:19 schrieb Andre Tann:
Martin Ereth, Samstag, 19. November 2005 19:33:
Na klar! Also einfach "modprobe Modulname"
So, jetzt habe ich also die nötigen Module identifiziert. Daß ich mir ein Skript bauen kann, welches die Module lädt ist mir klar, ebenso, daß ich dieses Skript irgendwo in den Startprozeß einbinden könnte, boot.local oder so.
Aber was wäre denn der saubere Weg, bestimmte Module beim Start laden zu lassen? Es muß doch irgendwo eine Definition geben, welche Module benötigt werden.
Schau doch mal hier nach: http://lists.suse.com/archive/suse-linux/2005-Aug/0972.html Vielleicht hilft es dir weiter.
Danke!
Bitte. :-)
Andre Tann
-- Gruß Manfred ------------------- SuSE 9.3 --- KDE 3.4.3 Level "b" Kernel 2.6.11.4-21.9-default --- Maschine i686
Hallo, Am Sat, 19 Nov 2005, Andre Tann schrieb: [diff von lsmod vorher/nacher]
ipw2200 124904 0
Welches Modul könnte denn dafür verantwortlich sein, daß das WLAN nachher läuft?
Obiges. Hast du eine feste Schnittstelle fuer das Modul, z.B. eth1? Wenn ja, fuege 'alias eth1 ipw2200' an deine /etc/modprobe.conf.local an. Vergleiche aber mit der bestehenden Konfiguration durch Yast, also /etc/sysconfig/network/ifcfg* Der Rest der Module sollte automatisch durch Abhaengigkeiten geladen werden, nur zur Zuordnung ethX -> HW-Modul braucht der Kernel Nachhilfe. -dnh -- <groan> Oh Ghods, not another personality...I'm losing track. Look: Could everyone who is me, please let me know? Thanks. -- Jim
Servus David, David Haller, Samstag, 19. November 2005 19:41:
ipw2200 124904 0
Welches Modul könnte denn dafür verantwortlich sein, daß das WLAN nachher läuft?
Obiges.
Nein, das reicht nicht. Ich brauche modprobe ipw2200 modprobe aes_i586 (und rcnetwork restart) um die WLAN-Karte ans Laufen zu kriegen.
Hast du eine feste Schnittstelle fuer das Modul, z.B. eth1?
Habe ich, sie heißt "air"
Wenn ja, fuege 'alias eth1 ipw2200' an deine /etc/modprobe.conf.local an.
Hätte ich also folgendes alias air ipw2200 alias air aes_i586 einzufügen? Danke für die Nachhilfe. -- Andre Tann
Andre Tann, Samstag, 19. November 2005 21:19:
Nein, das reicht nicht. Ich brauche
Ooops, sorry, reicht doch. Man muß nur etwas warten... Was aber leider nicht reicht ist, das Modul in die modprobe.conf.local einzutragen. Der Kernel lädt das Modul trotz alias air ipw2200 nicht. Ein händisches modprobe ipw2200 und dann rcnetwork restart hilft. Woran könnte das denn liegen? -- Andre Tann
Hallo, Am Sat, 19 Nov 2005, Andre Tann schrieb:
Andre Tann, Samstag, 19. November 2005 21:19:
Nein, das reicht nicht. Ich brauche
Ooops, sorry, reicht doch. Man muß nur etwas warten...
Was aber leider nicht reicht ist, das Modul in die modprobe.conf.local einzutragen. Der Kernel lädt das Modul trotz
alias air ipw2200
nicht. Ein händisches modprobe ipw2200 und dann rcnetwork restart hilft. Woran könnte das denn liegen?
Auch nach nem 'depmod -a' nicht? (Sorry, das hatte ich vergessen) Das 'rcnetwork restart' kenne ich nur in der Version: # rpm -q --queryformat '%{distribution}, %{name}-%{version}-%{release}, %{buildtime:date}\n' -f `which rcnetwork` SuSE Linux 6.2 (i386), aaa_base-99.9.8-0, Wed 08 Sep 1999 11:21:51 AM CEST *hurhurhur* Aber die relevanten einzelnen Befehle sollten sich ggfs. ebenfalls per Eintrag in der modprobe.conf(.local) (install ipw2200 ....) automatisieren lassen, so dass du kein komplettes 'rcnetwork restart' aufrufen musst. -dnh -- At least Microsoft offers updates to keep your selection of bugs fresh. -- Alan Shutko, hating Corel even more
David Haller schrieb:
Aber die relevanten einzelnen Befehle sollten sich ggfs. ebenfalls per Eintrag in der modprobe.conf(.local) (install ipw2200 ....) automatisieren lassen, so dass du kein komplettes 'rcnetwork restart' aufrufen musst.
Hallo! Ich denk, wenn in der modprobe.conf.local das drinsteht (siehe vorherige Mails), und das Gerät beim Booten auf "aktivieren" steht, wird das Modul (die Module) beim Booten geladen. siehe: /etc/sysconfig/network/ifcfg-air-00:(usw.). Dort muss die Option STARTMODE='auto' stehen. Oder soll das nicht beim Booten geschehen? Viele Grüße Martin Ereth
Martin Ereth, Sonntag, 20. November 2005 20:25:
Ich denk, wenn in der modprobe.conf.local das drinsteht (siehe vorherige Mails), und das Gerät beim Booten auf "aktivieren" steht, wird das Modul (die Module) beim Booten geladen. siehe: /etc/sysconfig/network/ifcfg-air-00:(usw.). Dort muss die Option STARTMODE='auto' stehen.
Diese Option ist so gesetzt.
Oder soll das nicht beim Booten geschehen?
Doch. Aufgefallen ist mir aber folgendes: Beim Booten kommt: === Waiting for mandatory devices: wlan-id-00:12:f0:4c:55:c0 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 wlan-id-00:12:f0:4c:55:c0 No interface found === Ich frage mich, wieso mir das erst jetzt aufgefallen ist. Aber vielleicht sieht der Kernel beim Booten keine Notwendigkeit, das Modul zu laden, weil kein Interface da ist. Kann das sein? Wenn ja, woran mag das liegen? Jedenfalls habe ich mir jetzt so geholfen, daß ich einfach ein Boot-Skript gebaut habe, welches am Ende im Boot-Prozeß hängt, und das mir das Modul lädt und das Netzwerk neu startet. Nicht schön, aber es funktioniert. -- Andre Tann
Hallo Andre! Andre Tann schrieb:
=== Waiting for mandatory devices: wlan-id-00:12:f0:4c:55:c0 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 wlan-id-00:12:f0:4c:55:c0 No interface found === Das kenn ich irgendwoher...
Aber vielleicht sieht der Kernel beim Booten keine Notwendigkeit, das Modul zu laden, weil kein Interface da ist. Kann das sein? Wenn ja, woran mag das liegen?
In der modprobe.conf.local muss nich wie schonmal erwähnt "alias air ipw2200", sondern "alias air0 ipw2200". Dann weiss der Kernel, welches Modul er für das für ihn bekannte Netzwerkmodul, das über air0 angesprochen wird, laden muss.
Jedenfalls habe ich mir jetzt so geholfen, daß ich einfach ein Boot-Skript gebaut habe, welches am Ende im Boot-Prozeß hängt, und das mir das Modul lädt und das Netzwerk neu startet. Nicht schön, aber es funktioniert.
Nicht so schön, das braucht auch Zeit. Probier mal obige Lösung. Dabei sparst du dir auch die zwanzig Sekunden von "Waiting for mandatory devices"! Viel Erfolg Martin Ereth
Hallo Martin. Martin Ereth, Sonntag, 20. November 2005 22:09:
In der modprobe.conf.local muss nich wie schonmal erwähnt "alias air ipw2200", sondern "alias air0 ipw2200". Dann weiss der Kernel, welches Modul er für das für ihn bekannte Netzwerkmodul, das über air0 angesprochen wird, laden muss.
Funktioniert leider nicht. In der modprobe.conf.local steht jetzt als einzige Zeile: alias air0 ipw2200 Das Netzwerk funktioniert allerdings immer noch nicht nach einem Reboot, und es kommt auch wieder die Meldung wlan-id-00:12:f0:4c:55:c0 No interface found Woher soll denn das air0 kommen? Der Name "air" kommt daher, daß ich in der entsprechenden Konfiguration in /etc/sysconfig/network... eingegeben habe: PERSISTENT_NAME='air' Wieso soll das Device also plötzlich air0 heißen?
Nicht so schön, das braucht auch Zeit. Probier mal obige Lösung. Dabei sparst du dir auch die zwanzig Sekunden von "Waiting for mandatory devices"!
Würde ja gerne Zeit sparen, aber es gelingt noch nicht... -- Andre Tann
Andre Tann schrieb:
Woher soll denn das air0 kommen? Der Name "air" kommt daher, daß ich in der entsprechenden Konfiguration in /etc/sysconfig/network... eingegeben habe: Das air bezeichnet nur den Grundnamen. An entsprechender Stelle wirst du sicherlich für Netzwerkkarten den Eintrag "eth" und nicht "eth0" finden! Ist denn das Modul ipw2200 geladen oder nicht? Wieso soll das Device also plötzlich air0 heißen? Das wird doch logisch durchnummeriert, weil ja auch die erste Netzwerkkarte eth0 heisst, die zweite eth1, usw.
was ergibt denn "grep -i air /etc/modprobe.conf" (Anmerkung: absichtlich nicht modprobe.conf.local!!!) Grüße Martin Ereth
Martin Ereth, Sonntag, 20. November 2005 23:10:
Das air bezeichnet nur den Grundnamen. An entsprechender Stelle wirst du sicherlich für Netzwerkkarten den Eintrag "eth" und nicht "eth0" finden!
OK.
Ist denn das Modul ipw2200 geladen oder nicht?
lsmod | grep 2200 ergibt kein Ergebnis.
was ergibt denn "grep -i air /etc/modprobe.conf" (Anmerkung: absichtlich nicht modprobe.conf.local!!!)
grep -i air /etc/modprobe.conf ergibt kein Ergebnis. Sollte es? -- Andre Tann
Hallo Martin, hallo Leute, Am Sonntag, 20. November 2005 23:10 schrieb Martin Ereth:
Andre Tann schrieb:
Woher soll denn das air0 kommen? Der Name "air" kommt daher, daß ich in der entsprechenden Konfiguration in /etc/sysconfig/network... eingegeben habe:
Das air bezeichnet nur den Grundnamen. An entsprechender Stelle wirst du sicherlich für Netzwerkkarten den Eintrag "eth" und nicht "eth0" finden!
Das gilt aber nicht für Devices mit PERSISTENT_NAME - da bleibt der Name wie gewünscht und wird nicht noch durch eine Ziffer verunstaltet ;-)
Wieso soll das Device also plötzlich air0 heißen?
Das wird doch logisch durchnummeriert, weil ja auch die erste Netzwerkkarte eth0 heisst, die zweite eth1, usw.
Siehe oben - "air" ist richtig. Gruß Christian Boltz -- Gerade in Firmen sind die internen Passwörter der Mitarbeiter oft nicht den Klebezettel wert, mit dem sie an den Monitorrand gepappt wurden. Und klebt da nichts, bleiben immer noch der Vorname des MA, "Hallo" oder die Marke des Monitors brauchbare Alternativen *g* [Matthias Houdekk in suse-linux]
Christian Boltz, Montag, 21. November 2005 00:27:
Das wird doch logisch durchnummeriert, weil ja auch die erste Netzwerkkarte eth0 heisst, die zweite eth1, usw.
Siehe oben - "air" ist richtig.
Nun hab ichs in beiden Varianten probiert - air0 und auch air. Trotzdem sieht sich der Kernel nicht veranlaßt, das nötige Modul zu laden. Hast Du eine Idee, warum das nicht der Fall ist? -- Andre Tann
Hallo Martin, hallo Leute, Am Samstag, 19. November 2005 16:02 schrieb Martin Ereth: [...]
Dann führst du noch folgenden Befehl aus: "diff module_vorher module_nachher". Dieser Befehl vergleicht die beiden Dateien und gibt dir die Unterschiede aus. < (Spitze nach links) heißt, dass das Modul vorher geladen war, aber jetzt nicht mehr ist, > (Spitze nach rechts) heißt, dass das Modul vorher nicht geladen war, und danach aber geladen ist.
Nächstesmal kannst Du auch einfach diff -u (oder in diesem Fall diff -U0) nehmen - die Syntax mit + und - am Zeilenanfang ist nämlich nicht so erklärungsbedürftig und IMHO deutlich leichter zu verstehen ;-) Gruß Christian Boltz -- Die Frage des besten MUA hat bei mir längst die Vernunftebene verlassen. Dann wäre ich bei Evolution geblieben. Ich will diese verfluchte Kiste in die Knie zwingen, Punkt. Koste es, was es wolle. Also mutt. Den Feind auf seinem eigenen Territorium besiegen. [Ratti]
Christian Boltz schrieb:
Am Samstag, 19. November 2005 16:02 schrieb Martin Ereth:
Dann führst du noch folgenden Befehl aus: "diff module_vorher module_nachher". Dieser Befehl vergleicht die beiden Dateien und gibt dir die Unterschiede aus. < (Spitze nach links) heißt, dass das Modul vorher geladen war, aber jetzt nicht mehr ist, > (Spitze nach rechts) heißt, dass das Modul vorher nicht geladen war, und danach aber geladen ist. Nächstesmal kannst Du auch einfach diff -u (oder in diesem Fall diff -U0) nehmen - die Syntax mit + und - am Zeilenanfang ist nämlich nicht so erklärungsbedürftig und IMHO deutlich leichter zu verstehen ;-)
Hallo Christian! Du hast Recht, denn die Klammern schneiden sich mit Quoting. Nachdem ich die Manpage von diff noch nicht auswendig kann, und mir (dich mal ausgenommen) noch niemand gesagt hat, dass es sowas gibt, kannte ich diese Option bisher nicht. Man lernt, wie man sieht, nie aus!!! Danke Martin Ereth
participants (8)
-
Andre Tann
-
Bernhard Walle
-
Christian Boltz
-
David Geiger
-
David Haller
-
Manfred Eifler
-
Martin Ereth
-
Philipp Thomas