Czy transfer danych między 2 maszynami Ubuntu jest możliwy za pomocą kabla USB?

20

Mam dwie maszyny z Ubuntu 14.04, tuż obok siebie. Ale brak sieci ((W) LAN). Czy mogę przesyłać dane z jednej maszyny do drugiej za pomocą kabla USB? A jeśli tak, to w jaki sposób?

Creech
źródło
Nie, nie sądzę. Potrzebujesz do tego czegoś zwanego „mostkiem kablowym”.
mikewhthing
Ogólnie nie. USB zaprojektowano tak, aby było podłączane do komputera PC. Zamazaliśmy definicję urządzeń peryferyjnych w tabletach i telefonach, ale nie można podłączyć zwykłego starego kabla USB A-to-A z komputera na komputer. Nie sądzę, że kiedykolwiek widziałem kabel A-to-A oprócz kabla łatwego transferu w systemie Windows.
Christopher Hostage
2
To, co zostało powiedziane, jest prawdą w przypadku zwykłych komputerów PC, choć ściśle mówiąc „Ubuntu 14.04” nie identyfikuje sprzętu, i mogą istnieć kompilacje, które działają na różnych quasi-osadzonych platformach lub tabletach, które mają urządzenie USB lub interfejsy OTG, a także Interfejsy hosta USB wspólne na komputerach PC.
Chris Stratton
1
Odpowiedź została udzielona na stronie superuser.com/a/1165890/41259 .
chx

Odpowiedzi:

16

Mówiąc: kabel USB, masz na myśli kabel łatwego transferu w systemie Windows, prawda?

wprowadź opis zdjęcia tutaj

W takim przypadku najłatwiejszym sposobem jest połączenie dwóch urządzeń bezpośrednio za pomocą kabla Ethernet. Nowoczesne karty sieciowe są na tyle inteligentne, że nie potrzebujesz nawet kabla krosowanego; po prostu automatycznie łączą się, gdy wykryją, że podłączyłeś dwa komputery.

You'reAGitForNotUsingGit
źródło
2
Z tego, co słyszałem, kable USB do przesyłania, jak na zdjęciu, są zwykle traktowane jako rodzaj sieci w Linuksie. Niektóre ultralekkie laptopy nie mają przewodowych gniazd Ethernet, więc może to być korzystne - opcją mogą być dwa adaptery USB-Ethernet i kabel RJ45 (ale mogą one być również wykorzystane do innych celów sieciowych).
Chris Stratton
@ChrisStratton To prawda. Kable te są zasadniczo dwiema kartami sieciowymi.
David Schwartz
1
@DavidSchwartz pod względem tradycyjnego traktowania Linuksa, tak. Ale Windows widzi je zupełnie inaczej (podobno nie działa transfer międzyplatformowy) i architektonicznie są to prawdopodobnie para FIFO i pewna logika między dwoma silnikami urządzeń USB, a nawet logika koordynująca, aby stworzyć wirtualne fifos ze wspólnej pamięci bufora.
Chris Stratton 17.04.17
2
@ChrisStratton. Wszystkie oparte są w pewnym stopniu na Prolific 2501 (2301, 25A1, cokolwiek). Fizycznie istnieją dwa FIFO między dwoma kontrolerami zaplecza z mikrokontrolerem do zarządzania. Ale to w zasadzie to samo, co dostaniesz, jeśli połączysz ze sobą dwie karty sieciowe. Sposób, w jaki kierowca decyduje się przedstawić, jest oczywiście wyborem kierowcy. To samo oprogramowanie systemu Windows, które działa na tych kablach, zwykle działa również na wzajemnych kartach sieciowych, chyba że producent zdecyduje się je zablokować.
David Schwartz
Uważam, że jest to odpowiedź USB 2.0, przy czym odpowiedź USB 3.0 znajduje się na stronie superuser.com/a/1165890/41259 .
chx
3

Jeśli absolutnie musiałeś to zrobić dla potwierdzenia koncepcji, możesz symulować starożytną sztukę transferów „laplink”, emulując port szeregowy na każdej maszynie.

Usb na szeregowy na jednym, a usb na szeregowy (modem zerowy) w drugim, rozwiązując problemy płciowe w środku.

To nie byłoby szybkie.

mckenzm
źródło
8
„To nie byłoby szybkie”.
Charlie,
0

Jeśli twoje maszyny mają złącze typu B lub On-the-Go , możesz użyć sterownika gadżetu USB . Aby załadować sterownik

# modprobe g_ether

Możesz skonfigurować adresy MAC oraz identyfikatory dostawcy i produktu:

# 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)

Parametry modułu można ustawić podczas ładowania sterownika, przekazując je po nazwie modułu:

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

Jeśli żaden z twoich urządzeń nie obsługuje działania jako urządzenie USB, to podejście nie będzie działać.

Ostrzeżenie: NIE próbuj podłączać dwóch złączy USB typu A. W najlepszym wypadku możesz uszkodzić płyty główne. W najgorszym wypadku możesz rozpalić ogień.

David Cullen
źródło