[Android6.0][RK3399] 串列埠無法輸入輸出 串列埠列印亂碼
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)
主機除錯端也同樣修改波特率。
問題解決。