On Thu, 26 Mar 2020, John Donnelly wrote:
> Hi,
>
> This is 10,000 foot question for a issue I am looking at :
>
> Quite a few servers have a BCM that expose a USB keyboard and mouse
> when a " iLo client session " is started that also provides a remote
> console.
>
> For instance on Bus 01.Port 1: Dev 1, Port 8 there are these devices :
>
> lsusb -t
> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
> |__ Port 8: Dev 2, If 0, Class=Hub, Driver=hub/7p, 480M
> |__ Port 3: Dev 3, If 0, Class=Communications, Driver=cdc_ether, 480M
> |__ Port 3: Dev 3, If 1, Class=CDC Data, Driver=cdc_ether, 480M
>
>
> When a remote viewer ( iLO ) session is started, two HID appear under
> Port 8 :
>
>
> lsusb -t
> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
> |__ Port 8: Dev 2, If 0, Class=Hub, Driver=hub/7p, 480M
> |__ Port 1: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid,480M
> |__ Port 2: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid,480M
> |__ Port 3: Dev 3, If 0, Class=Communications, Driver=cdc_ether, 480M
> |__ Port 3: Dev 3, If 1, Class=CDC Data, Driver=cdc_ether, 480M
>
>
> Is this device tree showing me the Port 8 is somehow wired to the BCM
> ? And the BCM did some sort of operation that causes the xhci_hcd
> driver to enumerate a new device ?
Yes, it looks that way. The operation is just turning on a
connection -- electronically closing a switch. Same as if you plugged
in a keyboard and a mouse.
> The driver : “ usbhid “ in real life appears to be a built-in
> component to the kernel - Not a loadable module . I suspect that is
> so keyboards always work.
That's a common design decision, but it doesn't have to be that way.
If you build your own kernel, you can set it up any way you want.
> When the iLO session is terminated the two HID devices disappear .
>
> If anyone can point me documentation how this works I would appreciate it.
You should look though the documentation for the BCM and iLO. That's
where you're most likely to find the answers.
Alan Stern