Jadikan komputer bertindak sebagai perangkat USB virtual untuk peralatan lainnya


18

Beberapa aplikasi mensimulasikan USB virtual atau drive CD Rom seolah-olah drive USB terpasang ke komputer.

Apakah ada konfigurasi atau aplikasi yang menyediakan drive USB virtual, bukan untuk sistem operasi itu sendiri, tetapi untuk peralatan lain yang menerima drive USB, melalui port USB.

Jadi saya akan memiliki hard disk virtual (misalnya *.vdifile) di komputer, yang terhubung, melalui soket USB, sebagai drive USB ke beberapa peralatan lain (misalnya ponsel atau laptop).

Jawaban:


12

Anda perlu menambahkan Perangkat USB / Pengontrol periferal ke komputer, sebagai lawan dari Pengontrol Host USB yang cenderung disertakan.

Sesuatu seperti ini: https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX3420E.html

Sayangnya, Anda harus menemukan cara untuk memasangnya ke motherboard Anda. Secara teknis, itu bisa dilakukan. Secara praktis, Anda harus mendesain ulang motherboard untuk memasukkannya. Anda mungkin cukup beruntung untuk menemukan bus SPI atau I2C yang terpapar di suatu tempat pada motherboard Anda untuk memungkinkan Anda menambahkannya, tetapi mereka biasanya terhubung langsung ke apa pun yang mereka gunakan kecuali jika Anda menggunakan papan dev atau single- board komputer dengan GPIO terbuka dan port lain seperti Raspberry Pi.

Pilihan lainnya adalah USB On-the-Go Controller. Motherboard yang dirancang untuk perangkat yang tertanam dan portabel cenderung memiliki contoller USB OTG (On-the-go), yang dapat berfungsi sebagai pengendali Host atau Perangkat. Sebagai contoh, Raspberry Pi yang disebutkan di atas memiliki On-the-Go Controller, tetapi pada semua model kecuali Pi Zero yang akan dipasang ulang ke port host atau hub USB onboard, yang menolak penggunaan fungsionalitas perangkat USB. BeagleBone Black memiliki port OTG.

