IMX6ULL开发板模拟U盘
Linux版本:4.1.15
使用开发板:IMX6ULL
编译环境:Ubuntu 14.04
步骤如下:
1、 首先配置内核
进入
Device Drivers --->
选择进入
[*] USB support --->
再选择最后一项进入
<*> USB Gadget Support --->
选择编译成模块,保存退出。
USB Peripheral Controller --->
│ │ <M> 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
│ │ <M> Mass Storage Gadget
2、 保存配置,编译内核,编译内#vi ./build.sh 打开脚本在make zImage下面加入编译内核模块命令
make modules
./build.sh 编译脚本在driver/usb/gadget/目录下生成以下的ko文件:
driver/usb/gadget/ libcomposite.ko
driver/usb/gadget/legacy/ g_mass_storage.ko
driver/usb/gadget/legacy/ usb_f_mass_storage.ko
/fs/configfs/configfs.ko
3、 烧写镜像文件,通过nfs将这些驱动模块拷贝到开发板中
4、 对开发板的操作
#dd if=/dev/zero of=vfat.img bs=1M count=20 //制作一个fat格式的镜文件,在主机上、开发板上做都可以
#mkdir vfat_mount_point //创建挂载点
#mkfs.vfat vfat.img //格式化做出的镜像
以下文件需要按顺序执行:(可将以下命令添加为脚本,)
#losetup /dev/loop0 vfat.img //将镜像与loop0建立连接
#insmod configfs.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的可移动设备中。