Linux上, 使用USB转U盘功能

Linux上, 使用USB转U盘功能

注意: 版权所有, 转载请注明出处.
Caution: All rights reserved, Please indicate the source if reproduce.


硬件环境: ARM, Freescale iMx515
软件环境: U-boot, Linux kernel 2.6.31, BusyBox v1.15.0 () built-in shell (ash)
源代码目录: drivers/usb/gadget

1. 配置kernel
#make menuconfig
Device Drivers  --->  [*] USB support  ---> <*>   USB Gadget Support  ---> <M>     File-backed Storage Gadget

2. 查看本驱动模块支持的参数
#modinfo ./g_file_storage.ko
filename:       ./g_file_storage.ko
license:        Dual BSD/GPL
author:         Alan Stern
description:    File-backed Storage Gadget
depends:
vermagic:       2.6.31.20111028-svn293 preempt mod_unload modversions ARMv7
parm:           file:names of backing files or devices (array of charp)
parm:           ro:true to force read-only (array of bool)
parm:           luns:number of LUNs (uint)
parm:           removable:true to simulate removable media (bool)
parm:           stall:false to prevent bulk stalls (bool)
parm:           cdrom:true to emulate cdrom instead of disk (bool)

3. 插入USB转U盘的驱动模块
3.1 映射SD卡成U盘

加载USB转U盘驱动内核模块
#rmmod g_file_storage; insmod  /mnt/kernel_module/g_file_storage.ko file=/dev/mmcblk0 stall=0 removable=1

3.2 映射nand flash的MTD块设备成U盘
查看MTD分区
root@freescale /dev$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00800000 00040000 "nand.uboot"
mtd1: 00200000 00040000 "nand.env"
mtd2: 01400000 00040000 "nand.kernel"
mtd3: 03200000 00040000 "nand.data"
mtd4: 3b000000 00040000 "nand.rootfs"

查看MTD块设备
root@freescale /dev$ ls -al /dev/mtd* |grep brw
brw-r-----    1 root     disk      31,   0 Jan  5 01:32 /dev/mtdblock0
brw-r-----    1 root     disk      31,   1 Jan  5 01:32 /dev/mtdblock1
brw-r-----    1 root     disk      31,   2 Jan  5 01:32 /dev/mtdblock2
brw-r-----    1 root     disk      31,   3 Jan  5 01:32 /dev/mtdblock3
brw-r-----    1 root     disk      31,   4 Jan  5 01:32 /dev/mtdblock4

加载USB转U盘驱动内核模块
#rmmod g_file_storage; insmod  /mnt/kernel_module/g_file_storage.ko file=/dev/mtd3 stall=0 removable=1

4. 在Widnows XP上, 把开发板的USB device口通过USB连接线连到Windows PC的USB host口(即常用的插U盘的USB口)
Winodws资源管理器里会自动识别出可移动磁盘。

类似地, USB转网卡(/sys/class/net下有所有的网络设备), USB转串口(/dev目录下有对应的设备文件), 功能类似, 一般地, BSP都做好了, 最多调试下.

参考文献:
[1]. http://blog.chinaunix.net/space.php?uid=16400726&do=blog&id=2746341


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值