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