2010-12-04 8 views
13

Ich erstellte ein benutzerdefiniertes und einfaches Modul mit dem Namen Hello.ko Ich installiere das Modul mit dem Befehl "insmod hello.ko", ich überprüfe es mit "dmesg" und es funktioniert, aber wenn ich das System neu starten, habe ich um es manuell zu laden. Wie kann ich das benutzerdefinierte Modul automatisch laden und wo muss ich die hello.ko setzen? Nach dem Laden des Moduls, möchte ich die Nachricht Hello World bis ich die Eingabetaste drücken. Kann mir jemand helfen?Wie lade ich ein benutzerdefiniertes Modul beim Booten in Ubuntu?

+0

Wenn Sie sagen, dass Sie pausieren und auf einen Schlüssel warten möchten, möchten Sie dies im Textmodus zwischen Boot-Meldungen auf niedriger Ebene oder nachdem das X-Window-System erscheint, aber bevor Sie sich einloggen? Müssen Sie dies wirklich tun, oder nur um zu bestätigen, dass Ihr Modul gestartet wird? Wenn letzteres, nur drucken Sie einige Nachrichten und überprüfen Sie dmesg, um sich davon zu überzeugen, dass es zu einem geeigneten Zeitpunkt geladen wird. –

Antwort

8

Fügen Sie das Modul der Datei/etc/modules hinzu.

Und dann legen Sie das Modul in Ihrem Katalog/lib/modules/Kernelname.

+0

mmmm muss ich einen Ordner erstellen, nur einfügen an dieser Stelle? – Gonzalo

+0

Es sollte einen Ordner mit dem richtigen Namen (etwas wie /lib/modules/2.6.32-26-generic) geben Sie es einfach dort. – Swind

+5

Der portable Weg diesen Pfad zu beziehen ist/lib/modules/\ 'uname -r \'/ – ctuffli

11

Diese Technik hat auf Ubuntu 13.10 nicht funktioniert. Also nach ein paar Versuchen und Fehler versuchte ich damit:

Kopieren Sie mein Kernel-Modul in das Treiberverzeichnis.

$ sudo cp mymodule.ko /lib/modules/$(uname -r)/kernel/drivers/ 

Fügen Sie den einfachen Namen meines Moduls in die Datei/etc/modules ein. Sie können die Datei bearbeiten oder einfach an sie anhängen, wie hier gezeigt.

$ echo 'mymodule' | sudo tee -a /etc/modules 

Aktualisieren Sie die Liste der Modulabhängigkeiten.

$ sudo depmod 

Starten Sie den Computer und voila, es hat funktioniert.

+1

Großartig! das hat auch für mich funktioniert. Aber ich musste es nicht in das Verzeichnis/kernel/drivers setzen. Ich habe es in/lib/modul/$ (uname -)/initrd platziert. – Bilthon

Verwandte Themen