Samsung Galaxy S I9000 Gains USB Host Functionality
Ever since the release of the Samsung Galaxy S in June of 2010, enabling USB Host has been a hot topic. While remaining a hopeful situation for a year and a half, success has remained just one or two steps out of reach. Luckily, the tribulations of developer life simply cannot stop the developers of this site from overcoming OEM-imposed device limitations.
Loosely based on a previously released set of USB host drivers that were later adapted to work with the Samsung Galaxy Tab, XDA Recognized Developer sztupy baked his modifications into teamhacksung’s ICS Build 14 kernel. As such, the new kernel will only work with that particular ROM. Currently, only USB 2.0 devices work, precluding the use of USB HID devices such as keyboards and mouses. In the words of the developer:
What is working:
USB 2.0 devices seem to work fine. This includes flash drives, and other accessories like Canon DSLRs. This concludes all USB 2.0 devices I have at home.
What does not work:
USB 1.x devices doesn’t seem to work. This includes almost all HID devices (like keyboard and mice).
Also you will need to power the devices externally, as the phone doesn’t give out power on the OTG connector.
USB device enumeration is also broken sometimes, and it will not re-enumerate mass storage devices after they have been connected. (This means you cannot connect another Android phone as a mass storage device. WM phones are fine though). The built in root hub will never re-enumerate devices, they have to be already connected to the phone when you switch to host mode for them to work.
Do I need a hub to get it working?
No, if you only want to connect one device you can connect it straight to the phone (if you provide it with +5V power). This means you can connect the one end of a Y cable to a power source, the other end to your device and the third end to the phone’s OTG cable, and it will work. On the other hand a lot of things are broken on the S3C’s root hub implementation meaning you will probably get better results and less crashes if you hook up your devices through an external hub.
Looking to get in on the USB Host action on your ICS-powered Samsung Galaxy S i9000? Head over to the kernel thread to get started. Are you an SGS kernel or ROM developer looking to port the patches to your own release? If so, look no further.