I'm not sure if this is helpful at this, or indeed any, stage in the conversation, but for me one of the great joys of using Richard's port has been that it just works on real hardware without having to mess about, or having to worry about esoterica about USB and chums. At least they're esoterica to me as a Windows programmer. A few weeks back I was handed a pi at work, which is in the antipodes where the current flows in the other direction. I powered it via USB using the mains adapter that came with my iPod (which provides 2.1A at 5+ volts, although the 1A version that comes with the iPad mini also works fine)  plugged in a keyboard or two that were lying around (Logitech K120 and some random Dell keyboard worked equally well), plugged in a really cheap spare Logitech mouse that was also just lying around, attached a random monitor borrowed from the IT guys downstairs using an HDMI to DVI cable, and it all just worked. So my feeling, based on "cop instinct", as Steve McGarrett used to say, is "Book him, Dano". Oops, no, sorry, that was wrong. Book a mains USB power adapter, Dano, and borrow or scrounge any old rubbishy peripherals that the IT guys have lying around in a dusty cupboard, and find something that works. And if that doesn't work, and you're not having fun, just give up and try something else. Sorry to bang on, but the pi, Richard's port, Andrey's code, and assorted documents, including Michael Covington's newbie guide and Nemo's book, have made programming fun again for me.


On 3 March 2014 08:54, Richard Miller <9fans@hamnavoe.com> wrote:
> also, according to the linux kernel, we should not be looking for
> configurations on anything that's not a hub.

Personally I wouldn't look to the linux kernel as guidance for
correct behaviour.  Especially when there's a published specification
available.

Every usb device has at least one configuration descriptor.  The usb
spec allows for more than one, with a well-defined method for choosing
between them (not supported by plan 9 usb infrastructure).  In
practice though, it seems common for devices to ignore this and use some
bizarre proprietary and undocumented way to switch configurations instead.
Hence the need for abominations like the linux usb_modeswitch utility.