Передача данных между двумя машинами Ubuntu возможна через USB-кабель?

Всегда опасно не соглашаться с Emmet, поэтому позвольте мне начать с признания того, что его ответ, вероятно, более правильный. Тем не менее, я лично считаю pbuilder более удобным и более эффективным из коробки.

Если вы находитесь на Ubuntu 12.10 или новее, обязательно установите отличные скрипты pbuilder, которые представляют собой набор чрезвычайно

Если вы используете Ubuntu 12.04, вы можете установить скрипты pbuilder из хранилища backports.

Теперь давайте сравним и сравним удобство использования эквивалента операции. В этих примерах я пройдусь с помощью ARM chroot, размещенного на x86, но концепции по-прежнему применяются к x86 chroot, размещенному на x86. Помните, что я использую оболочки pbuilder-scripts.

Следует отметить, что скрипты pbuilder реализуют немного соглашения, аналогично тому, как Ruby on Rails принимает некоторые решения для вас, чтобы вы могли быстро и быстро.

extreme

mk-sbuild --arch=armhf quantal

vs

# in addition to the chroot, creates a new, empty directory named ~/Projects/quantal-armhf
pcreate -a armhf -d quantal quantal-armhf

вердикт: tie, обе командные строки довольно просты, и в случае необходимости оба могут взять дополнительные опции для более удобных вариантов использования. Однако обратите внимание на дополнительный новый каталог, созданный pcreate.

tie

# standard debian/ubuntu method, works in any directory
apt-get source casper

vs.

# 'quantal-armhf' is the name of the chroot created earlier
# results in downloading package to: ~/Projects/quantal-armhf/casper/
pget quantal-armhf casper

verdict : небольшой край для sbuild, потому что вы используете стандартную дебианскую / ubuntu передовую практику. Соглашение, используемое pget, может показаться странным сначала, но поскольку я работаю над несколькими пакетами через несколько выпусков Ubuntu, мне нравится организация, которую она налагает. Обратите внимание также, что apt-get source также извлекает источник везде, где вы запускаете команду, оставляя вас с * .orig.tar.gz, * .debian.tar.gz, * .dsc и расширенным каталогом, который я лично считаю быть грязным.

Маленькое ребро для sbuild

schroot -c quantal-armhf

vs.

ptest quantal-armhf

verdict: небольшое преимущество для pbuild, меньшее количество символов для ввода - меньшее количество символов. Обратите внимание, что в этой версии ввода chroot любые изменения, которые вы делаете здесь, будут потеряны после выхода из chroot. Также обратите внимание, что в schroot вы останетесь обычным пользователем, тогда как с ptest вы будете в chroot как пользователь root.

небольшое ребро для pbuild

[ f7]

vs.

ptest quantal-armhf --save

verdict: небольшое ребро для pbuild, меньшее количество символов и более интуитивные аргументы командной строки, на мой взгляд. В этой версии ввода chroot любые изменения, которые вы там вносите, будут сохранены для будущих вызовов.

небольшое ребро для pbuild

debuild -S -sa -I -i
sbuild -A --arch armhf -d quantal-armhf /path/to/casper-1.315.dsc

vs.

# must be invoked when pwd is ~/Projects/quantal-armhf/casper/casper-1.315
pbuild

verdict: pbuild, теперь мы видим первую значительную победу при использовании соглашений pbuild. Это мертвая простая команда, в которой ничего не нужно помнить, в отличие от указания архитектуры, имени chroot и необходимости в пути к файлу * .dsc, который требуется sbuild. Кроме того, вы должны помнить о создании нового файла * .dsc с sbuild, тогда как pbuild сделает это автоматически для вас.

pbuild

В приведенном выше примере , как sbuild, так и pbuild будут загружать и устанавливать build-deps в соответствующие chroots. Однако pbuild сохраняет загруженные файлы .deb в / var, поэтому, если вы повторно вызываете pbuild во второй раз, вам не нужно снова загружать все сборки (хотя они все равно должны быть установлены в chroot). sbuild не кэширует файлы .deb (по крайней мере, не по умолчанию), и, следовательно, вы должны снова загрузить все сборки-фрагменты в дополнение к ожиданию их установки в chroot.

