Openwrt如何添加SD_Card?看這裏

一、硬件平臺

1.1 控制器:MT7688

    二、軟件平臺

    2.1、開發環境:Ubuntu12.04 
    2.2、軟件版本:openwrt-hiwooya-stable
    

      三、功能說明

      本文章所選擇的目標芯片爲MT7688,profile 選擇的爲“LINKIT7688.dts”。
      對於openwrt增加對於sd card的支持,需要配置四個方面:
      1、dts文件增加對sdhci的支持,開啓硬件對sd card接口驅動支持,硬件初始化。
      2、增加對sd card的驅動程序支持,用於檢測sd card插拔和驅動。
      3、增加對語言格式的支持,如utf8、cp437、iso8859-1,用於識別sd card裏面的內容,避免亂碼。
      4、增加對vfat文件系統的支持,否則無法掛載sd card。
      

        四、操作步驟

        4.1 修改dts文件

        對於默認的小米開發板的dts文件,沒有對sd接口的硬件初始化,故需要修改“openwrt/target/linux/ramips/dts/LINKIT7688.dts”文件。
        在文件中,增加如下代碼:

                sdhci@10130000 {
                        compatible = "ralink,mt7620-sdhci";
                        reg = <0x10130000 4000>;
        
                        interrupt-parent = <&intc>;
                        interrupts = <14>;
        
                        status = "okay";
                };
        

          4.2 增加sd card 驅動支持

          在openwrt sdk包中,執行命令 make menuconfig命令

          Kernel modules —>
          Other modules —>
          <> kmod-button-hotplug
          <
          > kmod-sdhci-mt7620
          配置如圖4-1所示。

          在這裏插入圖片描述
          圖4-1 增加sd card 接口驅動

          注意事項:在make menuconfig中配置了sd card 驅動,請勿再 make kernel_menuconfig中配置sd card驅動,否則在開機的時候,出現提示信息:

          mmc_core: exports duplicate symbol __mmc_claim_host (owned by kernel)
          sdhci-pltfm: SDHCI platform and OF driver helper
          mmc_core: exports duplicate symbol __mmc_claim_host (owned by kernel)
          mmc_core: exports duplicate symbol __mmc_claim_host (owned by kernel)
          mmc_core: exports duplicate symbol __mmc_claim_host (owned by kernel)
          mmc_core: exports duplicate symbol __mmc_claim_host (owned by kernel)
          mmc_core: exports duplicate symbol __mmc_claim_host (owned by kernel)

            如提示信息所示,sd 卡mmc_core重複導出,所以最終導致無法sd 卡驅動成功!!!!

            4.3 增加語言模塊支持

            對於openwrt系統,僅僅開啓sd card接口驅動是不夠的,還需要增加語言的支持,否則sd card無法識別裏面的文件內容,或者出現亂碼顯現。
            在openwrt sdk包中,執行命令 make menuconfig命令。
            Kernel modules —> Native Language Support —>,
            <*> kmod-nls-cp437
            <*> kmod-nls-iso8859-1
            <*> kmod-nls-utf8
            設置如圖4-2所示。

            在這裏插入圖片描述
            圖4-2 增加語言支持

            4.4 增加 vfat文件系統的支持

            對於增加vfat文件系統的支持,有兩個方法,選擇其中一種即可。

            4.4.1、menuconfig 增加支持

            執行 make menuconfig
            Filesystems —>
            配置如圖4-3所示。

            在這裏插入圖片描述
            圖4-3 增加vfat文件系統的支持

            4.4.2 kernel_menuconfig增加支持

            執行make kernel_menuconfig
            File systems —> DOS/FAT/NT Filesystems —>

            在這裏插入圖片描述
            圖4-4 增加vfat文件系統的支持

            如此,openwrt配置完成。

            五、測試

            燒錄程序之後,關於SD卡的開機信息如下:

            [    9.050000] MTK MSDC device init.
            [    9.090000] mtk-sd: MediaTek MT6575 MSDC Driver
            [    9.090000] sdhci: Secure Digital Host Controller Interface driver
            [    9.100000] sdhci: Copyright(c) Pierre Ossman
            [    9.110000] sdhci-pltfm: SDHCI platform and OF driver helper
            [    9.140000] mmc0: new high speed SD card at address b368
            [    9.150000] mmcblk0: mmc0:b368 00000 1.86 GiB (ro)
            [    9.160000]  mmcblk0:

              將sd卡進行掛載

              root@OpenWrt:/# mount -t vfat /dev/mmcblk0 /mnt/

                查看sd卡的內容,如圖5-1所示。

                在這裏插入圖片描述
                圖5-1 sd卡內容

                發表評論
                所有評論
                還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
                相關文章