console 一般默认是 tty0(显示器 + 键盘)
九针串口一般默认是 ttyS0(x86)或 ttyAMA0(ARM)

不总是这样,必须用 dmesg 实际确认

#查看内核启动日志
dmesg | grep -E “tty|console”

#当前内核实际在用的控制台设备
cat /sys/class/tty/console/active

#系统启动时传给内核的命令行参数
cat /proc/cmdline


1.配置系统内核日志/控制台输出

如果你希望系统在启动过程中,将内核的调试信息或登录提示(Login Prompt)通过串口以 115200 的波特率输出到另一台电脑上,需要修改 GRUB 引导配置。

1.编辑 GRUB 配置文件

sudo vim /etc/default/grub

2.添加内核参数
找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行,在引号内添加以下参数。如果原来已有 quiet 参数,建议删除以确保日志输出 。

console=tty0 console=ttyS0,115200

注:tty0 表示屏幕输出,ttyS0,115200 表示第一个串口以 115200 波特率输出。你可以根据需要调整串口号。

3.更新 GRUB 配置
保存文件并退出编辑器。执行以下命令使修改生效:

对于传统 BIOS 模式:

grub2-mkconfig -o /boot/grub2/grub.cfg

对于 UEFI 模式或 update-grub 命令不存在时:

grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

启用串口登录服务(可选)
如果你希望通过串口远程登录系统,需要启用串口的 getty 服务,让系统在串口上提供登录界面。

sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service

(将 ttyS0 替换为你使用的串口设备名)

完成以上配置并重启系统后,连接在对应串口上的另一台电脑(需使用 115200 波特率连接),就能看到系统启动日志和登录提示了。

2. 需要注意的几点

  • 硬件确认:确保你的硬件串口(COM口)工作正常。如果使用 USB 转串口线,需要确保驱动程序已正确加载 。

  • BIOS 设置:在某些工控机或服务器上,需要在 BIOS 中开启“Console Redirection”(串口重定向)功能,并将波特率设置为 115200,操作系统层面的设置才能生效 。

  • 权限问题:操作串口设备通常需要 root 权限,所以在执行 minicom 或修改系统文件时,别忘了加上 sudo。

3. COM口、ttyS0和Console有什么区别?

这是一个很常见的问题,理解它们的关系对配置非常有帮助。简单来说:在Linux系统中,COM口、ttyS0和Console是同一个物理硬件在不同层面上的“名字”和“角色”。

它们的核心区别和关系可以这样理解:
在这里插入图片描述
准确地说,COM1是硬件本身,/dev/ttyS0是操作系统中代表这个硬件的文件,而Console是/dev/ttyS0所扮演的一个特殊功能角色。

4. 详细拆解:它们是什么关系?

  1. COM口 和 /dev/ttyS0 的关系
    这是最直接的一一对应关系,类似于“硬件”和“驱动”:
  • Windows视角:你插入一个串口设备,系统会把它识别为 COM1、COM2 等。

  • 麒麟Linux视角:同一个物理串口,系统会把它当作一个文件,命名为 /dev/ttyS0、/dev/ttyS1。操作这个文件,就相当于在操作串口硬件。

  1. /dev/ttyS0 和 Console 的关系
    这是最关键的区别。Console不是一个独立的硬件或设备文件,而是/dev/ttyS0被赋予的一种“特殊使命”。
  • 普通串口 (/dev/ttyS0):就像一个普通的数据通道,两个设备(比如你的电脑和开发板)通过它收发数据。

  • 系统控制台 (Console):当系统内核被特别告知“把重要的信息从这个口发出去”,并且允许“通过这个口登录进来管理我”时,这个串口就升级成了系统控制台。

你可以把它们想象成一条公路:

  • COM口 / /dev/ttyS0:就是公路本身。

  • Console:是这条公路上的一个收费站。当公路被用作收费站时,它不仅要通车(普通数据传输),还要肩负起检查、管理、记录(输出系统日志、接收管理员命令)的核心职责。

5.这在实际配置中意味着什么?

理解这个区别,你在配置的时候就不会混淆了:

  • 1.配置普通串口通信(比如连接一个传感器):

你只需要操作设备文件 /dev/ttyS0,设置波特率(如115200)、数据位等参数即可。此时它只是一个数据传输通道,不是Console。

  • 2.配置系统控制台(比如通过串口看开机日志、登录系统):

你需要在系统层面(如在GRUB内核启动参数中)告诉内核:console=ttyS0,115200。这行命令的含义就是:“请将 /dev/ttyS0 这个设备激活,并把它作为系统控制台来使用,通信速率为115200”。

启用后,所有内核启动信息、系统日志都会从这个口输出,你也能从连接在COM1上的另一台电脑登录进来。

! 一个重要的提醒:设备名不总是 ttyS0

在很多嵌入式或ARM平台的系统中(比如树莓派、某些国产开发板),串口设备的命名可能不同,常见的有 ttyAMA0、ttySAC0 或 ttyO0 等。

如何确认你的设备名?
在终端中运行以下命令,查看系统日志中关于串口的信息:

dmesg | grep tty

或者查看启动时分配给控制台的设备:

cat /proc/console

输出的结果会告诉你系统实际使用的是哪个设备文件。在配置Console时,务必使用这个真实的设备名。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