如何連接捕獲串口信息


串口


1. 使用背景

在開發,生產,測試等環節,遇到問題導致無法繼續使用,例如:關機卡死,開機卡死等,串口信息可以幫助我們收集一些系統日志看不到的細節,以及硬件的返回值


2. 串口介紹

​ 串口(串行端口),一般場景下使用的串口多為三針角,分別為:TXD、RXD、GND

TXD:發送數據

RXD:接收數據

GND:信號地



主板對應上也會有三個同樣的接口,連接需要硬件廠商提供串口線,將對應發送、接收、地址連接即可

值得注意的是,有些機器主板上(大多為筆記本)串口針不是突出的(只有一個焊錫的小點點),此時就需要聯系硬件同事把串口線利用焊錫焊在主板上



串口線長這樣(在主板上俗稱公口,連接是為下圖母口加 USB 轉接線):



3. 連接串口修改參數

為了能更好的更全面的記錄串口輸出的日志信息,需要修改 grub 中的內核參數


修改分為兩種:

  1. 單詞修改(進入系統后就會失效)
  2. 長久修改(s3,s4,reboot等會一直生效)

3.1 gurb菜單單次修改

此方法啟動后就會失效,重啟,s4再次到grub菜單時需要再次修改,適用於臨時改動

修改步驟:

  1. 開機后在彈出 grub 菜單界面,按 e 進入 grub 編輯模式


  1. 進入 grub 編輯模式后,將 quiet 參數去掉,並將 loglevel=0 修改為 loglevel=7 如下圖


  1. 修改完成后,按 ctrl + x 即可啟動系統,並在串口輸出端完成完整打印信息(串口輸出端配置見標題 4)

3.2 長久修改

長久修改是進系統之后,修改 grub.cfg 此種方式修改后會長久生效,每次重啟,s4時不需要再次改動

需要注意的是,更新內核或執行命令 update-grub 后,該修改會失效


  1. 桌面右擊 - 打開終端,執行 sudo su 獲取 root 權限

  2. 編輯文件 vim /boot/efi/boot/grub.grub.cfg(efi 和 傳統引導的 grub 文件位置不同,配置文件根據自己的環境來更改哦)

    進入到 grub 菜單后,找到 grub 菜單默認啟動內核入口 menuentry ‘Kylin V10 4.4.131-20200710.kylin.x86-generic’,可參考下列修改后 grub,實際情況根據環境變化而定

menuentry 'Kylin V10 4.4.131-20200710.kylin.x86-generic' --class kylin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-a2533f78-c422-4b9a-a355-5a7b555a6daf' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3fe01578-2edf-454b-bf0a-35066831d915
        else
          search --no-floppy --fs-uuid --set=root 3fe01578-2edf-454b-bf0a-35066831d915
        fi
        linux   /vmlinuz-4.4.131-20200710.kylin.x86-generic root=UUID=a2533f78-c422-4b9a-a355-5a7b555a6daf ro locale=zh_CN splash loglevel=7 resume=UUID=a7260390-d01c-4e72-aee8-160140054ce1 security= 
        initrd  /initrd.img-4.4.131-20200710.kylin.x86-generic
}

3.3 其他修改

3.3.1 穩定性測試參數

若是在做穩定性測試時出現異常,則需要在 gurb 參數行尾(loglevel=7 那一行)添加 initcall_debug=1 ,此參數會在做 shutdown、reboot、s3、s4 測試時打印更為詳細的內核日志


3.3.2 grub 串口參數

  1. 一般串口識別為 /dev/ttyUSB0,根據情況也可能識別為 /dev/ttyAMA0/dev/ttyS0,具體識別為哪個根據現場環境來判斷

  2. 系統串口不輸出東西:若串口無法輸出信息,檢查線序是否接對,檢查串口識別成哪個,然后在 grub 行尾添加串口識別信息,例: console=ttyS0,115200,若還不行可考慮是否為串口線或其他硬件問題

  3. 系統串口輸出亂碼:可查看系統下有無 pabiometric 軟件包,此軟件包會影響串口輸出,可直接卸載

# dpkg -P pabiometric

串口默認頻率是 115200,若一直輸出亂碼,可通過命令來修改串口頻率


1. 查看對應串口頻率
# stty -F /dev/ttyUSB0
speed 115200 baud; line = 0; 
min = 1; time = 0; 
-brkint -icrnl -imaxbel iutf8 -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

2. 修改串口頻率
# stty -F /dev/ttyUSB0 115200

4. 串口接收端配置

在 release 版本中,一般都會存在一個命令 minicom

使用方法:

# minicom -s

             +-----[configuration]------+
            | Filenames and paths      |
            | File transfer protocols  |
            | Serial port setup        |
            | Modem and dialing        |
            | Screen and keyboard      |
            | Save setup as dfl        |
            | Save setup as..          |
            | Exit                     |
            | Exit from Minicom        |
            +--------------------------+
  1. 輸入該命令后,會彈出如上表,利用光標上線停留在 Serial port setup 選項,然后摁 enter 鍵,會彈出如下圖界面

  1. 利用上面確認串口識別命令確認好串口設備后,按 shift a 切換到 Serial Device 選項上修改對應的串口設備,根據頻率按 shift e 切換到 Bps/Par/Bits 選項上修改串口頻率,修改完成后按 enter

  2. 然后利用上下光標移動到 save setup as dfl 選項上按 enter 鍵保存

  3. 然后利用上下光標移動到 exit 選項上按 enter 鍵進入到串口輸出界面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM