【问题标题】:How to load kernel module after providing invalid parameter at boot?在启动时提供无效参数后如何加载内核模块?
【发布时间】:2015-12-10 18:31:02
【问题描述】:

长话短说,我在 Centos7 上,希望避免在内核模块被另一个模块替换之前加载它。我正在从无法更改 atm 的图像进行网络引导。所以除了内核参数我不能做任何修改。

我已经尝试过“modprobe.blacklist=kernelmodule”,但它似乎没有达到我想要的效果。如果我将通常在启动时加载的模块列入黑名单,即使“modprobe --show-config | grep black”将其显示为黑名单,它仍会加载。

我找到了另一种方法。如果我在启动时提供了无效参数,则不会加载模块。例如。如果我将“kernelmodule.blabla=yes”作为内核启动参数。但是这种方式甚至无法在启动后使用 modprobe 加载模块,因为它具有无效参数。有没有办法让内核忘记参数?或者也许有更好的方法?

【问题讨论】:

  • 您是否尝试过在该模块上使用 insmod 而不是 modprobe?
  • 参数在/sys/module/<module>/parameters/<parameter> 下共享,您可以随时更改它们,但并非所有模块都能处理并考虑更新的值。当然,您可以取消绑定或绑定任何模块,即使它已被编译。
  • 该模块在加载之前似乎没有出现在 /sys/modules/ 中。不过,我能够对其进行安装。不敢相信我自己没想到 - 谢谢。

标签: linux linux-kernel centos kernel-module centos7


【解决方案1】:

正如 Peter L. 所说,似乎可以使用 insmod 来避免内核强制任何参数。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 2023-03-27
    • 2014-09-04
    • 2020-03-27
    • 2012-03-14
    相关资源
    最近更新 更多