Это предполагает, что вы используете Linux с обеих сторон. Если вы работаете в Windows, есть возможности (например , putty
и CygWin
но это немного сложнее сделать.
Да, вы, вероятно, можете. Но это, скорее всего, не хочу делать:
Если вы перепрошиваете, что произойдет, если разрывается сетевое соединение?
Вы действительно хотите, чтобы облако "заразило" ваш локальный USB?
Последовательный порт
Если у вашего локального USB-устройства есть что-то вроде последовательного порта для прошивки, вы можете использовать локальную переадресацию портов и socat
для подключения к последовательной линии. При условии, что ваша среда разработки позволяет flash
через TCP-порт. Вроде следует:
На вашем локальном компьютере: ssh -R1234:localhost:1234 user@remote.example.com
Это открывает порт 127.0.0.1:1234
на remote.example.com
который затем подключается к 127.0.0.1:1234
на вашем локальном компьютере.
Теперь вы используете socat
для подключения к последовательной линии вашего USB
:
На вашей локальной машине: socat -d -d -d tcp-listen:1234,reuseaddr,fork,bind=127.0.0.1 /dev/ttyUSB0
TCP -> Труба
С другой стороны, если программное обеспечение не может использовать TCP, но хочет общаться с pipe или tty, вы можете снова использовать socat
чтобы обеспечить следующее:
На удаленном компьютере: socat -d -d -d unix-listen:.mypipe tcp-connect:127.0.0.1:1234
Теперь позвольте вашему удаленному программному обеспечению подключиться к .mypipe
и оно прозрачно подключится к /dev/ttyUSB0
на вашем локальном компьютере.
Но ваш пробег может отличаться. Это сильно зависит от того, что нужно вашему программному обеспечению в облаке.
Специальные драйверы USB
Например, может случиться так, что вам нужно создать какую-то специальную заглушку, которая общается с USB
. К счастью, это может быть сделано и от socat:
На локальной стороне: socat -d -d -d tcp-listen:1234,reuseaddr,fork,bind=127.0.0.1 exec:/path/to/program
Удаленная сторона более сложная, потому что, если она ожидает соединения с USB
, вам, вероятно, нужно создать какой-нибудь фиктивный драйвер USB для ядра Linux и загрузить его туда. Не легко управлять, извините.
Подвести итог
SSH
в сочетании с socat
способен обеспечить почти все взаимосвязи между вашим локальным компьютером и "облаком", о котором вы можете подумать.
Однако подключение к локальному USB
может потребовать или не потребовать особой обработки с обеих сторон. Проблемная часть - это не SSH
или socat
, а то, как позволить удаленному программному обеспечению обмениваться данными через такой туннель с вашим локальным USB.
Возможно, кто-то еще знает какой-нибудь plug and play USB emulator
для Linux, но я никогда не сталкивался с таким чудовищем. И я делаю Linux уже почти 20 лет ..
В качестве отправной точки, возможно, посмотрите на этот ответ