2つのLinux OS間でUSBからUSBへのデータ転送は可能ですか?


26

Linux(できればUbuntu)でUSB-to-USBデータ転送システムを作成したい。このため、外部ハードウェアやスイッチは使用しません(このケーブルを除く)。USBドライブをシステムにマウントするようなものになりますが、このシナリオでは、Linuxシステムの1つが他のシステムにマウントされます。どうすれば作成できますか?

カーネルプログラミングの経験が非常に基本的であるため、利用可能なカーネルモジュールはありますか?


6
「このために、外部ハードウェアやスイッチを使用したくない」 接続にプレーンUSBケーブルを使用する場合は、どのシステム期間でもこれを行うことはできません。USBは対称的な関係ではありません。実際には、電圧が関係しているため、このように接続することにより、いずれかのマシンを物理的に損傷する可能性があります。
goldilocks

2
ただし、特別なホスト間ケーブルを使用できます。その場合、はい、カーネルドライバーがあります。そのため、カーネルドライバーを購入する場合は、その特定のケーブル用のドライバーがあるかどうかを確認してください。
goldilocks

4
これは間違いなく機能しません。また、別のコンピューターに直接接続すると、コンピューターを炒めるケーブルのようなものです。
中福

2
@Thorongilいいえ、それは私が言っていることではありません。そのAmazonサイトに私が見つけることができるものはないように見えます-それらは一種の異常なものです。 ここに1つあります。これをOTG(「オンザゴー」)ケーブルと混同しないでください。基本的にこれは追求するだけの価値はありません-両方がギガビットイーサネットを使用している場合(通常のソフトウェアを使用できる場合)、イーサネットケーブルを使用すると転送速度が速くなる2.0ケーブルであることに注意してください。
goldilocks

2
私はただネットワーキングをします...私のコンピューターなので、すでに持っていることを知っています... LAN-over-USBからLAN-over-USBへの移行は私が探しているものです
-Skaperen

回答:


24

はい、これは可能ですが、USB-Aコネクタで2本のUSBケーブルを切断し(通常マザーボードのUSBに接続されるもの)、データケーブルを相互接続することはできませんこのような自作ケーブルでUSB電源ラインを接続すると、オンボードUSBハンドリングチップを揚げてしまう可能性があります。自宅でこれを試さないでください!

ほとんどのコンピューターボードでは、USBを処理するチップはホストのみです。それだけでなく、多くの低レベル通信を処理して、処理を高速化し、CPUの負荷を軽減します。まるで非ホストのように振る舞うようにUSBポートのピンを処理するようにコンピューターをプログラムできるというわけではありません。チップレベルで、ホストとして動作することとホストに接続することを切り替えることができるデバイスは、はるかに高価なチップが必要です¹。たとえば、スマートフォン、GPS、電子書籍などのインテリジェントデバイスはすべてLinuxなどを実行しているのにssh、通常のUSBケーブルで接続すると通信に使用できません。

これらのデバイスは、接続時にダムモードになり、ホスト(私のデスクトップシステム)はそのストレージをUSBディスクとして使用できます。デバイスを切断した後、データを取得するためにホストと同じインターフェイスを使用します(ケーブル接続は必要ありませんが、これは内部で行われます)。Linuxが両方で実行されている場合でも、この種のデバイスでは、システム間、つまりlinuxes間の通信はありません。これは、デスクトップに接続する通常のマイクロまたはミニUSBケーブルとは無関係です。

