USB一般分为主机(Host)和从机(Slave),数据传输是建立在Host和Slave的正常连接基础上,比如电脑上的USB口是Host,U盘是Slave;还有一种协议OTG(On The Go),这是一种USB2.0引入的工作模式,可以进行主从协商,什么时候做Host或者Slave由一个ID决定,这个ID是硬件上的管脚来检测的,原理图:

本章内容是有关USB Host进行U盘的挂载。

1 配置选项说明

在目录~/share/patchs/udisk-config中,有一个配置文件,我们已经把U盘需要支持的选项加入进去,现在需要对比工程的区别,然后进行分析,可以通过beyond compare进行比较:

差异点1:

CONFIG_SCSI=y

支持SCSI协议(小型计算机接口协议),设备上如果有任何如下类型SCSI/SAS/SATA/USB/Fibre Channel/FireWire设备那么就需要该选项。

CONFIG_BLK_DEV_SD=y

使用SCSI/SAS/SATA/PATA/USB/Fibre Channel存储设备。

CONFIG_CHR_DEV_SG=y

通用 SCSI 设备(通常是SCSI光驱),Linux下显示在/dev/sg*设备。

CONFIG_CHR_DEV_SCH=y

SCSI介质转换设备(SCSI Medium Changer device)是一种控制多个SCSI介质的转换器。

CONFIG_SCSI_CONSTANTS=y

当SCSI设备出错时内核将给出详细的出错信息。

CONFIG_SCSI_LOGGING=y

启用SCSI日志(默认并不开启,需要"echo [bitmask] > /proc/sys/dev/scsi/logging_level"),可用于跟踪和捕获SCSI设备的错误;[bitmask]说明可以查看"drivers/scsi/scsi_logging.h"文件。

CONFIG_SCSI_SCAN_ASYNC=y

异步扫描检测SCSI设备,这样可以加快系统的引导速度。

差异点2:

CONFIG_USB=y

主机端(Host-side)USB支持。

CONFIG_USB_EHCI_HCD=y

EHCI(Enhanced Host Controller Interface) usb 2.0的主控制器标准接口。

CONFIG_USB_EHCI_HCD_PLATFORM=y

通用platform设备的EHCI驱动,仅用于嵌入式环境。

CONFIG_USB_OHCI_HCD=y

OHCI(Open Host Controller Interface)是主要用于嵌入式环境的USB1.1(LowSpeed/FullSpeed USB)主机控制器规范。

CONFIG_USB_OHCI_HCD_PLATFORM=y

通用platform设备的OHCI驱动,仅用于嵌入式环境。

CONFIG_USB_STORAGE=y

USB存储设备,USB_STORAGE depends on SCSI。

CONFIG_USB_STORAGE_DATAFAB=y

CONFIG_USB_STORAGE_FREECOM=y

CONFIG_USB_STORAGE_ISD200=y

CONFIG_USB_STORAGE_USBAT=y

CONFIG_USB_STORAGE_SDDR09=y

CONFIG_USB_STORAGE_SDDR55=y

CONFIG_USB_STORAGE_JUMPSHOT=y

CONFIG_USB_STORAGE_ALAUDA=y

CONFIG_USB_STORAGE_ONETOUCH=y

CONFIG_USB_STORAGE_KARMA=y

CONFIG_USB_STORAGE_CYPRESS_ATACB=y

CONFIG_USB_STORAGE_ENE_UB6250=y

以上为不同厂商/型号的驱动程序。

CONFIG_USB_UAS=y

USB Attached SCSI(UAS)大容量存储设备支持。

差异点3:

首先NLS(Native Language Support),也就是本地语言支持,作用: 主要作用在Unicode(这里指的是UTF-16格式)和本地语言字符之间进行相互转换;对于东亚地区的Linux用户来说,他们经常遇到的字符集有以下几种:

CP932 日本语(Shift-JIS,EUC-JP)

CP936 简体中文(CP936(就是GBK),GB2312)

Cp949 朝鲜语(CP949,EUC-KR)

CP950 繁体中文(Big5)

CONFIG_NLS_DEFAULT="utf8"

挂载文件系统时,默认控制台的语言编码格式。

CONFIG_NLS_CODEPAGE_437=y

字符集:cp437支持。

CONFIG_NLS_CODEPAGE_936=y

字符集:cp936支持。

CONFIG_NLS_ASCII=y

字符集:ASCII支持。

CONFIG_NLS_ISO8859_1=y

字符集:ISO8859支持。

CONFIG_NLS_UTF8=y

字符集:UTF8支持。

以上对比出来的差异并非都是必选项,可以根据实际情况进行裁剪或者增加,重点还是在于要理解选项的具体含义,才能更好的掌握本节课程的内容。

2 应用

我们可以通过beyond compare把差异化的代码合并到原始配置文件中,然后进行kernel的编译:

cd kernel

make rk3308_linux_defconfig

make rk3308-evb-amic-v10.img

编译完成后,烧录更新内核,准备一个fat32格式的U盘,可以在电脑中格式化成这个格式,然后U盘接入到开发板的USB接口(Host)中,正常情况下可以看到U盘的信息:

输入命令fdisk -l

然后我们需要将U盘挂载后使用,由于现在文件系统只有根文件系统,且配置是只读,我们暂时挂载在内存中:

其中U盘是:/dev/sda1这个设备。

