gpt4 book ai didi

linux-kernel - 如何删除失败的内核模块

转载 作者:行者123 更新时间:2023-12-03 13:34:47 26 4
gpt4 key购买 nike

这种情况总是困扰着我:

我写了一个内核模块,有时它有一个错误(取消引用 NULL 指针)。在我 insmod hello.ko 之后,它显示了一些内核错误。
然后我更改代码,并尝试删除模块并重新安装。
问题是:我不知道如何删除内核模块。

$ rmmod hello

ERROR: module hello in use

$ rmmod -f hello

ERROR: removing hello: device or resource busy



我总是重新启动机器以删除模块,这需要太长时间。有没有人对此有更好的解决方案?感谢您的任何意见。

最佳答案

使用虚拟机。

一旦您犯了 NULL 取消引用或其他此类错误,您就将内核置于未知状态。即使您确实设法删除了模块(这不太可能;内核 OOPS 会杀死调用线程,因此它永远不会有机会减少引用计数 - 模块永远不会被删除)可能仍然存在留下的腐败,你的新“固定”模块同样可能有麻烦。

最好只使用快速重启的虚拟机——也许使用快照,以使恢复更快。

关于linux-kernel - 如何删除失败的内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com