是否可以通过USB电缆在两台Ubuntu计算机之间进行数据传输?


20

我有两台安装Ubuntu 14.04的机器,彼此相邻。但是没有网络((W)LAN)。我可以通过USB电缆将数据从一台计算机传输到另一台计算机吗?如果是这样,怎么办?


不,我不这么认为。为此,您需要一种叫做“桥接电缆”的东西。
mikewhatever

一般来说,没有。USB被设计为PC到外围设备。我们已经模糊了平板电脑和手机对外围设备的定义,但是您不能从PC到PC插入普通的老式USB A-to-A电缆。我不相信我曾经见过Windows轻松传输电缆以外的A-to-A电缆。
Christopher人质

2
尽管严格意义上讲“ Ubuntu 14.04”不能识别硬件,但对于普通PC来说,这种说法是正确的,并且可能存在可以在各种具有USB设备或OTG接口的准嵌入式平台或平板电脑上运行的版本,以及USB主机接口在PC上很常见。
克里斯·斯特拉顿

1
这个问题已经在superuser.com/a/1165890/41259上得到了解答。
chx

Answers:


16

当您说USB电缆时,您指的是Windows轻松传输电缆,对吗?

在此处输入图片说明

在这种情况下,最简单的方法是直接将两台计算机用以太网电缆连接在一起。现代的NIC非常聪明,您甚至不需要交叉电缆。当它们检测到您连接了两台计算机时,它们只是自动交叉。


2
据我所知,Linux中的USB传输电缆通常被视为一种网络类型。一些超轻型笔记本电脑没有有线以太网插孔,因此这可能是有优势的-选项可能是两个USB-以太网适配器和一个RJ45跳线(但是这些也可以用于其他联网目的)。
克里斯·斯特拉顿

@ChrisStratton是的。这些电缆本质上是两个NIC。
David Schwartz

1
@DavidSchwartz在Linux传统上是如何对待它们的,是的。但是Windows认为它们完全不同(据报道,跨平台传输不起作用),从结构上讲,它们可能是一对FIFO和位于两个USB设备引擎之间的某些逻辑,甚至只是协调逻辑以从公共缓冲存储器中创建虚拟FIFO。
克里斯·斯特拉顿

2
@ChrisStratton它们几乎都是基于Prolific 2501的某些变体(2301、25A1等)。从物理上讲,两个后端控制器之间有两个FIFO,并带有一个用于管理的微控制器。但是,这基本上与将两个NIC相互连接所得到的相同。驾驶员的选择方式当然是驾驶员的选择。除非制造商选择将其锁定,否则使用这些电缆工作的相同Windows软件通常也可以通过背对背NIC进行工作。
David Schwartz

我相信这是USB 2.0答案,而USB 3.0答案位于superuser.com/a/1165890/41259
chx

3

如果您绝对需要这样做来证明概念,则可以通过在每台计算机上模拟一个串行端口来模拟古老的“ laplink”传输技术。

USB到串行的一个,另一个到串行(空调制解调器)的USB,解决中间的性别问题。

这不会很快。


8
“那不会很快。”
查理


0

如果您的计算机具有B型On-the-Go连接器,则可以使用USB Gadget Driver。加载驱动程序

# modprobe g_ether

您可以配置MAC地址以及供应商和产品ID:

# modinfo g_ether
filename:       /lib/modules/version/kernel/drivers/usb/gadget/legacy/g_ether.ko
license:        GPL
author:         David Brownell, Benedikt Spanger
description:    RNDIS/Ethernet Gadget
srcversion:     5E4C828D24F6E477C9CB5EE
depends:        libcomposite,u_ether,usb_f_rndis
intree:         Y
vermagic:       version SMP mod_unload modversions 
parm:           idVendor:USB Vendor ID (ushort)
parm:           idProduct:USB Product ID (ushort)
parm:           bcdDevice:USB Device version (BCD) (ushort)
parm:           iSerialNumber:SerialNumber string (charp)
parm:           iManufacturer:USB Manufacturer string (charp)
parm:           iProduct:USB Product string (charp)
parm:           qmult:queue length multiplier at high/super speed (uint)
parm:           dev_addr:Device Ethernet Address (charp)
parm:           host_addr:Host Ethernet Address (charp)
parm:           use_eem:use CDC EEM mode (bool)

您可以在加载驱动程序时通过在模块名称后传递参数来设置模块参数:

# modprobe g_ether host_addr=00:dc:c8:f7:75:05 dev_addr=00:dd:dc:eb:6d:f1

如果您的机器都不支持作为USB设备运行,则此方法将不起作用。

警告:请勿尝试连接两个USB Type-A连接器。充其量,您可能会损坏主板。最坏的情况下,您可能会着火。

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.