如何在Linux啟動時顯示開機進度條

2021-08-21 14:25:34 字數 2339 閱讀 9055

當年在學校實驗室,程式設計點亮乙個led燈就興奮了幾天!用了乙個暑假實現了液晶上電的開機進度條,成就感與幸福感滿滿!而今,zlg把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

一、解壓核心原始碼包

將產品光碟資料中的linux-2.6.31.tar.bz2核心原始碼包複製到ubuntu系統的「~/」目錄,解壓可得到linux-2.6.31目錄,參考命令如下:

vmuser@linux-host:~$ tar jxvf linux-2.6.31.tar.bz2
二、複製boot_process.c檔案將zlg提供的boot_process.c檔案(可以通過400-888-4005 或發郵件至[email protected]索取檔案或更為詳細的操作方法)拷貝到「~/linux-2.6.31/drivers/video/logo」目錄下,如圖1所示:

說明: qq截圖20150806113105

圖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所示:

說明: qq截圖20150806114802

圖2 修改後的**

修改完畢後,儲存並退出編輯器。

三、定製boot_process.c

在boot_process.c檔案中定義了幾個巨集,可供使用者參考定製自己的進度條。這些巨集的定義以及用法如下所示:

config_boot_process,開啟或關閉進度條顯示功能

config_boot_process_block,選擇啟用塊狀進度條,與條狀進度條互斥

config_boot_process_bar,選擇啟用條狀進度條,與塊狀進度條互斥

config_process_duration,延長或縮短進度條的持續時間

process_block_num,修改進度條每一格的填充寬度

四、重新編譯核心

返回「~/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

將這個韌體重新燒寫進開發套件,具體的燒寫過程請參考產品光碟資料中的開發指南或使用者手冊。

五、開機啟動系統

將開發套件連線好液晶屏以及電源線,然後開機啟動系統,可以看到在linux小企鵝的下方出現了進度條,如圖4所示。

說明: jindutiao

圖4 開機進度條

如何在websphere啟動時不啟動已經安裝的應用

最近遇到了websphere伺服器啟動後,訪問管理控制台報錯的問題。為了驗證是否是應用程式的問題導致管理控制台不能登入,故需要修改websphere為 輕啟動 模式 名字是我自己起的 即不載入任何已經安裝的應用程式,然後啟動websphere。因為websphere管理控制台不能訪問,故不能通過管理...

Linux如何在系統啟動時自動載入模組

下面是以前學習linux時寫的,後來仔細研究rc.sysinit後發現,只需要修改下列地方就可以了,不必這麼麻煩的 rc.sysinit中有這樣的一段 load other user defined modules for file in etc sysconfig modules modules ...

Linux如何在系統啟動時自動載入模組

下面是以前學習linux時寫的,後來仔細研究rc.sysinit後發現,只需要修改下列地方就可以了,不必這麼麻煩的 rc.sysinit中有這樣的一段 load other user defined modules for file in etc sysconfig modules modules ...