我希望能够通过串行控制台从 Ubuntu 18.04 笔记本电脑建立到无头 Ubuntu 18.04 服务器的连接,以避免显卡消耗服务器的能源。
主板是 ASRock X99 Extreme3。它的 UEFI 有一个选项可以启用/禁用串行端口,我将其设置为启用 - 我很聪明 - 并选择3F8h/IRQ4
或3E8h/IRQ4
选择“串行端口地址”,我最初选择的是这个地址,3F8h/IRQ4
但不知道这些值代表什么。
在服务器上,我将 RS232 转 D-Sub 连接器 (DB9) 连接到主板的串行端口,并插入性别转换器。它转换
------------- -----------
\ 5 4 3 2 1 / to / 5 4 3 2 1 \
\ 9 8 7 6 / / 9 8 7 6 \
--------- ---------------
笔记本电脑没有串行端口,因此我使用串行 USB 适配器,这会导致
[ 4303.030466] pl2303 3-1.1:1.0: pl2303 converter detected
[ 4303.031471] usb 3-1.1: pl2303 converter now attached to ttyUSB0
dmesg
插入后打印。
在服务器端,输出dmesg | grep tty
为
[ 0.218803] printk: console [tty0] enabled
[ 2.079815] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
我读到了关于为 GRUB 指定串行控制台的可能性以及相关的内核参数,但是我没有找到任何明确的说明,说明在系统启动后是否有必要进行连接(我暂时不需要能够连接到 GRUB 的控制台)。
当我尝试使用
sudo minicom -D /dev/ttyUSB0
或者putty
,我明白了
CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7.1 | VT102 | Offline | ttyUSB0
在前者的页脚中,两个终端都不接受任何输入。我注意将要连接的设备文件与打印的设备文件进行匹配dmesg
。
我怀疑除了在 UEFI 中打开串行端口外,我不需要在服务器端安装或配置任何东西。这样对吗?
也许波特率不是自动协商的,需要配置,但我不知道如何找出正确的值。我运行了配置minicom
,但只能选择默认值,因为我找不到很好的解释——在所有教程中,连接似乎在之后就神奇地起作用了minicom -s
。也许连接有效,但我错过了连接的最后一步。
我将桌面用户帐户和根用户添加到组dialout
和中uucp
。
我可以提供服务器和笔记本电脑的所有必要信息。
答案1
一些好的读物可以从Ubuntu 官方文档:
替代串行客户端:screen
GNU screen 实际上是一个非常强大的串行终端。
安装:
sudo apt-get install screen
开始:
sudo screen /dev/ttyUSB0 n
其他一些建议:
1. 调整n
至您需要的:
- 第一次尝试时无需输入数字;它可能会完美地自动协商
- 然后使用 115200、57600、38400、19200、9600、4800、2400、1200,并在开始工作时停止。
- 如果你是纯粹主义者并且不喜欢使用
sudo
此功能或需要将其分发给没有访问权限的用户sudo
,请将他们添加到dialout
组中。
要结束会话,请使用Ctrl-A或Shift- K。
答案2
[ 2.079815] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
内核在上面检测到的链接16550 通用异步收发器它提供了一个 ttyS0 端口以及分配给它的一些资源(0x3f8 IO地址和中断请求 4)。
在服务器端, 确保
串行已连接到 USB 端口。使用以下命令进行检查:
$lsusb
输出应该是这样的:
Bus 003 Device 001: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
默认权限如下
ttyS*
:crw-rw---- 1 root dialout ... /dev/ttyS0
您已经是该群组的成员
dialout
,并可添加:$sudo adduser $USER dialout
让 Minicom 可以使用以下命令访问 ttyUSB*:
$sudo chmod 0777 /dev/ttyUSB0
crwxrwxrwx 1 root dialout ... /dev/ttyS0
下一步,设置 Minicom 应该是这样的:
$sudo minicom -s
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols |
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+--------------------------+
选择“串行端口设置”菜单,然后根据需要进行配置并将设置保存为 dfl。最后重新启动 Minicom。
+-----------------------------------------------------------------------+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : Yes |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+--------------------------+
在笔记本电脑端,打开串行客户端,screen
例如putty
:
使用
screen
序列号:$screen /dev/ttyUSB0 115200, cs8, -parenb, -cstopb
或者
使用
putty
序列号:$sudo putty /dev/ttyUSB0 -serial -sercfg 115200,8,n,1,N
希望这可以帮助。