首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

加载驱动后/dev目录下的设备文件为什么打不开,该怎么处理

2012-04-06 
加载驱动后/dev目录下的设备文件为什么打不开# insmod second.ko# cat /proc/devicesCharacter devices:1

加载驱动后/dev目录下的设备文件为什么打不开
# insmod second.ko 
# cat /proc/devices 
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  6 lp
  7 vcs
 10 misc
 13 input
 14 sound
 21 sg
 29 fb
116 alsa
128 ptm
136 pts
162 raw
180 usb
189 usb_device
216 rfcomm
251 second
...
# mknod /dev/second c 251 0
# ./second_test 
Device open failure
试着打开/dev目录下的普通文件是没问题的,但打开设备文件就是打不开,
我记得上次还是没问题的,为什么现在打不开设备文件呢?





[解决办法]
顺带在应用程序里把open的错误原因也打出来
用perror
[解决办法]
对头,单凭Device open failure很难判断是哪里出现问题。
[解决办法]
看应用程序里的主设备号是不是写错了

[解决办法]
看下/dev/second在不在
驱动的open接口有没有问题?
[解决办法]
在驱动层有无实现该文件节点的open file_operation 函数按照经验来看 现在的/dev/都是通过udev自动创建的,你上层虽然open了函数,但是底层驱动如果没有对应的open动作的支持依然是打不开
[解决办法]
你有在open函数中加打印吗?看到哪步会出错,个人感觉 象是在init创建设备节点时候的问题
[解决办法]
刚进入open的时候 printk下 下面动态定时器 加个printk下 最后快结束的时候 再加个prinrk
然后在上层试图open 如果不行的话,你demesg下看看 哪句话有打印,哪句没打印.如果一句没有说明出在你的设备节点创建的问题上.
[解决办法]
一般现在的/dev/下节点都是由udev去自动创建,他在/sys/class下也有对应的设备节点 你可以去那看看能否open

热点排行