verdict: pbuild длинным выстрелом. Кэширование build-deps - отличный параметр по умолчанию, а pbuild достаточно умен, чтобы определить, есть ли в архиве более новая версия build-dep и при необходимости вытащить новую версию.

pbuild

Из-за квадрата я нахожу, что для сложного пакета с множеством копий вы можете сохранить ваши минуты. pbuilder-скрипты будут намного дружелюбнее и быстрее, чем эквиваленты sbuild. Конечно, есть способы сделать pbuilder еще быстрее (построить в tmpfs, отключить некоторые крючки chroot), и, вероятно, есть и те же самые трюки для sbuild, но я не знаю о них.

[d40 ] Надеюсь, это поможет.

19
задан 18 April 2017 в 04:47

16 ответов

Когда вы говорите, USB-кабель, вы имеете в виду кабель передачи Windows Easy?

В этом случае самый простой способ сделать это - просто подключить две машины непосредственно вместе с кабелем Ethernet. Современные сетевые адаптеры достаточно умны, что вам даже не нужен кроссоверный кабель; они просто автоматически пересекаются, когда обнаруживают, что вы подключили два компьютера.

15
ответ дан 18 July 2018 в 14:45

Firewire также может быть вариантом. https://help.ubuntu.com/community/EthernetOverFirewire

1
ответ дан 18 July 2018 в 14:45

Если на ваших компьютерах есть разъем типа B или On-Go, вы можете использовать драйвер USB-гаджета. Для загрузки драйвера

# modprobe g_ether

Вы можете настроить MAC-адреса и идентификаторы поставщиков и продуктов:

# 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- Разъемы. В лучшем случае вы можете повредить материнские платы. В худшем случае вы можете начать огонь.

0
ответ дан 18 July 2018 в 14:45

Если вам абсолютно необходимо это сделать для доказательства концепции, вы можете имитировать древнее искусство переноса «laplink», эмулируя последовательный порт на каждой машине.

Usb to serial on one и usb к серийному (нуль-модем) в другом, сортируя гендерные проблемы в середине.

Это было бы не быстро.

3
ответ дан 18 July 2018 в 14:45

Когда вы говорите, USB-кабель, вы имеете в виду кабель передачи Windows Easy?

В этом случае самый простой способ сделать это - просто подключить две машины непосредственно вместе с кабелем Ethernet. Современные сетевые адаптеры достаточно умны, что вам даже не нужен кроссоверный кабель; они просто автоматически пересекаются, когда обнаруживают, что вы подключили два компьютера.

15
ответ дан 24 July 2018 в 20:28
  • 1
    Из того, что я слышал, кабели передачи USB, как изображено, обычно рассматриваются как тип сети в Linux. У некоторых ультралайт-ноутбуков нет проводных Ethernet-разъемов, поэтому это может быть выгодным: в качестве опции могут быть два адаптера USB-Ethernet и патч-корд RJ45 (но, тем не менее, они могут быть использованы и для других сетевых целей). – Chris Stratton 18 April 2017 в 00:48
  • 2
    @ChrisStratton Это правильно. Эти кабели представляют собой по существу два сетевых адаптера. – David Schwartz 18 April 2017 в 01:25
  • 3
    @DavidSchwartz с точки зрения того, как Linux традиционно относится к ним, да. Но Windows видит их совершенно по-разному (по сообщениям, кросс-платформенная передача не работает), и в архитектуре они, вероятно, представляют собой пару FIFO и некоторую логику, сидящую между двумя устройствами USB-устройств или даже просто координирующую логику для создания виртуальных пятен из общей буферной памяти. – Chris Stratton 18 April 2017 в 02:09
  • 4
    @ChrisStratton Они почти все основаны на некоторых вариантах Prolific 2501 (2301, 25A1, что угодно). Физически существует два FIFO между двумя backend-контроллерами с микроконтроллером для управления. Но это по сути то же самое, что и вы, если бы вы подключили две NIC друг к другу. Как водитель выбирает представить это, конечно, выбор водителя. Такое же программное обеспечение Windows, которое работает над этими кабелями, обычно также работает с сетевыми адаптерами, если производитель не решил заблокировать его. – David Schwartz 18 April 2017 в 02:27
  • 5
    Это, я считаю, ответ USB 2.0 с ответом USB 3.0 на superuser.com/a/1165890/41259 . – chx 18 April 2017 в 04:42

