컴퓨터가 호스트 대신 가상 USB 슬레이브 장치로 작동하도록 허용

컴퓨터가 호스트 대신 가상 USB 슬레이브 장치로 작동하도록 허용

가상 하드 드라이브(특히 freeNAS 설치 시)를 전화나 비디오 게임 콘솔과 같은 외부 장치용 USB 대용량 저장 장치 주변 장치로 사용하려는 경우가 있습니다. 내 생각은 설정에서 모든 USB 저장 장치를 제거하고 대신 NAS의 일부로 가상화하여 정기적인 백업 루틴의 일부로 쉽게 만드는 것이었습니다.

USB가 대칭 설정이 아니라는 것을 깨달았기 때문에 NAS에 슬레이브 포트가 필요했습니다. 또한 이 작업은 실제 USB 컨트롤러 카드에서 수행되므로 USB 포트를 슬레이브 포트로 "사용"할 수 있는 실제 방법은 없습니다.

제 질문은 하드웨어, 소프트웨어 또는 이들의 조합을 통해 이를 달성하기 위한 어떤 종류의 에뮬레이션이나 변환 방법이 있습니까?입니다. 슬레이브 포트를 작동시킬 수 있다면 대용량 저장 모드에서 Linux USB-gadget API를 사용할 수 있는 것 같습니다. 그러나 USB 슬레이브나 USB-OTG를 지원하는 어떤 종류의 확장 카드도 찾을 수 없는 것 같고, 이 설정에서 작동하는 다른 하드웨어 솔루션도 없는 것 같습니다.

누구든지 포인터가 있습니까?

편집: 그런 장치가 작동할까요?

http://www1.plxtech.com/products/usbcontrollers/usb3382

답변1

"대량 저장소 가젯" 문서를 확인하세요. 이것이 출발점이 될 수 있습니다. https://www.kernel.org/doc/html/latest/usb/mass-storage.html

가상 USB 장치를 호스팅하는 컴퓨터의 하드웨어에 대해서는 특별한 것이 필요하지 않습니다. 저도 이것에 대해 연구해 본 결과, 시중에 나와 있는 대부분의 USB-C 컨트롤러가 USB 장치(호스트가 아닌) 모드로 들어갈 수 있는 것 같습니다. USB-C 포트가 있는 Apple 컴퓨터에는 대상 디스크 모드를 지원하는 올바른 칩이 있습니다. "Black Apple"(macOS를 실행하는 Apple이 아닌 컴퓨터) 군중은 이 칩이 얼마나 흔한지 증명합니다. Black Apple은 이 기능이 운영 체제의 일부가 아니기 때문에 대상 디스크 모드로 들어갈 수 없습니다. Apple은 이 기능을 펌웨어에 넣습니다. 이를 통해 컴퓨터가 부팅할 수 없는 컴퓨터를 수정하기 위해 이 모드로 들어갈 수 있습니다.

여기에 추가할 내용이 별로 없습니다. 지금까지 제가 아는 것은 Linux 컴퓨터가 가상 USB 장치로 작동하는 기능을 개발하는 "USB 가젯"이라는 프로젝트가 있다는 것뿐입니다. 이 작업을 수행하는 데 필요한 하드웨어는 상당히 일반적이라는 것을 알고 있으며, 점점 더 많은 노트북이 USB-C를 전원 입력 포트로 사용합니다. USB 전원 공급이 제대로 작동하려면 전원을 공급하는 "호스트"와 전원을 받는 "장치"가 있어야 합니다. 각 USB-PD 전원 장치는 연결된 모든 장치(예: USB-C를 전원 입력 포트로 사용하는 노트북)에 전원 공급을 협상하는 USB 호스트입니다.

답변2

Linux 기반 OS가 옵션인 경우 USB 프런트 엔드가 있는 LIO를 살펴볼 수 있습니다.

"USB Gadget Fabric 모듈을 사용하면 Linux에서 USB(범용 직렬 버스)를 통해 로컬 저장 장치를 내보내 다른 시스템에서 이를 일반 저장 장치로 마운트할 수 있습니다."(https://en.wikipedia.org/wiki/LIO_(SCSI_target))

지금 말씀드릴 수 없는 것은 다음과 같습니다.

  1. 어떤 종류의 배선이 필요합니까? 단순한 일대일 연결을 하지 마십시오. 기계가 파손될 수 있습니다!
  2. 특정 USB 포트를 구성하는 방법

시간이 더 나면 더 연구해보겠습니다!

편집: 시도했지만 실패했습니다. 실제보다 훨씬 쉽게 들립니다. 어쩌면 다른 사람이 이에 대해 더 많은 정보를 가지고 있을까요?

관련 정보