禾岑381 2024-12-04 18:28 采纳率: 100%
浏览 34
已结题

insmod: ERROR: could not insert module myfw.ko: Device or resource busy

我第一次加载成功了,后来再加载就是一直提示设备忙碌。谁能告诉我这是为什么QAQ,然后myfw那个模块的used by为什么是-1呀?

img

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    出现“Device or resource busy”的错误通常意味着内核模块已经被其他进程使用或内核内部资源被占用,因此无法再次加载。下面是一些可能的原因和解决方法:

    1. 模块已经加载:首先确认模块是否已经加载。可以使用lsmod命令查看已经加载的模块列表。如果myfw.ko模块已经加载,需要先卸载模块再尝试加载。可以使用modprobe -n myfw命令卸载模块(可能需要root权限)。
    2. 其他进程占用资源:可能有其他进程正在使用模块提供的资源或服务,导致模块无法重新加载。你可以使用ps aux | grep myfw命令查找是否有其他进程正在使用模块相关的资源。如果有相关进程在运行,需要先停止这些进程再尝试加载模块。
    3. 模块依赖问题:如果模块之间存在依赖关系,确保所有依赖的模块都已正确加载。可以使用modprobe -n <依赖模块>命令来检查并加载依赖模块。
    4. 文件系统权限问题:确认你有足够的权限加载模块。可能需要以root用户身份运行命令。可以使用sudo命令或者切换到root用户来尝试加载模块。

    关于模块的“Used by”显示为“-1”的问题,这通常表示内核模块的引用计数不正确或者存在某种异常状态。这可能是由于模块加载过程中的错误或其他内核问题导致的。可以尝试重新编译模块或检查内核日志来获取更多信息。

    综上所述,你可以按照以下步骤尝试解决问题:

    1. 确认模块是否已经加载,如果已经加载则先卸载模块。
    2. 检查是否有其他进程占用模块资源,并停止相关进程。
    3. 检查模块的依赖关系,确保所有依赖都已正确加载。
    4. 确认文件系统权限,以root用户身份运行命令尝试加载模块。
    5. 如果问题仍然存在,可以尝试重新编译模块或检查内核日志获取更多信息。

    希望这些解决方案能帮助你解决问题!如果还有其他问题,请随时提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月12日
  • 已采纳回答 12月4日
  • 修改了问题 12月4日
  • 创建了问题 12月4日