컴퓨터가 다른 장치에 대한 가상 USB 장치 역할을 하도록 허용

컴퓨터가 다른 장치에 대한 가상 USB 장치 역할을 하도록 허용

일부 응용 프로그램은 마치 USB 드라이브가 컴퓨터에 연결된 것처럼 가상 USB 또는 CD ROM 드라이브를 에뮬레이트합니다.

운영 체제 자체가 아니라 USB 포트를 통해 USB 드라이브를 허용하는 다른 장치에 가상 USB 드라이브를 제공하는 구성이나 응용 프로그램이 있습니까?

*.vdi따라서 USB 소켓을 통해 USB 드라이브로 다른 장치(예: 전화 또는 노트북)에 연결된 가상 하드 드라이브(예: 파일)를 컴퓨터에 갖게 됩니다 .

답변1

편집: 이 답변은 당시에는 정확했지만(몇 가지 예외를 제외하고) 그 이후로 더 많은 개발이 이루어졌습니다. 예를 들어, 이제 장치 모드와 호스트 모드를 지원하는 USB-C가 있습니다. 많은 장치, 특히 SBC에는 두 모드 모두에서 작동할 수 있는 USB-C 및 컨트롤러가 함께 제공됩니다. 주요 문제는 여전히 운영 체제에 USB-C 장치 모드 드라이버가 부족한 Windows PC 측에 있습니다. 그러나 리눅스는하다USB-C 장치 모드 드라이버(일명 "USB Gadget" 드라이버 - 배포판에 아직 포함되지 않은 경우 사용자 정의 커널을 컴파일해야 할 수도 있음)를 포함합니다.

일반적으로 함께 제공되는 USB 호스트 컨트롤러가 아닌 USB 장치/주변 장치 컨트롤러를 컴퓨터에 추가해야 합니다.

이 같은:https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX3420E.html

안타깝게도 마더보드에 연결하는 방법을 찾아야 합니다. 기술적으로는 이것이 가능합니다. 실제로 이를 포함하려면 마더보드를 다시 설계해야 합니다. 운이 좋게도 마더보드 어딘가에 노출된 SPI 또는 I2C 버스를 찾아서 추가할 수 있지만 일반적으로 개발 보드나 노출된 GPIO 및 단일 보드를 사용하지 않는 한 사용되는 모든 위치에 직접 연결됩니다. 다른 포트를 온보드 컴퓨터(예: Raspberry Pi)에 연결합니다.

또 다른 옵션은 USB 휴대용 컨트롤러입니다. 내장형 및 휴대용 장치용으로 설계된 마더보드에는 호스트 또는 장치 컨트롤러 역할을 할 수 있는 USB OTG(휴대용) 컨트롤러가 있는 경우가 많습니다. 예를 들어 앞서 언급한 Raspberry Pi에는 On-the-Go 컨트롤러가 있지만 Pi Zero를 제외한 모든 모델에서는 호스트 포트나 온보드 USB 허브에 다시 연결되어 USB 장치 기능을 거부합니다. BeagleBone Black에는 OTG 포트가 있습니다.

하지만 그게 전부는 아닙니다. 일단 하드웨어가 있으면 소프트웨어도 필요합니다. Linux에는 몇 가지 유용한 커널 USB 가젯 드라이버가 있습니다("USB 가젯"은 USB 주변 장치/장치를 가리키는 또 다른 용어입니다).g_serial장치를 다른 컴퓨터에 연결하고 직렬 또는 이더넷 USB 장치로 표시할 수 있게 해주는 g_ethernet(파일을 블록 장치로 사용하고 장치를 대용량 저장소로 표시할 수 있는 다른 장치도 있음) 컴퓨터를 대용량 저장 장치로 사용). BeagleBone Black은 기본적으로 이 기능을 활성화하는 경향이 있으므로 USB를 통해 PC에 연결하기만 하면 네트워킹 장치로 표시됩니다. 또한 복합 드라이버를 사용하면 대용량 저장 장치로 표시될 수도 있다고 생각합니다. 여러 USB 장치 유형으로 표시되는 단일 연결을 통해 대용량 저장 장치로 표시됩니다. Pi Zero는 다음을 사용할 수 있습니다., 그러나 기본적으로는 그렇지 않습니다. Windows 또는 기타 운영 체제의 경우 장치 드라이버를 직접 작성해야 할 수도 있습니다.

이론적으로는 그렇게 할 수 있습니다. 데스크탑 컴퓨터를 분해하고 마더보드 어딘가에서 사용되지 않은 호환 버스를 찾거나(대부분 컨트롤러 IC에서 사용되지 않은 핀일 가능성이 높음) 내부 I2C 또는 SPI 버스를 확장하는 방법을 찾을 수 있습니다. USB OTG 또는 장치 컨트롤러 칩에 무언가를 부착하고 납땜합니다. 그런 다음 Linux를 설치하고 가젯 드라이버를 사용하거나 다른 운영 체제용 드라이버를 직접 작성할 수 있습니다. 현실적으로, 당신이 최고의 전자 엔지니어가 아니면 이 일을 할 수 없을 것입니다. 적어도 누군가 USB 포트에 연결되는 장치 또는 OTG 포트가 있는 어려운 어댑터가 나올 때까지(이론적으로 이는 한 쌍의 USB 장치 컨트롤러 IC에 연결된 Arduino와 같은 마이크로 컨트롤러로 수행될 수 있음) 그것을 실행하는 드라이버.

답변2

