本文基于树莓派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 | mancode@dev:~ $ cat /boot/firmware/cmdline.txt |
第二步,欲开启日志输出,我们删除上述启动命令中的几项(console,quiet,splash,plymouth.ignore-serial-consoles)后,文件内容如下:
1 | mancode@dev:~ $ cat /boot/firmware/cmdline.txt |
第三步,修改文件之后,使用如下命令重启操作系统。启动时,请打开SecureCRT的串口快速连接,并注意其界面输出信息:
1 | sudo reboot |
在操作系统重启中,我们在SecureCRT软件上可以清晰的看到启动日志的输出:
0x05 使用SecureCRT记录启动日志到磁盘文件
通过执行上述个步骤,我们已将操作系统的启动日志打印到SecureCRT的界面上。为方便后续分析,我们通过SecureCRT本身的日志输出功能,将界面的上述信息同步打印到磁盘文件。
第一步,按如下方法设置SecureCRT的日志文件:
第二步,打开日志文件夹,我们就可以看到操作系统的启动日志文件了,如下图所示: