【Linux學習小技巧】如何在Linux啟動時顯示開機進度條?
本文基於ZLG ARM9開發套件,主要介紹了如何實現在Linux操作係統啟動時顯示開機進度條,其方法適用於其他產品。
開發主機環境:
Ubuntu 12.04(64位)、arm-none-linux-gnueabi-gcc係列交叉工具鏈
硬件清單:
EasyARM-i.MX257開發套件或EasyARM-i.MX283A/287A開發套件或EPC-28xC-L工控板 等
軟件資源:
產品光盤資料
進度條實現的源文件:boot_process.c
1.1 解壓內核源碼包
1.2 複製boot_process.c文件
將ZLG提供的boot_process.c文件(可以通過400-888-4005 或發郵件至epc@zlgmcu.com索取文件或更為詳細的操作方法)拷貝到“~/linux-2.6.31/drivers/video/logo”目錄下,如圖1所示:

圖1 複製boot_process.c
進入該目錄使用vi指令編輯其中的Makefile文件:
vmuser@Linux-host:~$ cd linux-2.6.31/drivers/video/logo
vmuser@Linux-host:~/ linux-2.6.31/drivers/video/logo$ vi Makefile
按下“20gg”定位到第20行,然後按i鍵進入插入模式,輸入如下所示內容:
obj-y += boot_process.o
修改後這部分代碼應如圖2所示:

圖2 修改後的代碼
修改完畢後,保存並退出編輯器。
1.3 定製boot_process.c
在boot_process.c文件中定義了幾個宏,可供用戶參考定製自己的進度條。這些宏的定義以及用法如下所示:
CONFIG_BOOT_PROCESS,開啟或關閉進度條顯示功能
CONFIG_BOOT_PROCESS_BLOCK,選擇啟用塊狀進度條,與條狀進度條互斥
CONFIG_BOOT_PROCESS_BAR,選擇啟用條狀進度條,與塊狀進度條互斥
CONFIG_PROCESS_DURATION,延長或縮短進度條的持續時間
PROCESS_BLOCK_NUM,修改進度條每一格的
1.4 重新編譯內核
返回“~/linux-2.6.31”目錄並重新編譯內核,參考命令如下:
vmuser@Linux-host:~/ linux-2.6.31/drivers/video/logo$ cd ../../..
vmuser@Linux-host:~/ linux-2.6.31$ make uImage
編譯完成後生成的固件存放在“arch/arm/boot”目錄下,如圖3所示:

圖3 生成uImage
將這個固件重新燒寫進開發套件,具體的燒寫過程請參考產品光盤資料中的開發指南或用戶手冊。
1.5 開機啟動係統
將開發套件連接好液晶屏以及電源線,然後開機啟動係統,可以看到在Linux小企鵝的下方出現了進度條,如圖4所示。

圖4 開機進度條