Seite 1 von 1

Kernelmodul bei Bedarf laden

Verfasst: Montag 5. Februar 2007, 13:15
von Rebecca
Ich haette gerne, dass ein bestimmtes Kernel-Modul bei Zugriff auf ein Device geladen wird. Genau genommen handelt es sich um den Node /dev/kqemu und das Modul kqemu. Da Device und Modul den gleichen Namen haben, habe ich kein Alias definiert, sondern lediglich Optionen in /etc/modprobe.d/kqemu festgelegt (options kqemu major=0), ausserdem eine Datei /etc/udev/90-kqemu.rules mit dem Inhalt KERNEL=="kqemu", NAME="%k", MODE="0666" angelegt.

Im Moment muss ich das Modul per Hand mit modprobe kqemu laden, dann wird mir auch schoen /dev/kqemu erzeugt und alles laeuft. Ich weiss aber nicht, was ich tun muss, damit das Modul automatisch geladen wird, wenn es benoetigt wird.

So wie ich das verstehe, ist die install-Anweisung in modprobe.conf dazu da, etwas zu tun, wenn das Modul geladen wird (soweit kommt es bei mir ja gar nicht), und ansonsten habe ich keine Idee mehr. :( Das Problem bleibt das gleiche, wenn ich /dev/kqemu vorher per Hand erzeuge -- qemu beschwert sich einfach, dass er den Device nicht oeffnen kann. Oder ist das ein Problem von qemu? Woher weiss denn der Kernel ueberhaupt, wann ein Modul gebraucht wird? Geht mein Vorhaben vielleicht gar nicht? :?: Fragen ueber Fragen...

PS: modprobe.conf enhaelt den Eintrag include /etc/modprobe.d. Ich benutze Suse 10.0

Verfasst: Montag 5. Februar 2007, 13:32
von birkenfeld
Meinst du vielleicht das (aus der udev-FAQ):
Q: But udev will not automatically load a driver if a /dev node is opened
when it is not present like devfs will do.
A: Right, but Linux is supposed to load a module when a device is discovered
not to load a module when it's accessed.

Q: Oh come on, pretty please. It can't be that hard to do.
A: Such a functionality isn't needed on a properly configured system. All
devices present on the system should generate hotplug events, loading
the appropriate driver, and udev will notice and create the
appropriate device node. If you don't want to keep all drivers for your
hardware in memory, then use something else to manage your modules
(scripts, modules.conf, etc.) This is not a task for udev.

Verfasst: Montag 5. Februar 2007, 15:53
von Rebecca
:lol:
birkenfeld hat geschrieben:
If you don't want to keep all drivers for your hardware in memory, then use something else to manage your modules (scripts, modules.conf, etc.) This is not a task for udev.
Hab ich ja vesucht... (modules.conf heisst jetzt modprobe.conf) Ist eigentlich auch nicht so wichtig, mich wuerde aber trotzdem interessieren, wie das mit dem Nachladen von Modulen so funktioniert.