一、硬件平台

1.1 控制器:MT7620(A9内核)

二、软件平台

2.1、开发环境:Ubuntu12.04
2.2、软件版本:openwrt 官方15.05版本SDK开发包(CHAOS CALMER 15.05版本)

三、功能说明

本文章所选择的目标芯片为MT7620,profile 选择的为“Xiaomi MiWiFi Mini ”。
对于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/XIAOMI-MIWIFI-MINI.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-sdhci…………..
<*> 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 增加语言支持

对于语言,说明如下:
nls codepage 437 – 美国/加拿大英语
nls codepage 737 – 希腊语
nls codepage 775 – 波罗的海语
nls codepage 850 – 包括西欧语种(德语,西班牙语,意大利语)中的一些字符
nls codepage 852 – Latin 2 包括中东欧语种(阿尔巴尼亚语,克罗地亚语,捷克语,英语,芬兰语,匈牙利语,爱尔兰语,德语,波兰语,罗马利亚语,塞尔维亚语,斯洛伐克语,斯洛文尼亚语,Sorbian语)
nls codepage 855 – 斯拉夫语
nls codepage 857 – 土耳其语
nls codepage 860 – 葡萄牙语
nls codepage 861 – 冰岛语
nls codepage 862 – 希伯来语
nls codepage 863 – 加拿大语
nls codepage 864 – 阿拉伯语
nls codepage 865 – 日尔曼语系
nls codepage 866 – 斯拉夫语/俄语
nls codepage 869 – 希腊语(2)
nls codepage 874 – 泰语
nls codepage 936 – 简体中文GBK
nls codepage 950 – 繁体中文Big5
nls iso8859-1 – 西欧语系(阿尔巴尼亚语,西班牙加泰罗尼亚语,丹麦语,荷兰语,英语,Faeroese语,芬兰语,法语,德语,加里西亚语,爱尔兰语,冰岛语,意大利语,挪威语,葡萄牙语,瑞士语.)这同时适用于美国英语.
nls iso8859-2 – Latin 2 字符集,斯拉夫/中欧语系(捷克语,德语,匈牙利语,波兰语,罗马尼亚语,克罗地亚语,斯洛伐克语,斯洛文尼亚语)
nls iso8859-3 – Latin 3 字符集, (世界语,加里西亚语,马耳他语,土耳其语)
nls iso8859-4 – Latin 4 字符集, (爱莎尼亚语,拉脱维亚语,立陶宛语),是Latin 6 字符集的前序标准
nls iso8859-5 – 斯拉夫语系(保加利亚语,Byelorussian语,马其顿语,俄语,塞尔维亚语,乌克兰语) 一般推荐使用 KOI8-R codepage
nls iso8859-6 – 阿拉伯语.
nls iso8859-7 – 现代希腊语
nls iso8859-8 – 希伯来语
nls iso8859-9 – Latin 5 字符集, (去掉了 Latin 1中不经常使用的一些冰岛语字符而代以土耳其语字符)
nls iso8859-10 – Latin 6 字符集, (因纽特(格陵兰)语,萨摩斯岛语等Latin 4 中没有包括的北欧语种)
nls iso8859-15 – Latin 9 字符集, 是Latin 1字符集的更新版本,去掉一些不常用的字符,增加了对爱莎尼亚语的支持,修正了法语和芬兰语部份,增加了欧元字符)
nls koi8-r – 俄语的缺省支持

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

Openwrt增加对 sd card 支持相关推荐

  1. [sd card] sd card初始化流程

    以SD 3.0为例. 建议先参考<[sd card] SD card初始化时的总线设置>. 一.sd card初始化流程思路说明 通过<SD_Ver3.00_Final_090416 ...

  2. [sd card] SD card初始化时的总线设置

    ============================================================== 零.在sd card初始化过程中,对于bus主要设置以下东西 1.时钟,输 ...

  3. 【WinCE】SD card技术了解并WINCE下SDHC驱动开发(updated)

    SD Card Driver on ADS Summary 了解SD card. 1 WinCE 5.0下SD Stack. 6 Bus Driver 7 Host Controller Driver ...

  4. 展锐UDX710:MMC概述、SD Card驱动解析及调试

    一.MMC概述 相关定义 符合MMC协议接口的存储器,都称为MMC存储体 MMC总线,类似于I2C.SPI总线的一种总线结构 使用MMC接口规范(HCI, Multimedia Card Interf ...

  5. OpenWrt自动挂载sd卡

    OpenWrt自动挂载sd卡 我们在编译的时候经常会遇到flash不够用的问题,怎么解决呢?可以通过挂载usb或者sd卡解决问题.在此介绍一下openwrt挂载sd卡. 1. 安装sd卡的驱动以及相关 ...

  6. SD card boot and flashing tool for TI davinic DM368

    实验环境: DM368 平台 : LW3xx SD card : Micro SD 128MB HOST : ubuntu 10.04.4 64-bit CROSS_COMPILE : CodeSou ...

  7. Linux驱动——mmc sd card初始化流程(十一)

    Linux驱动--mmc sd card初始化流程(十一) 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客:   (1)[sd ...

  8. 全志 Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND

    存储切换方法 SDK切换存储介质需要修改board.dts.sys_config.fex.内核配置.TINA系统配置.另外,在spinor 存储介质下,通过 u-boot-sun8iw21p1.bin ...

  9. mmc0: error -84 whilst initialising SD card

    玩zynqMP的板子上的SOC,TF作为root启动petalinux系统, 碰到如下报错: error -84 whilst initialising SD card 查询Kernel代码中的sd. ...

最新文章

  1. Nginx小功能合集
  2. python读取excel一列-python读取excel(xlrd)
  3. 固定div的位置——不随窗口大小改变为改变位置
  4. DjangoRestFramework基本使用
  5. 【渝粤题库】陕西师范大学300018 世界史(下)
  6. gzip和gunzip 解压参数
  7. c++ char*初始化_[零食时间]C/C++ 字符串全家桶(字符串表示/定义、字符串输入输出、易错点等)上半桶...
  8. 【C语言】C语言常量和变量
  9. MySQL 批量插入,如何不插入重复数据?
  10. 互联网轻量级框架SSM-查缺补漏第八天(MyBatis插件plugin使用及原理)
  11. 远程调用中间件(RPC
  12. 无法支持计算机上的硬件,win7“不支持的硬件,你的电脑使用的处理器专为最新版win...
  13. 万物互联之边缘计算简述-背景
  14. Oracle Acs资深顾问罗敏 老罗技术核心感悟:11g的数据压缩技术
  15. 关于IE、Firefox、Opera页面呈现异同 (转于纯蓝)
  16. 飞秋只能发文件不能接收文件的解决办法
  17. 【Python】数据可视化基本套路总结
  18. UML设计——网上信用卡管理系统分析与设计(新手)
  19. Mysql实现数据脱敏
  20. vue 界面在苹果手机上滑动点击事件等卡顿解决方案

热门文章

  1. HIVE的定义,HIVE是什么?
  2. pku 2752 取名的小猫 (kmp)
  3. 如何使用netlify部署vue应用程序
  4. python 二级重难点笔记
  5. javascript 设计模式之观察者模式
  6. 线程中CreateEvent、SetEvent、WaitForSingleObject的用法
  7. wireshark捕获IP分片数据包实践
  8. JavaScript中的ES5,ES6是什么意思?
  9. MapReduce的详细工作流程
  10. dota 1.20 升级到1.24 剑心使用方法