Linux에서 USB 장치를 분리했다가 다시 연결하는 것을 시뮬레이션/강제/위조할 수 있습니까?

Linux에서 USB 장치를 분리했다가 다시 연결하는 것을 시뮬레이션/강제/위조할 수 있습니까?

그래서 제가 직면한 이상한 문제가 생겼습니다. 저는 비트코인 ​​USB 채굴기인 Bitfury를 가지고 있고 CGMiner를 사용하여 채굴하고 있습니다.

루트로 애플리케이션을 시작하면 USB 장치가 자동으로 감지되지 않습니다. CGMiner는 스틱이 다시 연결될 때만 스틱을 감지합니다(핫플러그 이벤트를 감지한 다음 의도한 대로 작동합니다).

저는 헤드리스 미니 서버를 설정하고 싶습니다. 따라서 서버가 다시 시작될 때마다 일어나서 장치를 뽑았다가 다시 연결하는 것을 선호하지 않습니다. 그러기에는 너무 게으르고 다소 어렵기 때문입니다. 내가 실제로 집에 없을 때.

그렇다면 USB 시스템을 끄고 다시 시작하는 것이 가능합니까? 아니면 더 좋은 방법이 있나요?

현재 HP t5730 터미널에서 Fedora 20을 실행하고 있는데 Raspberry PI의 Raspbian에서 문제가 발생한 적이 있어서 OS측의 문제는 아닌 것 같습니다. 기기 자체의 문제일 수도 있고 CGMiner의 문제일 수도 있지만 아직 해당 주제에 대해서는 아무것도 찾지 못했습니다.

답변1

USB HCI 커널 모듈(*hci_hcd 및 *usb*)을 언로드하고 다시 로드합니다. 이는 실제로 USB 포트의 전원을 차단하는 신뢰할 수 있는 유일한 방법입니다.

동일한 작업을 수행하는 덜 엄격한 다른 방법이 있지만 장치 오류에 따라 작동이 보장되지는 않습니다.

답변2

이 답변유틸리티 사용법을 자세히 설명합니다 usbreset. 이것이 도움이 된다면 공감하세요.

이것이 자주 멈추는 USB 무선 동글을 "분리했다가 다시 연결"하는 방법입니다. 이 스크립트를 찾기 전에 재설정하려면 물리적으로 플러그를 뽑았다가 다시 연결해야 합니다.

$ usbreset
Usage:
  usbreset PPPP:VVVV - reset by product and vendor id
  usbreset BBB/DDD   - reset by bus and device number
  usbreset "Product" - reset by product name

Devices:
  Number 001/003  ID 046d:080a  
  Number 003/002  ID 045e:07a5  Microsoft® 2.4GHz Transceiver v9.0
  Number 001/002  ID 0cf3:9271  USB2.0 WLAN

$ sudo usbreset 0cf3:9271
Resetting USB2.0 WLAN ... ok

보시다시피 어떤 장치가 연결되어 있는지 확인하기 위해 인수 없이 스크립트를 한 번 실행했습니다. 그런 다음 sudo 및 제품/공급업체 ID(재부팅 시 일관됨)를 사용하여 다시 실행하여 가상으로 장치를 분리했다가 다시 연결합니다.

관련 정보