本次随笔是关于串口调试的内容
起因是项目遇到一个bug:国产显卡配合国产芯片外加国产系统。显卡过了BIOS之后不输出内容了。可知的情况是系统还没有死,因为大小写还是活着的。所以打算上串口看看数据是什么情况,一般来讲BIOS在进入系统之后就不会显示debug信息了,这种情况需要看系统的调试信息。可以通过如下操作把调试信息发送到指定的串口上(Linux内核的系统)。
首先不接显卡,先进系统进行一些操作。
使用dmesg | grep tty 获取当前实际存在串口。( | 为重定向,把dmesg的信息传递给 grep ,grep tty 则是筛选其中内容包含tty的东西)
以我的系统为例如下图所示:
其中忽略tty0,还有四个,我的是从CPU出来的串口只有一个,就是ttyS0。(具体是那个串口和硬件同事一起决定)
确定了之后重启,进入系统选项哪里按E进入编辑,不懂得可以参考我之前的博客(关于Ubuntu下忘记密码的合集)
修改启动参数,下图为例子
删掉多余部分,输入 console=ttyS0,115200n8 115200n8是波特率 ,无校验,8比特,1停止位
按F10 进入操作系统,此时串口就可以继续接受信息,而且在开机后还可以进入到一个类似于终端的地方,进行一些操作,此时不依赖屏幕也可以对系统下达一些指令。至此目的已经达到。
tips:
常见的串口工具有很多,PLC Xcom 等等,但是好像接受数据挺好用,发送数据比较难用 ,在上述场景中使用终端输入命令必然会依赖串口输入。这里推荐两个调试工具比较好用
Xshell 和 putty 具体资源和用法请参考百度
that is all