"If it quacks like a keyboard and types like a keyboard it must be a keyboard."
Isso nem sempre é verdade. A lsusb utillity obtém suas informações de um arquivo chamado /var/lib/usbutils/usb.ids para pesquisar os IDs de fornecedores, ids de produtos, classes, subclasses e protocolos. Mas, observe que um dispositivo USB pode imitar um ID errado (consulte Rubber Ducky para exemplo).
No entanto, gosto da opção -t para obter mais informações sobre dispositivos conectados. Um mouse USB, por exemplo, ficaria assim:
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 1.5M
A parte interessting no Driver=usbhid , onde você pode descobrir qual driver o kernel usa para aquele dispositivo específico. A classe do dispositivo é HID, o que significa um dispositivo de interface humana . Nesse caso, a entrada simples lsusb ficaria assim:
Bus 006 Device 002: ID 046d:c050 Logitech, Inc. RX 250 Optical Mouse
046d é o ID do fornecedor pesquisado como Logitech, Inc. e c050 é o ID do produto pesquisado como RX 250 Optical Mouse .
Você pode grep o arquivo de id desses IDs verificar:
$ grep -P "^046d|c050" /var/lib/usbutils/usb.ids
046d Logitech, Inc.
c050 RX 250 Optical Mouse