systemd-modules-load tidak dapat menemukan modul

Sep 01 2020

Dengan adanya modul kernel, my-module.ko, saya telah mengambil langkah-langkah berikut untuk mencoba dan memuat modul secara otomatis saat boot:

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

Tidak peduli variasi apa yang saya coba, kesalahannya selalu sama:

● 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.

Secara khusus, " Gagal menemukan modul ." Saya dapat menjalankan modprobe my-moduledan modul ditemukan dan dimuat dengan baik. Saya mengabaikan sumber untuk systemd dan libkmod, dan direktori modul default /lib/modules/$(uname -r)seperti yang diharapkan. Juga nama ini dibandingkan terhadap berbagai file modules.dep, modules.aliasdll sehingga layanan teknis harus dapat menemukannya.

Apa lagi yang bisa saya coba agar ini berfungsi? Saya lebih suka menggunakan layanan systemd-modules-load daripada menulis layanan saya sendiri yang melakukan hal yang hampir sama.

Spesifikasi Sistem: ARMv7, Debian, Linux Kernel v4.9.37, Systemd v241-7 ~ deb10u2; Catatan: depmod adalah simlink ke busybox

Jawaban

TekuConcept Sep 02 2020 at 23:13

Setelah pemeriksaan lebih dekat dari dalam libkmod, saya menemukan bahwa modules.dep.binitu digunakan sebagai file sumber referensi sebagaimana yang diinginkan modules.dep.

ls -al /sbin | grep depmod menghasilkan depmod -> /bin/busybox

Mengubah segalanya:

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

Sekarang semuanya bekerja dengan baik! Ternyata versi busybox dari depmod tidak memperbarui module.dep.binfile dengan benar - oleh karena itu mengapa systemd " Gagal menemukan modul ."