Linux下USB从(USB gadget) 驱动配置与使用

S3C2440提供了一个USB从接口,我们可以使用它来把2440模拟为一个U盘,直接从电脑上以盘符的形式访问2440

一、内核配置
USB SUPPORT

<*>USB Gadget Support  --->

          USB Peripheral Controller (S3C2410 USB Device Controller)  --->

          S3C2410 USB Device Controller

    []    S3C2410 udc debug messages

    <M>   USB Gadget Drivers

    <M>   File-backed Storage Gadget

二、make zImage 

生成z‫Image文件烧入开发板

      make modules 在driver/usb/Gadget目录下生成g_file_storage.ko文件,烤入开发板中

三、开发板操作

1、建立一个镜像模拟U盘

#dd if=/dev/zero of=vfat.img bs=1M count=20//制作一个fat格式的镜像文件,在主机上、开发板上做都可以

#losetup /dev/loop0 vfat.img//将镜像与loop0建立连接

#mkfs.vfat /dev/loop0//格式化做出的镜像

#mkdir vfat_mount_point//创建挂载点

#mount /dev/loop0 vfat_mount_point/挂载挂载点

#insmod g_file_storage.ko file=/dev/loop0 stall=0 removable=1//插入脚本

      (如果根文件系统有其它分区,可以直接指定相应的分区,不过需格式化为fat方可使用)

插上开发板的usb从接口,即可从PC机段看到vfat_mount_point下的内容

四、存在问题:

1、在PC机下看开发板,永远显示空间已用满,无法从PC机将程序拷到开发板中

2、从开发板往PC机烤东西时,要先挂载vfat_mount_point目录,将东西拷入vfat_mount_point目录

   再敲入以下命令后insmod g_file_storage.ko file=/dev/loop0 stall=0 removable=1

   最后插入USB从口