Hebang
(usa Arch Linux)
Enviado em 07/04/2011 - 10:42h
Bom:
Uma forma de fazer seria usar o comando lsusb, que lista as portas usb da máquina.
Por exemplo:
Quando rodo o lsusb na minha máquina sem nenhum dispositivo usb conectado a nenhuma porta, o comando retorna:
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 064e:a103 Suyin Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Já se coloco minha pendrive em uma porta, a resposta do comando é a seguinte:
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 064e:a103 Suyin Corp.
Bus 002 Device 003: ID 0951:1607 Kingston Technology DataTraveler 100
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Você poderia guardar a resposta do comando sem nenhum dispositivo usb conectado e, nas próximas verificacões, compare com o resultado original. Se a comparacão acusar que as respostas são diferentes, sinal que algum dispositivo entrou no sistema.
Vou procurar uma forma mais elegante de fazer. Se descobrir algo, posto aqui.
Espero ter ajudado!