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?
Antworten:
Verwenden von
sudo
:Bearbeiten Sie die
/etc/modules
Datei und fügen Sie den Namen des Moduls (ohne die.ko
Erweiterung) in eine eigene Zeile ein. Beim Booten versucht der Kernel, alle in dieser Datei genannten Module zu laden.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.Rennen
depmod
. Hier finden Sie alle Abhängigkeiten Ihres Moduls.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 .
quelle