修改linux核心的啟動logo和禁用啟動游標(原創)
餘超 yuchao86@gmail.com
linux核心下使用的圖片檔案類型是pnm和PPm格式的,所以在開始介紹修改linux核心啟動LOGO之前,
1,先需要介紹一下怎麼樣設計自己開始logo的ppm圖片,首先選擇一張png格式的圖片
使用如下命令確保你必須安裝以下的工具(pngtopnm,pnmquant,pnmtoplainpnm)
如果沒有安裝,你可以使用sudo get-apt install netpbm命令來安裝,
另外你也可以使用Linux LOGO製作工具LogoMaker,可以通過如下網站下載
http://www.arm9.com.cn/downloads.htm,這個網站很多的資源,
強烈推薦。
$ pngtopnm linuxlogo.png > linuxlogo.pnm
$ pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
$ pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm
或者
$bmptoppm linuxlog.bmp > temp1.ppm //產生ppm
$ppmquant 224 temp1.ppm > temp2.ppm //轉換成224顏色
$pnmnoraw temp2.ppm > linuxlog.ppm //轉換成ascii格式
這樣你的logo就完全製作好了,接下來我們來看如何配置核心
修改目標:用自訂的ppm圖片替代/drivers/video/logo/logo_linux_clut224.ppm
同時刪除logo_linux_clut224.c logo_linux_clut224.o檔案這樣才能使編譯的使用logo_linux_clut224.ppm重新編譯
2、配置logo選項
在核心路徑下執行make menuconfig
Device Drivers --->Character devices ---》Bootup logo
做好以上兩個步驟,你就可以重新編譯核心,
這樣你可以看到你自己製作的logo,你可以發現在logo的左上方有一個閃動的游標
3、如何將開機logo中的游標去除
在核心的目前的目錄進入到drivers/video/console/fbcon.c檔案
將static void fb_flashcursor(void *private)製成空函數如下
同樣的方法將函數static void fbcon_cursor(struct vc_data *vc, int mode)用空函數替換如下
1304 static void fbcon_cursor(struct vc_data *vc, int mode)
1305 {
1306 #if 0 //modify by yejj for clear cursor of lcdc
1307 struct fb_info *info
4.另一種禁止游標的方法:
drivers/video/console/Makefile
#obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o
obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o
編譯遇到一個soft_cursor沒有定義的問題問題,注釋代碼:
drivers/video/console/bitblit.c
//ABING
// if (err)
// soft_cursor(info, &cursor);
最後,修改好後都要進行make
make 出自己需要的包,如果是開發板,則有所不同,
根據需要進行編譯,
到此,大功告成!!
嗚嗚。。。。一晚上的功夫。。。