컴퓨터를 다른 장비의 가상 USB 장치로 사용


18

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

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

따라서 *.vdi컴퓨터에 가상 하드 디스크 (예 : 파일)가 있는데, USB 소켓을 통해 다른 장비 (예 : 휴대 전화 또는 랩톱)에 USB 드라이브로 연결된 가상 하드 디스크 (예 : 파일)가 있습니다.

답변:


12

USB 호스트 컨트롤러와는 달리 USB 장치 / 주변 장치 컨트롤러를 컴퓨터에 추가해야합니다.

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

불행히도, 메인 보드에 배선하는 방법을 찾아야합니다. 기술적으로는 가능합니다. 실제로 마더 보드를 포함하도록 마더 보드를 재 설계해야합니다. SPI 또는 I2C 버스를 마더 보드 어딘가에 노출시켜 추가 할 수있을 정도로 운이 좋을 수도 있지만, 일반적으로 개발자 보드 나 싱글 보드를 사용하지 않는 한 사용중인 모든 것에 직접 연결됩니다. GPIO 및 Raspberry Pi와 같은 다른 포트가있는 보드 컴퓨터

다른 옵션은 USB On-the-Go 컨트롤러입니다. 임베디드 및 휴대용 장치 용으로 설계된 마더 보드에는 호스트 또는 장치 컨트롤러로 작동 할 수있는 USB OTG (On-the-go) 컨트롤러가 있습니다. 예를 들어, 위에서 언급 한 Raspberry Pi에는 On-the-Go 컨트롤러가 있지만 호스트 포트 또는 USB 장치 기능 사용을 거부하는 온보드 USB 허브에 다시 연결되는 Pi Zero를 제외한 모든 모델에 있습니다. 비글 본 블랙에는 OTG 포트가 있습니다.

그러나 하드웨어가 완성되면 소프트웨어도 필요합니다. Linux에는 g_serial 및 g_ethernet과 같은 유용한 커널 USB 가제트 드라이버 ( "USB 가제트"는 USB 주변 장치 / 장치의 다른 용어)가 있습니다.이 장치를 사용하면 장치를 다른 컴퓨터에 연결하고 직렬 또는 이더넷을 통한 USB 장치로 볼 수 있습니다 (파일을 블록 장치로 사용하고 컴퓨터를 대용량 저장 장치로 표시 할 수있는 대용량 저장 장치로 장치를 노출 할 수있는 다른 장치가 있습니다). BeagleBone Black은 기본적으로이 기능을 활성화 한 상태로 제공되므로 USB를 통해 PC에 간단히 연결하여 네트워크 장치로 볼 수 있습니다. 복합 드라이버를 사용하여 대용량 저장 장치로도 사용할 수 있습니다. 단일 연결을 통해 여러 USB 장치 유형으로 표시됩니다. Pi Zero는 이들을 사용할 수 있지만 기본적으로는 그렇지 않습니다. Windows 또는 다른 OS의 경우 해당 장치 드라이버를 직접 작성해야합니다.

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


2
훌륭한 설명, 당신이 (당신의 지식을 가지고) "누군가 독점 어댑터가 나올 때까지"당신의 문장과 관련하여 새로운 것을 볼 수 있다면 대답을 업데이트 해 주시겠습니까? 2018 년에 usb-c가 장착 된 노트북이 있는데 해결책이 될 수 있을까요?
Asain Kujovic

8

USB는 비대칭입니다. 한쪽은 호스트이고 다른 쪽은 주변 장치입니다. 주변 장치를 호스트로 작동 시키거나 그 반대로 할 수 없습니다. USB 포트가 양쪽으로 작동 할 수 있습니다. 이를 이동 중 USB 라고 하며 일부 휴대 전화 및 태블릿에 있습니다. 포트는 호스트 유형 포트가 아닌 물리적 장치 유형 포트입니다. 장치 포트가있는 PC를 본 적이 없습니다. 컨트롤러에 전자 장치가 필요하므로 양쪽 끝에 맞는 케이블을 만드는 것만으로는 충분하지 않습니다.

따라서 PC를 USB 장치로 만들 수 없습니다.

컴퓨터를 USB 저장 장치로 사용하려면 PC 대신 USB 연결로 휴대폰 또는 태블릿을 사용할 수 있습니다.


휴대폰을 사용하면 PC를 USB 저장 장치 / 호스트로 전환하여 다른 컴퓨터, TV 또는 장치에 연결할 수있는 방법을 좀 더 정교하게 설명 할 수 있습니까? USB OTG에 대한 공정한 지식이 있다고 생각하지만이 시점을 놓치고 있다고 생각합니다.
trejder

@trejder 필자가 쓴 것처럼 장치 포트가있는 PC (x86 태블릿을 제외한“PC”)는 본 적이 없습니다.
Gilles 'SO- 악의를 그만두십시오'8:10의

