立即注册
查看: 2607|回复: 9

[linux技术资料转载] 迅为4418开发板实现最小Linux系统自动挂载SD/TF卡/U盘等

已绑定手机
发表于 2017-6-6 09:37:10 | 显示全部楼层 |阅读模式 来自 北京市
迅为4418/6818开发板实现最小Linux系统自动挂载SD/TF/U盘等存储设备
在论坛里找到的,先做个笔记以后用到随时看
TB2IieHhrFlpuFjy0FgXXbRBVXa_!!684017536.jpg

通过 mdev 工具实现 U 盘和 SD/TF 卡的自动挂载步骤如下:
一、配置内核
配置内核支持 USB大容量存储
1)先覆盖缺省文件
cp config_for_linux_scp_elite .config
2.jpg

2#make menuconfig
选择 Device Drivers -->
USB support -->
<*> Support for Host-side USB
<*> OHIC HCD support
<*> UHCI HCD (most Intel and VIA) support
<*> SL811HS HCD support
<*> USB Mass Storage support
选择完成后保存退出。
3)接着开启内核热插拔,在内核根目录下的.config 文件中添加如下内容:
#vim .config
CONFIG_KALLSYMS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_NET=y
3.jpg 保存退出,执行 make 命令生成 zImage 系统镜像。
二、配置 busybox
在系统编程文档的第二章中已经提供了搭建支持最小 Linux 的过程,这里就不过多解释说
明。在这里我们我们只给出支持 usb 热插拔的相关配置。
1#make menuconfig
选择 Linux System Utilities --->
  • mdev
  • Support /etc/mdev.conf
  • Support subdirs/symlinks
  • Support regular expressions substitutions when
renaming device
  • Support command execution at device
addition/reMOVal
保存退出,参照系统编程文档第二章使用命令编译生成 system.img 系统镜像。

三、添加对热插拔事件响应,实现 U 盘自动挂载与卸载
将编译好的 system.img zImage 镜像连同 u-boot-iTOP-4412.binramdisk-Uboot.img烧写至开发板。

1)创建 mdev.conf 文件:
vi /etc/mdev.conf
写入:
sd[a-z][0-9] 0:0 666 @/etc/hotplug/usb/udisk_insert
sd[a-z] 0:0 666 $/etc/hotplug/usb/udisk_remove
2)创建 udisk_insert 文件
mkdir -p /etc/hotplug/usb
vi /etc/hotplug/usb/udisk_insert
写入:
#!/bin/sh
echo "usbdisk insert!" > /dev/console
if [ -e "/dev/$MDEV" ] ; then
mkdir -p /mnt/usbdisk/$MDEV
mount /dev/$MDEV /mnt/usbdisk/$MDEV
Fi
3)创建 udisk_remove 文件
vi /etc/hotplug/usb/udisk_remove
写入:
#!/bin/sh
echo "usbdisk remove!" > /dev/console
umount -l /mnt/usbdisk/sd*
rm -rf /mnt/usbdisk/sd*
4)修改脚本权限
chmod 755 /etc/hotplug/usb/*
如下图所示插上 U 盘,此时就可以看到/mnt 目录下多了个 usbdisk 文件夹
4.jpg
进入到 usbdisk 文件夹,看到 sda1 文件夹。说明我们已经成功将 U 盘挂载到开发板的
/mnt/usbdisk 下的 sda1 目录。拔掉 U 盘就可以看到 sda1 目录消失。

5.jpg
四、实现 SD/TF 卡的自动挂载
1)在 mdev.conf 添加如下内容:
vi /etc/mdev.conf
写入:
mmcblk1p[0-9] 0:0 666 @/etc/hotplug/sd/sd_insert
mmcblk1 0:0 666 $/etc/hotplug/sd/sd_remove
2)创建 sd_insert 文件
mkdir -p /etc/hotplug/sd
vi /etc/hotplug/sd/sd_insert
写入:
#!/bin/sh
echo "sd card insert!" > /dev/console
if [ -e "/dev/$MDEV" ]; then
mkdir -p /mnt/sdcard/sd
mount -rw /dev/$MDEV /mnt/sdcard/sd
Fi
3)创建 sd_remove 文件
vi /etc/hotplug/sd/sd_remove
写入:
#!/bin/sh
echo "sd card remove!" > /dev/console
umount -l /mnt/sdcard/sd*
rm -rf /mnt/sdcard/sd*
5)修改脚本权限
chmod 755 /etc/hotplug/sd/*
如下图所示,插上 TF/SD 卡,此时就可以看到/mnt目录下多了个 sdcard 文件夹。

6.jpg
进入到 sdcard 文件夹,就可以看到我们 TF 卡中的文件以及目录。说明我们已经成功将
TF 卡挂载到开发板的/mnt/sdcard 下的 sd*目录。退出当前目录,拔掉 TF 卡就可以看目录消
失(不退出当前目录就拔掉 TF 卡可能会造成系统重启)。


已绑定手机
发表于 2017-6-6 10:10:17 | 显示全部楼层 来自 广东省广州市
值得学习的
已绑定手机
发表于 2017-6-6 10:43:06 | 显示全部楼层 来自 广东省东莞市
谢谢分享
已绑定手机
发表于 2017-6-6 10:45:31 | 显示全部楼层 来自 广东省东莞市
谢谢值得学习
已绑定手机
发表于 2017-6-6 11:04:53 | 显示全部楼层 来自 广东省东莞市
下载不了啊
已绑定手机
已实名认证
发表于 2017-6-6 13:39:03 | 显示全部楼层 来自 广东省深圳市南山区
学习了   
已绑定手机
已实名认证
在一切变得简单之前,唯一答案:努力去做!
发表于 2017-6-6 14:00:36 | 显示全部楼层 来自 福建省福州市
路过!!!
已绑定手机
发表于 2017-6-6 17:03:31 | 显示全部楼层 来自 广东省深圳市
不错,感谢分享
已绑定手机
 楼主| 发表于 2017-8-17 09:59:29 | 显示全部楼层 来自 北京市
Liew 发表于 2017-6-6 17:03
不错,感谢分享

已绑定手机
发表于 2017-11-24 14:09:36 | 显示全部楼层 来自 北京市
厉害了,收藏下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表