Hallo habe mir gestern Kernel 2.4.21-108-athlon von Mantel neben dem 2.4.20-4GB-athlon von Suse installiert. Offensichtlich heisst im Mantel das Modul snd-via8233 jetzt snd-via83xx, also habe ich (wahrscheinlich stümperhaft) die modules.conf editiert. Alle Zeilen, die snd-via8233 enthalten in folgende Abrage gesteckt. if `uname -r` == "2.4.21-108-athlon" alias snd-card-0 snd-via82xx options snd-via82xx snd_ac97_clock=48000 snd_enable=1 snd_index=0 else alias snd-card-0 snd-via8283 options snd-via8233 snd_ac97_clock=48000 snd_enable=1 snd_index=0 endif Es funktioniert jetzt, aber ich wüsste gerne im nachhinein den korrekten depmod Aufruf. Wäre folgendes richtig gewesen?: depmod -a 2.4.21-108-athlon -F /boot/System.map-2.4.21-108-athlon depmod -a 2.4.20-4GB-athlon -F /boot/System.map-2.4.20-4GB-athlon Wirkt depmod erst beim nächsten Bootvorgang auf die schon geladenen Module oder werden geänderte Optionen sofort berücksichtigt? Ich muss wahrscheinlich erst Module entladen und dann wieder laden? Kann ich das in einem Abwasch für alle Module mit veränderten Parametern machen. Wie mache das bei gerade benutzen Modulen? Was passiert nun wenn irgendwelche Konfigurationstools meine modules.conf verändern. Z.B fügt alsaconf je nach running-kernel die Zeile 'alias snd-card-0 snd-via82xx' oder 'alias snd-card-0 snd-via8283' ein. Welches alias wird nun berücksichtigt, das aus meiner IF-Abfrage oder das letzte? Wird die modules.conf beim Booten überhaupt gebraucht? Dann könnte man vielleicht besser jedesmal ein Link auf modules.conf-'uname -r' setzen lassen. Grüsse, Rüdiger
Rüdiger Meier schrieb:
Hallo habe mir gestern Kernel 2.4.21-108-athlon von Mantel neben dem 2.4.20-4GB-athlon von Suse installiert. Offensichtlich heisst im Mantel das Modul snd-via8233 jetzt snd-via83xx,
Es gab bisher zwei Module, snd-via686 und snd-via8233. Bei Kernel 2.4.21 von SuSE wurden beide zu snd-via82xx (ganz generell fuer die VIA-South- bridge) zusammengefasst.
also habe ich (wahrscheinlich stümperhaft) die modules.conf editiert. Alle Zeilen, die snd-via8233 enthalten in folgende Abrage gesteckt.
if `uname -r` == "2.4.21-108-athlon" alias snd-card-0 snd-via82xx options snd-via82xx snd_ac97_clock=48000 snd_enable=1 snd_index=0 else alias snd-card-0 snd-via8283 options snd-via8233 snd_ac97_clock=48000 snd_enable=1 snd_index=0 endif
Siehe zu dem Thema http://www.dhaller.de/linux/multikernel.html und auch http://www.thomashertweck.de/kernel.html#modconf.
Es funktioniert jetzt, aber ich wüsste gerne im nachhinein den korrekten depmod Aufruf.
Wenn Du es so wie in den Dokus oben beschrieben machst, dann kannst Du die Optionen -C und -F sowie die Angabe der Kernel-Version verwenden und es wird korrekt funktionieren.
Wirkt depmod erst beim nächsten Bootvorgang auf die schon geladenen Module oder werden geänderte Optionen sofort berücksichtigt?
Durch depmod werden lediglich Module-Abhaengigkeiten aufgeloest und in einer Datei gespeichert. Depmod wirkt so gesehen nicht direkt auf ir- gendwelche Module. Die Module-Optionen werden beim Aufruf des modprobe- Befehls ausgewertet - sie werden somit sofort beruecksichtigt..
Ich muss wahrscheinlich erst Module entladen und dann wieder laden? Kann ich das in einem Abwasch für alle Module mit veränderten Parametern machen. Wie mache das bei gerade benutzen Modulen?
Du kannst gerade benutze Module nicht entladen. Ich verstehe hier auch nicht, was genau Du machen willst. Warum sollte man _alle_ Module denn entladen und wieder laden?
Was passiert nun wenn irgendwelche Konfigurationstools meine modules.conf verändern. Z.B fügt alsaconf je nach running-kernel die Zeile 'alias snd-card-0 snd-via82xx' oder 'alias snd-card-0 snd-via8283' ein. Welches alias wird nun berücksichtigt, das aus meiner IF-Abfrage oder das letzte?
Die Datei /etc/modules.conf wird eigentlich nicht staendig veraendert. Du konfigurierst _einmalig_ Deinen Sound, machst evtl. wie in den Dokus beschrieben noetige Aenderungen, damit es mit verschiedenen Kernel funktioniert, und dann ist gut. Man fuehrt ja nicht staendig eine er- neute Soundkartenkonfiguration durch.
Wird die modules.conf beim Booten überhaupt gebraucht? Dann könnte man vielleicht besser jedesmal ein Link auf modules.conf-'uname -r' setzen lassen.
Siehe die genannten Dokus. Die Datei /etc/modules.conf ist die Konfi- gurationsdatei zum Laden von Modulen. Sie wird also nicht unmittelbar beim eigentlichen Bootprozess gebraucht, sondern immer dann, wenn per modprobe Module geladen werden sollen. Aber auch dann ist die Datei quasi optional. Wenn Du keine Optionen etc. zum Laden von Modulen an- geben musst oder wenn Du keine Aliase definieren musst, dann kann die Datei auch leer sein. SuSE hat darin sehr viele Default-Eintraege. Bei anderen Distributionen sieht das mitunter anderst aus. CU, Th.
Hi Thomas, Liste, Am Samstag, 4. Oktober 2003 22:21 schrieb Thomas Hertweck:
Rüdiger Meier schrieb:
Siehe zu dem Thema http://www.dhaller.de/linux/multikernel.html und auch http://www.thomashertweck.de/kernel.html#modconf.
Ich hatte das gelesen und das mit dem "include modules.conf-'uname -r' " schon probiert, aber es stört mich, daß Konfigurationstools (z.B alsaconf) damit auch nicht zurechtkommen.
Durch depmod werden lediglich Module-Abhaengigkeiten aufgeloest und in einer Datei gespeichert. Depmod wirkt so gesehen nicht direkt auf ir- gendwelche Module. Die Module-Optionen werden beim Aufruf des modprobe- Befehls ausgewertet - sie werden somit sofort beruecksichtigt..
Mir ist immer noch nicht klar. Wird beim Laden (modeprobe) wirklich modules.conf berücksichtigt oder nur das was depmod nach /lib/modules/'uname -r' schreibt?
Du kannst gerade benutze Module nicht entladen. Ich verstehe hier auch nicht, was genau Du machen willst. Warum sollte man _alle_ Module denn entladen und wieder laden? Die Datei /etc/modules.conf wird eigentlich nicht staendig veraendert. Du konfigurierst _einmalig_ Deinen Sound, machst evtl. wie in den Dokus beschrieben noetige Aenderungen, damit es mit verschiedenen Kernel funktioniert, und dann ist gut. Man fuehrt ja nicht staendig eine er- neute Soundkartenkonfiguration durch.
Ich möchte irgendwann mal probieren mein VIA-onboard-Sound zum Laufen zu bekommen, und da werde ich vielleicht öfters mal an modules.conf ran müssen. Wollte eben vorher wissen, wie ich mir sicher sein kann, daß das was jetzt aus den Boxen kommt das Resultat der aktuellen modules.conf ist. Meine Probleme mit dem onboard-Sound will ich rein interesse-halber lösen. Ich weiß, daß man ihn lieber im BIOS abschalten sollte, wie auch Du mir in meiner letzeten Anfrage geraten hast. ciao, Rüdiger
Rüdiger Meier schrieb:
[...] Ich hatte das gelesen und das mit dem "include modules.conf-'uname -r' " schon probiert, aber es stört mich, daß Konfigurationstools (z.B alsaconf) damit auch nicht zurechtkommen.
Ich verstehe immer noch nicht ganz, wo eigentlich Dein Problem liegt. Man ruft doch nicht staendig "alsaconf" auf, selbst wenn man mal versucht, einen onboard-Chip zu konfigurieren. Die Zeile fuer das Modul muss genau _einmal_ eingetragen werden, und das eben evtl. unterschiedlich je nach Kernel-Version. Das war es.
Mir ist immer noch nicht klar. Wird beim Laden (modeprobe) wirklich modules.conf berücksichtigt oder nur das was depmod nach /lib/modules/'uname -r' schreibt?
Beides. Und zwar stehen eben in den durch depmod erstellten Files Abhaengigkeiten drin, wie man es auch aus Makefiles kennt. Wenn z.B. ein Modul A ein Symbol abc erwartet, das der Kernel selbst aber nicht kennt, sondern das durch ein anderes Modul B bereitge- stellt wird, so wird das Modul B - nachdem depmod seine Arbeit hoffentlich ordentlich erledigt hat - automatisch geladen, bevor Modul A geladen wird. Ebenso lassen sich so ganze Stacks laden... Modprobe wird ferner durch /etc/modules.conf gesteuert - dort stehen z.B. Aliase, dort steht aber z.B. auch, dass die Anfrage, ein bestimmtes Modul zu laden, ignoriert werden soll (Beispiel: alias char-major-10 off) oder eben Optionen zum Laden von Modulen (z.B. options snd-emu10k1 snd_enable=1 snd_index=0). Diese Optio- nen werden beim Laden ausgewertet, insofern werden Aenderungen an /etc/modules.conf sofort wirksam (ohne Reboot des Systems, das ist bei Linux fast nie noetig) beim Laden von neuen Modulen. Be- reits geladene Module merken natuerlich nichts mehr von den Aen- derungen an /etc/modules.conf.
Ich möchte irgendwann mal probieren mein VIA-onboard-Sound zum Laufen zu bekommen, und da werde ich vielleicht öfters mal an modules.conf ran müssen. Wollte eben vorher wissen, wie ich mir sicher sein kann, daß das was jetzt aus den Boxen kommt das Resultat der aktuellen modules.conf ist.
Na, das wird so ablaufen: Du wirst einen bestimmten Kernel booten, also wird ein bestimmtes `uname -r` gueltig sein. In die entspre- chende Sektion von /etc/modules.conf (bzw. in die eigens fuer den Kernel angelegte mit Versionsnummer versehene Datei) schreibst Du die Optionen fuer das zu ladende Modul und fuehrst nach der Aende- rung der Datei ein depmod-Befehl aus (Optionen werden mitunter noetig sein wie in der letzten Mail schon beschrieben). Dann pro- bierst Du solange, bis es mit dem einen Kernel laeuft und der Sound OK ist. Dann uebertraegst Du die passenden Optionen in die Sektion in der Konfig-Datei fuer den anderen Kernel (dabei eben die Anpassungen vornehmen, die fuer den anderen Kernel noetig sind), rufst fuer den Kernel ein depmod-Befehl auf (wiederum Optionen be- achten), und das sollte es gewesen sein. CU, Thomson
Hi, vielen Dank für die ausführliche Antwort, eigentlich alles klar jetzt. Nur noch: Wie kann man die Prozesse herausfinden, die gerade ein bestimmtes Modul benutzen? Wo findet man Dokumentationen zu den Optionen der Module? ciao, Rüdiger
Hallo, Am Mon, 06 Oct 2003, Rüdiger Meier schrieb:
Wie kann man die Prozesse herausfinden, die gerade ein bestimmtes Modul benutzen?
Wisse, welche(s) Device(s) ein Modul bereitstellt... Und dann lsof.
Wo findet man Dokumentationen zu den Optionen der Module?
/usr/src/linux-`uname -r`/Documentation/ Sowie in diversen HOWTOs usw. -dnh -- The problem with sendmail is not that it has too few features. -- Alan J Rosenthal
David Haller wrote:
Am Mon, 06 Oct 2003, Rüdiger Meier schrieb:
Wie kann man die Prozesse herausfinden, die gerade ein bestimmtes Modul benutzen?
Wisse, welche(s) Device(s) ein Modul bereitstellt... Und dann lsof.
Wo findet man Dokumentationen zu den Optionen der Module?
/usr/src/linux-`uname -r`/Documentation/
Sowie in diversen HOWTOs usw.
Oder "/sbin/modinfo -p <module_name>". Funktioniert aber nicht bei allen Modulen. Ein funktionierendes Beispiel waere "/sbin/modinfo -p sb" fuer das Soundblaster-Modul... CU, Th.
participants (3)
-
David Haller
-
Rüdiger Meier
-
Thomas Hertweck