Firewire также может быть вариантом. https://help.ubuntu.com/community/EthernetOverFirewire

1
ответ дан 24 July 2018 в 20:28

Если на ваших компьютерах есть разъем типа B или On-Go, вы можете использовать драйвер USB-гаджета. Для загрузки драйвера

# modprobe g_ether

Вы можете настроить MAC-адреса и идентификаторы поставщиков и продуктов:

# 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- Разъемы. В лучшем случае вы можете повредить материнские платы. В худшем случае вы можете начать огонь.

0
ответ дан 24 July 2018 в 20:28

Если вам абсолютно необходимо это сделать для доказательства концепции, вы можете имитировать древнее искусство переноса «laplink», эмулируя последовательный порт на каждой машине.

Usb to serial on one и usb к серийному (нуль-модем) в другом, сортируя гендерные проблемы в середине.

Это было бы не быстро.

3
ответ дан 24 July 2018 в 20:28

Когда вы говорите, USB-кабель, вы имеете в виду кабель передачи Windows Easy?

В этом случае самый простой способ сделать это - просто подключить две машины непосредственно вместе с кабелем Ethernet. Современные сетевые адаптеры достаточно умны, что вам даже не нужен кроссоверный кабель; они просто автоматически пересекаются, когда обнаруживают, что вы подключили два компьютера.

15
ответ дан 31 July 2018 в 11:40
  • 1
    Из того, что я слышал, кабели передачи USB, как изображено, обычно рассматриваются как тип сети в Linux. У некоторых ультралайт-ноутбуков нет проводных Ethernet-разъемов, поэтому это может быть выгодным: в качестве опции могут быть два адаптера USB-Ethernet и патч-корд RJ45 (но, тем не менее, они могут быть использованы и для других сетевых целей). – Chris Stratton 18 April 2017 в 00:48
  • 2
    @ChrisStratton Это правильно. Эти кабели представляют собой по существу два сетевых адаптера. – David Schwartz 18 April 2017 в 01:25
  • 3
    @DavidSchwartz с точки зрения того, как Linux традиционно относится к ним, да. Но Windows видит их совершенно по-разному (по сообщениям, кросс-платформенная передача не работает), и в архитектуре они, вероятно, представляют собой пару FIFO и некоторую логику, сидящую между двумя устройствами USB-устройств или даже просто координирующую логику для создания виртуальных пятен из общей буферной памяти. – Chris Stratton 18 April 2017 в 02:09
  • 4
    @ChrisStratton Они почти все основаны на некоторых вариантах Prolific 2501 (2301, 25A1, что угодно). Физически существует два FIFO между двумя backend-контроллерами с микроконтроллером для управления. Но это по сути то же самое, что и вы, если бы вы подключили две NIC друг к другу. Как водитель выбирает представить это, конечно, выбор водителя. Такое же программное обеспечение Windows, которое работает над этими кабелями, обычно также работает с сетевыми адаптерами, если производитель не решил заблокировать его. – David Schwartz 18 April 2017 в 02:27
  • 5
    Это, я считаю, ответ USB 2.0 с ответом USB 3.0 на superuser.com/a/1165890/41259 . – chx 18 April 2017 в 04:42

Firewire также может быть вариантом. https://help.ubuntu.com/community/EthernetOverFirewire

1
ответ дан 31 July 2018 в 11:40

