分类: 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