部署文档补内核控制台坑: 仅关getty不够

实测: printk legacy console [ttyS0] 未清时内核日志混入吊舱协议流, 表现为
收几帧后 OSError errno 5; 补充 cmdline.txt 清理步骤与串口静默后三连验证
This commit is contained in:
keita
2026-09-28 09:31:00 +08:00
parent 11131e26c5
commit 7e43e6302d
+10 -1
View File
@@ -80,7 +80,16 @@ pytest # 仅上机自测需要,部署运行可省
串口硬件选 Yes**(等价于 `enable_uart=1` + 关闭 serial-getty 抢占);
- Pi 4B 上 `/dev/serial0` 默认指向 mini-UART(ttyS0,波特率随主频漂移),
115200 下不稳——在 `/boot/firmware/config.txt` 加 `dtoverlay=disable-bt`
把 PL011(ttyAMA0)换回来,`/dev/serial0` 随之改指 ttyAMA0;
把 PL011(ttyAMA0)换回来,`/dev/serial0` 随之改指 ttyAMA0
(想保留蓝牙改用 `dtoverlay=miniuart-bt`);
- **必须同时清掉内核控制台**(2026-09-28 实测踩坑):`dmesg` 出现
`printk: legacy console [ttyS0] enabled` 说明内核 printk 也在往同一个口
吐日志,与吊舱协议流混在一起(表现为能收几帧后 `OSError errno 5` 或
持续坏帧)。编辑 `/boot/firmware/cmdline.txt`(**单行文件,务必先备份**)
删掉 `console=serial0,115200` / `console=ttyS0,115200` 后重启;
- 串口静默后三连验证(缺一不可):`ls -l /dev/serial0`→ttyAMA0、
`ps aux | grep "[a]getty"` 无串口 getty、`dmesg | grep -i "console \["`
不再出现 ttyS0;
- **Pi 是 3.3V 电平,绝不直连 5V/RS232 电平**,会烧 GPIO。
- 接线三线:TX/RX **交叉**、**必须共地(GND)**,不共地是通讯乱码的第一大原因。
- 用户权限:`sudo usermod -aG dialout $USER`,重登录生效,否则 open 串口 Permission denied。