Я прошел Лучший способ сделать TCP/IP через USB на Linux? и хотел бы узнать больше о технико-экономическом обосновании / процедуре для того, чтобы два Linux-бокса IP общались друг с другом через USB. Я сделал это несколько лет назад легко через Serial Link, и он был достаточно стабильным и зрелым.
Идея состоит в том, чтобы иметь соответствующее именованное сетевое устройство (eth0
, usb0
, wlan0
, ..) в /sys/class/net
а затем иметь возможность поиграться с командами ifconfig
/route
, как и любое другое сетевое устройство для назначения IP-адресов. , маршрутизация, пинг, ... но это простая заключительная часть.
Чтобы достичь этого, я вижу разные проблемы / шаги:
HW: кабель. Я полагаю, что на 2 компьютерах есть только «ведущие» USB-разъемы типа A, в то время как обычный USB-кабель имеет один разъем типа A и один тип B: кабель должен быть тщательно подготовлен, чтобы предотвратить обмен электропитанием, но разрешать только передачу данных. Правильный? (Я рассматриваю только протокол USB <= 2.0, так как я знаю, что USB 3.x может выполнять полнодуплексную проводку)
Конечно, если я хочу подключить ПК (хост /USB) к «устройству» (rasbpi, mini2440, arduino, ..,), у меня фактически будет конец типа B, и можно использовать «тупой» USB-кабель , Правильный?
Ядро / Драйвер: что присутствует в ядре для назначения сетевого устройства USB-порту? Похож на IP over
/dev/ttySxx
? Что делать, если драйвер ядра USB не готов на другой стороне?Идентификация порта / разъема: как ядро узнает, какой порт я на самом деле использую (особенно, если проводка питания отключена на выделенном кабеле)? Как мне определить мой порт?
Наконец, с точки зрения сетевого уровня, чего мне ожидать? простой мост для Ethernet? или каждая сторона USB будет иметь назначенный IP-адрес?
Надеюсь, это не слишком смущает, и вы получите то, чего я пытаюсь достичь. Но так как раньше было так просто сделать IP (Ethernet?) через последовательную связь, я надеюсь, что это также относится и к USB.