linux驱动调用device_create不能自动创建设备节点

chinayangbo2011 2013-05-06 08:20:59
linux驱动调用device_create调用成功,但是dev目录下却设备节点,class都目录下的类都出现了,就是没有设备节点,怎么回事,有人说是udev什么的问题,我不太懂,求高人指点一下。开发板是s3c6410,文件系统是资料带的yaffs文件系统
...全文
1953 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
w8708812 2014-01-09
  • 打赏
  • 举报
回复
mdev -s 的作用是扫描,真正需要有个监护程序来查看,如果又插入就创造节点,有拔出就删除节点,问题出在没有监护程序,有监护程序不需要人去管 http://blog.csdn.net/t_jorney/article/details/8756402,仅作参考
__Howl 2013-08-08
  • 打赏
  • 举报
回复
引用 4 楼 lubing20044793 的回复:
大哥,执行mdev -s命令试试看
问题又来了,使用了mdev -s命令,断电重启,设备节点还是在那里,rmmod也删除不掉。
__Howl 2013-08-08
  • 打赏
  • 举报
回复
引用 4 楼 lubing20044793 的回复:
大哥,执行mdev -s命令试试看
我搞了很久,使用misc设备,在dev下也没有看到设备节点,输入这个命令就全部都看见了。。我在6410上使用yaffs2文件系统不需要这个命令,而在atmel at91sam9x35上使用ubi文件系统,则需要这命令,这个是不是跟文件系统的类型有关呢,??
lishi-1991 2013-06-03
  • 打赏
  • 举报
回复
驱动里面肯定会有这句话吧
#define DEVICE_MAJOR     ***//设备节点号
	//device_name	你想要在/dev/下生成的驱动节点名称
	printk ("make node for device_name with 'mknod /dev/device_name c %d %d '\n",DEVICE_MAJOR ,ret);
你编个脚本insmod 驱动 然后加上mknod /dev/device_name c %d %d就行了
lubing521 2013-06-03
  • 打赏
  • 举报
回复
大哥,执行mdev -s命令试试看
u010911648 2013-05-31
  • 打赏
  • 举报
回复
/dev下面的设备节点一般由两种方式创建的,一者是mknod手动创建,另外就是驱动中创建新设备的时候,会往udev类的用户程序上报一个DEVICE_ADD的事件,udev接收到设备添加事件后就会在/dev下创建设备节点了。
Chris_xi 2013-05-07
  • 打赏
  • 举报
回复
class_create为该设备创建一个class,再为每个设备调用 class_device_create创建对应的设备。其实没所谓,找个其他驱动照着改一下即可,gpio就可以

21,619

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