usb gadget API Layer的相关资料: 1. http://www.linux-usb.org/gadget/ 2. 内核中/KernelDoc/gadget/目录下的文档 3.最重要的就是/include/linux/usb_gadget.h文件,该文件中有gadget API接口数据结构和方法的详细定义及注释。 gadget Driver的例子: 4. 内核/drivers/usb/gadget/目录下有一些gadget driver的例子,zero.c为最简单的例子,file_storage.c是存储设备的gadget driver。 本文来自ChinaUnix博客,如...
by ali_tong - Linux文档专区 - 2008-06-12 21:36:36 阅读(1431) 回复(0)
文件: Linux usb gadget设备驱动.rar 大小: 222KB 下载: 下载 copy 刘洪涛老师的!(感谢刘老师无私奉献) 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/71164/showart_2129715.html
最近在试 usb gadget的代码 我是把Ethernet gadget 编译到内核里去的 按照 http://www.linux-usb.org/gadget/ 介绍 按上面说的 应该只要把Document/usb/linux.inf改成windows下的换行 (xp是自带 RNDIS的驱动) 就可以安装成功了 可是我安装的结果是出现黄色的感叹号 开发板上 显示的是 g_ether gadget: full speed config #2: RNDIS 用的是2440的开发板 会是什么地方的问题呢?
本帖最后由 arm-linux-gcc 于 2014-01-02 14:47 编辑 通过gadget将板子上的一个vfat格式的映像文件作为模拟u盘,供给pc使用 #modprobe g_mass_storage.ko file=fat32.img stall=0 removable=1 这个fat32.img只是个分区映像,用mkfs.vfat创建的,但是pc那边应该还需要从U盘的mbr读取主分区表吧。 那么这个mbr是在什么地方呢? g_mass_storage.ko中有实现吗?
我现在作s3c2440的gadget驱动,usb设备的复位操作好像出现了问题 驱动里面的打印信息是: usb_status = udc_read(S3C2410_UDC_usb_INT_REG); usbd_status = udc_read(S3C2410_UDC_EP_INT_REG); pwr_reg = udc_read(S3C2410_UDC_PWR_REG); ep0csr = udc_read(S3C2410_UDC_IN_CSR1_REG); printk( "usbs=%02x, usbds=%02x, pwr=%02x ep0csr=%02x\n", usb_status, usbd_status, pwr_reg, ep0csr); 在加载了udc和g_file_storage驱动以...
S3C2440 + Linux 2.6.18.2 ,当PC向usb DEVCIVE写大文件时(10M以上),在传输过程中会出现在以下错误信息 do_write sleep_thread error g_file_storage gadget: full speed config #1 g_file_storage gadget: full speed config #1 g_file_storage gadget: full speed config #1 g_file_storage gadget: full speed config #1 即在file_storage.c文件中出错, if ((rc = sleep_thread(fsg)) != 0) { printk("do_write ...
学linux usb驱动有一段时间了,但是始终有一个问题还在困恼我:下面我将问题阐述如下,请高手们指点: static struct usb_driver usb_dht_driver = { .name = "usbdht", .probe = usb_dht_probe, .disconnect = usb_dht_disconnect, .id_table = usb_dht_id_table, }; 在usb驱动程序的probe函数中会定义 会注册设备的操作接口(如字符设备的 open,read,write等操作), stati...
最近在看usb驱动,一大堆东西,看得云里雾里了,什么udc,什么gadget, 什么usb core 总之,分不清啥是啥了 谁能帮个忙简单讲解下usb目录下的这些目录的作用吗? 谢谢了. |-- atm |-- class |-- core |-- gadget | `-- dwc_otg |-- host |-- image |-- input |-- misc | `-- sisusbvga |-- mon |-- musb |-- net |-- otg |-- serial `-- storag
最近在看usb驱动,一大堆东西,看得云里雾里了,什么udc,什么gadget, 什么usb core 总之,分不清啥是啥了 谁能帮个忙简单讲解下usb目录下的这些目录的作用吗? 谢谢了. |-- atm |-- class |-- core |-- gadget | `-- dwc_otg |-- host |-- image |-- input |-- misc | `-- sisusbvga |-- mon |-- musb |-- net |-- otg |-- serial `-- storag
需要注意的是,这些调试信息得是我们打开了编译选项CONFIG_usb_STORAGE_DEBUG才有意义的,这里也看出来了,如果这个选项为0,那么这几个宏就什么也不干,因为它们被赋为空了.关于US_DEBUG系列的这几个宏,就讲这么多,之后再碰上,将直接过滤掉,不予多说. 关于prink和kmalloc,这两个函数也没有太多需要说的,对大多数人来讲,就把printk当成printf,把kmalloc当成malloc即可,只不过是这两个函数是专门用于内核代码中的.一个是打印一些东西,一个...
probe,disconnect,id_table,这三个咚咚中首先要登场亮相的是id_table,它是干嘛用的呢? 我们说过,一个device只能绑定一个driver,但driver并非只能支持一种设备,道理很简单,比如我有两块U盘,那么我可以一起都插入,但是我只需要加载一个模块,usb-storage,没听说过插入两块U盘就得加载两次驱动程序的,除非这两块U盘本身就得使用不同的驱动程序.也正是因为一个模块可以被多个设备共用,才会有模块计数这么一个说法. ok,既然一个driver可...