Skip to main content

USB_STORAGE

1 相关配置

1.1 IConfigTool配置

使用控制器作为usb device,要先把adb服务关闭

打开IConfigTool,逐级进入到 [adb服务脚本] 界面,取消勾选adb服务自启动

1

如果需要开启开机自动挂载功能,逐级进入到 [usb_storage相关设置] 界面,并且进行如下配置:

如果不需要该功能,取消下列勾选或者跳过本处配置即可

5

配置完IConfigTool配置需要重新应用配置

cd ~/your_linux_project
#以x1600e_halley6_nand_factory_defconfig为例,用户应根据当前使用的配置为准
make x1600e_halley6_nand_factory_defconfig

1.2 Buildroot配置

配置buildroot选项,编译mkfs.fat工具

Target packages --->
Filesystem and flash utilities --->
[*] dosfstools
[*] mkfs.fat

1.3 Kernel配置

配置 USB Gadget Drivers 选项

Location:
Device Drivers --->
[*] USB support --->
<*> USB Gadget Support --->
<*> USB Gadget Drivers --->
USB functions configurable through configfs

配置 Loopback device support 选项

Location:
Device Drivers --->
[*] Block devices
<*> Loopback device support
(16) Number of loop devices to pre-create at init time

1.4 重新编译

完成buildroot和kernel配置后,需要进行重新编译

cd ~/your_linux_project
make buildroot && make kernel

2 挂载测试

2.1 自动挂载

如果在第1.1章中开启了自动挂载功能,开机启动后会有以下提示信息:

6

自动挂载成功后,可以在 PC 端将设备当作 usb设备 进行使用

7

2.2 手动挂载

在本地对镜像文件进行添加测试文件,使用开发板作为usb device进行挂载,挂载后在PC端查看是否存在该测试文件

1.storage_config.sh stop                #文件在doc/开发使用说明/USB使用说明文档/设备/USB_STORAGE目录

2.cd /usr/data

# 手动创建一个10M大小的镜像文件
3.dd if=/dev/zero of=fat32.img bs=1k count=10240

4.mkfs.fat fat32.img

# 若loop0已经被其他设备使用,可以使用loop1、loop2等其他空闲的loop设备节点
5.losetup /dev/loop0 fat32.img

# 创建本地挂载点
6.mkdir mntdir

7.mount -t vfat fat32.img mntdir/

#检查是否成功挂载
8.df mntdir
/dev/loop1 2028 2 2026 0% /usr/data/mntdir

9.echo "write something for test..." > mntdir/test.txt

#在作为usb device进行挂载测试前,先取消本地挂载
10.umount mntdir

#执行挂载脚本后,会弹出刚刚制作的镜像,刚刚手动添加的测试文件存在,并且内容正确,则说明测试成功
11.storage_config.sh start /usr/data/fat32.img

2

在PC端的usb界面中,添加另外一个测试文件,再从本地查看镜像是否正确新增了该测试文件

3

# 再次进行本地挂载
12.mount -t vfat fat32.img mntdir/

# 查看刚刚新增的测试文件
13.cat mntdir/test2.txt

测试文件存在并且内容正确,则说明挂载测试成功。

4

# 卸载设备
14.storage_config.sh stop