> > 1) CDC-ACM: For testing gadget-side implementation, with the gadget > serial > driver loaded, if the device enumerates correctly, it should be > enough > right? > [Vivek]: Yes that is all. I have tested this on 2.6.17/26, 1st load > gadget then load file_storage works fine with Linux Host and Windows XP. > For this you need to make backing file on your board of say 4MB then > board will be become 4MB memory stick. See this link > www.linux-usb.org/gadget/file_storage.html Ok cool. though I'll be interested in testing out the serial gadget driver (drivers/usb/gadget/serial.c) > > 2) CDC-ECM: Since the host-side driver works only with a particular type > of USB-Ethernet chip, can I tweak the ether gadget driver to "fake" > this device? > [Vivek] this I have not tried till now but I will try some day. > See I think ether.c is hardware independent and will require gadget > driver NOT HOST. This you can tune to your needs. > http://www.linux-usb.org/gadget/ Yes you're right, I was talking about tweaking the gadget driver only... (drivers/usb/gadget/ether.c) Thanks, -mandeep > > 3) Has anybody here worked with compulab's cmx270L board? The problem > I'm > facing is that I'm unable to STOP the bootloader (ARMMon) from > booting > the pre-loaded kernel! I need the bootloaders prompt to be able to > load > a newer kernel to it. > [vivek] I don't know, generally you can burn your kernel image and > rootfs but this is only possible if you get the bootloader prompt. > > I've followed procedure mentioned here: > http://www.compulab.co.il/mediawiki/index.php5?title=Getting_started_wit > h_Linux_on_CM-X270#Image_installation > > But no luck! :( > > Thanks again, > -mandeep > > On 1/12/09, Vivek Kumar Gupta <gkvivek@xxxxxxxxx> wrote: >> Hi Mandeep, >> Too many question, separate and ask them. >> >> 1. USB Gadget is the basic driver which is nothing but USB Device(or >> Slave driver). This will make the Board as USB Device. But u need more >> other then just this driver. >> 2. Based on Gadget: you can use File Storage Module if you need to > make >> your board as USB Memory stick. Just change few configuration in >> file_storage.c >> like wise there are many modules( or application drivers) which use >> Gadget driver. >> >> Now, Next question: you can compile them separately means outside the >> Linux kernel as module and load them. >> >> Also enable & use USB Mon to see USB Protocol flow. >> >> Grep usb_gadget_register_driver / usb_gadget_unregister_driver API's > to >> see if any body is using them in your kernel. >> >> >> Regards >> Vivek >> >> -----Original Message----- >> From: kernelnewbies-bounce@xxxxxxxxxxxx >> [mailto:kernelnewbies-bounce@xxxxxxxxxxxx] On Behalf Of Mandeep Sandhu >> Sent: Monday, January 12, 2009 10:57 AM >> To: Kernel Newbies >> Subject: newbie usb gadget query >> >> Hi All, >> >> I had a few doubts regarding USB gadgets under linux. I posted the >> bellow query to the >> linux-usb mailing list, but since I haven't received any replies, I >> thought I'd try my luck here! :) >> >> Please let me know if this is not the right place for this query... >> >> I'm new to USB device driver development. I've mostly done a few LKMs >> (and an ethernet driver) on 2.6 kernels. And this too was sometime > back >> (around 1.5 yrs!)...so my knowledge on a few things might be rusty! :) >> >> I'm working on an embedded board and would like to validate a few >> assumptions here before proceeding to start work on them. >> >> The board is a Compulab CM-X270L (PXA270). This board has USB master > as >> well as a slave port. It's currently running a patched 2.6.16 kernel >> (the patch is from Compulab). It runs Compulab's Debian distribution >> - "Debian GNU/Linux 3.1". >> >> We need to use the board as a USB slave to a machine which has a USB >> master (root hub). This machine runs a proprietary OS and we do not >> have access to it's source code and/or any other means to access it's >> internals. >> >> This proprietary OS supports the following USB classes: >> >> * CDC-ACM: Full ACM specs >> >> * CDC-ECM: The USB host side diver on the OS, only works with one >> particular USB-ethernet dongle (say chip-X). So I'm guessing the OS >> does not support the full ECM specs. >> >> We need to use the board as a slave and test it's interoperability > with >> the host for the above mentioned USB classes. >> >> I plan to do the following: >> >> 1) CDC-ACM: Compile the USB gadget serial driver as a LKM for the > board. >> If the module loads successfully, connecting the slave port to the >> host should make it (the slave), enumerate successfully as an ACM >> device. >> >> 2) CDC-ECM: This one's a bit tricky! I understand that the ethernet is >> implemented in drivers/usb/gadget/ether.c. But, since the host side >> driver is written to work with a particular chipset, will it work >> "AS IS" with the ethernet gadget driver? >> Also, in case it doesn't work, can I tweak the gadget driver to make >> it work/enumerate correctly with the host? Basically I'll be > "faking" >> the chip in s/w...is this possible to do? >> >> Also, how can I verify that the kernel has recognized the USB slave >> device? >> During kernel configuration, we can choose gadget support as a module. >> >> The following link states that the USB device functionality is not >> supported >> in 2.6.16 kernels: >> >> > http://www.compulab.co.il/mediawiki/index.php5?title=Linux_Kernel_for_CM >> -X270#USB_device >> >> Using the link given on the above page...I downloaded the complete >> gadget >> source: >> > http://handhelds.org/cgi-bin/cvsweb.cgi/linux/kernel26/drivers/usb/gadge >> t/?only_with_tag=K2-6-16-DEV >> >> After this, when compiling the kernel, when I enabled the USB gadget >> support, >> I could see the device controller for PXA27x boards. This produced the >> pxa27x_udc LKM. On inserting the module I got the following error: >> >> pxa27x_udc: exports duplicate symbol usb_gadget_register_driver (owned >> by kernel) >> >> If i grep /proc/kallsyms I can see this symbol exported. Is this >> symbol exported by a >> module or is this due to gadget support being built into the currently >> running kernel? >> There's no way I can find out what configuration the currently runnig >> kernel (2.6.16-cmx270) >> was built, since the required file is not under /boot!! >> >> Another pain-point is the fact that I can't re-flash the kernel on the >> Compulab board with a newer version (I think 2.6.24 has support for > USB >> device). This is because the board directly boots up the kernel and > does >> not stop at the prompt. I've followed the procedure mentioned here: >> >> > http://www.compulab.co.il/mediawiki/index.php5?title=Getting_started_wit >> h_Linux_on_CM-X270#Image_installation >> >> but this doesn't seem to work, the bootloader (ARMMon) still boots the >> kernel >> directly! :( Any clues as to how to circumvent this problem? >> >> Any suggestions are welcome. Thanks for your time. >> >> Regards, >> -mandeep >> >> -- >> To unsubscribe from this list: send an email with >> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx >> Please read the FAQ at http://kernelnewbies.org/FAQ >> >> > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