打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
/proc/devices和/dev/目录下文件的区别

/proc/devices和/dev/目录下文件的区别

2013-07-19 16:25阅读:
//*************************************************
转自http://blog.sina.cn/dpool/blog/s/blog_8c5b746601014jp6.html?vt=4
//*************************************************
/proc/devices/下的设备是驱动程序生成的,它可产生一个major供mknod作为参数。
/dev/下的设备是通过mknod加上去的,用户通过此设备名来访问驱动。
The following script, scull_load, is part of the sculldistribution. The user of a driver that is distributed in the formof a module can invoke such a script from the system's rc.localfile or call it manually whenever the module is needed.
#!/bin/sh
module='scull'
device='scull'
mode='664'
# invoke insmod with all arguments we got
# and use a pathname, as newer modutils don't look in . bydefault
/sbin/insmod ./$module.ko $* || exit 1
# remove stale nodes
rm -f /dev/${device}[0-3]
major=$(awk '\\$2= =\'$module\' {print \\$1}' /proc/devices)
mknod /dev/${device}0 c $major 0
mknod /dev/${device}1 c $major 1
mknod /dev/${device}2 c $major 2
mknod /dev/${d
加载中...
内容加载失败,点击此处重试
加载全文
evice}3 c $major 3
# give appropriate group/permissions, and change the group.
# Not all distributions have staff, some have 'wheel'instead.
group='staff'
grep -q '^staff:' /etc/group || group='wheel'
chgrp $group /dev/${device}[0-3]
chmod $mode /dev/${device}[0-3]
请问:linux环境下,/dev/目录下的内容与/proc/下文件devices中的内容有什么区别?我在目标板上做实验时发现,当我向板子上加载驱动模块时,devices文件中有变化,而/dev下根本没有变化,/dev/下不也应该是设备接点吗,为什么为模块建立设备接点时,/dev/下却没有变化呢?
请各位帮帮忙,谢谢!!!
/proc/devices/中的设备是通过insmod加载到内核的,它可产生一个major供mknod作为参数。
/dev/*.* 是通过mknod加上去的,格式:mknod device1 c/b major minor 如:mknod dr1c 254 0,用户通过此设备名来访问你的驱动。
请问:linux环境下,/dev/目录下的内容与/proc/下文件devices中的内容有什么区别?我在目标板上做实验时发现,当我向板子上加载驱动模块时,devices文件中有变化,而/dev下根本没有变化,/dev/下不也应该是设备接点吗,为什么为模块建立设备接点时,/dev/下却没有变化呢?
请各位帮帮忙,谢谢!!!
/proc/devices/中的设备是通过insmod加载到内核的,它可产生一个major供mknod作为参数。
/dev/*.* 是通过mknod加上去的,格式:mknod device1 c/b major minor 如:mknod dr1c 254 0,用户通过此设备名来访问你的驱动。
设备文件 ,设备编号 #ll -a /dev 在每一行都可以看到设备文件、设备编号(主、次)
对于每种硬件设备,系统内核有相应的设备驱动程序负责对它的处理。而在Unix中,使用设备文件的方式来表示硬件设备,每种设备驱动程序都被抽象为设备文件的形式,这样就给应用程序一个一致的文件界面,方便应用程序和操作系统之间的通信。
习惯上,所有的设备文件 都放置在/dev 目录下。
/proc/devices/中的设备是通过insmod加载到内核的,它可产生一个major供mknod作为参数 。
/dev/*.* 是通过mknod加上去的,格式:mknod device1 c/b major minor 如:mknod dr1c 254 0,用户通过此设备名来访问你的驱动。
mknod - make block or character special files
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
option 有用的就是 -m 了
name 自定义
type 有 b 和 c 还有 p
主设备号
次设备号
主设备号是由/usr/src/linux/include/linux/major.h定义的,如下定义了一个DOC设备:
#define IGEL_FLASH_MAJOR 62
假如有一个命令mknod doc b 62 0 :
其中的doc为定义的名字,b指块设备,0指的是整个DOC。如果把0换为1,则1指的是DOC的第一个分区。2是第2个,依次类推。
N
同时转发到微博
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
创建设备节点文件以及主次设备号
Linux Serial HOWTO 中译版: 串口的名称是什么?
misc_device设备不用在/dev创建设备文件?如何查看次设备号?
基于 SquashFS 构建 Linux 可读写文件系统
misc_register 与字符设备 区别
Linux内核实践 - 如何添加网络协议[三]:实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服