Linux(好ましくはUbuntu)でUSB-USBデータ転送システムを作成したいと思います。これを行うには、外部ハードウェアまたはスイッチ(このケーブルを除く)。これはシステムにUSBドライブを取り付けるのと同じですが、この場合、あるLinuxシステムが別のシステムにインストールされます。どうやって作れますか?
私のカーネルプログラミングの経験が非常に基本的であることを考えると、利用可能なカーネルモジュールはありますか?
答え1
はい可能ですが、はいいいえUSB-Aコネクタ(通常はマザーボードのUSBに接続されています)がある2本のUSBケーブルを切り、データケーブルを交差接続します。このような自家製ケーブルを使用してUSB電源コードを接続すると、オンボードUSB処理チップが揚げられる可能性が高くなります。。自宅でこれをしないでください!
ほとんどのコンピュータのマザーボードでUSBを処理するチップはホストチップです。さらに、作業速度を上げ、CPUの負荷を軽減するために、多くの低レベル通信を処理します。 USBポートのピンを処理してホスト以外の役割を果たすようにコンピュータをプログラムすることはできません。チップレベルでは、ホストの役割とホストの接続を切り替えることができるデバイスはほとんどありません。これには、より高価なチップが必要なためです。そのため、スマートフォン、GPS、電子ブックなどのスマートデバイスはすべてLinuxまたは同様のデバイスを実行しますが、通常のssh
USBケーブルを介して接続すると通信できません。
デバイスは接続されると一種の愚かなモードに入り、ホストコンピュータ(マイデスクトップシステム)はストレージをUSBディスクとして使用できます。接続が失われると、デバイスはホストと同じインタフェースを使用してデータを取得します(ケーブル接続は必要ありませんが内部で発生します)。これらのデバイスの場合、Linux が両方のシステムで実行されていても、システム間の通信はありません。。これは、デスクトップに接続する通常のマイクロまたはミニUSBケーブルとは別のものです。
2台のデスクトップコンピュータの間には通常USB-A-USB-Aケーブルが必要なため、上記の操作は不可能です。これは一般的ではありません(接続を駆動する通常のチップでは機能しないため)。
2つのUSB-Aコネクタを使用するUSB-USBソリューションは、途中にいくつかの電子機器があるケーブルに基づいています。 (USB→シリアルをシリアル→USBケーブルに接続してから、すべて1つで接続するのと似ています)。通常のシリアルポートを介してケーブルを介してUUCPなどを使用することもできますが、一般的に転送するにはドライバが必要です。他のシステムにログインするには、inetdと正しい設定が必要な場合があります。
1この方法でソフトウェアを変更できる唯一のデバイスは、この特定のチップを搭載したArduinoボードです。このチップを使ってマザーボードを作成しました。 二重通常のArduinoボードと同じくらい高価です。
答え2
はい、USB 3.0では、3.0ケーブルを介した全二重データ転送が可能です。この仕様はUSB仕様のセクション5.5.2に記載されています。この仕様へのリンクは、他の以前の回答で提供されます。http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf
ケーブルを見つけることがますます簡単になっています。たとえば、Amazonで8.00ドル未満の価格で購入できます。データ転送用のA型オスケーブルとA型オスケーブルを購入してください。最新バージョンのLinuxは転送をサポートしています。
これが誰かに役立つことを願っています。私は長い間自分で答えを探していました。
答え3
このようなケーブル形状のUSBブリッジデバイスを使用できます。http://www.usbgear.com/link/(動画自動再生警告)
答え4
私のアプローチは、2つのUSBシリアルケーブルとこれらのケーブルの間にヌル接続を使用することです。その後、xmodem、zmodem、kermitなどを使用してファイルを転送したり、pppまたはスリープを使用して2つのシステム間でネットワークを設定したりできます。昔ながらですが動作します。
悲しい