新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > arm開發板實現U盤自動掛載和卸載

        arm開發板實現U盤自動掛載和卸載

        作者: 時間:2016-11-11 來源:網絡 收藏
        原理先不講,先給各位看官看一下實現的過程:
        第一步:

        配置內核Makefile 【2.6.22.6版本內核】

        本文引用地址:http://www.104case.com/article/201611/316900.htm

        make menuconfig

        General setup ---->
        Configure standard kernel features (for small systems) ---->

        | | --- Load all symbols for debugging/ksymoops
        | | [ ] Include all symbols in kallsyms
        | | [ ] Do an extra kallsyms pass
        第二步:

        配置busybox Makefile 【1.7.0版本】支持mdev機制和.conf 配置文件

        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

        第三步:

        查看啟動自動執行腳本文件rcS:

        # cat /etc/init.d/rcS

        #!/bin/sh

        ifconfig eth0 192.168.1.17

        mount -a

        mkdir /dev/pts

        mount -t devpts devpts /dev/pts

        echo /sbin/mdev > /proc/sys/kernel/hotplug //命令內核在增刪設備時執行/sbin/mdev,使設備節點會被創建和刪除

        mdev -s //設置mdev,讓它在系統啟動時創建所有的設備節點

        #

        第四步:

        查看mount -a 命令能夠掛載的文件系統 /etc/fstab:

        # cat /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 //執行mdev前要掛載 /sys

        tmpfs /dev tmpfs defaults 0 0

        mdev /dev tmpfs defaults 0 0

        #

        第五步:之前都是內核和文件系統的對mdev的支持準備工作,下面是具體的實現過程:[都是在2440開發板上執行]

        1:首先創建一個用來顯示USB里面內容的文件夾,我把他創建在/mnt目錄下:mkdir /mnt/usb

        2: 在/etc目錄下面創建mdev.conf文件,并且編輯,內容如下:

        sd[a-z]*[0-9] 0:0 0660 @(mount -t vfat -o iocharset=cp936 /dev/sd[a-z][0-9] /mnt/usb)

        sd[a-z] 0:0 0660 $(umount /mnt/usb)

        上面的內容是遵照所謂的正則表達式編寫的,注意卸載部分,沒有*[0-9],不然卸載會出問題。

        通過以上五步可以實現U盤自動掛載和卸載,現象如下:

        系統啟動后,插上U盤:

        拔掉U盤后:

        總結:

        a:上面的mount -t vfat -o iocharset=cp936 ,其中vfat指定U盤的格式,-o iocharset=cp936可以把里面的中文文 件顯示出來。

        b: 正則表達式規則:

        : issions>
        device regex:正則表達式,表示哪一個設備。
        uid:owner
        gid:組ID
        octal permissions:以八進制表示的屬性
        比如:hd[a-z][0-9]* 0:3 660
        當發現第一個匹配項時,就會根據這個匹配項進行配置。如果沒有匹配項的話就會采用默認配置,默認的默認配置是:
        0:0 660,當然我們我也可以自己定義,比如:.* 1:1 777
        那么如果我們想要執行我們自己的命令應該怎么辦呢?那就需要用下面的格式了:
        : [<@|$|*> ]
        @ 創建了設備之后運行
        $ 刪除設備之前運行
        * 在創建設備之后和刪除設備之前運行



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 雅江县| 龙里县| 建阳市| 天水市| 剑川县| 安岳县| 安平县| 巴楚县| 巩义市| 建平县| 屯昌县| 长顺县| 三穗县| 庆城县| 兰州市| 叙永县| 阳西县| 东山县| 杭锦旗| 松潘县| 文登市| 鄂伦春自治旗| 宣恩县| 奉新县| 班玛县| 正安县| 微山县| 葵青区| 宿松县| 沙坪坝区| 丽江市| 绥芬河市| 德昌县| 句容市| 湖北省| 南宁市| 阳江市| 林芝县| 聂荣县| 盐源县| 马山县|