挂载命令:mount -t vfat /dev/sda1 /tmp/udisk/

查看U盘内容:

卸载U盘很简单:umount /tmp/udisk/

注意先切换到其他目录再卸载。

==================================================================================================================================

U盘的挂在方法学会了,继续深入学习,keep move!!

如果觉得对您有帮助并想进一步深入学习交流可以扫描以下微信二维码或加入QQ群:928840648

欢迎共同学习成长,有一群爱学习的小伙伴一起勉励!!一起加油!!也可点击

笔者基于嵌入式系统框架内容如下整理编辑:

嵌入式Linux系统中U盘挂载相关推荐

  1. YAFFS2文件系统在嵌入式LINUX系统中的应用

    YAFFS2文件系统在嵌入式LINUX系统中的应用 2011-03-31 19:59 181人阅读 评论(0) 收藏 举报 1.文件系统简述 随着32位CPU价格不断下跌,片上存储设备的容量相比越来越 ...

  2. 嵌入式linux系统中常用的文件系统

    原文:https://blog.csdn.net/li_wen01/article/details/80090624 嵌入式linux系统中常用的文件系统: 闪存主要有NOR和NAND两种技术:因为F ...

  3. 嵌入式linux系统中设备驱动程序

    嵌入式linux系统中设备驱动程序是内核的一部分,完成对设备初始.读写操作和控制等功能.驱动程序隐藏了 硬件设备的具体细节,对不同的设备提供一致的接口,这些接口通过file_Operation结构来定 ...

  4. 嵌入式Linux系统中打印机驱动的移植

    一.开发环境 硬件环境:DM365 打印机型号:HP P1007 虚拟机系统:Red Hat Enterprise Linux 5 交叉编译环境:Ti交叉编译环境安装包 二.详细步骤 1.下载Ghos ...

  5. 嵌入式Linux初始化硬件RTC,嵌入式Linux系统中的快速启动技术研究

    嵌入式Linux系统主要特点在于使用Bootloader替代了桌面系统的BIOS,同时对系统进行了规模上的裁剪,但硬件上的劣势往往导致系统启动速度较慢,而嵌入式产品使用者又对系统的开机速度比较敏感,样 ...

  6. Linux系统中的mount挂载命令及参数详解

    mount.cifs(8) System Administration mount.cifs(8)名称mount.cifs - 挂载通用网际文件系统(Common Internet File Syst ...

  7. 如何在嵌入式Linux系统中使用4G LTE模组?

    一.简介 AIoT是人工智能和物联网的结合,在数据的收集.分析和处理方面提供了新的可能性.事实上,AIoT可以引入更智能.更快的决策能力,为不同行业带来好处.4G使AIoT能够充分发挥其潜力并可能标志 ...

  8. Linux系统中sd盘含义,D盘是(hd0,5)意思是第一个硬盘是第六个区,是什么意思?...

    相思爱文 于 2010-11-21 17:11:28发表: 一块硬盘最多只能有四个主分区.其中一个可以为扩展分区(主分区的特殊形式),扩展分区中可以有60个逻辑分区. linux表示分区,与顺序和类型 ...

  9. 嵌入式Linux系统中的.lds链接脚本基础

    from:http://www.embeddedlinux.org.cn/html/xinshourumen/201203/04-1989.html 连接脚本的格式 ================= ...

最新文章

  1. NeurIPS TAPE | 用于评估蛋白质表示学习性能的多任务平台
  2. druid sql黑名单 报异常 sql injection violation, part alway true condition not allow
  3. 服务器之Windows和Linux
  4. 【年终总结】2021年有三AI做了什么,2022年我们要做什么?
  5. hdu 5568(dp+大数模拟)
  6. 蓝桥练习题题解——作物杂交——Java
  7. 修改表格字体颜色_word排版应用:如何创建文本样式和表格样式
  8. java 并发 面试_Java 并发基础常见面试题总结
  9. 黑色背景下,描绘照片的轮廓形状并保存
  10. php ajax jquery 表单重复提交,jQuery如何防止Ajax重复提交
  11. 【机器学习】监督学习--KNN(最近邻)算法
  12. 【MySQL】Path does not chain with any of the trust anchors
  13. Partition分区的使用案例
  14. 物联网——射频识别技术的应用
  15. H5 微信分享显示标题和图标
  16. jquery动画顺序执行_深入理解jquery自定义动画animate()
  17. 亮点前瞻 | 首届 ServerlesssDays · China 大会议程发布
  18. 网站优化基本技巧(网站优化的主要工作是什么)
  19. 日历程序,支持添加日程提醒
  20. shell是什么语言?shell 语言的本质

热门文章

  1. 文件上传,服务器文件名中文乱码
  2. 流程管理绩效考核之业务评分与评分统计分析方法
  3. 2014.10.22项目2
  4. 流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
  5. 如何解决 cdo转换经度-180~180 为0~360时出现报错:cdo sellonlatbox: Unsupported grid type: generic的问题
  6. 计算机操作系统试题题库及答案(第五章)
  7. 古代艺术家签合同,都狡猾着呢
  8. 上班族腰酸背痛腿抽筋,仅是缺钙那么简单?
  9. 拉氏(Z)变换和拉氏(Z)反变换
  10. Phonetic symbol 单元音 - 短元音 ɒ(新)/ ɔ(旧) 与 ʊ/u (机打)