J'ai un module tiers pour aller avec une carte d'acquisition d'images. J'ai téléchargé la source du noyau, suivi les instructions du fournisseur pour la compiler et j'ai le module résultant, arvdrv.ko, assis dans un dossier.
Le vendeur a fourni un script qui charge le module dans le noyau et cela fonctionne lorsque je l'exécute; le module est chargé mais uniquement jusqu'au prochain démarrage. Le script n'utilise pas modprobe. Je peux accéder à la carte d'acquisition d'images lorsque le module est installé.
Il me semble que modprobe maintient une liste de nombreux modules. On peut éditer / etc / modules pour ajouter un nom de module et il se chargera au démarrage mais le module arvdrv n'est pas dans la liste de modprobe.
Ma question est de savoir comment informer modprobe du module? Doit-il être copié vers un nouvel emplacement et si oui, où?
Réponses:
En utilisant
sudo
:Modifiez le
/etc/modules
fichier et ajoutez le nom du module (sans l'.ko
extension) sur sa propre ligne. Au démarrage, le noyau essaiera de charger tous les modules nommés dans ce fichier.Copiez le module dans un dossier approprié dans
/lib/modules/`uname -r`/kernel/drivers
. Dans mon cas, c'était/lib/modules/`uname -r`/kernel/drivers/pci
. Cela placera le module dans la base de données de modprobe. Je ne sais pas si cela peut être un lien.Courez
depmod
. Cela trouvera toutes les dépendances de votre module.À ce stade, j'ai redémarré puis exécuté
lsmod | grep module-name
pour confirmer que le module a été chargé au démarrage.Consultez les pages de manuel pour modprobe , lsmod et depmod pour plus d'informations.
la source