USB Devices with multiple modes (flip-flop/Zero-CD)

75 views
Skip to first unread message

tarikk

unread,
Sep 22, 2010, 1:01:31 AM9/22/10
to android-porting
Im dealing with a USB 3G Modem that has a flip-flop/Zero-CD mode. Its
showing me the device as a scsi cdrom but it should show 4 usb ports.

How do i change the devices mode? Normally we'd use USB_modeswitch but
i dont think thats possible since there is no udev or libusb
(..normally) and other things that usbmodeswitch needs.

Does the android kernel use anything similar to udev?

Thanks people!

Chris Stratton

unread,
Sep 22, 2010, 1:52:32 AM9/22/10
to android-porting
Just stabbing in the dark here, but can you figure out what
usbmodeswitch actually causes the kernel to do, and then make your
modem driver module cause that itself?

Assuming of course that you can figure out how to make the modem
driver module claim the cdrom-mode version of the device, before some
mass storage or cd builtin driver grabs it.

It seems to me that what those desktop linux userspace mechansisms are
really doing is providing a means of telling the kernel to do some
simple operation on a specific usb device - but there are less general
purpose ways of telling the kernel to do stuff - like building it into
your driver, or building a driver that just pushes the right internal
kernel buttons when insmoded, or making a control device file and
calling an ioctl on it, or...

I would assume you could probably also set the configs to build udev
and various other full-featured linux bits perhaps? not used in
android (phone) kernels - but I suppose there might be compatibility
problems with android style power management or something.
Reply all
Reply to author
Forward
0 new messages