J'essaie d'ajouter un pilote pour un matériel spécifique au démarrage.

Le fichier du module se trouve à /lib/modules/4.4.0-66-generic/kernel/drivers/misc/. J'ai aussi essayé /lib/modules/4.4.0-66-generic/kernel/drivers/misc/.

Le module est chargé avec succès avec la commande :

$ sudo insmod /lib/modules/4.4.0-66-generic/kernel/drivers/misc/tmk1553b.ko d0=1 t0="MRTAI" nrt=8 misc=1

Mais impossible de charger le module au démarrage.

Configuration:

Système d'exploitation : Ubuntu 16.04.2

$ uname -a
Linux dmitry-ws2 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

tmk1553b d0=1 t0="MRTAI" nrt=8 misc=1

Commande faite :

$ depmod

Après le redémarrage de l'ordinateur ou du service, le module systemd-load-module tmk1553bn'apparaît pas dans la liste des modules du noyau chargés.

Le diagnostic renvoie une Failed to find module "tmk1553b ..."erreur.

$ sudo systemctl restart systemd-modules-load.service 
Job for systemd-modules-load.service failed because the control process exited with error code. See "systemctl status systemd-modules-load.service" and "journalctl -xe" for details.
$ systemctl status systemd-modules-load.service 
● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since Чт 2017-03-30 11:22:17 MSK; 25s ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 3971 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 3971 (code=exited, status=1/FAILURE)

мар 30 11:22:17 dmitry-ws2 systemd[1]: Stopped Load Kernel Modules.
мар 30 11:22:17 dmitry-ws2 systemd[1]: Starting Load Kernel Modules...
мар 30 11:22:17 dmitry-ws2 systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
мар 30 11:22:17 dmitry-ws2 systemd[1]: Failed to start Load Kernel Modules.
мар 30 11:22:17 dmitry-ws2 systemd[1]: systemd-modules-load.service: Unit entered failed state.
мар 30 11:22:17 dmitry-ws2 systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
$ journalctl -xe
мар 30 11:22:17 dmitry-ws2 sudo[3968]:   dmitry : TTY=pts/1 ; PWD=XXX; USER=root ; COMMAND=/bin/systemctl restart systemd-modules-load.service
мар 30 11:22:17 dmitry-ws2 sudo[3968]: pam_unix(sudo:session): session opened for user root by dmitry(uid=0)
мар 30 11:22:17 dmitry-ws2 systemd[1]: Stopped Load Kernel Modules.
-- Subject: Завершена остановка юнита systemd-modules-load.service.
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Процесс остановки юнита systemd-modules-load.service был завершен.
мар 30 11:22:17 dmitry-ws2 systemd[1]: Starting Load Kernel Modules...
-- Subject: Начинается запуск юнита systemd-modules-load.service
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Начат процесс запуска юнита systemd-modules-load.service.
мар 30 11:22:17 dmitry-ws2 systemd-modules-load[3971]: Failed to find module 'tmk1553b d0="1" t0="MRTAI" nrt=8 misc=1'
мар 30 11:22:17 dmitry-ws2 systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
мар 30 11:22:17 dmitry-ws2 systemd[1]: Failed to start Load Kernel Modules.
-- Subject: Ошибка юнита systemd-modules-load.service
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Произошел сбой юнита systemd-modules-load.service.
-- 
-- Результат: failed.

Qu'est-ce qui ne va pas ?

MISE À JOUR 1 :

$ cat /lib/modules/4.4.0-66-generic/modules.dep | grep tmk1553b
kernel/drivers/misc/tmk1553b.ko:

modprobe la commande revient avec succès

$ sudo modprobe tmk1553b d0=1 t0="MRTAI" nrt=8 misc=1

MISE À JOUR 2:

Actions que j'ai effectuées lors de l'installation du pilote :

$ cp tmk1553b.ko /lib/modules/`uname -r`/kernel/drivers/misc/
$ echo tmk1553b d0=1 t0="MRTAI" nrt=8 misc=1 >> /etc/modules
$ depmod
$ reboot

Cette séquence fonctionne bien sur Ubuntu 14.04 mais échoue sur Ubuntu 16.04.2

answer

Afin d'être chargé avec succès au démarrage, votre module doit être chargeable en utilisant modprobeau lieu de insmod. Vous pouvez essayer d'utiliser :

modprobe tmk1553b d0=1 t0="MRTAI" nrt=8 misc=1

L'exécution sudo depmodest nécessaire après l'installation du module sous le chemin /lib/modules/$(uname -r). Vous pouvez le confirmer en recherchant votre fichier de module dans le fichier :

/lib/modules/$(uname -r)/modules.dep

Les enquêtes ont révélé que systemd est incapable de charger les modules avec des options. La solution a fonctionné pour moi :

  • placer le nom du module sur /etc/modules
  • placer les options du module sur /etc/modprobe.d/options-tmk1553b.conf
$ cat /etc/modules
tmk1553b
$ cat /etc/modprobe.d/options-tmk1553b.conf
options tmk1553b d0=1 t0="MRTAI" nrt=8 misc=1

Il semble que ce soit un comportement courant pour les distributions Linux avec le systemdsystème d'initialisation