Kernel

是否可以在兩個 Linux 作業系統之間進行 USB 到 USB 數據傳輸?

  • December 3, 2020

我想在 Linux(最好是 Ubuntu)中創建一個 USB 到 USB 的數據傳輸系統。為此,我不想使用任何外部硬體或開關(除了這條電纜)。這就像將 USB 驅動器安裝到系統上,但在這種情況下,其中一個 Linux 系統將安裝在另一個系統上。我怎樣才能創建這個?

鑑於我的核心程式經驗非常基礎,是否有可用的核心模組?

是的,這是可能的,但是通過切割兩條帶有 USB-A 連接器的 USB 電纜(通常進入主機板上的 USB)並交叉連接數據電纜是不可能的。如果您在這種自製電纜上連接 USB 電源線,您可能最終會炸掉您的板載 USB 處理晶片。不要在家裡嘗試這個!

在大多數電腦板上,處理 USB 的晶片只是主機。不僅如此,它還處理大量低級通信以加快處理速度並減少 CPU 的負載。並不是說您可以對電腦進行程式以處理 USB 埠上的引腳以充當非主機。在晶片級別上,能夠在充當主機和連接到主機之間切換的設備很少,因為這需要更昂貴的晶片¹。ssh這就是為什麼像我的智能手機、GPS 和電子書這樣的智能設備,雖然它們都執行 Linux 或類似的東西,但在通過普通 USB 電纜連接時不允許我使用它進行通信。

這些設備在連接時會進入某種啞模式,主機(我的桌面系統)可以將其儲存用作 USB 磁碟。斷開設備連接後,設備使用與主機相同的介面來獲取數據(雖然不需要電纜連接,但這發生在內部)。使用這種設備,即使 Linux 在兩者上都執行,系統之間也沒有通信,即 linuxes。這獨立於將它們連接到我的桌面的普通微型或迷你 USB 電纜。

在兩台台式電腦之間,上述操作通常是不可能的,因為您需要一根 USB-A 到 USB-A 電纜,這並不常見(因為它不適用於驅動連接的普通晶片)。

我見過的任何使用兩個 USB-A 連接器進行 USB 到 USB 的解決方案都是基於中間有一些電子設備的電纜。(很像將 USB → 串列插入串列 → USB 電纜,但然後全部合二為一)。這些通常需要驅動程序進行傳輸,儘管您可以通過這樣的電纜使用 UUCP 或其他東西,就像通過“普通”串列埠一樣。這可能還需要 inetd 和適當的配置才能在另一台電腦上登錄。

¹我擁有的唯一可以以這種方式進行軟體更改的設備是帶有這種特殊晶片的 Arduino 板。僅此晶片就使該板 的價格是普通 Arduino 板的兩倍。

引用自:https://unix.stackexchange.com/questions/195765