udev移植
来源:互联网 发布:徐千雅最新网络歌曲 编辑:程序博客网 时间:2024/05/16 05:57
Udev是依赖于sysfs的,当系统中添加一个新的设备后,内核检测到后就会产生一个hotplug event并查找/proc/sys/kernel/hotplug去找出管理设备连接的用户空间程序,若udev已经启动,内核会通知udev去检测 sysfs中关于这个新设备的信息并创建设备节点。如/dev/vcs,在/sys/class/tty/vcs/dev存放的是”7:0”,既/dev /vcs的主次设备号。
并且udev还会根据/etc/udev/rules.d中的规则文件实现一些相应的功能。
udev-070.tar.bz2移植
1 下载 https://www.kernel.org/pub/linux/utils/kernel/hotplug/
解压 tar jxvf udev-070.tar.bz2
修改Makefile
CROSS = arm-none-linux-gnueabi-
2 make
成功后会生成 udev udevd udevstart udevinfo udevtest等工具
3 cp udevstart udevd /home/steven/NFS/rootfs/sbin/
4 修改etc/init.d/rcS添加
/sbin/udevd --daemon
/sbin/udevstart
5 修改fstab文件如下
proc /proc proc defaults 0 0
6 在etc/目录下建立udev目录
并在该目录下建立udev.conf配置文件,内容为
# udev.conf
# The initial syslog(3) priority: "err", "info", "debug" or its
# numerical equivalent. For runtime debugging, the daemons internal
# state can be changed with: "udevcontrol log_priority=".
udev_log="err"
8 添加USB和SD卡的自动挂载和自动卸载规则
在/etc/udev/目录下建立文件rules.d
参考 网上的规则
*******************************************
实现U盘自动挂载
Vim 11-add-usb.rules
添加如下内容
ACTION!="add",GOTO="farsight"
KERNEL=="sd[a-z][0-9]",RUN+="/sbin/mount-usb.sh %k"
LABEL="farsight"
这个文件中ACTION后是说明是什么事件,KERNEL后是说明是什么设备比如sda1,mmcblk0p1等,RUN这个设备插入后去执行哪个程序%k是传入这个程序的参数,这 里%k=KERNEL的值也就是sda1等。
在/sbin/下创建mount-usb.sh文件添加如下内容
#!/bin/sh
/bin/mount -t vfat /dev/$1 /tmp
sync
修改文件权限为其添加可执行的权限。
这样就实现了U盘的自动挂载,下面附上U盘的卸载规则文件和sd卡的文件
Usb卸载
11-add-remove.rules
ACTION !="remove",GOTO="farsight"
SUBSYSTEM!="block",GOTO="farsight"
KERNEL=="sd[a-z][0-9]",RUN+="/sbin/umount-usb.sh"
LABEL="farsight"
umount-usb.sh
#!/bin/sh
sync
umount /tmp/
SD卡挂载
ACTION!="add",GOTO="farsight"
KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/sbin/mount-sd.sh %k"
LABEL="farsight"
mount-sd.sh
#!/bin/sh
/bin/mount -t vfat /dev/$1 /tmp
Sync
SD卡卸载
ACTION !="remove",GOTO="farsight"
SUBSYSTEM!="block",GOTO="farsight"
KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/sbin/umount-sd.sh"
LABEL="farsight"
umount-sd.sh
#!/bin/sh
sync
umount /tmp/
*******************************************
完成后测试,SD卡可以自动的加载和卸载,卸载后会即时删除目录,udev比mdev好用
0 0
- udev 移植
- 移植UDEV
- 移植UDEV
- udev移植
- UDEV的移植
- arm平台udev的移植
- 【实验十四】 UDEV的移植
- udev
- udev
- udev
- udev
- udev
- udev
- udev
- udev
- udev
- udev
- udev
- Python的正则表达式
- iOS 7 教程:定制iOS 7中的导航栏和状态栏
- C++ Primer 学习笔记3 a变量和基本类型
- 【Linux】Cat命令用法详解
- [Android] ImageView.ScaleType设置图解
- udev移植
- Yii PHP 框架分析(二)
- Ubuntu 14.04 Adminer安装,替换phpmyadmin的最佳选择
- #ifndef#define#endif的用法
- 文件工具类FileUtils的使用
- list、vector、deque、map以及set类型分别使用的情况
- 查询表空间情况
- OllyDbg之汇编语言回顾
- TCP协议实现原理