우리는 동글 USB가 서버에 연결되어 있을 때만 작동하는 상용 애플리케이션을 구입했습니다. 그런데 가끔 앱이 동글을 인식하지 못해 동작하지 않는 경우가 있는데, 누군가 물리적으로 USB 포트에서 동글을 꺼내어 다시 연결하면 인식해서 잘 동작합니다.
서버에 43개의 모듈이 로드되어 있으며, 동글을 연결/꺼내더라도 모듈 수가 증가/감소하지 않습니다.
나는 아직도usbmon0,usbmon1그리고usbmon2파일은 다음 위치에 있습니다./개발자 동글 꺼내기/부착 전/후 및 포함된 파일 개수/개발자동글을 꺼내거나 연결하기 전/후에는 변경되지 않습니다.
logctl -f동글을 띄운 후 명령:
Jan 19 18:10:28 iwr kernel: usb 2-2.1: USB disconnect, device number 5
logctl -f동글 연결 후 명령:
Jan 19 18:11:11 iwr kernel: usb 2-2.1: new full-speed USB device number 6 using uhci_hcd
Jan 19 18:11:11 iwr kernel: usb 2-2.1: New USB device found, idVendor=0403, idProduct=c580
Jan 19 18:11:11 iwr kernel: usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jan 19 18:11:11 iwr kernel: usb 2-2.1: Product: HID UNIKEY
Jan 19 18:11:11 iwr kernel: usb 2-2.1: Manufacturer: OEM
Jan 19 18:11:11 iwr kernel: usbhid 2-2.1:1.0: couldn't find an input interrupt endpoint
팝하고 논리적으로 연결할 수 있나요? (명령 실행, 모듈 삭제 등)
답변1
인터넷에서 찾은 많은 답변(TNW 의견 포함)은 2.6.something 커널 에 의존 /sys/bus/usb/devices/2-2/power/level
하거나 더 이상 사용되지 않습니다. /sys/bus/usb/devices/2-2/power/control
최신 커널의 경우,권장 절차드라이버를 바인딩 해제했다가 다시 바인딩하는 것입니다. 일반적으로 전원 주기가 발생합니다.
# Find out which driver to unbind
tree /sys/bus/usb/devices/2-2.1 | grep driver
|-- driver -> ../../../../../../bus/usb/drivers/whatever
# Unbind the driver
echo 2-2.1 > /sys/bus/usb/drivers/whatever/unbind
# Rebind the driver
echo 2-2.1 > /sys/bus/usb/drivers/whatever/bind