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卡內容