水斯宁 / /system/data / /proc/devices和/dev/目录下文件的区别

分享

   

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

2017-06-03  水斯宁

/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
同时转发到微博

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多

    ×
    ×

    ¥.00

    微信或支付宝扫码支付:

    开通即同意《个图VIP服务协议》

    全部>>