linux 开发板模拟u盘,linux 开发板(Linux USB Gadget) 模拟u盘
前几天,搞了 hid设备,通过usb hid设备和windows进行通信。现在开始搞这个 mass storge
首先说明 环境:linux版本:3.15 使用开发板:SAMa5d3 编译环境:ubuntu 12.04
1、首先配置内核,见下图
进入
Device Drivers --->
选择进入
[*] USB support --->
再选择最后一项进入
USB Gadget Support --->
选择编译成模块,保存退出。
USB Peripheral Controller --->
│ │ USB Gadget Drivers
│ │ < > USB functions configurable through configfs
│ │ < > Gadget Zero (DEVELOPMENT)
│ │ < > Ethernet Gadget (with CDC Ethernet support)
│ │ < > Network Control Model (NCM) support
│ │ < > Gadget Filesystem
│ │ < > Function Filesystem
│ │ Mass Storage Gadget
会在driver/usb/gadget/目录下生成以下的ko文件:
-rw-rw-r-- 1 a_tu a_tu 11253 2月 10 18:03 drivers/usb/gadget/g_mass_storage.ko
-rw-rw-r-- 1 a_tu a_tu 49265 2月 10 18:03 drivers/usb/gadget/libcomposite.ko
-rw-rw-r-- 1 a_tu a_tu 57658 2月 10 18:03 drivers/usb/gadget/usb_f_mass_storage.ko
如果你是用的2.6.3的内核,内核配置与前面的除了最后一项不同,其余一样。最后一项选择:
File-backed Storage Gadget
则生成的ko文件为:
drivers/usb/gadget/g_file_storage.ko
把这些驱动文件和内核拷贝到开发板中。
2、对开发板的操作
首先建立一个镜像模拟U盘
#dd if=/dev/zero of=vfat.img bs=1M count=20 //制作一个fat格式的镜像文件,在主机上、开发板上做都可以
然后 mkdir vfat_mount_point//创建挂载点
mkfs.vfat vfat.img//格式化做出的镜像 (如果你的开发板没有mkfs命令,可以将sd卡插入虚拟机,在虚拟机的ubuntu下执行)当然如果这一步,没有做也没有关系,等windows发现新可移动设备的时候,会提示你要格式化设备,这时,会提示你选择格式化的格式,选择默认,格式化就ok了。
最后执行脚本 storage.sh 。把这些命令写成一个脚本很方便,不用一条条的输入,你还可以将这个脚本写的 /etc/init.d/rcS/这个启动文件中,让它每次开机都自己运行。脚本内容如下。提醒,下面命令要按顺序写
losetup /dev/loop0 vfat.img //将镜像与loop0建立连接
insmod gadgetfs.ko
insmod libcomposite.ko
insmod usb_f_mass_storage.ko
mount /dev/loop0 vfat_mount_point //挂载挂载点
insmod g_mass_storage.ko file=/dev/loop0 stall=0 removable=1
执行完脚本之后,内核提示信息g_mass_storage gadget: g_mass_storage ready,说明你已经成功了,插上usb设备。windows会提示你发现新的可移动设备。
一切完成之后,验证是否正确。发现在windows下写入文件或者新建文件夹。在开发板的挂载点的文件夹中能同步到windows的信息。而在开发板中新建的文件或文件夹,需要拔下设备,重连之后才能同步到windows的可移动设备中。
可能还有地方有问题没有发现,希望高手指点更正!!!
linux 开发板模拟u盘,linux 开发板(Linux USB Gadget) 模拟u盘相关推荐
- 使用u盘时要与计算机usb接口相连,u盘是通过什么接口与电脑交换数据的?
目前U盘主要是通过"USB"接口与电脑交换数据的.U盘,全称USB闪存驱动器,是一种使用USB接口的无须物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接实现即插即用. ...
- linux 开发板模拟u盘,ARM-Linux开发 - USB Gadget Storage 制作模拟U盘
-------------转载-------------- 作者:yimiyangguang1314 来源:CSDN 原文:https://blog.csdn.net/yimiyangguang131 ...
- linux 开发板模拟u盘,S5P4418开发板Linux下实现模拟U盘教程飞凌嵌入式
飞凌嵌入式ARMCortex-A9 S5P4418开发板上能否满足U盘的功能?其实可通过修改内核配置和文件系统相关内容,在OK4418开发板上实现模拟U盘功能,模拟U盘可以帮助我们实现开发板与Wind ...
- USB Gadget iMX6UL开发板模拟U盘
iMX6UL开发板模拟U盘 参考资料: 内核源码内:/{内核目录}/Documentation/usb/目录下 gadget-testing.txt mass-storage.txt 文件 网址:Ba ...
- USB Gadget iMX6U LL开发板模拟U盘
IMX6ULL开发板模拟U盘 Linux版本:4.1.15 使用开发板:IMX6ULL 编译环境:Ubuntu 14.04 步骤如下: 1. 首先配置内核 进入 Device Drivers ---& ...
- qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...
作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...
- linux 控制虚拟串口,linux虚拟串口控制器实现-适用于无开发板学习tty driver-好向圈...
在前面几章,我们介绍了tty子系统的框架.数据结构.tty驱动的注册与注销等内容,本章我们借助 之前学习的内容开发一个虚拟的串口控制器驱动,以便我们理解开发串口驱动的步骤及驱动开发实践. 本次实现的虚 ...
- linux下ad数模转换驱动程序设计,iTOP-4412开发板实现3路ADC数模转换驱动例程
学习下 linux 数模程序驱动的编写,本节我们实现的功能是实现三路 ADC 数模转换. 驱动程序 驱动程序的名字:"itop4412_adc.c". 要想把这个驱动注册到内核,先 ...
- 假设linux分配给u盘设备名是,嵌入式linux开发基础试卷-应用物理A答案
试 卷 考试科目: 嵌入式 linux 开发基础 姓名: 试卷适用专业(班) : 09 应用物理 套别:A 套(√)B 套( ) 五 20 六 七 总计 100 考核方式:开卷( )闭卷(√) 了多达 ...
最新文章
- android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu[转]
- 在Visual Studio中使用命令行参数进行调试
- 文件处理之解决使用 feof(c语言)或(fin.eof())出现多读问题
- Dell最近的几款显示器看上去还不错的样子
- ubuntu 编译php5.6,Ubuntu 16.04 源码编译 PHP5.6
- 个人学习进度条------第八周
- OpenCV_03 图像的算数操作:图像的加法+图像的混合
- Liskov替换原则(LSP)
- 移动端的注册登录设计灵感!
- 如何决定何时使用Node.js?
- CVPR2022 | 利用域自适应思想,北大、字节跳动提出新型弱监督物体定位框架
- 错误使用 xlim (line 31) 范围必须为包含递增的日期时间值的 2 元素向量
- 以太坊智能合约开发第五篇:字符串拼接—Solidity
- tomcat版本号进行隐藏或者删除
- JTT 808-2019 道路运输车辆卫星定位系统 终端通讯协议及数据格式.PDF
- c++打印心形_c语言如何打印心
- python数据类型的性能
- c语言电子万年历大作业,C语言实现一个简单的电子万年历
- GPRS 中的PDP上下文名词解释
- CP56time2a解码
热门文章
- 焊接机器人的坡口填充功能_《金属焊接》课后习题参考答案完整版
- Windows系统QQ桌面版聊天记录存放位置转移聊天记录
- islide软件测试计划
- 简单的网络文件传输工具(TCP连接)
- 应用统计432考研复试复试提问总结精简版【一】
- Orleans 2.0 官方文档中文版 (闫辉)
- 【论文代码复现2】Clustered sampling based on sample size
- JAVA 版多商家入驻 直播带货 商城系统 B2B2C 商城源码之 B2B2C 产品概述
- 3. ackerman函数的递归实现算法用java语言_ackerman递归
- Git版本控制中的文件的四种状态