insmod: cannot insert 'memdev.ko': Device or resource busy的问题

本文记录了在尝试加载自编译的内核模块memdev.ko时遇到的问题及解决方案。作者首先描述了编译内核模块所需的前提条件,接着详细介绍了因设备号冲突导致的加载失败,并分享了如何更改设备号以解决问题的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译内核模块的时候,需要使用一个编译过的内核文件来支持,如果在makefile里面指定的内核路径下的内核未经过编译,在这里编译内核模块是不能通过的,这个比较重要。

编译完成之后,nfs起根文件系统。把测试程序和内核模块memdev.ko都拷贝到根文件系统下,进行测试。

可是遇到错误如下:

# ls test/                                                                      
app-mem    memdev.ko                                                            
# insmod memdev.ko                                                             
insmod: cannot insert 'memdev.ko': Device or resource busy    

 

于是使用  cat /proc/devices 命令查看系统已使用的设备号。

 

这才发现:静态申请的设备号没申请到,因为申请的号已经被系统占用了,所以会出现Device or resource busy
于是改掉主设备号,改成203,这个数字比较好,哈哈。

# ls -l /dev/   
crw-r--r--    1 0        0        203,   0 Apr 24 10:05 memdev0   
申请成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值