我正在尝试连接到我的 MikroTik RB4011iGS+ 的串行控制台。
我可能遗漏了一些明显的东西,但我似乎无法获得终端(或其他任何东西)。
相关文档页面:
https://wiki.mikrotik.com/wiki/Manual:System/Serial_Console
我当前的路由器配置/system console
涉及/port
:
[admin@MikroTik] > /system console print
Flags: X - disabled, U - used, F - free
# PORT TERM
0 F serial0 vt102
[admin@MikroTik] > /system console print detail
Flags: X - disabled, U - used, F - free
0 F port=serial0 channel=0 term="vt102"
[admin@MikroTik] > /port print
Flags: I - inactive
# DEVICE NAME CHANNELS USED-BY BAUD-RATE
0 serial0 1 Serial Console 115200
1 serial1 1 115200
[admin@MikroTik] > /port print detail
Flags: I - inactive
0 name="serial0" used-by="Serial Console" device="" channels=1 baud-rate=115200
data-bits=8 parity=none stop-bits=1 flow-control=none
1 name="serial1" used-by="" device="" channels=1 baud-rate=115200 data-bits=8
parity=none stop-bits=1 flow-control=none
我也尝试过以 9600 波特率工作并使用端口serial1
,但结果相同(缺乏)。
RouterBoardminicom 2.7
通过以下电缆连接与正在运行的 Linux 机器相连:
- RouterBoard 背面有一个 RJ45 串行端口;
- 直 RJ45 电缆将 RouterBoard 连接到 Cisco 风格的适配器;
- 这种思科风格的适配器将 RJ45 连接到 DB9,我已经用万用表仔细检查过它是否连接正确(见下文);
- 最后,将 DB9 端插入串行转 USB 电缆。
这是思科风格适配器的引脚排列,如相应的 MikroTik 文档页面:
这是串行到 USB 内核日志和lsusb
条目:
# dmesg
(...)
[632023.804776] usb 2-2: Product: USB-Serial Controller
[632023.804788] usb 2-2: Manufacturer: Prolific Technology Inc.
[632023.807327] pl2303 2-2:1.0: pl2303 converter detected
[632023.819548] usb 2-2: pl2303 converter now attached to ttyUSB0
# lsusb
(...)
Bus 001 Device 017: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
(...)
我字面上地抓起一台装有 Windows 95 的旧 486 来确保串行到 USB 电缆工作正常,并且我成功地使用串行到 USB 转换器和空调制解调器电缆在 HyperTerminal/Win95 和 Minicom/Linux 之间以 9600 波特率进行通信。
我也尝试过将 Cisco 式适配器直接插入 Win95 串行端口。我也无法在 HyperTerminal 上获得终端。
我也尝试过使用picocom
and 代替screen
。minicom
但没有任何区别。
因此,问题不应该出在适配器上(适配器连接正常,我有两个适配器),也不应该是 RJ45 电缆(以太网连接正常),也不应该是串口转 USB 转换器。但是,我没有在路由器上看到任何其他可以配置的东西(我也重启了路由器,但串口链接中什么都没有显示 - 甚至没有启动信息)。我遵循了 MikroTik 的所有说明,甚至 YouTube 视频。
我现在有点疯狂,知道这会是一个愚蠢的错误。我可能做错了什么?
谢谢!
答案1
所以,我知道这将是一个愚蠢(和尴尬)的错误。我只是很遗憾在此期间发生了一次失败的 RMA。
TL;DR:适配器的针脚是倒置的(卷曲的?),我系统地上下颠倒地测试了它,可能假设我应该匹配公针而不是母针,所以一切看起来都很好。直线 RJ45 电缆不合适。我需要卷曲的 RJ45 电缆。
我花了多长时间才发现?现在是讲故事的时间,希望将来能帮助别人:
我联系了商店,向他们展示了这篇帖子,他们也认为这可能是故障,并创建了 RMA。我把 RouterBoard 寄过去,然后等待。
第二天,商店联系我,表示一切正常,没有发现任何异常,所以很明显我这边出了问题。请记住,这是我第一次通过 RJ45 进行 RS-232 连接。
今天收到路由器,再试一次,问题明显依旧。
最后,我决定明显的我决定自己做一个适配器,因为这是我以前唯一没有机会测试(也从未真正使用过)的部件。也许我的适配器接触不良了?幸好我有剥线钳,我还没有焊接我的gigatron.io,其 Pluggy McPlugface PS/2 适配器有一个我可以使用的 DB-9 母连接器。
因此,我剥去了一侧的 RJ45 电缆,并将适配器连接到面包板上(如图所示,是之前的思科适配器):
从 RouterBoard 启动后,第一次尝试就可以立即发挥作用。
只有到达这一点后,我才注意到 RJ45 触点与适配器中的触点相反。
Cisco 适配器倒置了(卷起来了?)。我查了一下,发现这是个问题。
因此,直线型 RJ45 电缆并不合适。需要卷式 RJ45 电缆,我将使用剥去的电缆剩余部分来制作一条。
就是这样。如果别人能更早发现错误,这种情况可能就发生了。
谢谢大家的关注,现在大家可以集体呻吟了!
答案2
我用screen
-这适用于 OSX 和 Linux 的串行电缆 - 用于连接到我的路由器的 RB4011 路由器的串行端口。
您需要的命令的语法screen
是:
sudo screen /dev/(serialDevice) (baudRate) (TransmissionRate) (flowControl)
连接到我的RB4011iGS+5HacQ2HnD-IN路由器,screen
我使用的命令是:
sudo screen /dev/ttyUSB0 115200 cs8 ixoff
“cs8“ 是路由器的比特率,并且 “伊克索夫“指定“无流量控制”。 ”115200"是路由器的波特率。
请注意设备”ttyUSB0“特定于我正在使用的串行电缆。但是您可以按指定的方式使用其余命令。
我在网上找到的所有用于建立串行连接的“操作指南”screen
都只告诉您只将波特率传递给命令,但当我尝试这样做时,这是不够的。如果不另外传递*传输速率和流量控制到screen
,当您尝试连接到 RB4011 时,命令将会挂起。
我在 RB4011 上的串行配置如下:
[admin@RB4011] > /port print
Flags: I - inactive
# DEVICE NAME CHANNELS USED-BY BAUD-RATE
0 serial0 1 Serial Console auto
1 serial1 1 115200
。
[admin@RB4011] > /system console print
Flags: X - disabled, U - used, F - free
# PORT TERM
0 F serial0 vt102
我也曾成功使用过minicom -s
它来与路由器建立串行连接。但是,由于minicom
需要通过设置菜单来配置连接,我更喜欢screen
直接将所有必需参数传递给命令的方式。