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”文本字樣)給快速的刷新掉,導致給人一閃而過的感覺。所以實際當中還要把它給屏蔽掉。