萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> 修改linux內核開機logo並居中全屏顯示

修改linux內核開機logo並居中全屏顯示

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

copyright © 萬盛學電腦網 all rights reserved