如何在i.mx6dl开发板上移植udev并实现移动设备的自动挂载
来源:互联网 发布:九章算法 百度云 编辑:程序博客网 时间:2024/05/01 11:27
在整个移植过程中,我所使用的操作平台:
host:Ubuntu14.04 LTS
board:MCIMX6DL-SDP
udev版本:udev100
一、移植udev。
下载udev的源码并进行解压。解压完毕后进入目录,并修改Makefile文件中的CROSS_COMPILE字段,将其改为host下
交叉工具链。
注意:此处的交叉工具链名字后面不要有空格!!
修改CFLAGS,在后面添加-mfloat-abi=hard(一定要添加,一定要添加,一定要添加,重要的事情说三遍)
之后保存退出,并执行命令make,执行完后生成了相应的文件。将生成的文件中的udev,udevd,udevstart,udevinfo和
udevtest文件拷贝到根文件系统的/bin目录中。
注意:如果没有添加-mfloat-abi=hard,就会报出如下错误:
error:udev uses VFP register arguments,udev.o does not
二、修改/etc/fstab和/etc/init.d/rcS文件
fstab修改内容:
<span style="font-size:14px;">#device mount-point type options dump fsck orderproc /proc proc defaults 0 0tmpfs /tmp tmpfs defaults 0 0sysfs /sys sysfs defaults 0 0tmpfs /dev tmpfs defaults 0 0</span>
在这一步骤中,需要视情况而定。如果fstab中缺少tmpfs就添加tmpfs中的两个语句,如果缺少sysfs就添加sysfs的语句。
如果添加或修改了已存在的tmpfs或sysfs,这可能会导致意外的错误,比如你的内核可能会一直停留在”nonblocking
pool is initialized”处,无法跑起来。
rcS修改内容(在rcS中添加如下语句):
<span style="font-size:14px;">/bin/udevd --daemon/bin/udevstart</span>
添加完成后保存退出。
三、编写自动挂载u盘和sd卡的脚本
在/mnt目录下创建usb目录和sd目录,作为移动存储设备的挂载点。
u盘:
1、修改/etc/udev/udev.conf文件,添加如下内容:
<span style="font-size:14px;"> # 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=<value>".udev_log="err"</span>
2、在/etc/udev/rules.d目录下创建规则文件。
a、实现u盘自动挂载:sudovim 11-usb-add.rules
添加内容如下:
<span style="font-size:14px;">ACTION!="add",GOTO="farsight"KERNEL=="sd[a-z][0-9]",RUN+="/sbin/mount-usb.sh %k"LABEL="farsight"</span>
实现u盘卸载自动删除节点:sudovim 11-usb-remove.rules
<span style="font-size:14px;">ACTION !="remove",GOTO="farsight"SUBSYSTEM!="block",GOTO="farsight"KERNEL=="sd[a-z][0-9]",RUN+="/sbin/umount-usb.sh"LABEL="farsight"</span>
3、添加usb挂载脚本
在/sbin下创建mount-usb.sh文件并添加如下内容:
<span style="font-size:14px;">#!/bin/sh/bin/mount -t vfat /dev/$1 /mnt/usbsync</span>
在/sbin下创建umount-usb.sh文件并添加如下内容:
<span style="font-size:14px;">#!/bin/shsyncumount /mnt/usb</span>
添加完成后保存退出并将其权限修改为可执行。
SD卡:
1、在/etc/udev/rules.d目录下创建规则文件。
a、实现SD卡自动挂载:sudovim 12-sd-add.rules
添加如下内容:
<span style="font-size:14px;">ACTION!="add",GOTO="farsight"KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/sbin/mount-sd.sh %k"LABEL="farsight"</span>
实现sd卡卸载自动删除节点:sudovim 12-sd-remove.rules
添加如下内容:
<span style="font-size:14px;">ACTION!="remove",GOTO="farsight" SUBSYSTEM!="block",GOTO="farsight" KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/sbin/umount-sd.sh" LABEL="farsight"</span>
2、添加sd挂载脚本
在/sbin下创建mount-sd.sh文件并添加如下内容:
<span style="font-size:14px;">#!/bin/sh/bin/mount -t vfat /dev/$1 /mnt/sdsync</span>
在/sbin下创建umount-sd.sh文件并添加如下内容:
<span style="font-size:14px;">#!/bin/shsyncumount /mnt/sd</span>
添加完成后保存退出并将其权限修改为可执行。
- 如何在i.mx6dl开发板上移植udev并实现移动设备的自动挂载
- 如何开发板上移植udev并实现移动设备的自动挂载
- 飞思卡尔的i.mx6dl开发板上实现nfs网络文件系统挂载操作指南
- udev的移植--实现设备的自动创建加载
- 如何在udev自动创建设备节点
- 如何在移动设备上调试html5开发的网页
- 如何在移动设备上调试html5开发的网页
- 如何在移动设备上调试html5开发的网页
- 如何在移动设备上调试html5开发的网页
- i.MX6dl移植Ubuntu系统
- 无线网卡在i.MX27开发板上的移植
- 网页在移动设备上实现自动缩放
- 用udev自动挂载usb设备
- i.MX6DL学习记录---uboot移植
- i.MX6DL学习记录---kernel移植
- i.MX6DL学习记录---uboot移植
- 关于移动设备自动挂载的实现
- 如何在移动设备上运行 TensorFlow
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
- 讯飞语音包实现Android语音合成
- Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 解决方案
- Java学习·String
- Swift笔记:函数
- 如何在i.mx6dl开发板上移植udev并实现移动设备的自动挂载
- sqlserver2014自动安装
- 树莓派瞎玩~9~dns服务器
- 个人对webdriver的理解(一)
- 【凸包】HDU2202最大三角形
- android 图片压缩
- C++ STL编程轻松入门(1)
- js中confirm()函数的用法
- android 屏幕适配