사람들이 모든 PC에는 USB 장치/슬레이브/가젯 등의 역할을 하는 하드웨어가 부족하다는 신화를 반복하지 않기를 바랍니다. 나는 이것이 사실이 아니라는 것을 증명할 수 있습니다. 첫 번째 예는 USB-C 포트가 있는 모든 Apple Mac 컴퓨터가 USB-C 슬레이브 모드로 들어갈 수 있다는 것입니다. 이를 "대상 디스크 모드"라고 하며 아래에 설명되어 있습니다. https://support.apple.com/en-us/HT201462

2,000달러짜리 노트북을 일시적으로 200달러짜리 USB-C 드라이브로 바꿔주는 기능이다. 왜 이런 일을 하는가? 이렇게 하면 부팅되지 않는 Mac에서 드라이브를 복구할 수 있습니다. 어떻게 작동하나요? 이는 Apple이 컴퓨터에서 USB 슬레이브/장치/기타 장치 역할을 할 수 있는 USB-C 칩을 사용하고 이 기능을 활성화하기 위해 일부 펌웨어가 설치되어 있기 때문에 작동합니다. 이 칩은 Apple 컴퓨터에만 있는 것이 아니라 다른 많은 컴퓨터 제조업체에서도 사용됩니다.

USB-C 포트가 있는 대부분의 노트북에는 USB 슬레이브/장치 역할을 하는 데 필요한 하드웨어도 있다는 증거가 더 많습니다. 전원 및 충전에 USB-C를 사용하는 노트북, USB-C-USB-C 변환기, Windows를 실행하는 USB-C 포트가 있는 다른 컴퓨터를 구입하세요. 이제 USB-C 케이블을 사용하여 노트북을 Windows 컴퓨터에 연결하고 장치 관리자에서 새 장치를 확인하세요. 노트북이 Windows 컴퓨터에서 전원을 공급받는 경우 장치 관리자의 장치 목록에 노트북이 "USB Billboard Device"로 표시되어야 합니다. USB 장치 역할을 하는 노트북입니다. 5와트 이상의 전력을 소비하려면 USB 전원 호스트(예: USB-C 전원 장치)를 지원하는 장치로 나타나야 합니다. 이를 확인하는 다른 방법도 있으므로 선호하는 운영 체제나 다른 시스템에 맞게 프로세스를 조정하세요.

더 많은 운영 체제 게시자가 이 기능을 사용하여 랩탑 배터리를 충전하는 것 이상의 작업을 수행하지 않는 이유는 무엇입니까? 이것은 좋은 질문입니다. 이것은 제가 오랫동안 대답하고 싶었던 질문입니다.

어떤 사람들은 Linux 시스템의 기능을 USB 장치로 확장하기 위해 노력하고 있습니다. 이제 다양한 USB 가상 장치에서 작동하지만 설정이 간단하지 않습니다. 언젠가는 이 기능이 더 잘 지원되어 사용자가 USB 3.x 장치에서 기대할 수 있는 고성능으로 간단하고 쉽게 작업할 수 있기를 바랍니다.

USB-C 포트가 있는 대부분의 컴퓨터에서 컴퓨터가 USB 장치 역할을 할 수 있도록 하는 하드웨어가 이미 존재하므로 일반 사용자(또는 평균보다 약간 높은 사용자)가 이를 설정하고 사용할 수 있는 소프트웨어를 작성하는 데 전념하는 더 많은 인력이 필요합니다.

답변3

USB A/B(양쪽 끝에 있는 플러그의 모양이 다르고 한 방향으로만 연결할 수 있는 기존 스타일)는 비대칭입니다. 즉, 호스트가 한쪽에 있고 주변 장치가 다른쪽에 있습니다. 주변 장치가 호스트 역할을 하도록 할 수 없으며 그 반대의 경우도 마찬가지입니다. USB 포트는 어느 쪽이든 작동할 수 있습니다.가지고 다닐 수 있는 USB일부 휴대폰과 태블릿에서 사용할 수 있습니다. 이러한 포트는 호스트 유형 포트가 아닌 물리적 장치 유형 포트입니다. 디바이스 포트가 있는 PC를 본 적이 없습니다. 이를 위해서는 컨트롤러에 전자 장치가 필요하며 양쪽 끝에 맞는 케이블을 만드는 것만으로는 충분하지 않습니다.

아니요, PC를 USB 장치로 전환할 수는 없습니다.

컴퓨터를 USB 저장 장치로 사용하려는 경우 PC 대신 USB 연결이 가능한 휴대폰이나 태블릿을 사용할 수 있습니다.


USB-C(양쪽 끝이 동일한 대칭형 플러그가 있는 최신 제품)를 사용하면 한 컴퓨터를 다른 컴퓨터에 연결할 수 있습니다. 안타깝게도 케이블을 연결하고 P2P 네트워크 연결을 얻는 것만큼 간단하지 않습니다. 바라보다https://superuser.com/questions/1215710/is-it-possible-to-connect-two-pcs-via-usb-c

답변4

기술적으로는 이것이 가능해야 합니다http://www.bplus.com.tw/Adapter/PP3380-AB.html- PP3380-AB(USB3380-AB 평가 보드)는 USB3.0 5gbps USB B 포트(pci Express 카드에 있음)를 포함하는 것으로 보이며 Linux USB Gadget에서 지원하는 PLX USB3380 칩에 구축됩니다. 그러나 그것은 저렴하지도 않고(250달러), 아마도 사소한 것과도 거리가 멀다(프로그래머를 제외하면...).

(참고: 다음도 있습니다.http://www.bplus.com.tw/Adapter/USB3380EVB.htmlADP 보드가 포함된 USB3380-AB EVK는 microUSB 포트를 제공하지만 이는 단지 케이블의 차이일 뿐입니다.

관련 정보