RaspberryPi#002#树莓派5通过串口调试器输出内核启动日志

本文基于树莓派5和UART Debugger串口调试器,使用串口登录树莓派以及打印Raspberry Pi OS的启动日志。

0x01 软硬件环境

当前测试实验的软硬件环境如下:

树莓派5 https://detail.tmall.com/item.htm?id=621905277116
UART Debugger串口调试器 https://item.taobao.com/item.htm?id=777836723400
Raspberry Pi OS 2025-05-13-raspios-bookworm-arm64.img.xz

我们通过SH1.0 3PIN连接线接入Pi5 Debug接口,如下图所示:

0x02 SecureCRT配置串口通信

首先,Windows连接UART Debugger串口调试器之后,我们通过设备管理器找到该设备的COM口,如下图所示:

然后,打开SecureCRT软件,按如下方法设置基于串口的快速连接:

0x03 打开树莓派的串口调试功能

为使用串口登录树莓派和操作系统启动日志通过串口输出,我们需要打开树莓派的串口调试功能。

首先,我们使用TF卡烧录上述Raspberry Pi OS之后,启动树莓派。

然后,使用SSH客户端登录树莓派或者在树莓派的终端中直接操作,使用如下命令打开树莓派的功能配置界面:

1
sudo raspi-config

第一步,输入上述命令后,会打开如下界面:

第二步,在上述界面,使用键盘方向键选择“I6 Serial Port”,然后回车,显示如下界面:

第三步,在上述界面,我们定位到“Yes”选项,然后回车,显示如下界面:

第四步,在上述界面,我们定位到“Yes”选项,然后回车,显示如下界面:

第五步,在上述界面,我们定位到“Ok”选项,然后回车,回到原始配置界面:

第五步,在上述界面,我们定位到“Finish”选项,然后回车,显示如下界面:

第六步,在上述界面,我们定位到“Yes”选项,然后回车,系统此时开始重启。
重启成功后,我们打开SecureCRT软件上设置好的串口快速连接,会显示如下界面:

此时输入树莓派操作系统的账号和密码,我们就可以通过串口登录树莓派了。

0x04 设置树莓派操作系统打印详细的启动日志

上述步骤中,我们在SecureCRT中可以登录操作系统,但看到不到详细的启动日志。我们按如下方法,打开操作系统的日志输出,使得启动日志通过串口输出到SecureCRT软件界面。

树莓派Raspberry Pi OS的日志输出开关在其启动文件/boot/firmware/cmdline.txt中进行设置。

第一步,首先我们看下/boot/firmware/cmdline.txt的原始内容:

1
2
mancode@dev:~ $ cat /boot/firmware/cmdline.txt 
console=serial0,115200 console=tty1 root=PARTUUID=849467a5-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=GB

第二步,欲开启日志输出,我们删除上述启动命令中的几项(console,quiet,splash,plymouth.ignore-serial-consoles)后,文件内容如下:

1
2
mancode@dev:~ $ cat /boot/firmware/cmdline.txt 
console=serial0,115200 root=PARTUUID=849467a5-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=GB

第三步,修改文件之后,使用如下命令重启操作系统。启动时,请打开SecureCRT的串口快速连接,并注意其界面输出信息:

1
sudo reboot

在操作系统重启中,我们在SecureCRT软件上可以清晰的看到启动日志的输出:

0x05 使用SecureCRT记录启动日志到磁盘文件

通过执行上述个步骤,我们已将操作系统的启动日志打印到SecureCRT的界面上。为方便后续分析,我们通过SecureCRT本身的日志输出功能,将界面的上述信息同步打印到磁盘文件。

第一步,按如下方法设置SecureCRT的日志文件:

第二步,打开日志文件夹,我们就可以看到操作系统的启动日志文件了,如下图所示:

0x06 参考文档

1.https://www.waveshare.net/wiki/Pi_UART_Debugger