LinuxシステムをUSBドライブのように見せる方法

LinuxシステムをUSBドライブのように見せる方法

CentOS 6.5基準に基づいてカスタムNASを構築しました。 USBポート経由でアクセスするには、このNASのストレージが必要です。ネットワーク接続は利用できません。私の電話はこれを行うことができ、Linuxボックスにもこれを行う方法が必要です。次のような質問を見つけました。 LinuxコンピュータのUSBポートを大容量記憶装置のように見せることはできますか? これは、デフォルトでは、USBデバイスがクライアントモードになっている必要があると主張しながらこれを実行できないことを意味します。これは言葉ではありません。要求は実際にはサーバーモードの他の実装/処理に関するものです。明らかに、ある種のドライバの修正が必要です。すでにこれを行うBusyBoxなどを使用する外部ドライブベイがあるようですが、これを実行するために必要なものが何であるかがわかりませんでした。

ベストアンサー1

USBはもともとスタートポロジとして設計されていました。中央にホストコントローラバス全体を管理します。そこでは、接続は外部に拡張されます。装備そしてホイール、両方を管理するにはホストコントローラが必要です。それ以外の場合、トラフィックは発生しません。デフォルトでは、ホストコントローラはマスターコントローラであり、バスの他のすべてのコントローラはスレーブコントローラです。

単にソフトウェアを変更するだけでは十分ではありません。ホストコントローラにはスレーブデバイスとは異なるタイプのUSBインタフェースチップがあり、ホストコントローラはスレーブデバイスとして機能するためにハードウェアの変更が必要です。

スマートフォンやその他のモバイル機器の出現により、人々はこれらの問題を発見しており、USBポータブル仕様が開発されました。ここでは、デュアルロールデバイスの概念が導入されました。これには、マスターおよびスレーブの役割をサポートするためのホストコントローラチップの変更と、あるデバイスから別のデバイスへのマスターロールの切り替えをネゴシエートするための新しいサブプロトコルが必要でした。

残念ながら、USB-On-The-Go機能を備えたホストコントローラチップは、デスクトップとサーバーのマザーボードではなく、スマートフォン、タブレット、その他のモバイルデバイスでのみ検出される傾向があります。

NASにスレーブとして機能するUSB​​ポートハードウェアがある場合、問題は非常に簡単です。 Linuxカーネルはすでにデバイス側のUSBもサポートしています(より一般的なホスト側のサポートとは対照的に)。ただし、CentOS 6.xではこれらの機能が有効になっていないと思われるため、「USB Gadget Support」サブシステムを有効にしてカスタムカーネルをコンパイルする必要があるかもしれません。このサブシステムでは、デバイス側USBハードウェア用の特定のドライバとUSB大容量記憶プロトコル用のデバイス側ドライバを有効にする必要があります。

残念ながら、デバイス側にはUHCI / OHCI / EHCI / XHCIのようなインターフェース標準がないようです。すべてのデバイスサイドコントローラチップデザインはユニークなスノーフレークのように見え、どのチップがデバイスに使用されるかを正確に知る必要があります。 NAS 。

ドライバの問題が解決すると、技術的な問題がもう1つあります。 USB大容量ストレージアクセスは、NFSなどのファイルレベルではなく、SATAと同様にストレージデバイスの個々のブロックにアクセスする低レベルプロトコルです。したがって、NASデバイスは共有を停止し、USB経由で提供されるすべてのストレージをアンマウントする必要があります。これは、NASデバイスにアクセスするシステムがUSBストレージ上のファイルシステムを完全に制御できると仮定し、ファイルシステムの動作中にNASデバイスで変更されたすべての内容を処理するためです。あるいは、ネットワークを介してNASにアクセスする他のデバイスも破損します。

この問題を解決する1つの方法は、USB共有ストレージでクラスタファイルシステムを実行することです。クラスタファイルシステム(GFSやOCFS2など)はこの種のマルチアクセス用に設計されていますが、参加するすべてのシステムは互いに協力して通信する必要があります。これにより、少し複雑になります。別のアプローチは、USB大容量記憶プロトコルを使用せずにUSB MTP(メディア転送プロトコル)またはより簡単なバージョンのPTP(写真転送プロトコル)を使用することです。どちらのプロトコルもブロックレベルではなくファイルレベルで動作します。 USB大容量記憶装置。これにより、NASはUSB共有が有効になっている間に共有ファイルシステムの全体的な制御を維持することができ、同時にネットワークを介してファイルシステムを共有し続けることができます。

おすすめ記事