linux2.6内核usb gadget驱动移植 在写之前恶补一点usb slave端的知识 在kernel 2.4版本中,嵌入式USB驱动是在kernel/arch/arm目录下的ep0.c ep**.c, 在调试USB驱动的时候比较难,主要是如果在中断了加太多的printk, 会影响USB的时序,导致枚举就失败或不停地USB reset。 在kernel 2.6版本中,USB的驱动改为了gadget接口,在/kernel/drivers/usb/gadget目录下,有一系列的文件,这些文件都是USB的驱动,其中serial.c是bulk驱动...
请教个问题: 我的 gadget转net的驱动还是不对呢,PC总是报错:10 号错。 我的环境:S3C2410 linux2.6.14 insmod g_ether.ko ifconfig usb0 192.168.1.13 ifconfig usb0 up 控制台: Using /gg/g_ether.ko ether gadget: using random self ethernet address ether gadget: using random host ethernet address usb0: Ethernet gadget, version: May Day 2005 usb0: using s3c2410_udc, OUT ep2-bulk IN ep1-bulk STATUS ep...
我现在作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驱动以...
我用一块AM1808的开发板,它有两个USB控制器,一个是host,一个是OTG(2.0 full speed/high speed)。现在我将OTG配置成了ACM CDC Serial gadget设备,没有修改任何驱动代码,然后编译烧写,并自己写了测试程序进行测试,有几个问题百思不得其解,求大家帮助。 1.开发板内核版本为2.6.30,在开发板上配置好ACM CDC Serial gadget后,在开发板上可以看到 /dev/ttyGS0。 2.用usb线连接开发板和PC,PC是ubuntu系统,内核版本为2.6.28。...
在USB视频驱动的代码中(\drivers\usb\gadget),驱动调用vmallc_32分配内核虚拟空间,然后通过mmap来实现用户视频数据的0-拷贝。但是在得到视频数据后,它又分配空间(kmalloc)给USB endpoint 然后拷贝memcpy 视频数据。 1. 请问我的理解对吗? 2. 如果我直接用DMA传输视频数据,假定USB硬件支持scatter/gather DMA,那么如何把从vmalloc内核虚拟地址映射到物理地址? 3. 或者可以直接用kmalloc分配空间并且实现mmap,但是这样可行吗...
经过两个星期的学习和折腾,gadget驱动又有了新的进展。给驱动打上底版本的补丁后,从块设备上读文件是没有问题的,但是写文件操作的时候总是失败。今天用2.6.22内核版本的s3c2410_udc驱动backporting到我的内核上,可以正常工作读文件的时候没有问题,写操作的时候不会出现失败了,但是写大文件的操作的时候非常的慢啊!,这个问题还是有待解决! 回顾porting的过程:下载s3c2410_udc.c的补丁+修改相关的头文件,并注意注册设...
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博客,如...
我使用的是OMAP -L138的开发板,我通过make menuconfig配置了内核,使其支持USB gadget的功能,具体配置如下: < * > Inventra Highspeed Dual Role Controller(TI , ADI , ...) < * > DA8xx/OMAP-L1x Driver Mode (USB Peripheral(gadget stack)) - -> [ * ] Disable DMA(always use PIO) [ * ] Enable debugging messages < * > USB gadget support - - > < M > US...