linux的開機動畫默認爲一隻80x80的小企鵝,在driver/video/logo下面。但是在實際的開發應用中,我們常常需要做的是更改系統默認的開機啓動畫面,更換企業的特有logo圖片。
說明下,我的環境是JZ2440開發板,韋東山老師移植的linux-2.6.22.6的kernel。
首先,下面簡要的操作步驟。
1. 確定lcd屏大小:
我用的lcd屏大小爲320x240。
2. 選擇圖片:
logo界面大小必須要小於或等於lcd屏,否則會出現錯誤。這裏我選擇一張小於其(4.3寸,480x272)所支持大小的logo圖片(320x240)。
3. 圖片製作:
嵌入式linux的logo面爲ppm類型格式的圖片。
首先,準備一張320x240的png格式圖片。
然後,重要在於如何將其轉化爲我們所需要的圖片格式——ppm格式。這裏介紹一個轉換工具->netpbm。
// 假設你使用的是ubuntu,使用此命令安裝圖片格式轉換工具。
sudo apt-get install netpbm
這裏說明一下,嵌入式linux的logo是直接在frambuffer的基礎上,顯示的一個ppm格式的圖像。在嵌入式linux中對其的支持不是正常的最大255,而是最大顏色支持爲224色。這是一種使用ASCII碼來描述圖像的一種格式。
下面將png圖片轉化爲224色的ppm圖片
a. 轉換png成pnm格式
pngtopnm wei_pei.png > wei_pei.pnm
b. 轉換像素數爲224
pnmquant 224 wei_pei.pnm > logo_linux_clut224.pnm
c. 轉換二進制的pnm格式爲文本的ppm格式.
pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
最終重新編譯內核
cp logo_linux_clut224.ppm kernel_dir/drivers/video/logo/logo_linux_clut224.ppm
$cd kernel_dir/
執行make命令重新編譯,即可得到新的kernel image
按此步驟,最終便可以定製我們自己的kernel的啓動logo界面了。
這樣總的來說是完成了我們任務所要達到的要求。但是如果想更好的瞭解其實還是可以再做一些小實驗的,下面有一節將會來再嘗試一下,如何在不改變原有系統的基礎上添加自己的logo畫面作爲啓動畫面,也就是不更改logo_linux_clut224.ppm的情況下,實現要求。