Если на ваших компьютерах есть разъем типа B или On-Go, вы можете использовать драйвер USB-гаджета. Для загрузки драйвера

# modprobe g_ether

Вы можете настроить MAC-адреса и идентификаторы поставщиков и продуктов:

# 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- Разъемы. В лучшем случае вы можете повредить материнские платы. В худшем случае вы можете начать огонь.

0
ответ дан 31 July 2018 в 11:40

Если вам абсолютно необходимо это сделать для доказательства концепции, вы можете имитировать древнее искусство переноса «laplink», эмулируя последовательный порт на каждой машине.

Usb to serial on one и usb к серийному (нуль-модем) в другом, сортируя гендерные проблемы в середине.

Это было бы не быстро.

3
ответ дан 31 July 2018 в 11:40

Когда вы говорите, USB-кабель, вы имеете в виду кабель передачи Windows Easy?

В этом случае самый простой способ сделать это - просто подключить две машины непосредственно вместе с кабелем Ethernet. Современные сетевые адаптеры достаточно умны, что вам даже не нужен кроссоверный кабель; они просто автоматически пересекаются, когда обнаруживают, что вы подключили два компьютера.

15
ответ дан 31 July 2018 в 23:30
  • 1
    Из того, что я слышал, кабели передачи USB, как изображено, обычно рассматриваются как тип сети в Linux. У некоторых ультралайт-ноутбуков нет проводных Ethernet-разъемов, поэтому это может быть выгодным: в качестве опции могут быть два адаптера USB-Ethernet и патч-корд RJ45 (но, тем не менее, они могут быть использованы и для других сетевых целей). – Chris Stratton 18 April 2017 в 00:48
  • 2
    @ChrisStratton Это правильно. Эти кабели представляют собой по существу два сетевых адаптера. – David Schwartz 18 April 2017 в 01:25
  • 3
    @DavidSchwartz с точки зрения того, как Linux традиционно относится к ним, да. Но Windows видит их совершенно по-разному (по сообщениям, кросс-платформенная передача не работает), и в архитектуре они, вероятно, представляют собой пару FIFO и некоторую логику, сидящую между двумя устройствами USB-устройств или даже просто координирующую логику для создания виртуальных пятен из общей буферной памяти. – Chris Stratton 18 April 2017 в 02:09
  • 4
    @ChrisStratton Они почти все основаны на некоторых вариантах Prolific 2501 (2301, 25A1, что угодно). Физически существует два FIFO между двумя backend-контроллерами с микроконтроллером для управления. Но это по сути то же самое, что и вы, если бы вы подключили две NIC друг к другу. Как водитель выбирает представить это, конечно, выбор водителя. Такое же программное обеспечение Windows, которое работает над этими кабелями, обычно также работает с сетевыми адаптерами, если производитель не решил заблокировать его. – David Schwartz 18 April 2017 в 02:27
  • 5
    Это, я считаю, ответ USB 2.0 с ответом USB 3.0 на superuser.com/a/1165890/41259 . – chx 18 April 2017 в 04:42

Firewire также может быть вариантом. https://help.ubuntu.com/community/EthernetOverFirewire

1
ответ дан 31 July 2018 в 23:30

Если на ваших компьютерах есть разъем типа B или On-Go, вы можете использовать драйвер USB-гаджета. Для загрузки драйвера

# modprobe g_ether

Вы можете настроить MAC-адреса и идентификаторы поставщиков и продуктов:

# 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- Разъемы. В лучшем случае вы можете повредить материнские платы. В худшем случае вы можете начать огонь.

0
ответ дан 31 July 2018 в 23:30

Если вам абсолютно необходимо это сделать для доказательства концепции, вы можете имитировать древнее искусство переноса «laplink», эмулируя последовательный порт на каждой машине.

Usb to serial on one и usb к серийному (нуль-модем) в другом, сортируя гендерные проблемы в середине.

Это было бы не быстро.

3
ответ дан 31 July 2018 в 23:30

Другие вопросы по тегам:

Похожие вопросы: