TI am335x 核心LOGO 和進度條移植
核心LOGO:
1、AM335x晶片,Linux啟動畫面小企鵝在make menuconfig彈出的介面中選擇Devuce Driver中選擇Graphics support 中的Bootup logo中的Standard black and white Linux logo選擇Y或N來確定是否啟動Linux小企鵝logo
2、TI自帶讀條啟動畫面可以在/etc/rcS.d目錄中的S00psplash.sh中遮蔽掉/usr/bin/psplash --angle $rotation &
1. Windows下logo圖片處理
然後我們來修改圖片的解析度以適應我們的液晶屏。在這裡我用800*480解析度,4.3寸的液晶屏演示。修改圖片解析度的方法如下:
1、開啟windows自帶的“畫圖”軟體
2、插入待處理圖片
3、根據我們液晶屏引數修改圖片的解析度:
4、如下圖,把新的圖片另存為png格式的檔案並命名為“my-new-logo.png”:
5、把“my-new-logo.png”放在核心原始碼:linux-3.2.0-psp04.06.00.08.sdk\drivers\video\logo路徑下,並找到剛才的檔案:
2. Linux下logo圖片處理
我們已經準備好了新的logo圖片,但是我們還需要再進一步處理才可以拿來使用。依次輸入以下命令對圖片進行處理:
1、pngtopnm my-new-logo.png> my-new-logo.pnm
2、pnmquant 224 my-new-logo.pnm> my-new-logo-224.pnm
3、pnmtoplainpnmmy-new-logo-224.pnm > my-new-logo-224.ppm
3. 四、編譯新logo進核心
3.1、檢視logo編譯對應的Makefile檔案
編譯logo對應的Makefile檔案(路徑就也是linux-3.2.0-psp04.06.00.08.sdk\drivers\video\logo)中,操作logo圖片的程式碼是:
系統預設的logo檔名是:
我們有兩個方案可以替換原來的logo檔案,一是修改Makefile檔案,使程式碼對應新的logo檔名,二是修改logo檔案的檔名為原來logo檔案的檔名,這樣就不用修改Makefile檔案。在這裡,我們用第二種方法演示。
3.2、修改新logo檔案的檔名
命令為:mv my-new-logo-224.ppm logo_linux_clut224.ppm(會覆蓋原來的同名檔案,如果不想覆蓋可以使用-i引數,重名時會提示使用者處理):
4.回到核心原始碼第一級目錄,編譯新的核心:
命令如下:
make ARCH=armCROSS_COMPILE=arm-linux-gnueabihf- uImage
5.Logo居中:
在vidrivers/video/fbmem.c檔案中找到"fb_show_logo_line"函式,把
image.dx =0;
image.dy =y;
改為
image.dx = (info->var.xres -logo->width) / 2;
image.dy = (info->var.yres - logo->height) / 2;
修改:fb_do_show_logo(info, &image, rotate, n); 將n改成1
修改原始碼/driver/video/console/fbcon.c中的fbcon_prepare_logo()函式
增加:
logo_height +=(info->var.yres/2) - (logo_height/2);
程式碼中的位置:
logo_height =fb_prepare_logo(info, ops->rotate);
logo_height +=(info->var.yres/2)-(logo_height/2);
logo_lines =DIV_ROUND_UP(logo_height, vc->vc_font.height);
注:
info->var.xres和info->var.yres是解析度大小
logo->width和logo->height是logo圖片的大小
6. 修改Makefile 新增LOGO(待驗)
新增新圖片:
在drivers/video/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,加入
configLOGO_LINUX_SULLG_CLUT224
bool"Standard224-color Linux logo forsullg"
defaulty
3.logo.c,加入
extern conststructlinux_logologo_linux_sullg_clut224;
在"fb_find_logo" 中找到 "#ifdefCONFIG_LOGO_LINUX_CLUT224",在其後加入:
#ifdefCONFIG_LOGO_LINUX_SULLG_CLUT224
logo=&logo_linux_sullg_clut224;
#endif
************************************************************************************************
2017/09/26 於深圳南山