问题:
我正在尝试通过串行端口与路由器(在本例中为 MikroTik)建立直接串行连接。我已经尝试过在谷歌搜索的许多链接中找到的格式:
sudo screen /dev/serialDevice baudRate
然而,这种形式的命令永远不会成功。
我在命令后多次点击“返回”,因为这些帖子指示进入登录提示,但无论我按“Enter”多少次,都不会显示登录提示。
答案1
简短回答:
我使用的命令的形式screen
是:
sudo screen /dev/(serialDevice) (baudRate) (TransmissionRate) (flowControl)
对于我的 MikroTik RB4011 路由器,我成功的screen
命令如下所示:
sudo screen /dev/ttyUSB0 115200 cs8 ixoff
cs8
路由器的比特率在哪里ixoff
,“无流量控制”。路由器的串行连接详细信息(包括 115200 波特率)来自制造商的用户指南 PDF。
Linux 中串行电缆的设备名称源自udevadm monitor
我将电缆插入 Linux 主机时的输出。
长答案:
尽管此示例使用 MikroTik 路由器,但只需稍加修改,它就应该适用于提供串行端口访问的其他网络设备。
找到示例中使用的串行控制台电缆这里在 Amazon 上,并被证明可以与 Linux 和 MikroTik 一起使用,无需任何特殊驱动程序。
步骤一:获取设备串口参数。
仅在笔记本电脑和路由器之间连接串行电缆是不够的:您的笔记本电脑需要使用与其相同的设置与路由器进行通信。
在串行设备附带的用户指南中,制造商将发布串行连接参数。 MikroTik 告诉我,对于本例中的 RB4011:
“用于串行控制台访问的 RJ45 控制台端口,默认设置为115200 bit/s,8 个数据位,1 个停止位,无奇偶校验”
该信息将提供给screen
命令步骤3。
第 2 步:找到逻辑性Linux 中的串行电缆末端
制作完成后身体的使用串行电缆连接路由器和笔记本电脑我们必须找到逻辑性电缆的末端,因为 Linux 将其视为screen
目标来提供命令。
执行以下命令前将串行电缆插入 Linux 主机的 USB 端口:
udevadm monitor
实时反馈(为了便于阅读,在下面被截断)将滚动到您的屏幕上:
KERNEL[19223.032240] add /devices/(SNIP)/1-1.3 (usb)
KERNEL[19223.037774] add /devices/(SNIP)/1-1.3:1.0 (usb)
KERNEL[19223.037937] add /devices/(SNIP)1-1.3:1.0/ttyUSB0 (usb-serial)
KERNEL[19223.041748] add /devices/(SNIP)/1-1.3:1.0/ttyUSB0/tty/ttyUSB0 (tty)
UDEV [19223.063696] add /devices/(SNIP)/1-1.3 (usb)
UDEV [19223.072384] add /devices/(SNIP)/1-1.3:1.0 (usb)
UDEV [19223.078189] add /devices/(SNIP)/1-1.3:1.0/ttyUSB0 (usb-serial)
UDEV [19223.101385] add /devices/(SNIP/1-1.3:1.0/ttyUSB0/tty/ttyUSB0 (tty)
退出命令ctrl c
Linux 将我们的串行电缆视为:“ttyUSB0“。我们提供这个作为目标screen
目标步骤3。
第三步:执行screen
命令
现在我们已经确定了串口设备栈的两个连接参数步骤1并识别串行电缆的逻辑设备第2步,我们拥有形成和执行命令screen
以(最终)连接到路由器所需的所有关键详细信息。
命令的形式为:
sudo 屏幕 /dev/(来自 udevadm 的设备名称) (波特率) (传输速率) (流量控制)
使用制造商的串行连接设置,我们将“8 位”指定为cs8
MikroTik 确实如此不是使用流量控制我们将其设置为ixoff
。我们的命令现在如下所示:
sudo screen /dev/ttyUSB0 115200 cs8 ixoff
请注意,已知上述命令可与 MikroTik RB4011 配合使用,但您可能需要针对您的特定设备进行调整。man screen
查看我的示例中的替代设置。
screen
您可以使用 来代替使用minicom -s
,但我觉得screen
更直接,因为您可以只附加连接参数,而不需要通过单独的设置菜单。