systemd-modules-loadがモジュールを見つけることができません

systemd-modules-loadがモジュールを見つけることができません

カーネルモジュールmy-module.koが与えられたら、起動時にモジュールを自動ロードするために、次の手順を実行しました。

cp my-module.ko /lib/modules/$(uname -r)/my-module.ko
echo my-module >> /etc/modules-load.d/my-module.conf
# alt: echo my-module >> /etc/modules
echo my-module.ko: >> /lib/modules/$(uname -r)/modules.dep
# alt: depmod
systemctl restart systemd-modules-load
# alt: reboot the machine

どのようなバリエーションを試しても、エラーは常に同じです。

● 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 <date>; 9s ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 318 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 318 (code=exited, status=1/FAILURE)

Feb 14 03:19:58 localhost systemd[1]: Starting Load Kernel Modules...
Feb 14 03:19:58 localhost systemd-modules-load[318]: Failed to find module 'my-module'
Feb 14 03:19:58 localhost systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
Feb 14 03:19:58 localhost systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
Feb 14 03:19:58 localhost systemd[1]: Failed to start Load Kernel Modules.

具体的にはモジュールが見つかりません実行できmodprobe my-module、モジュールがよく見つかり、ロードされます。 systemdとlibkmodのソースを無視し、デフォルトのモジュールディレクトリは/lib/modules/$(uname -r)期待どおりに機能しました。さらに、その名前はさまざまなファイルmodules.depなどと比較されるため、modules.aliasサービスは技術的にそれらを見つけることができるはずです。

機能させるには何を試すべきですか?私はほぼ同じことをするために自分で書くよりもsystemd-modules-loadサービスを使う方が好きです。

システム仕様:ARMv7、Debian、Linux Kernel v4.9.37、Systemd v241-7〜deb10u2注:depmodはbusyboxのsimlinkです。

答え1

modules.dep.binlibkmodの内部を詳しく調べたところ、.libファイルではなく参照ソースファイルとして使用されることがわかりましたmodules.dep

ls -al /sbin | grep depmod生産depmod -> /bin/busybox

いくつか変更してください。

rm /sbin/depmod
apt install kmod
ln -s /usr/bin/kmod /sbin/depmod
depmod

今、すべてがうまくいっています! depmodのbusyboxバージョンがファイルを正しく更新できないことがわかりましたmodule.dep.bin。これがsystemdの理由です。」モジュールが見つかりません」。

関連情報