2台のデスクトップPCの間では、USB-AからUSB-Aへのケーブルが必要になるため、上記の操作は通常不可能です(これは一般的ではありません(接続を駆動する通常のチップでは動作しないため)。

私が見た2つのUSB-Aコネクタを使用してUSBからUSBを実行するソリューションは、その間にいくつかの電子機器があるケーブルに基づいています。(USB→シリアルがSerial→USBケーブルに差し込まれているように見えますが、それがすべて一体となっています)。これらは通常、転送を行うためのドライバーを必要としますが、「通常の」シリアルポートを使用する場合のように、そのようなケーブルを介してUUCPまたは他の何かを使用できる場合があります。これにはおそらく、他のコンピューターにログインするためにinetdと適切な構成が必要です。

¹ この方法でソフトウェアを変更できる唯一のデバイスは、まさにそのような特別なチップを備えたArduinoボードです。このチップだけで、ボード は通常のArduinoボードの2倍の価格になりました。


ssh通常のUSBケーブルで接続したときに通信に使用することを許可しないでください」誤解されているかもしれませんが、ジェイルブレイクしたiPhoneに入れることができ ますssh
コールジョンソン

@ColeJohnson私はiPhoneに精通していません。USBを搭載したホストコンピューターで、内部メモリをUSBドライブとして表示できますか?可能な場合は、非ホスト側の完全なエミュレーションを実行する必要があります。それができない場合、おそらく電話にデータをロードするための専用プログラムが必要です。
アントン

opensshデバイスにインストールする場合sshは(Wi-Fi経由で)、afc2デバイスに(Apple File Conduit)をインストールする場合はUSB経由でファイルシステムを参照できます(それなしでは、「投獄されます」 "to /var/mobile
コールジョンソン

1
これは、電話に関するビットを除き、すべて問題ありません。多くのデバイスが実行できることを制限しているという事実は、少数のデバイスを除くすべてで使用されているUSBチップがクライアントモードで実行できるという事実を否定するものではなく、ホストモードで実行できるものもあります。
カレブ

6

はい、USB 3.0は3.0ケーブルで全二重データ転送を可能にします。仕様は、USB仕様のセクション5.5.2にあります。これらの仕様へのリンクは、別の回答で以前に提供されています。http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

ケーブルは見つけやすくなっています。たとえば、$ 8.00未満でAmazonで購入できます。オスAからオスAへのケーブルのデータ転送を必ず購入してください。Linuxの新しいバージョンは転送をサポートしています。

それが誰かの助けになることを願っています-私はかなり長い間自分で答えを探しました。


このケーブルが機能するために必要なセットアップはありますか?実装またはネットワークシミュレーションですか?
mpapis

おもしろいのは、単純なUSB 3.0ケーブル(オスの端とその間の単純なケーブル)があり、USB 2.0ノートブックポートをデスクトップUSB 3.0ポートに接続して炒めないのかしら?私は数秒間接続しましたが、dmesgで何も起こりませんでした。そのため、通常はすぐに動作しないもので行うように、すぐに切断しました。
アクエリアスパワー

2
仕様のセクション5.5.2「USB 3.0 Standard-A to USB 3.0 Standard-A Cable Assembly」はケーブルのみを定義し、「ケーブルアセンブリはオペレーティングシステムのデバッグおよびその他のホスト間接続アプリケーション用に定義されています」と述べています。usb3 a-to-aケーブルはデバッグだけでなく(kernel.org/doc/html/v4.16/driver-api/usb/usb3-debug-port.html-xHCIデバッグ機能DbCが必要ですxHCI usb3ホストコントローラーのオプション)、ファイル転送もありますか?ファイル転送には、アクティブなケーブル(中央にコントローラーがある)があります。一部はghisler.com/cables
osgx

これで動作するセットアップを見たことがありません。詳細を共有しますか?
dirkt

3

このようなケーブルフォームファクターで利用可能なUSBブリッジデバイスを使用できます... http://www.usbgear.com/link/(自動再生ビデオ警告)


3
USBポートを直接接続しないでください
スカペレン

これはWindows固有のものである可能性があります
スカペレン

3
「ドライバー不要」ビットには非常に警戒します。知っている限りでは、実際、ドライバーが必要です。linux-usb.org/usbnet/#t-host
goldilocks

@goldilocksええ、ボードにはおそらく何らかのWindowsコードがあります...ユーザーがCDからドライバーをインストールする必要はありません
-Skaperen

1

デバイスの1つがUSB OTGをサポートしている場合、技術的には可能です。USBOTGでは、ポートがマスターまたはスレーブとして機能します。OTGデバイスをスレーブとして設定し、USBハードディスクドライブとして機能させることができます(したがって、マスターに特別なドライバーさえ必要ありません)。

これは、多くの電話と一部のカメラが行うことです。それらをプリンターに接続すると、マスターになります。PCに接続すると、スレーブになります。


1
USB OTGは、USBホストモードとUSBデバイスモードを切り替えるだけです。電話では一般的ですが、この機能を備えたPCは知りません。これらのPCは実際に存在しますか?
-Lekensteyn

@Lekensteyn:タブレットでは珍しいことではなく、一部のタブレットは実際にフルPCです。ただし、ホスト専用USBポートとフルPCの間にはおそらく高い相関関係があります。
ベンフォークト

@lekensteynは、回答を2つのデバイスのうちの1つとして編集しました。送信者か受信者かは重要ではありません。PC側のotgがまだ不足していると思います。残念です。
レスト

これはデュアルロールデータとも呼ばれます。一部の新しいマザーボードでは、この機能がサポートされています。たとえば、このページを参照してください。チップセットのデータシートに記載されていますが、必ずしもすべてのマザーボードで有効になっています。
ルチアーノ

0

私がそれをする方法は、2本のUSBシリアルケーブルとその間のヌル接続を使用することです。その後、xmodem、zmodem、kermitなどを使用してファイルを転送したり、2台のマシン間のネットワークでpppまたはslipを使用したりできます。昔ながらですが動作します。

サッド


1
「USBシリアルケーブル」とは、USBからDE-9 over RS232のような標準のシリアルプラグおよび標準に変換するケーブルを意味しますか?つまり、基本的に2つのコンバーターとシリアル通信用のケーブルですか?また、これらのプロトコルの使用方法や、それらに関する役立つ情報の入手先に関する情報が少しあれば良かったでしょう。
phk

phkが正しい場合、null接続とは何かを説明します。回答は自己完結型でなければなりません。また、「u」の代わりに「you」を使用してください。回答は、フォーラム投稿ではなく自己完結型の例である必要があります
-grochmal

これにより、USB 3の転送速度(5〜10 Gbps)になり、標準のギガビットイーサネットの約1000倍の速度である0.001 Gbpsに低下します。努力する価値はほとんどありません!特にOPのような場合は、接続を介してディスクを共有しようとしています。
悪徳
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.