當年在學校實驗室,程式設計點亮乙個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按下「20gg」定位到第20行,然後按i鍵進入插入模式,輸入如下所示內容:vmuser@linux-host:~/ linux-2.6.31/drivers/video/logo$ vi makefile
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 ../../..編譯完成後生成的韌體存放在「arch/arm/boot」目錄下,如圖3所示:vmuser@linux-host:~/ linux-2.6.31$ make uimage
圖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 ...