使用kermit通過串口升級uboot
在開發板的啟動選項中看到如下兩行:
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
可以通過串口升級uboot。之前都是通過TFTP升級的,現在既然可以通過串口升級,就試著升一下吧,不然心裏總覺得少了點什麽。
在板子啟動的時候,輸入“7”來選擇通過串口升級uboot,然後看到下面的輸出:
## Ready for binary (kermit) download to 0x80100000 at 57600 bps...
那麽問題來了,kermit
通過搜索資料知道,kermit是一種簡單的文件傳輸協議,可用於PC之間交換文件,以及從大型計算機下載文件到微機。該協議是由哥倫比亞大學的kermit項目組成員開發和維護的,是一個半雙工的通信協議。有關kermit的詳細資料請查看其官網:http://www.columbia.edu/kermit/ck80.html。
ckermit串口工具
在Linux環境下使用較多的兩款串口軟件分別是minicom和ckermit,其中minicom用得最多,不少Linux發行版已經自帶。但不少人反映minicom有時會有問題,u-boot開發者也都推薦使用ckermit,下面我們就來認識一下ckermit串口工具。
c-kermit是基於kermit文件傳輸協議的串口工具,其配置和使用較為簡單,如下所示:
【功能】
1、支持kermit文件傳輸協議
2、自定義了一種腳本語言,可用於自動化工作
3、無論是網絡通信還是串口通信,其操作是一致的,並支持多種硬件、軟件平臺
4、有安全認證、加密功能
5、內建FTP、HTTP客戶端功能以及SSH接口
6、支持字符集轉換
【安裝】
$ sudo apt-get install ckermit
【配置】
c-kermit啟動時,會從當前用戶目錄下查找.kermrc配置文件,因此我們先在$HOME目錄下創建一個.kermrc文件,然後編輯文件內容如下:
set line /dev/ttyUSB0 # 根據實際情況填寫
set speed 57600 # 根據實際情況填寫
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000 # 這裏可以改大一點,方便下載內核
set window 5
【使用】
kermit有兩種工作模式:命令模式和連接模式,默認情況為命令模式。所謂連接模式,即可以從開發板中讀取數據。
$ sudo kermit
這裏使用root權限,直接進入命令模式。在該模式下輸入"connect"或"c"則進入連接模式。
$ sudo kermit -c
使用這種方式啟動ckermit,直接進入連接模式。從連接模式退回到命令模式先輸入"[Ctrl]\",接著再輸入"c"即可。
在命令模式下可以輸入shell命令來進行相應的操作,如cd、ls、pwd等。
傳輸文件可以使用命令:send filename
退出ckermit可以使用命令:exit
保存log命令:log session
該命令則會在當前目錄下生成一個session.log文件,該文件保存了本次會話的串口信息。
【舉例】
步驟1:
$ sudo kermit -c
與開發板的串口建立連接。
步驟2:
上電,板子啟動,輸入"7",進入通過串口升級uboot等待狀態。
步驟3:
輸入"[Ctrl]\",在輸入"c",進行ckermit命令模式。
步驟4:
輸入發送文件命令:send uboot.bin
開始傳送文件……
步驟5:
文件傳送完畢,此時仍處於命令模式,輸入"c",再次進入連接模式,通過串口與開發板通信。
至此,舉例完畢!
使用kermit通過串口升級uboot