USB 장치(동글)를 논리적으로 꺼내거나 연결을 끊었다가 다시 연결하는 방법은 무엇입니까?

USB 장치(동글)를 논리적으로 꺼내거나 연결을 끊었다가 다시 연결하는 방법은 무엇입니까?

우리는 동글 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

관련 정보