The problem is that the the O1 does not provide USB power, so you need to hack that in some way (use some external power supply), which I did.
Also, I have tried several kernels (stock, mik and this one) but nothing seems to happen when I plug devices (I have tried booting with the cable connected, etc.). There is no output regarding the USB when I type dmesg in terminal.
USB has 3 standard modes:
USB Host - connector acts as a "master" - just like the ports on a PC.
USB Device - connector acts as "slave" - just like most phones, mice, usb sticks, etc.
USB OTG - the USB connector acts like a device with a normal cable, but if you connect a special adapter (like the CA-157) the USB port switches to USB Host mode, so you can connect "USB Device" devices. Details on how this should work are on this thread and also elsewhere (wikipedia, etc.)
For our device to be able to recognize external devices as slaves we need:
- a special adapter (with external USB power)
- a kernel that has either full OTG support (the ability to switch into Host mode) or a kernel that has only USB Host mode driver compiled
- drivers/modules in the kernel for the devices that we connect (mouse, keyboard, memory stick, webcam, whatever)
- some app that automounts the USB Storage (or at least a line in fstab) or the knowledge to mount via the terminal (for the usb memory sticks/hdds).
I am not a developer, and also I do not have enough time to do extensive searches and testing. But I can give a hand. Also, if you browse the first posts of this thread, you will find some links and stuff.
Also, for people wanting USB OTG working on O1 a VERY good example is the ZTE Blade - same CPU, but has USB OTG working "out of the box" with the latest official roms.