Using egoshin's idea, I got a DisplayLink device working: This is the same USB monitor shown at the DisplayLink homepage, connected to a N900, in dual screen "clone" mode (more accurately x11vnc, vnc2dl and libdlo, all on the N900). vnc2dl seems to have a 1280x1024 forced resolution. Basically the requirement of connecting the N900 to a host previously is the key. If you play your cards well you don't even need to patch the kernel (Y-cable, or fully self powered bug, etc.). I initially though that this requirement came from a g_mass_storage bug that seemingly also happens on the beagleboard, but I was wrong. Seemingly, DocScrutinizer is right: for some reason after repeating egoshin's steps the N900 seems incapable of closing any USB session, and thus after you unplug it from the host it still believes it's plugged into it, keeping everything powered on. This tricks the driver's OTG state machine into some weirdo state where something starts moving . Also, with this method you cannot unplug the hub from the N900, as per the above the N900 will keep on thinking it's still connected to it, thus causing mayhem on the kernel.