1.準備圖片
使用ubuntu內建的繪圖軟體GIMP是最為快捷的方式,使用命令進行轉換也可以,實際測試中用命令轉換圖片老提示錯誤,所以就用GIMP的方式處理了。具體流程如下:
(1)開啟GIMP軟體並載入圖片資源(file->open),自己的原圖片格式應該不限制,我的是bmp格式的。
(2)點擊Image->mode->Indexed 並在彈出的選項框內設定Generate optimum palette下的Maximum number of colors:224 原值預設為255,點擊Convert按鈕。
(3)點擊file->Save As,修改圖片檔案尾碼為.ppm 點擊儲存後會彈出一個小的選項卡供選擇資料格式,這裡選擇Ascii後儲存。
(4)將新產生的圖片檔案重新命名為logo_linux_clut224.ppm,並將其拷貝到核心源碼中的/driver/video/logo/中,替換同名檔案。刪除logo_linux_clut224.c和logo_linux_clut224.o兩個檔案,重新編譯後這個兩個檔案會自動產生。
到這裡圖片已經準備完畢...
2.修改核心配置選項
(1)Device Drivers --->
Graphics support --->
[*]Boot logo --->
[*] Standard 224-color Linux logo
支援kernel logo
(2)Device Drivers --->
Graphics support --->
Console display driver support --->
<*> Framebuffer Console support
不選該項無法在螢幕上顯示。
重新編譯源碼啟動就是替換後的logo了,但是沒有置中全螢幕顯示。
3.置中全螢幕顯示
(1)修改源碼/driver/video/fbmem.c中的fb_show_logo_line函數
//image.dx=0;
//image.dy=y;
image.width = logo->width;
image.heigh = logo->height;
增加
+image.dx = (info->var.xres / 2) - (image.width / 2);
+image.dy = (info->var.yres / 2) - (image.height / 2);
(2)修改源碼/driver/video/console/fbcon.c中的fbcon_prepare_logo()函數
在logo_height = fb_prepare_logo(info, ops->rotate);後增加下面一行代碼
+logo_height += (info->var.yres / 2) - (logo_height / 2);
經過以上方式重新編譯核心啟動就會看到修改的核心logo能夠置中全螢幕顯示了。
經過上面的方式,核心logo已經可以正常顯示,但是會被android開機第一個logo(白色“A N D R O I D”文本字樣)給快速的重新整理掉,導致給人一閃而過的感覺。所以實際當中還要把它給屏蔽掉。