Assista conexões USB identificação do fornecedor, identificação do produto e revisão

8

Eu gostaria de simplesmente assistir a todos os dispositivos adicionados e removidos do meu sistema e visualizar o ID do fornecedor USB, o ID do produto e a revisão e outras informações relevantes. Como posso fazer isso no Linux? Existe um arquivo de log que eu possa tail -fou isso exige outra coisa?

Naftuli Kay
fonte
É dmesgdetalhado o suficiente?
Rany Albeg Wein
Não vejo nenhuma saída do tailing / var / log / dmesg. Conecte / remova = nada.
Naftuli Kay
1
O @RanyAlbegWein dmesgnão exibe todos os eventos USB, apenas aqueles para os quais um manipulador existe e chama printk().
Chris Down
Então, existe uma maneira de seguir o udev para obter as informações?
Naftuli Kay

Respostas:

6

Essas informações aparecem nos logs do kernel - normalmente em /var/log/kern.log, ou em /var/log/syslogalgum outro arquivo (depende da configuração do seu syslog, diferentes distribuições têm padrões diferentes).

Se você deseja algo pré-filtrado, pode adicionar uma regra do udev. Crie um arquivo /etc/udev/rules.d/tkk-log-usb.rulescontendo algo como:

SUBSYSTEM=="usb", RUN+="/usr/local/sbin/tkk-usb-event"

O ambiente do programa é preenchido com várias variáveis ​​que descrevem o dispositivo, incluindo:

  • ACTION( addou remove)
  • DEVICE é um caminho para o dispositivo, se você deseja acessá-lo
  • ID_MODEL_IDe ID_VENDOR_IDconter o modelo e fornecedor ID e ID_MODELe ID_VENDORconter o texto correspondente
  • ID_SERIAL contém o número de série do dispositivo (se disponível)
Gilles 'SO- parar de ser mau'
fonte
10

Você pode fazer isso com udevadm:

udevadm monitor --subsystem-match=usb --property

ou

udevadm monitor --subsystem-match=usb --property --udev

para filtrar apenas udeveventos. Se você quiser greppara uma propriedade particular, você terá que un-buffer udevadmde saída (com ferramentas como stdbuf, script, unbuffer...):

stdbuf -i 0 -o 0 -e 0 udevadm monitor --subsystem-match=usb --property --udev | grep DEVPATH

ou

script -q /dev/null -c "udevadm monitor --subsystem-match=usb --property --udev" | grep PRODUCT

ou

unbuffer udevadm monitor --subsystem-match=usb --property --udev | grep -E 'ID_VENDOR_ID|ID_MODEL_ID'
don_crissti
fonte
0

Se você deseja apenas monitorar os dispositivos USB conectados atuais, isso watch --no-title lsusbpode ser suficiente .

Frederik Deweerdt
fonte