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.
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.
sumber
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.
sumber
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 (
.vdi
file 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.
sumber