When I boot up, I have to unplug and plug in a hub, sometimes a few times, before my keyboard is recognized. Here's the set-up (it's on my MacBook Air, 10.7): on one USB port I have a Kanex DualRole, which is a combination USB 3.0 hub and an ethernet adaptor. (It was pricey, but exactly what I needed.) One of the things plugged into that USB 3.0 hub is a cheap Belkin USB 2 hub, for peripherals that don't need the bandwidth. And my external keyboard is plugged into that hub. So it goes: MBA --> Kanex DualRole --> Belkin USB 2 hub --> keyboard. When I boot up, the keyboard is not recognized. Kanex support have told me the following: "the DualRole acts as a USB hub Host and by adding the Belkin hub it will not be detected during the boot process, since now you have 2 hosts, and only the primary Hub host connected to MacBook Air will be detected." So I unplug the Belkin from the Kanex a couple of times, unplug the keyboard from the Belkin, plug everything back in, and after two or three times it usually works. But it's a pain in the neck! I (obviously) have no idea how it all works, but would it be possible to write a script that could make OS X force any hubs to query all of its inputs recursively so as to detect whatever is there? Thank you!