시스템에 추가 및 제거된 모든 장치를 보고 USB 공급업체 ID, 제품 ID, 버전 및 기타 관련 정보를 확인하고 싶습니다. Linux에서 이 작업을 어떻게 수행할 수 있나요? 사용할 수 있는 로그 파일이 있습니까? tail -f
아니면 다른 것이 필요합니까?
답변1
당신은 이것을 할 수 있습니다 udevadm
:
udevadm monitor --subsystem-match=usb --property
또는
udevadm monitor --subsystem-match=usb --property --udev
이벤트만 필터링합니다 udev
. 특정 속성을 원할 경우 출력 grep
버퍼링을 해제해야 합니다 udevadm
( stdbuf
, script
, ... unbuffer
와 같은 도구 사용).
stdbuf -i 0 -o 0 -e 0 udevadm monitor --subsystem-match=usb --property --udev | grep DEVPATH
또는
script -q /dev/null -c "udevadm monitor --subsystem-match=usb --property --udev" | grep PRODUCT
또는
unbuffer udevadm monitor --subsystem-match=usb --property --udev | grep -E 'ID_VENDOR_ID|ID_MODEL_ID'
답변2
이 정보는 커널 로그(일반적으로 /var/log/kern.log
, 또는 /var/log/syslog
다른 파일)에 나타납니다(이는 syslog 구성에 따라 다르며 배포마다 기본값이 다릅니다).
무언가를 사전 필터링하려면 udev 규칙을 추가할 수 있습니다. /etc/udev/rules.d/tkk-log-usb.rules
다음 내용으로 파일을 만듭니다 .
SUBSYSTEM=="usb", RUN+="/usr/local/sbin/tkk-usb-event"
프로그램 환경은 다음을 포함하여 장치를 설명하는 다양한 변수로 채워집니다.
ACTION
(add
또는remove
)DEVICE
장치의 경로입니다(액세스하려는 경우).ID_MODEL_ID
해당 텍스트ID_VENDOR_ID
와 함께 모델 및 공급업체 ID를 포함합니다 .ID_MODEL
ID_VENDOR
ID_SERIAL
장치의 일련 번호가 포함되어 있습니다(사용 가능한 경우).
답변3
현재 연결된 USB 장치만 모니터링하려는 경우에는 watch --no-title lsusb
이것이 적합할 수 있습니다.