Linux内核启动去掉企鹅,修改linux内核kernel开机logo(小企鹅)
修改linux內(nèi)核kernel的開機(jī)圖片(原為小企鵝圖片)。
轉(zhuǎn)載請注明出處:http://blog.csdn.net/wang_zheng_kai
導(dǎo)航制導(dǎo)與控制實(shí)驗(yàn)室 2014年12月10日
本文主要是介紹三部分內(nèi)容:
1》如何制作linux內(nèi)核所需要的開機(jī)圖片(ppm格式);
2》修改開機(jī)圖片的兩種方法;
3》調(diào)試過程中的問題與技巧;
一、如何制作linux內(nèi)核所需要的開機(jī)圖片(ppm格式)
1》在ubuntu系統(tǒng)上安裝netpdm,命令如下:
# sudo apt-get install netpdm
2》準(zhǔn)備所需要的logo圖片,圖片的大小請參考開發(fā)板所使用的分辨率;
3》將我們準(zhǔn)備好的logo(mylogo.png)轉(zhuǎn)換成我們需要的圖片格式:
# pngtopnm mylogo.png > my_linux_logo.pnm //將png轉(zhuǎn)換成pnm
# pnmquant 224 my_linux_logo.pnm > my_linux_logo_224.pnm//將pnm圖片的顏色數(shù)限制在224
# pnmtoplainpnm my_linux_logo_224.pnm > my_linux_logo_224.ppm//將pnm圖片轉(zhuǎn)換成最終的ppm
注:我調(diào)試的這個過程是基于png格式圖片的轉(zhuǎn)換過程,如果是其他格式的請轉(zhuǎn)換成png或者是使用其他的命令進(jìn)行轉(zhuǎn)換。
二、修改開機(jī)圖片的兩種方法:
1、方法一:替換原有圖片
直接替換linux_kernel/driver/video/logo/下的圖片***,并確保替換的文件名前后一致。然后確保內(nèi)核配置如下所示:
Device Drivers-->
Graphics Support-->
Bootop logo-->
[*]?? Standard 224-color Linux logo
重新編譯并燒錄到開發(fā)板中,重啟即可顯示。
2、方法二:添加新的圖片
1》將得到的my_linux_logo_224.ppm圖片文件直接復(fù)制到linux_kernel/driver/video/logo目錄下;
2》修改linux_kernel目錄下的如下文件:
在include/linux/linux_logo.h添加
extern const struct linux_logo my_linux_logo_224;
在drivers/video/logo.c添加
:
#ifdef CONFIG_LOGO_MY
/*MY LINUX LOGO*/
logo = &my_linux_logo_224;
#endif
3、修改Makefile:
添加obj-$(CONFIG_LOGO_MY) +=?my_linux_logo_224.o 4、修改Kconfig:
config LOGO_MY
bool "224-color my Linux logo"
default y
5、修改內(nèi)核配置
Device Drivers-->
Graphics Support-->
Bootop logo-->
224-color my Linux logo
并取消[*]?Standard 224-color Linux logo選項(xiàng)。
重新編譯并燒錄到開發(fā)板中,重啟即可顯示。
三、調(diào)試過程中的問題與技巧
我在調(diào)試過程中一直出現(xiàn)黑屏現(xiàn)象,主要是我的圖片像素不正確,可以先找一個像素較小的圖片來測試下圖片是否成功,在制作與屏幕相對應(yīng)像素的圖片。
想對現(xiàn)實(shí)的圖片進(jìn)行居中顯示、拉伸顯示請修改driver/video/fbmem.c中的fb_show_logo_line函數(shù)和driver/video/console/fbcon.c中的fbcon_prepare_logo()函數(shù)。下面以居中顯示為例子進(jìn)行講解:
例子:居中顯示
(1)修改源碼/driver/video/fbmem.c中的fb_show_logo_line函數(shù)。
//image.dx=0;
//image.dy=y;
image.width=logo->width;
image.height=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()函數(shù)
在logo_height = fb_prepare_logo(info, ops->rotate);后增加下面一行代碼
+logo_height += (info->var.yres / 2) - (logo_height / 2);
經(jīng)過以上方式重新編譯內(nèi)核啟動就會看到修改的內(nèi)核logo能夠居中全屏顯示了。
以后可能還會繼續(xù)完善,謝謝。
總結(jié)
以上是生活随笔為你收集整理的Linux内核启动去掉企鹅,修改linux内核kernel开机logo(小企鹅)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建专属聊天室练习(客户端与服务端通信|
- 下一篇: html表单作业练习