Itu tidak semua - setelah Anda memiliki perangkat keras, Anda juga akan memerlukan perangkat lunaknya. Linux memiliki beberapa driver USB Gadget kernel yang berguna ("Gadget USB" adalah istilah lain untuk periferal / perangkat USB) seperti g_serial dan g_ethernet yang memungkinkan Anda untuk menghubungkan perangkat Anda ke komputer lain dan dapat dilihat sebagai perangkat serial atau ethernet-over-USB. (ada yang lain untuk mengekspos perangkat sebagai penyimpanan massal, yang memungkinkan Anda untuk menggunakan file sebagai perangkat blok dan mengekspos komputer sebagai gadget penyimpanan massal). BeagleBone Black cenderung hadir dengan ini diaktifkan secara default, jadi Anda bisa mencolokkannya ke PC Anda melalui USB dan melihatnya sebagai perangkat jaringan - dan saya percaya itu juga muncul sebagai perangkat penyimpanan massal dengan menggunakan driver komposit (yang memungkinkan itu muncul sebagai beberapa jenis perangkat USB melalui satu koneksi. Pi Zero dapat menggunakan ini , tetapi tidak secara default. Untuk Windows atau OS lain, Anda mungkin harus menulis sendiri driver perangkat itu.

Jadi, secara teoritis, Anda bisa melakukannya. Anda dapat merobohkan PC desktop Anda, mencoba dan menemukan bus kompatibel yang tidak terpakai pada motherboard di suatu tempat (kemungkinan besar beberapa pin yang tidak digunakan pada IC pengontrol), atau cara untuk memperpanjang internal I2C atau SPI bus, atau sesuatu yang dapat Anda robek dan ganti, dan solder chip USB OTG atau pengontrol perangkat ke dalamnya. Kemudian Anda dapat menginstal Linux dan menggunakan driver gadget, atau menulis sendiri untuk OS lain. Praktis, kecuali Anda seorang insinyur elektronik terkemuka, Anda tidak akan mampu melakukannya. Setidaknya, tidak sampai seseorang mengeluarkan adaptor yang sulit dipahami dengan perangkat atau port OTG di atasnya yang dihubungkan ke port USB (secara teoritis, itu bisa dilakukan dengan mikrokontroler seperti kabel Arduino ke sepasang IC pengontrol perangkat USB), dan menulis driver untuk menjalankannya.


2
Penjelasan hebat, dapatkah Anda memperbarui jawabannya jika Anda (dengan sepengetahuan Anda) melihat sesuatu yang baru mengenai kalimat Anda "sampai seseorang keluar dengan adaptor eksklusif ...". Ada laptop dengan usb-c pada tahun 2018, dapatkah mereka menjadi solusi.?
Asain Kujovic

8

USB tidak simetris: satu sisi adalah sebuah host, sisi lainnya adalah perangkat periferal. Anda tidak dapat membuat perangkat periferal bertindak sebagai tuan rumah atau sebaliknya. Dimungkinkan untuk port USB untuk dapat bertindak sebagai kedua sisi; ini disebut USB on-the-go dan hadir di beberapa ponsel dan tablet. Port-port tersebut secara fisik adalah port tipe perangkat, bukan port tipe host. Saya belum pernah melihat PC dengan port perangkat. Ini membutuhkan elektronik pada pengontrolnya, itu tidak cukup untuk membuat kabel yang pas di kedua ujungnya.

Jadi tidak, Anda tidak akan bisa membuat PC menjadi perangkat USB.

Jika Anda ingin menggunakan komputer sebagai perangkat penyimpanan USB, Anda dapat menggunakan ponsel atau tablet dengan koneksi USB alih-alih menggunakan PC.


Bisakah Anda menjelaskan lebih jauh, bagaimana menggunakan ponsel dapat membantu saya mengubah PC saya menjadi perangkat / host penyimpanan USB, yang dapat saya colokkan ke komputer lain, TV atau perangkat lain? Saya pikir, saya melewatkan poin ini, meskipun saya pikir saya memiliki pengetahuan yang adil tentang USB OTG.
trejder

@trejder Seperti yang saya tulis, saya belum pernah melihat PC dengan port perangkat ("PC" tidak termasuk tablet x86).
Gilles 'SANGAT berhenti menjadi jahat'

Ya, tapi saya merujuk pada kalimat terakhir Anda: " Jika Anda ingin membuat komputer menjadi perangkat penyimpanan USB, Anda dapat menggunakan ponsel atau tablet dengan koneksi USB ". Mungkin saya kehilangan sesuatu, tetapi saya memahaminya sebagai "Anda dapat menggunakan ponsel atau tablet untuk mengubah komputer menjadi perangkat penyimpanan USB". Jika demikian, maka pertanyaannya adalah: Bagaimana?
trejder

1
@trejder Ah, "komputer" dalam kalimat itu bukan "PC", itu "komputer". Telepon / tablet adalah jenis komputer yang berbeda dari PC. Apakah itu yang mengganggu Anda?
Gilles 'SO- stop being evil'

1
@trejder No. Biasanya taruhan terbaik Anda adalah membuat koneksi jaringan dengan satu atau lain cara. Anda dapat menggunakan Firewire sebagai koneksi jaringan antara dua PC dengan port Firewire, tetapi banyak PC tidak memilikinya. Sebagian besar PC memiliki port Ethernet, Anda dapat menghubungkan dua PC dengan kabel Ethernet (PC yang sangat lama membutuhkan kabel crossover tetapi yang modern dapat menggunakan kabel biasa). Untuk membuat PC berfungsi sebagai perangkat penyimpanan untuk perangkat seluler, Anda biasanya perlu memasukkan PC ke wifi.
Gilles 'SANGAT berhenti menjadi jahat'

2

Anda dapat mempertimbangkan untuk menggunakan salah satu "kabel penghubung USB-USB" khusus, kadang-kadang disebut "kabel jaringan USB". Seperti yang disebutkan dalam artikel ini:

Mereka memungkinkan Anda untuk mentransfer file antara dua PC. Saya telah menggunakan kabel semacam ini lebih dari sepuluh tahun yang lalu (pada masa Windows XP) dan pada saat itu semua kabel yang tersedia untuk pasaran memerlukan driver dan perangkat lunak khusus. Mereka memungkinkan Anda mentransfer file hanya melalui komandan file khusus, yang dikirimkan bersama dengan driver kabel pada disk instalasi dan oleh karena itu tidak memungkinkan satu PC untuk bertindak ke yang lain sebagai perangkat eksternal USB murni.

Saya tidak yakin, apakah ada yang berubah sejak saat itu dan jika solusi baru memungkinkan Anda hanya mentransfer file menggunakan perangkat lunak khusus dan - jika Anda dapat memaksa satu PC untuk bertindak sebagai perangkat eksternal ke PC lain.


2

Seperti dijelaskan dalam jawaban oleh Matt Thomson , tidak mungkin untuk membuat port USB fisik komputer PC bertindak sebagai perangkat slave USB, karena pengontrol slave USB tidak ada.

Itu berarti jika kita memiliki papan adaptor yang dapat menyediakan USB mode-slave (seperti Raspberry Pi Zero), kita harus menghubungkannya ke PC host Anda dengan saluran yang berbeda, seperti kabel Ethernet. Saya punya dua proposal berbeda protokol apa yang bisa Anda jalankan di koneksi Ethernet itu:

(1) Ekspos port USB melalui jaringan IP.

Gunakan perangkat lunak untuk mengekspos port USB slave-mode dari Raspberry Pi Zero sebagai perangkat USB virtual ke PC Anda. Proyek USB / IP menyediakan ini, melalui driver yang dapat mengangkut USB melalui jaringan IP. Berikut adalah contoh penggunaan USB / IP untuk menyediakan perangkat USB yang disimulasikan ke komputer - yang akan menjadi PC Anda di sini.

Apa yang saya tidak tahu dalam solusi yang diusulkan ini adalah apakah perangkat lunak USB / IP sudah dapat mengekspos port slave USB melalui jaringan IP, atau hanya port host USB seperti biasa.

Tetapi bahkan jika itu bekerja, Anda masih harus mengatur atau menyesuaikan driver perangkat pada PC Anda sedemikian rupa sehingga mereka (1) menerima koneksi USB / IP yang masuk sebagai koneksi USB, (2) menyediakan mode USB slave daripada mode Mode host USB, (3) mensimulasikan perangkat penyimpanan massal USB dengan menyajikan data dari lokasi yang ditetapkan ( .vdifile Anda ).

Secara keseluruhan, itu cara yang rumit untuk melakukannya.

(2) Paparkan file melalui jaringan IP.

Ini adalah cara yang lebih sederhana untuk bagaimana memanfaatkan koneksi Ethernet ke Raspberry Pi Zero: pada Raspberry Pi Zero, pasang data yang disimpan di PC Anda melalui sistem file jaringan. File-file ini kemudian muncul secara logis sebagai bagian dari sistem file Pi Zero, dan Anda dapat melayani mereka dengan driver gadget USB Linux untuk membuat Raspberry Pi terlihat seperti perangkat penyimpanan massal USB ke perangkat yang terhubung.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.