I think the problem is that gadget only supports one driver at a time, so you cannot run the android gadget driver and gadgetfs simultaneously. If you built the android driver as a module, then you could manually load one or the other and switch between android and gadgetfs. But the android driver is not currently set up to work as a module (we are just statically linking it in at this point). It probably wouldn't be too hard to get it working as a module, but I don't think anyone has done that yet.
Mike On Fri, Jul 24, 2009 at 3:50 AM, Ashutosh<as...@techmahindra.com> wrote: > > Hi Mike, > > I have been able to compile kernel 2.6.29 with configuration (USB > function is disabled)-- > > CONFIG_USB_GADGET=y > CONFIG_USB_GADGET_VBUS_DRAW=500 > CONFIG_USB_GADGET_SELECTED=y > CONFIG_USB_GADGET_MSM_72K=y > CONFIG_USB_MSM_72K=y > CONFIG_USB_GADGET_DUALSPEED=y > CONFIG_USB_ANDROID=y > > I am able to get adb shell. > > I also compiled gadgetfs as module and got gadgetfs.ko. I inserted it > in kernel but when I try to mount on it (mount -t gadget path /dev/ > gadget) I get error "mount: No such device". > > I debugged it and found that it fails in usb_gadget_register_driver() > at point -- > > if (ui->driver) > return -EBUSY; > > I am getting this error because msm72k_udc is busy and held by android > gadget (USB_ANDROID). > > I tried to compile CONFIG_USB_ANDROID as module (CONFIG_USB_ANDROID=m) > and modified system/core/rootdir/init.rc to insert g_android.ko > (insmod /system/lib/modules/g_android.ko). > > This is not working as I am not able to get adb shell. > > Would you please let me know, if it is possible to compile g_android > as module and get inserted in kernel at bootup? > > Thanks > Ashutosh > > > > On Jul 13, 4:35 pm, Mike Lockwood <lockw...@android.com> wrote: >> Hi Ashutosh, >> >> I think the problem is that the gadgetsupportis broken in our 2.6.27 >> kernel. However, I do know it is working in 2.6.29. I believe if you >> do the following: >> >> - backport the latest drivers/usb/gadget/android.c from 2.6.29 back to 2.6.27 >> >> - backport the following commit from 2.6.29 to to 2.6.27: >> >> commit f9335f6d0cfa5b8fc2a10c2a63ebcd42efbf99cb >> Author: Mike Lockwood <lockw...@android.com> >> Date: Fri Feb 20 15:56:06 2009 -0500 >> >> [ARM] msm: htc: Clean up USBsupportin trout and sapphire board files >> >> Signed-off-by: Mike Lockwood <lockw...@android.com> >> >> - Finally, configure your kernel with the USB functionsupport >> disabled and the following gadget features enabled: >> >> CONFIG_USB_GADGET=y >> CONFIG_USB_GADGET_VBUS_DRAW=500 >> CONFIG_USB_GADGET_SELECTED=y >> CONFIG_USB_GADGET_MSM_72K=y >> CONFIG_USB_MSM_72K=y >> CONFIG_USB_GADGET_DUALSPEED=y >> CONFIG_USB_ANDROID=y >> >> I'm not sure how easy this will be to do the backporting, but it >> should be possible. >> >> Mike >> >> >> >> On Mon, Jul 13, 2009 at 7:02 AM, Ashutosh<as...@techmahindra.com> wrote: >> >> > (especially to Mike Lockwood) >> >> > If I want to havegadgetfssupportat ADP1 and have adb working, how >> > do I need to to configure kernel and compile? >> >> > I have tried many things including using 'CONFIG_USB_ANDROID=y' and >> > 'CONFIG_USB_FUNCTION is not set' but nothing worked. To compile this >> > configuration I had to make some modification in some of the files. >> > List is as below -- >> >> > 1) In arch/arm/mach-msm/include/mach/board_htc.h (Reason: Type of >> > t_usb_status_notifier was not visible) >> >> > 58 //#if defined(CONFIG_USB_FUNCTION_MSM_HSUSB) >> >> > 68 //#endif >> >> > 2) In arch/arm/mach-msm/htc_battery.c (Reason: Definition of >> > usb_register_notifier() was not known. Its defintion is in drivers/usb/ >> > function/msm_hsusb.c) >> >> > 793 // usb_register_notifier(&usb_status_notifier); >> >> > I am able to boot this image on ADP1 but when I connect it to my PC >> > via USB it reboots. >> >> > On Jul 10, 7:05 pm, Ashutosh <as...@techmahindra.com> wrote: >> >> Hello Everybody, >> >> >> I wanted to putsupportforgadgetfssupporton ADP1. >> >> >> I have downloaded android-1.5r2. >> >> >> My local_manifest.xml is -- >> >> >> <?xml version="1.0" encoding="UTF-8"?> >> >> <manifest> >> >> <remove-project name="kernel/common"/> >> >> <project path="kernel" name="kernel/msm" revision="refs/heads/ >> >> android-msm-2.6.27"/> >> >> <project path="vendor/htc/dream" name="platform/vendor/htc/dream" >> >> revision="cupcake"/> >> >> <project path="hardware/msm7k" name="platform/hardware/msm7k" >> >> revision="refs/heads/master"/> >> >> </manifest> >> >> >> I have copied arch/arm/configs/msm_defconfig as .config in mydroid/ >> >> kernel. >> >> >> I made changes in .config tosupportgadgetfs. >> >> >> As Mike has suggested >> >> athttp://groups.google.com/group/android-platform/browse_thread/thread/... >> >> , I have disabled CONFIG_USB_FUNCTION and enabled CONFIG_USB_GADGET >> >> and CONFIG_USB_GADGET_MSM_72K. >> >> >> After configuring kernel, GADGET and USB_FUNCTION configuration looks >> >> like below -- >> >> >> CONFIG_USB_GADGET=y >> >> CONFIG_USB_GADGET_SELECTED=y >> >> CONFIG_USB_GADGET_MSM_72K=y >> >> CONFIG_USB_MSM_72K=y >> >> CONFIG_USB_GADGET_DUALSPEED=y >> >> CONFIG_USB_GADGETFS=y >> >> >> # >> >> # USB FunctionSupport >> >> # >> >> # CONFIG_USB_FUNCTION is not set >> >> >> Now I try to compile kernel and get below error -- >> >> >> arch/arm/mach-msm/htc_battery.c:187: error: variable >> >> 'usb_status_notifier' has initializer but incomplete type >> >> arch/arm/mach-msm/htc_battery.c:188: error: unknown field 'name' >> >> specified in initializer >> >> arch/arm/mach-msm/htc_battery.c:188: warning: excess elements in >> >> struct initializer >> >> arch/arm/mach-msm/htc_battery.c:188: warning: (near initialization for >> >> 'usb_status_notifier') >> >> arch/arm/mach-msm/htc_battery.c:189: error: unknown field 'func' >> >> specified in initializer >> >> arch/arm/mach-msm/htc_battery.c:189: warning: excess elements in >> >> struct initializer >> >> arch/arm/mach-msm/htc_battery.c:189: warning: (near initialization for >> >> 'usb_status_notifier') >> >> arch/arm/mach-msm/htc_battery.c: In function 'htc_battery_init': >> >> arch/arm/mach-msm/htc_battery.c:793: error: implicit declaration of >> >> function 'usb_register_notifier' >> >> >> I looked for declaration of t_usb_status_notifier and found it in arch/ >> >> arm/mach-msm/include/mach/board_htc.h, but this will be visible only >> >> when CONFIG_USB_FUNCTION_MSM_HSUSB is defined. Since we have disabled >> >> CONFIG_USB_FUNCTION, none of the CONFIG_USB_FUNCTION* are set. >> >> >> I have tried enabling CONFIG_USB_FUNCTION and >> >> CONFIG_USB_FUNCTION_MSM_HSUSB but that gave many multiple definition >> >> error. >> >> >> Please suggest how do I go about it? >> >> >> Thanks >> >> -- >> Mike Lockwood >> Google android team > > > -- Mike Lockwood Google android team --~--~---------~--~----~------------~-------~--~----~ unsubscribe: android-kernel+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-kernel -~----------~----~----~----~------~----~------~--~---