理解Linux文件系统和设备文件系统.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux文件系统和设备文件系统 主要内容 Linux文件系统目录结构 sysfs文件系统及测试 设备文件系统及测试 一、Linux文件系统目录结构 一、Linux文件系统目录结构(续) 查看系统中注册的设备 查看系统中注册的设备(续) 二、sysfs文件系统 二、sysfs文件系统(续) 二、sysfs文件系统(续) 二、sysfs文件系统(续) 二、sysfs文件系统(续) 二、sysfs文件系统(续) 二、sysfs文件系统(续) 三、设备文件系统 /dev是设备文件的存放目录,那怎么生成相应的设备文件节点呢?使用设备文件系统udev。 udev完全工作在用户空间,利用设备加入或者移除时内核向应用层发送的热插拔事件来工作。 热插拔时,设备的详细信息会由内核输出到sysfs文件系统中,udev利用sysfs的信息来动态创建和删除设备文件或者执行其它动作。 mdev(udev的精简版本)的原理 执行mdev -s :以‘-s’为参数调用? /sbin/mdev,mdev扫描 /sys/class 和 /sys/block 中所有的类设备目录,如果在目录中含有名为“dev”的文件,且文件中包含有设备号,则mdev就利用这些信息为这个设备在/dev 下创建设备节点文件。一般只在启动时才执行一次 “mdev -s”。 mdev的原理(续) 热插拔事件:由于启动时运行了命令:echo /sbin/mdev /proc/sys/kernel/hotplug ,那么当有热插拔事件产生时,内核就会调用/sbin/mdev。这时mdev通过环境变量中的 ACTION 和 DEVPATH,来确定此次热插拔事件的动作及影响了/sys中的哪个目录。接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为这个设备在/dev下创建设备节点文件。 mdev的使用 在启动时加上使用mdev的命令: # 挂载/sys为sysfs文件系统 ? ? /bin/mount -t sysfs sysfs /sys ? ? # 启动mdev程序 /bin/echo /sbin/mdev /proc/sys/kernel/hotplug ? ? mdev -s mdev的使用(续) mdev的使用(续) mdev的使用(续) mdev的使用(续) mdev的实验 将rootfs/etc/inittab文件中的“::sysinit:/bin/echo /sbin/mdev /proc/sys/kernel/hotplug”语句注释掉 重新编译固件,然后测试SD卡能否自动识别? Any Questions? * * * /dev: 设备文件存储目录。 /lib: 库文件目录。 /var: 这个目录的内容经常变动,如/var/log目录被用来存放系统日志。 /etc: 系统配置文件所在目录。 /proc: 系统运行时,进程和内核信息存放在这里。 /bin: 包含基本命令。 /mnt: 用来存放挂载存储设备的挂载目录。 /usr: 存放用户程序的目录。 /tmp: 用来存放临时文件。 /sys: sysfs文件系统被映射到此目录。 /sbin: 存放系统管理的命令,是超级用户root的可执行命令存放地。 /root: 超级用户root的家目录 输入命令: cat /proc/devices 查看系统中注册的设备。 分为“Character devices”和“Block devices”。 第1列为主设备号,第2列为设备名。 输入命令: ls –l /dev/ 也可以查看系统注册的设备文件。 日期的前两列对应于设备的主设备号和次设备号。 输入命令: ls -l /sys 查看sysfs文件系统目录。 sysfs文件系统把连接在系统上的设备和总线组织成一个个分级的文件,向用户空间导出内核数据结构以及它们的属性,并可以由用户空间存取。 输入命令: echo xxx /sys/devices/platform/hhtech_gpio/backlight_level 调节LCD屏的背光亮度。其中,“xxx”的范围是0~100,分别对应背光的最小值和最大值。 输入命令: cat /sys/devices/platform/hhtech_gpio/backlight_level 读取当前LCD屏的背光亮度。 修改drivers/char/hhtech_gpio.c,添加如下内容: static DEVICE_ATTR(backlight_level, 0666, hhtech_sysfs_show_backlight_level, hhtech_sysfs_store_backlight_level); 创建和初

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档