如何正确重新加载内核模块?


12

相关问题

我无法重新加载用于尝试新标志的内核模块。
示例:thinkpad_acpi默认为不带fan_control=1。因此,如果我的计算机真的很热,而风扇没有达到全速运行,则有时可以临时加载模块,fan_control然后将风扇设置为可能的最高速度几分钟,然后将所有设备恢复为正常后置状态。
这是不可能的,因为似乎某些内核模块依赖于其他内核模块,并且现代Linux内核似乎正在对此进行检查。
所以到目前为止我做了什么:

  • 检查依赖项
    • modinfo -F depends thinkpad_acpi
  • 尝试卸载这些模块
    • rmmod 要么 modprobe -r $dependencies
    • 一些模块再次依赖于其他模块,也尝试卸载它们。即使没有“依赖项”也无效(或至少modinfo告诉我)
  • 谷歌很多 modprobe: FATAL: Module x is in use.
  • 阅读tldp

您可以随时更改该选项并重新启动。一个更好的问题是为什么您的计算机正在升温。
terdon

抱歉,重新启动确实是我不想执行的操作,并且计算机可能会变热,因为CPU负载过快,机盖合上或计算机在外面并且阳光明媚;)。
queryAllThings 2014年

好的,另一种选择是控制风扇速度。看一下相关的tthinkwiki页面:thinkwiki.org/wiki/How_to_control_fan_speed
terdon

1
我知道!Quote:要启用风扇控制,必须将模块参数fan_control = 1分配给thinkpad-acpi。我只想知道是否有可能重新加载内核模块。如果我正在调试无线,还需要用其他标志重新加载某些模块。
queryAllThings 2014年

不知道如何使用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 '17

Answers:


4

如果力卸载在内核(启用zgrep FORCE_UNLOAD /proc/config.gz=y),你可以rmmod -f有问题的内核模块,强制卸载它。

根据启用此功能补丁程序,这仅适用于内核开发人员和绝望的人们。

最好的办法可能是弄清楚模块的使用原因以及使用的过程,但至少可以通过强制卸载来重新加载模块。


2
这似乎是Debian上的默认设置。PS:在Debian /proc/config.gz上位于/boot/config-$(uname -r).gz
queryAllThings 2015年

grep FORCE_UNLOAD /boot/config-$(uname -r)在Ubuntu上。
sabalaba
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.