네,하지만 마지막 문장으로 돌아가겠습니다. " 컴퓨터를 USB 저장 장치로 만들려면 USB 연결로 휴대 전화 나 태블릿을 사용할 수 있습니다 ." 어쩌면 뭔가 빠졌을 지 모르지만 "휴대 전화 나 태블릿을 사용하여 컴퓨터를 USB 저장 장치로 바꿀 수 있습니다"라고 이해합니다. 그렇다면 질문은 : 어떻게?
trejder

1
@trejder Ah, 그 문장에서“컴퓨터”는“PC”가 아니라“컴퓨터”입니다. 전화 / 태블릿은 PC와 다른 종류의 컴퓨터입니다. 그게 당신을 괴롭히는 것입니까?
Gilles 'SO- 악의를 멈추십시오'8:10의

1
@trejder 아니요. 일반적으로 가장 좋은 방법은 네트워크 연결을 설정하는 것입니다. Firewire는 Firewire 포트가있는 두 PC 사이의 네트워크 연결로 사용할 수 있지만 많은 PC에는 하나가 없습니다. 대부분의 PC에는 이더넷 포트가 있으며 이더넷 케이블을 사용하여 두 대의 PC를 연결할 수 있습니다 (오래된 PC에는 크로스 오버 케이블이 필요하지만 최신 PC에는 일반 케이블이 필요할 수 있음). PC를 모바일 장치의 저장 장치로 사용하려면 일반적으로 PC를 Wi-Fi에 연결해야합니다.
Gilles 'SO- 악의를 멈추십시오'8:10의

2

"USB 네트워킹 케이블"이라고도하는 특수한 "USB-USB 브리지 케이블"중 하나를 사용하는 것을 고려할 수 있습니다. 이 기사에서 언급 한 것과 같이 :

두 PC간에 파일을 전송할 수 있습니다. 저는 10 년 전 (Windows XP 시대)에 이런 종류의 케이블을 사용해 왔으며 그 당시 시장에 출시 된 모든 그러한 케이블에는 특별한 드라이버와 소프트웨어가 필요했습니다. 설치 디스크에 케이블 드라이버와 함께 제공되는 특수 파일 커맨더를 통해서만 파일을 전송할 수 있으므로 한 PC가 다른 USB 장치를 순수한 USB 외부 장치로 사용할 수 없습니다.

그 이후로 변경된 사항이 있고 새로운 솔루션으로 특수 소프트웨어를 사용하여 파일을 전송할 수 있는지 여부와 한 PC가 다른 PC의 외부 장치로 작동하도록 할 수 있는지 확실하지 않습니다.


2

Matt Thomson답변 에서 설명했듯이 USB 슬레이브 컨트롤러가 없기 때문에 PC 컴퓨터의 물리적 USB 포트를 USB 슬레이브 장치로 작동시키는 것은 적절하지 않습니다.

즉, 슬레이브 모드 USB (예 : Raspberry Pi Zero)를 제공 할 수있는 어댑터 보드가 있으면 유선 이더넷과 같은 다른 채널을 통해 호스트 PC에 연결해야합니다. 해당 이더넷 연결을 통해 실행할 수있는 프로토콜은 두 가지입니다.

(1) IP 네트워크를 통해 USB 포트를 노출시킵니다.

소프트웨어를 사용하여 Raspberry Pi Zero의 USB 슬레이브 모드 포트를 가상 USB 장치로 PC에 노출시킵니다. USB / IP의 프로젝트는 IP 네트워크를 통해 USB를 수송 할 수있는 드라이버에 의해,이을 제공합니다. 다음 은 USB / IP를 사용하여 컴퓨터에 시뮬레이트 된 USB 장치를 제공하는 예입니다. 여기는 PC입니다.

이 제안 된 솔루션에서 내가 모르는 것은 USB / IP 소프트웨어가 이미 IP 네트워크를 통해 USB 슬레이브 포트를 노출 할 수 있는지 또는 USB 호스트 포트만 정상적으로 노출시킬 수 있는지입니다.

그러나 그래도 작동하더라도 (1) ​​들어오는 USB / IP 연결을 USB 연결로 수락하고 (2) USB 슬레이브 모드가 아닌 USB 슬레이브 모드를 제공하는 방식으로 PC에서 장치 드라이버를 설정하거나 조정해야합니다. USB 호스트 모드 (3)는 지정된 위치 ( .vdi파일) 에서 데이터를 제공하여 USB 대용량 저장 장치를 시뮬레이션합니다 .

전반적으로, 그것은 복잡한 방법입니다.

(2) 파일을 IP 네트워크를 통해 노출시킵니다.

이것은 Raspberry Pi Zero에 대한 이더넷 연결을 활용하는 방법에 대한 훨씬 간단한 방법입니다. Raspberry Pi Zero에서 네트워크 파일 시스템을 통해 PC에 저장된 데이터를 마운트하십시오. 이러한 파일은 Pi Zero 파일 시스템의 일부로 논리적으로 표시되며 Linux USB 가젯 드라이버와 함께 제공하여 Raspberry Pi를 연결된 장치의 USB 대용량 저장 장치처럼 보이게 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.