迅为4418/6818开发板实现最小Linux系统自动挂载SD/TF卡/U盘等存储设备
本文轉自迅為論壇:http://www.topeetboard.com
在論壇里找到的,先做個筆記以后用到隨時看
通過 mdev 工具實現(xiàn) U 盤和 SD/TF 卡的自動掛載步驟如下:
一、配置內核
配置內核支持 USB大容量存儲
(1)先覆蓋缺省文件
cp config_for_linux_scp_elite .config
?
(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
?
?
保存退出,執(zhí)行 make 命令生成 zImage 系統(tǒng)鏡像。
二、配置 busybox
在系統(tǒng)編程文檔的第二章中已經提供了搭建支持最小 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
[*] Support loading of firmwares
保存退出,參照系統(tǒng)編程文檔第二章使用命令編譯生成 system.img 系統(tǒng)鏡像。
三、添加對熱插拔事件響應,實現(xiàn) U 盤自動掛載與卸載
將編譯好的 system.img 和 zImage 鏡像連同 u-boot-iTOP-4412.bin、ramdisk-uboot.img燒寫至開發(fā)板。
(1)創(chuàng)建 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)創(chuàng)建 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)創(chuàng)建 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 文件夾。
進入到 usbdisk 文件夾,看到 sda1 文件夾。說明我們已經成功將 U 盤掛載到開發(fā)板的
/mnt/usbdisk 下的 sda1 目錄。拔掉 U 盤就可以看到 sda1 目錄消失。
?
四、實現(xiàn) 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)創(chuàng)建 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)創(chuàng)建 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 文件夾。
?
進入到 sdcard 文件夾,就可以看到我們 TF 卡中的文件以及目錄。說明我們已經成功將
TF 卡掛載到開發(fā)板的/mnt/sdcard 下的 sd*目錄。退出當前目錄,拔掉 TF 卡就可以看目錄消
失(不退出當前目錄就拔掉 TF 卡可能會造成系統(tǒng)重啟)。
?
轉載于:https://www.cnblogs.com/yueliang17/p/6933308.html
總結
以上是生活随笔為你收集整理的迅为4418/6818开发板实现最小Linux系统自动挂载SD/TF卡/U盘等存储设备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMware中Red Hat Enter
- 下一篇: [WCF] Restful 自定义宿主