迅为4418/6818开发板实现最小Linux系统自动挂载SD/TF卡/U盘等存储设备
本文轉(zhuǎn)自迅為論壇:http://www.topeetboard.com
在論壇里找到的,先做個(gè)筆記以后用到隨時(shí)看
通過(guò) mdev 工具實(shí)現(xiàn) U 盤和 SD/TF 卡的自動(dòng)掛載步驟如下:
一、配置內(nèi)核
配置內(nèi)核支持 USB大容量存儲(chǔ)
(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)接著開(kāi)啟內(nèi)核熱插拔,在內(nèi)核根目錄下的.config 文件中添加如下內(nèi)容:
#vim .config
CONFIG_KALLSYMS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_NET=y
?
?
保存退出,執(zhí)行 make 命令生成 zImage 系統(tǒng)鏡像。
二、配置 busybox
在系統(tǒng)編程文檔的第二章中已經(jīng)提供了搭建支持最小 Linux 的過(guò)程,這里就不過(guò)多解釋說(shuō)
明。在這里我們我們只給出支持 usb 熱插拔的相關(guān)配置。
(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)鏡像。
三、添加對(duì)熱插拔事件響應(yīng),實(shí)現(xiàn) U 盤自動(dòng)掛載與卸載
將編譯好的 system.img 和 zImage 鏡像連同 u-boot-iTOP-4412.bin、ramdisk-uboot.img燒寫至開(kāi)發(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)修改腳本權(quán)限
chmod 755 /etc/hotplug/usb/*
如下圖所示插上 U 盤,此時(shí)就可以看到/mnt 目錄下多了個(gè) usbdisk 文件夾。
進(jìn)入到 usbdisk 文件夾,看到 sda1 文件夾。說(shuō)明我們已經(jīng)成功將 U 盤掛載到開(kāi)發(fā)板的
/mnt/usbdisk 下的 sda1 目錄。拔掉 U 盤就可以看到 sda1 目錄消失。
?
四、實(shí)現(xiàn) SD/TF 卡的自動(dòng)掛載
(1)在 mdev.conf 添加如下內(nèi)容:
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)修改腳本權(quán)限
chmod 755 /etc/hotplug/sd/*
如下圖所示,插上 TF/SD 卡,此時(shí)就可以看到/mnt目錄下多了個(gè) sdcard 文件夾。
?
進(jìn)入到 sdcard 文件夾,就可以看到我們 TF 卡中的文件以及目錄。說(shuō)明我們已經(jīng)成功將
TF 卡掛載到開(kāi)發(fā)板的/mnt/sdcard 下的 sd*目錄。退出當(dāng)前目錄,拔掉 TF 卡就可以看目錄消
失(不退出當(dāng)前目錄就拔掉 TF 卡可能會(huì)造成系統(tǒng)重啟)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yueliang17/p/6933308.html
總結(jié)
以上是生活随笔為你收集整理的迅为4418/6818开发板实现最小Linux系统自动挂载SD/TF卡/U盘等存储设备的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VMware中Red Hat Enter
- 下一篇: [WCF] Restful 自定义宿主