- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用涉及内核和用户空间代码的大型嵌入式软件(ARM 处理器、嵌入式 linux 2.6.31、busybox)。通常首先加载一个内核模块,守护进程与该模块建立网络链接套接字。
这里的问题是,在终止守护进程后,我无法再从内存中卸载模块:
% rmmod _module.ko
% rmmod: _module.ko: Resource temporarily unavailable
分析表明错误(返回值为 -11
,即 EAGAIN
?)是由 try_stop_module()
返回的在系统调用中调用 delete_module()
kernel/module.c
中的定义.函数 try_stop_module() 依次调用 stop_machine() 这就是我卡住的地方,因为
我不确定那里到底发生了什么。我认为根本原因是守护进程中的某个地方打开了与模块的连接,显然还有其他原因,并且在退出时没有正确关闭/清理(显然一些引用/锁没有被释放?)
还有谁知道还有什么要看和探索的吗?
最佳答案
检查与您的模块相关的所有接口(interface)是否都未“启动”。
如果与您的模块相关的任何接口(interface)处于“启动”状态,则 rmmod 将失败并返回 -11。
所以在调用 rmmod 之前,使用“netcfg”命令检查事件接口(interface)。然后使用 ifconfig,将您的界面设置为 'ifconfig <interface_name> down'
然后尝试运行rmmod <module_name>
.它会起作用的!!
1.netcfg <lists out all interfaces>
2.ifconfig <interface_name> down
3.rmmod <module_name>
关于linux - 无法 "rmmod"模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13847217/
#include #include #include #include #include #include #include #include #include #include
我在网上搜索过,但仍然没有找到答案。我按照http://ubuntuforums.org/showthread.php?t=800251上的指示进行操作。它编译正常,我可以进行 insmod 操作。消
我失败了 rmmod lcd_module.ko错误:删除“lcd_module”:设备或资源忙 lssmod 给我结果:lcd_module [永久] 如何取消这个选项?我想多次加载我的模块以进行测
我写了一个SPI设备驱动程序。由于某种原因,每次我使用 rmmod 时都会出现此错误。 root@am3517-evm:~# rmmod spi2.ko
你好,我是内核开发的新手, 创建了一个简单的程序: #include #include #include #include MODULE_LICENSE("Dual BSD/GPL"); in
我正在使用涉及内核和用户空间代码的大型嵌入式软件(ARM 处理器、嵌入式 linux 2.6.31、busybox)。通常首先加载一个内核模块,守护进程与该模块建立网络链接套接字。 这里的问题是,在终
我正在制作一个每秒进行一次 acpi 调用的 Linux 模块(目前仅持续 20 秒)。我希望它继续每秒进行 acpi 调用,直到它被删除。正如我所拥有的,我将模块放入循环中,如果我确实设置了此循环永
当设备在文件描述符(另一个 C++ 程序)中打开时,我尝试使用 rmmod 删除内核模块。当我关闭 C++ 程序时,我有这个: Unable to handle kernel paging reque
我写了下面的代码来创建一个内核线程: #include #include #include #include #include struct task_struct *task; int data;
我正在为 Linux 中的 block 设备驱动程序编写一个小示例。这个例子不完整,我一步一步来。我用blkdev_register注册了 block 设备,用alloc_disk分配了gendisk
尝试来自 LDD3 的最简单的内核模块无需对带有 BusyBox v1.23.0 的 Beagle Bone 板的自定义构建内核 v4.1.0-rc6 进行任何修改。该模块的代码如下: #includ
我是一名优秀的程序员,十分优秀!