是否可以在两个Linux操作系统之间进行USB到USB的数据传输?


26

我想在Linux(最好是Ubuntu)中创建USB到USB数据传输系统。为此,我不想使用任何外部硬件或开关(除了这根电缆)。就像将USB驱动器安装到系统上一样,但是在这种情况下,一个Linux系统将被安装在另一个系统上。我该如何创建呢?

鉴于我的内核编程经验非常基础,是否有可用的内核模块?


6
“为此,我不想使用任何外部硬件或交换机。” 如果您要使用普通的USB电缆进行连接,则无法在任何系统周期内执行此操作。USB不是对称关系。实际上,通过这种方式连接它们,可能会对两台机器造成物理损坏,因为其中涉及电压。
goldilocks 2015年

2
但是,您可以使用特殊的主机到主机电缆,在这种情况下,是的,有内核驱动程序,因此,如果要购买,请确保检查一下是否有该电缆的驱动程序。
goldilocks 2015年

4
如果您将计算机直接连接到另一台计算机,那肯定会无法正常工作,并且会成为一种电缆。
中孚2015年

2
@Thorongil不,我不是这个意思。看起来在该亚马逊网站上没有我可以找到的东西-它们是不寻常的事情。 这是一个。请勿将其与更常见的OTG(“移动”)电缆相混淆。基本上这根本不值得追求-请注意,这是一条2.0电缆,这意味着如果它们都具有千兆位以太网(并且可以使用常规软件),则使用以太网电缆传输速度会更快。
goldilocks 2015年

2
我只是做网络...我的电脑,所以我知道我已经拥有了... LAN-over-USB到USB-LAN会是我想要的
Skaperen 2015年

Answers:


24

是的,这是可能的,但它是通过切割与USB-A接口两个USB电缆(什么是正常进入的USB主板上)和交叉连接数据电缆可能。如果将USB电源线连接到此类自制电缆上,则很可能最终会油炸板载USB处理芯片。不要在家尝试!

在大多数计算机板上,处理USB的芯片仅是主机。不仅如此,它还可以处理许多底层通信,以加快处理速度并减少CPU的负载。好像您不能对计算机进行编程以使其处理USB端口上的引脚一样,就像充当非主机一样。在芯片级别上能够在充当主机和连接主机之间切换的设备很少,因为这需要昂贵得多的芯片¹。例如,这就是为什么诸如智能手机,GPS和电子书之类的智能设备(尽管它们都运行Linux或类似的东西)ssh在通过普通USB电缆连接时却不允许我进行通信的原因。

这些设备在连接时会进入某种哑屏模式,在该模式下,主机(我的台式机系统)可以将其存储用作USB光盘。断开连接后,设备使用与主机相同的接口来获取数据(尽管不需要电缆连接,但这是内部发生的)。使用这种设备,即使Linux和Linux都在两者上运行,系统之间也没有通信,即linuxes。这与将它们连接到我的台式机的普通微型或微型USB电缆无关。

在两台台式机之间,通常无法完成上述操作,因为您需要使用USB-A到USB-A电缆,这种情况并不常见(因为它无法与驱动连接的普通芯片一起使用)。

我所见过的使用两个USB-A连接器将USB转换为USB的任何解决方案都是基于介于两者之间的电缆。(很像是将USB→串行接口插入到串行→USB电缆中,但然后将它们全部合为一体)。这些通常需要驱动程序来进行传输,尽管您可以通过这种电缆使用UUCP或其他方式,就像通过“常规”串行端口一样。这可能还需要inetd和正确的配置才能在另一台计算机上登录。

¹ 我拥有的唯一可以通过这种方式更改软件的设备是带有这种特殊芯片的Arduino板。只是此芯片使该板的 价格是普通Arduino板的两倍


ssh通过普通的USB电缆连接时,不允许我使用通讯方式”我可能会误解您,但我可以 ssh进入越狱的iPhone
Cole Johnson

@ColeJohnson我对iPhone不熟悉。这样是否可以将内部存储器视为任何带有USB的主机上的USB驱动器?如果可以的话,它应该对非主机端进行完全仿真。如果不能,则可能需要专用程序才能将数据加载到手机上。
Anthon

