分类: LINUX
2008-07-30 11:07:50
6.17 在用户空间的验证 Insmod 时产生错误: xiyoulinux@xiyoulinux-desktop:~/lsaism/globalmem$ sudo insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1 Device or resource busy 可能原因:主设备号冲突; 删掉静态申请,直接用动态申请,通过: //if(globalmem_major) // result = register_chrdev_region(devno,1,"globalmem"); // else // { result = alloc_chrdev_region(&devno,0,1,"globalmem"); globalmem_major = MAJOR(devno); //} xiyoulinux@xiyoulinux-desktop:~/lsaism/globalmem$ sudo insmod globalmem.ko xiyoulinux@xiyoulinux-desktop:~/lsaism/globalmem$ xiyoulinux@xiyoulinux-desktop:/$ sudo echo 'hello ‘ > /dev/globalmem bash: /dev/globalmem: Permission denied 写: 给globalmem文件x 属性; xiyoulinux@xiyoulinux-desktop:~/lsaism/globalmem$ sudo chmod 777 /dev/globalmem xiyoulinux@xiyoulinux-desktop:~/lsaism/globalmem$ sudo echo 'hello'>/dev/globalmem xiyoulinux@xiyoulinux-desktop:~/lsaism/globalmem$ 读: xiyoulinux@xiyoulinux-desktop:~/lsaism/globalmem$ cat /dev/globalmem hello
niutao.linux2008-07-30 20:03:56
由于globalmem字符驱动程序带有一个参数就是globalmem_major,就是指定主设备号的,程序中默认的是254,但在ubuntu系统上,254已经被占用,所以才会出现插入时出错,这时可以在插入时指定主设备号: sudo insmod globalmem.ko globalmem_major=252