Bagaimana saya bisa memuat ulang modul kernel dengan benar?

12

Pertanyaan terkait

Saya tidak dapat memuat ulang modul kernel untuk mencoba flag baru.
Contoh: thinkpad_acpidefault tanpa fan_control=1. Jadi jika komputer saya berjalan sangat panas dan kipas tidak pergi ke kecepatan penuh kadang-kadang mungkin dapat digunakan untuk hanya memuat sementara modul fan_controldan mengatur kipas selama beberapa menit ke kecepatan tertinggi yang mungkin dan mengubah semuanya kembali ke kata penutup normal.
Ini tidak mungkin karena tampaknya beberapa modul kernel bergantung pada yang lain dan tampaknya kernel Linux modern memeriksa itu.
Jadi apa yang saya lakukan sejauh ini:

  • Memeriksa dependensi
    • modinfo -F depends thinkpad_acpi
  • Coba bongkar modul-modul ini
    • rmmod atau modprobe -r $dependencies
    • Beberapa modul bergantung lagi pada yang lain, coba bongkar juga. Tidak berfungsi, bahkan jika tidak ada 'dependensi' (atau setidaknya modinfo mengatakan itu kepada saya)
  • Google banyak untuk modprobe: FATAL: Module x is in use.
  • Membaca tldp
queryAllThings
sumber
Anda selalu dapat mengubah opsi dan reboot. Pertanyaan yang lebih baik adalah mengapa komputer Anda memanas.
terdon
Maaf, reboot adalah apa yang saya tidak ingin lakukan dan komputer saya mungkin menjadi panas karena beban CPU cepat, atau tutupnya tertutup, atau komputer di luar dan matahari bersinar;).
queryAllThings
OK, opsi lain adalah mengontrol kecepatan kipas Anda. Lihatlah halaman tthinkwiki yang relevan: thinkwiki.org/wiki/How_to_control_fan_speed
terdon
1
Aku tahu! Kutipan: Untuk mengaktifkan kontrol kipas, parameter modul fan_control = 1 harus diberikan ke thinkpad-acpi. Saya hanya ingin tahu apakah mungkin memuat ulang modul kernel. Jika saya melakukan debugging nirkabel, juga perlu memuat ulang beberapa modul dengan flag lain.
queryAllThings
Tidak tahu bagaimana hubungannya dengan snd_hda_intel $ sudo rmmod -f snd_hda_intel rmmod: ERROR: ../libkmod/libkmod-module.c:769 kmod_module_remove_module() could not remove 'snd_hda_intel': Resource temporarily unavailable rmmod: ERROR: could not remove module snd_hda_intel: Resource temporarily unavailable :: \
Tomislav Nakic-Alfirevic

Jawaban:

4

Jika force unload diaktifkan di kernel ( zgrep FORCE_UNLOAD /proc/config.gzmengatakan =y), Anda dapat rmmod -fmenggunakan modul kernel yang bermasalah, untuk memaksa unloadnya.

Menurut tambalan yang memungkinkan ini , ini hanya untuk pengembang kernel dan orang-orang yang putus asa.

Yang terbaik mungkin adalah untuk mencari tahu mengapa modul ini digunakan, dan dengan proses mana, tetapi setidaknya pemuatan paksa harus memungkinkan untuk memuat ulang modul lagi.

Alexander
sumber
2
Yang tampaknya menjadi default pada Debian. PS: On Debian /proc/config.gzberada di bawah /boot/config-$(uname -r).gz.
queryAllThings
dan grep FORCE_UNLOAD /boot/config-$(uname -r)di Ubuntu.
sabalaba