当我通过 SSH 连接到远程机器时,有什么方法可以访问插入本地机器 USB 端口的设备吗?
我想要做的是在云中建立一个开发环境,并将程序闪存到通过 SSH 连接的微控制器。
Tin*_*ino 10
这假设您在两侧都运行 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 但想要与管道或 tty 通信,您可以socat再次使用以提供:
在遥控器上: socat -d -d -d unix-listen:.mypipe tcp-connect:127.0.0.1:1234
现在让您的远程软件连接到您的本地计算机上,.mypipe并透明地连接到它/dev/ttyUSB0。
但是您的里程可能会有所不同。这在很大程度上取决于您在云中的软件需要什么。
例如,您可能需要创建一些特殊的存根,它与USB. 幸运的是,这也可以通过 socat 进行分叉:
在本地方面: socat -d -d -d tcp-listen:1234,reuseaddr,fork,bind=127.0.0.1 exec:/path/to/program
远程端更困难,因为如果它希望与 对话USB,您可能需要为 Linux 内核创建一些虚拟 USB 驱动程序并将其加载到那里。不容易管理,抱歉。
SSH结合 withsocat能够提供您可能想到的本地机器和“云”之间的几乎所有互连。
然而,连接到本地USB可能需要也可能不需要一些特殊处理,双方。有问题的部分不是SSH或socat,而是如何允许远程软件通过这样的隧道与您的本地 USB 对话。
也许其他人plug and play USB emulator对 Linux有所了解,但我从未遇到过这样的野兽。我做 Linux 已经将近 20 年了..
作为起点,也许看看那个答案
| 归档时间: |
|
| 查看次数: |
14953 次 |
| 最近记录: |