Wie installiere ich ein Drittanbieter-Modul, damit es beim Booten geladen wird?

24

Ich habe ein Drittanbieter-Modul für einen Framegrabber. Ich habe die Kernel-Quelle heruntergeladen, bin den Anweisungen des Herstellers zum Kompilieren gefolgt und habe das resultierende Modul arvdrv.ko in einem Ordner gespeichert.

Der Hersteller hat ein Skript bereitgestellt, das das Modul in den Kernel lädt und funktioniert, wenn ich es ausführe. das modul wird aber nur bis zum nächsten booten geladen. Das Skript verwendet keine Modprobe. Ich kann auf den Framegrabber zugreifen, wenn das Modul installiert ist.

Es scheint mir, dass modprobe eine Liste mit vielen Modulen führt. Man kann / etc / modules editieren, um einen Modulnamen hinzuzufügen, der beim Booten geladen wird, aber das Modul arvdrv ist nicht in der Liste von modprobe.

Meine Frage ist, wie man modprobe über das Modul informiert? Muss es an einen neuen Ort kopiert werden und wenn ja, wo?

Nate Lockwood
quelle
Ich fand schließlich heraus, dass das Problem, das ich hatte, nachdem ich den "richtigen" Weg gefunden hatte, darin bestand, dass der Anbieter vergaß, ein zusätzliches Initialisierungsskript einzuschließen, so dass der Treiber beim Booten geladen wurde, aber fehlschlug.
Nate Lockwood
Hier ist ein kurzer Überblick über die Out-of-Baum - Modul Installation ohne automatischen Start installieren Teil: stackoverflow.com/questions/22783793/...
Ciro Santilli新疆改造中心法轮功六四事件

Antworten:

32

Verwenden von sudo:

  1. Bearbeiten Sie die /etc/modulesDatei und fügen Sie den Namen des Moduls (ohne die .koErweiterung) in eine eigene Zeile ein. Beim Booten versucht der Kernel, alle in dieser Datei genannten Module zu laden.

  2. Kopieren Sie das Modul in einen geeigneten Ordner /lib/modules/`uname -r`/kernel/drivers. In meinem Fall war dies /lib/modules/`uname -r`/kernel/drivers/pci. Dadurch wird das Modul in die Datenbank von modprobe gestellt. Ich weiß nicht, ob dies ein Link sein kann.

  3. Rennen depmod. Hier finden Sie alle Abhängigkeiten Ihres Moduls.

  4. Zu diesem Zeitpunkt habe ich neu gestartet und dann ausgeführt lsmod | grep module-name, um zu bestätigen, dass das Modul beim Start geladen wurde.

Weitere Informationen finden Sie auf den Manpages zu modprobe , lsmod und depmod .

Nate Lockwood
quelle
3
Ich habe Ihre Anweisungen befolgt, aber nichts hat funktioniert, bis der Anbieter einen debuggten Code geliefert hat !!! Ihre Antwort ist vollständig, einfach, und ich glaube, es hätte funktioniert, wenn keine Herstellerfehler aufgetreten wären. Ja, ich werde es akzeptieren.
Nate Lockwood