自訂核心啟動logo(找的圖片解析度大小要低於螢幕的大小)
(1)sudo apt-get install netpbm (先讓ubuntu上網)
(2)pngtopnm logo.png | ppmquant -fs 224 | pnmtoplainpnm > logo_linux_clut224.ppm
(3)用製作好的logo_linux_clut224.ppm,替換源碼目錄 drivers/video/logo/logo_x210_clut224.ppm, 然後重新編譯核心
(4)啟動新核心,就能看到新的啟動logo了。
讓logo顯示在螢幕中央(通過結構體獲得螢幕大小資料) logo置中:
1、設定logo圖片在螢幕中的位置
vi drivers/video/fbmem.c
找到"fb_show_logo_line"函數,把
image.dx = 0;
image.dy = y;
改為: image.dx = (info->var.xres - logo->width) / 2; // logo顯示的起始座標x值 image.dy = (info->var.yres - logo->height) / 2;
除了可以覆蓋原logo的ppm,還可用另一種方法添加新圖片logo:
在Makefile中有這麼一句:extra-y += $(call logo-cfiles,_clut224,ppm)
它的意思是在當前找到以"_clut224"結尾的ppm圖片,然後根據它產生.c檔案,所以添加新的圖片名可以 類似這樣:logo_linux_sullg_clut224.ppm
1.Makefile,加入一行
obj-$(CONFIG_LOGO_LINUX_SULLG_CLUT224) += logo_linux_sullg_clut224.o
2.Kconfig,加入
config LOGO_LINUX_SULLG_CLUT224
bool "Standard 224-color Linux logo for sullg"
default y
3.logo.c,加入
extern const struct linux_logo logo_linux_sullg_clut224;
在"fb_find_logo"中找到"#ifdef CONFIG_LOGO_LINUX_CLUT224",在其後加入:
#ifdef CONFIG_LOGO_LINUX_SULLG_CLUT224
logo = &logo_linux_sullg_clut224;
#endif
完。
——————————————網上收集————————————————————
在做嵌入式Linux系統時常常希望能自己製作液晶的啟動畫面,這裡將講述logo的自訂方法。
linux下一般圖片使用PNG格式比較多,這裡就以PNG格式為例,不是PNG格式的圖片,可以用GIMP轉換一下:
1 安裝圖片轉換工具
#sudo apt-get install netpdm
2 首先將png圖片轉成pnm
# pngtopnm logo_linux_clut.png > logo_linux_clut224.pnm
3 然後將pnm圖片的顏色數限制在224
# pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224.pnm
4 最後將pnm圖片轉換成我們需要的ppm
# pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
5 配置核心 make menuconfig
Device Drivers -> Graphics support ->Logo configuration -> Standard 224-color Linux logo
6 替換原來的logo
把剛才製作好的圖片logo_linux_clut224.ppm拷貝到linux核心源碼目錄
linux-2.6.12/drivers/video/logo/下,刪除原來的logo_linux_clut224.ppm,logo_linux_clut224.c logo_linux_clut224.o 檔案,
7 重新編譯核心
在核心的根目錄下 make zImage 具體LOGO的名字可能不一樣,大家可以嘗試開啟源碼目錄看看(/drivers/video/logo)