如果openssh在设备上安装,则可以ssh(通过Wi-Fi)afc2插入,如果在设备上安装(Apple File Conduit),则应该能够通过USB浏览文件系统(如果没有,则“被监禁” “至/var/mobile
科尔·约翰逊

1
除了电话方面的知识外,其他一切都很好。许多设备限制了可以完成的工作,这一事实并不能否认除少数设备外所有设备中使用的USB芯片都可以在客户端模式下运行,有些还可以在主机模式下运行。
卡雷布(Caleb)2015年

6

是的,USB 3.0可以通过3.0电缆进行全双工数据传输。规范在USB规范的5.5.2节中。这些规格的链接在前面的另一个答案中给出。http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

电缆变得越来越容易找到,例如,可以在亚马逊上以不到8.00美元的价格购买。一定要购买DATA TRANSFER,A公头到A公头电缆。较新版本的Linux支持该传输。

我希望这对某人有帮助-我自己搜索了很长时间了。


该电缆工作需要任何设置吗?是安装还是网络模拟?
mpapis

有趣的是,我有一条简单的USB 3.0电缆(只是公头两端之间有一条简单的电缆),我想知道是否不通过将USB 2.0笔记本计算机端口连接到台式机USB 3.0端口来油炸我的USB 2.0笔记本计算机端口?我连接了几秒钟,但dmesg上没有任何反应,因此我迅速断开连接,就像通常对无法立即工作的任何事情所做的那样。
水瓶座力量

2
规范的第5.5.2节“ USB 3.0 Standard-A到USB 3.0 Standard-A电缆组件”仅定义了电缆,并说“电缆组件被定义用于操作系统调试和其他主机到主机连接应用程序”。您确定USB3对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端口
Skaperen

这可能特定于Windows
Skaperen 2015年

3
我会非常警惕“不需要驱动程序”位。实际上,他们确实需要AFAIK驱动程序。linux-usb.org/usbnet/#t-host
goldilocks

@goldilocks是的,该板可能具有某种Windows代码...用户无需从CD安装驱动程序
Skaperen

1

从技术上讲,如果其中一个设备支持USB OTG,则其中的端口可以用作主机或从机。您可以将OTG设备设置为从设备,并使其充当USB硬盘驱动器(这样,您甚至不需要在主设备上使用特殊的驱动程序)。

这是许多电话和某些相机的功能。如果将它们连接到打印机,它们将成为主机。如果连接到PC,它们将成为从属。


1
USB OTG只是在USB主机和USB设备模式之间切换。虽然在电话中很常见,但我不知道任何具有此功能的PC。这些PC确实存在吗?
Lekensteyn

@Lekensteyn:在平板电脑上并不少见,有些平板电脑确实是完整的PC。但是,仅主机的USB端口与完整的PC之间可能存在高度相关性。
Ben Voigt 2015年

@lekensteyn仅将答案编辑为两个设备之一,发送方或接收方并不重要。我认为PC方面仍然缺乏otg。真可惜
Lesto

我相信这也称为双重角色数据。一些较新的主板支持此功能-例如,参见此页面。它记录在芯片组数据表中,但必须在所有主板上都启用。
卢西亚诺

0

我要做的方法是使用2 usb串行电缆和之间的空连接。然后,您可以使用xmodem,zmodem,kermit等来传输文件,或者使用ppp或slip在两台计算机之间建立网络。老式,但可以使用。

萨德


1
所谓“ usb串行电缆”,是指可以将USB从USB转换为某种串行插头和标准电缆(如DE-9上的RS232)的电缆?因此,基本上是两个转换器和用于串行通信的电缆?此外,如果能提供更多有关如何使用这些协议或在何处找到好的帮助的信息,那将是一件很高兴的事情。
phk

phk是正确的,您应解释什么是空连接。答案应自成体系。另外,请使用“ you”代替“ u”,同样,答案应该是一个自包含的示例,而不是论坛帖子
俗称的2016年

这样可以提高USB 3的传输速度(5-10Gbps),并将其降低到0.001Gbps,比标准的千兆以太网慢1000倍。几乎不值得付出努力!尤其是像OP一样,您希望通过连接共享磁盘。
Malvineous
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.