Vraag Hoe de module van derden te installeren zodat deze tijdens het opstarten wordt geladen?


Ik heb een module van derden voor een framegrabber. Ik heb de kernelbron gedownload, de instructies van de leverancier gevolgd om deze te compileren en de resulterende module, arvdrv.ko, in een map te plaatsen.

De leverancier heeft een script geleverd dat de module in de kernel laadt en het werkt als ik het uitvoer; de module is geladen, maar alleen tot de volgende keer opstarten. Het script maakt geen gebruik van modprobe. Ik heb toegang tot de framegrabber wanneer de module is geïnstalleerd.

Het lijkt mij dat modprobe een lijst bijhoudt van vele modules. Men kan / etc / modules bewerken om een ​​modulenaam toe te voegen en deze zal tijdens het booten worden geladen, maar de module arvdrv staat niet in de lijst van modprobe.

Mijn vraag is hoe modprobe van de module op de hoogte te stellen? Moet het worden gekopieerd naar een nieuwe locatie en zo ja waar?


15
2018-05-24 21:21


oorsprong


Uiteindelijk ontdekte ik dat het probleem dat ik had na het vinden van de "juiste" manier was dat de leverancier vergat een extra initialisatiescript op te nemen zodat het stuurprogramma werd geladen tijdens het opstarten maar niet. - Nate Lockwood


antwoorden:


As sudo:

  1. Bewerk de /etc/modules bestand en voeg de naam van de module (zonder de extensie .ko) toe aan zijn eigen regel. Bij het opstarten probeert de kernel alle modules te laden die in dit bestand worden genoemd.

  2. Kopieer de module naar een geschikte map in /lib/modules/`uname -r`/kernel/drivers. In mijn geval was dit /lib/modules/`uname -r`/kernel/drivers/pci. Dit plaatst de module in de database van modprobe. Ik weet niet of dit een link kan zijn.

  3. Rennen depmod. Dit zal alle afhankelijkheden van uw module vinden.

  4. Op dit punt heb ik opnieuw opgestart en vervolgens uitgevoerd lsmod | grep module-name om te bevestigen dat de module is geladen tijdens het opstarten.

Zie de manpagina's voor modprobe, lsmod, en depmod voor meer informatie.


21
2018-06-12 16:12



Ik heb je instructies gevolgd maar niets werkte totdat de leverancier een foutopsporingscode had geleverd !!! Uw antwoord is compleet, eenvoudig en ik geloof dat het zou hebben gewerkt als er geen leveranciersfouten waren geweest. Ja, ik zal het accepteren. - Nate Lockwood