本次隨筆是關於串口調試的內容
起因是項目遇到一個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