Platform: RK3399
OS: Android 6.0
Version: v2017.03
新装的电脑,安装了 minicom 后,连接上 3399 的板子无打印信息,无法输入。安装过程如下:
[Linux] 串口调试工具 Minicom 详细介绍
串口无任何输出,无法输入
minicom 工具默认配置是 tty8 ,我们采用的是 USB 转串口。执行
ls -l /dev/ttyUSB*
一下即可知道我们的串口是 ttyUSB0。
所以
sudo minicom -s
选第三项 Serial port setup ——> A Serial Device (手动修改为 /dev/ttyUSB0) ——> F (顺便关掉硬件流控) ——> 回车 ——> Save setup as dfl
保存,保存的配置会放在 /etc/minicom/minicom.dfl 中
至此串口有输出,但是为乱码
串口有输出,为乱码
我们查看 rk3399 默认的波特率,可知其为 1500000
方法如下:
grep "baudrate" ./kernel/arch/arm64/boot/dts/rockchip/rk3399* -nir
可以看到是 rk3399-android.dtsi 文件中设置波特率
fiq_debugger: fiq-debugger {
72 compatible = "rockchip,fiq-debugger";
...
77 rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
78 ...
80 };
所以我们将 minicom 中的波特率设置为 1500000 :
选第三项 Serial port setup ——> E Bps/Par/Bits (按 E 切换为 150000) ——> 回车 ——> Save setup as dfl
至此,串口正常输入输出。
串口在正常输出几秒后输出为乱码
这个事情发生的很莫名其妙。
合入 HDMI-IN 的 patch 后串口异常,现象为正常输出大概四秒,之后均为乱码。
回退 HDMI-IN 的 patch 后串口正常。
但是 patch 中没有任何与 Uart 有关的逻辑。
换了串口线,换插主机 USB 接口现象依旧复现。
看到 patch 中有打开几个 debug 的宏,猜测是不是数据太多了导致。
尝试将波特率从 150000 改为 115200(方法和上节相同,改 dts)
主机调试端也同样修改波特率。
问题解决。