可以通过迷你 USB 端口将我的笔记本电脑连接到任何网络设备,例如托管交换机或防火墙,然后用于screen
连接到其TTY
.
实际上是否可以通过临时 USB 到 USB 连接来连接到另一台计算机(例如笔记本电脑或服务器)?喜欢:
Terminal Client Linux Box - USB PORT ===> Target Machine - USB PORT
假设操作系统是Linux/Unix/BSD,硬件本身不支持通过USB端口模拟终端。
这个问题纯粹是出于好奇。例如,如果我希望通过 TTY 访问我的 RPI,但我不想连接显示器。
答案1
lsusb
是的,您可以使用 USB 串行电缆使用和连接终端modprobe usbserial
。USB 转串行电缆...
外部转换线直接实现内部硬件支持。所以无论原板有没有硬件支持,软件操作系统都可以解决。USB 到串行转换硬件逻辑...
jay_k@jay_k ~ $ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 2232:5005 Silicon Motion
Bus 002 Device 004: ID 8087:07dc Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
......
jay_k@jay_k ~ $ sudo modprobe usbserial vendor=VENDOR product=PRODUCT
VENDOR
并被PRODUCT
确定为XXXX:XXXX
.这意味着VENDOR:PRODUCT
。
执行后modprobe
,可以用dmesg找到ttyXXX。喜欢;
jay_k@jay_k ~ $ dmesg | grep tty
它将被格式化为/dev/ttyUSB...
.
更重要的是,您可以使用 .USB 创建 USB 到 USB 的连接Data Communication Converter Cable
。但这款产品只在韩国市场销售,外部链接 - 韩国拍卖。
此外,您还可以与两个串行转换器进行通信。 (但是,它有开销)
Laptop ---> USB to Serial ---> Serial to USB -> Target
并且您可以将 bash 重定向到/dev/ttyUSB...
.
重定向接口的输出?
您应该像使用普通文件一样使用串行设备。唯一的区别是它需要一些 ioctl() 来进行速度和控制线设置。
所以不要使用 os.system("echo ...but f = open('/dev/ttyUSB3', 'rw') ,然后使用 f.write() 和 f.read()。
理论上,您可以使用 ioctl() 来设置速度等,但在那个阶段,使用 pySerial 比自己进行所有参数编组更容易。 ser = serial.Serial(port='/dev/ttyUSB3', baudrate=9600, timeout=1, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS) 与 ser.write() 和 ser.读()。
请注意,您应该使用 udev 为串行端口设置唯一的名称,而不是硬编码 /dev/ttyUSB3。以下是针对单个 USB/RS-232 适配器执行此操作的方法,以及针对多端口 USB/RS-232 适配器执行此操作的方法。