snifer

[原创]嵌入式系统UDEV的移植

0
阅读(4781)

感觉时间总是不够用,很多事情等着做,每年一度的嵌入式竞赛又拉开了帷幕,今年重点要用嵌入式进行SD卡和U盘的处理,今天刚刚完成的一个小项目与大家分享。


主要完成:移植udev 实验自动创建设备节点和自动挂在SD卡和U盘。

环境:1、  ubuntu 10.10发行版2、  FS_S5PC100平台3、  交叉编译器 arm-none-linux-gnueabi-gcc

步骤:

1、下载UDEV源码udev-080.tar.bz2,网址:

http://www.us.kernel.org/pub/linux/utils/kernel/hotplug/,并解压。

2、交叉编译。

修改Makefile,具体修改如下:

CROSS = arm-none-linux-gnueabi-

保存退出。

 

修改udevmointer.c,添加

#include  <stddef.h>

 

执行命令:make 进行编译,然后执行arm-none-linux-gnueabi-strip  udev  udevd udevstart  udevinfo  udevtest。并拷贝这些文件到rootfs/bin目录下面。

3、修改/source/rootfs/etc/fstab

#device          mount-point    type         options           dump             fsck order

proc               /proc              proc    defaults               0                      0

tmpfs             /tmp               tmpfs      defaults               0                         0

sysfs              /sys                sysfs       defaults               0                         0

tmpfs             /dev               tmpfs      defaults               0                         0

4、修改/source/rootfs/etc/init.d/rcS,添加如下内容

/bin/udevd  --daemon

/bin/udevstart

这样当我们插上U盘和SD卡的时候,就可以看到我们的设备节点而不需要手动创建设备节点。

5SD卡或U盘自动挂载的实现

拷贝实验代码中udev目录到 /source/rootfs/etc

拷贝mount-sd.sh umount-sd.sh mount-usb.sh umount-usb.shrootfs/sbin

这个时候当插入U盘或SD卡时就会自动挂载在tmp下。可以通过修改mount-sd.shmount-usb.sh添加其他功能和修改挂载点。

 

这样就能对SD卡和U盘进行读取操作,非常好的过程,谢谢大家!