修改linux核心的開機圖片(小企鵝)__linux

來源:互聯網
上載者:User

windows中把一張xx.jpg的圖片轉換成xx.bmp的圖片方法:


linux中產生ppm圖片(ppm圖片應該是其他格式的圖片解析成資料序列的檔案)

【方法1】 轉換方法如下:

bmp圖片使用bmptoppm。jpg,png,gif都有相應的topnm工具,但我沒有試過。

 $bmptoppm pic.bmp > temp1.ppm //產生ppm

 $ppmquant 224 temp1.ppm > temp2.ppm //轉換成224顏色

 $pnmnoraw temp2.ppm > logo.ppm //轉換成ascii格式

logo.ppm就是需要的映像了(如果轉換過程中出錯,那麼試著png圖片格式轉換成ppm圖片格式)


【方法2】轉換方法如下:

隨便一款編輯圖片軟體把當前的圖片儲存成png格式,例如linuxlogo.png。然後在Linux下使用下面的命令:

# pngtopnm linuxlogo.png > linuxlogo.pnm 
# pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm 
# pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

然後用產生的linuxlogo224.ppm替換/usr/src/linux-2.6.8.1/drivers/video/logo/logo_linux_clut224.ppm(最好先做好備份),然後刪除同一目錄下的logo_linux_clut224.c檔案,重新編譯核心,啟動之後就可以在螢幕左上方看到自己的Logo了。



(使用windows下面的gimp軟體, 在百度搜尋欄輸入gimp即可下載到該軟體)

【方法3】轉換方法如下:(強烈建議使用該方法lin)

軟體gimp下載地址:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=gimp%20&rsv_pq=9ee1f00f00028e99&rsv_t=af6azCYDbvbhBkRfO3DMR%2BbTf4uLVxd%2FpIIEHDcID1PyoV%2BhQWiyXqt6OVA&rqlang=cn&rsv_enter=0&rsv_sug3=2&rsv_sug1=3&rsv_sug7=100&inputT=11412&rsv_sug4=11412

1、安裝windows版下的gimp軟體成功後,開啟該軟體

     開啟任何格式的一張將要轉換的圖片

     選擇:映像--->模式--->索引色彩轉換--->最大顏色數量設定為(224)--->轉換

     還可以通過:映像--->縮放映像--->設定想要的映像大小(如320*240)

     最後:檔案--->另存新檔--->選擇ppm格式--->儲存格式為ASCII,便可產生xxx.ppm檔案了

 

2、將轉換好的圖片拷貝到 drivers\video\logo\ 替換 logo_linux_clut224.ppm

     刪除 logo_linux_clut224.c和logo_linux_clut224.o

     重新make zImage


【把產生的ppm檔案放到指定的目錄下】

一、最簡單的方法:把你的圖片替換掉小企鵝圖片重新變異即可。

把製作好的ppm檔案(部落格裡有製作方法)拷貝到kernel源碼的driver/video/logo中,把舊的logo_linux_clut224.ppm刪除或者重新命名,把剛製作好的ppm圖片重新命名為logo_linux_clut224.ppm,然後放入driver/video/logo中,刪除之前由logo_linux_clut224.ppm檔案產生的logo_linux_clut224.c以及logo_linux_clut224.o檔案。然後make clean;make uImage





【調試過程中遇到的問題】

1.如果轉換的ppm格式不對,編譯核心時會直接報錯;

2.轉換的ppm格式對了(編譯核心通過沒報錯),啟動核心一直報錯(也就是沒進入到顯示開機logo介面),說明製作成的ppm的圖片大小>LCD螢幕的尺寸了,需要調整製作的ppm檔案的大小了;先調整為80*80,機子啟動能顯示logo後,慢慢往上調大ppm圖片大小

3.如果你的機子是4核的(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/2) - (610/2);

image.dy = (info->var.yres/2) - (206/2);

註:

info->var.xres和info->var.yres是解析度大小

610和206是logo圖片的大小

或者如下修改

#ifdef CONFIG_LOGO_LOWERPOWER_WARNING

if(1 == get_battery_status()){
image.dx = (info->var.xres/2)-(logo->width)/2;
image.dy = (info->var.yres/2)-(logo->height)/2;
}else{
image.dx = 0;
image.dy = y;
}
#else
//image.dx = 0;
//image.dy = y;
image.dx = (info->var.xres/2)-(logo->width)/2;
       image.dy = (info->var.yres/2)-(logo->height)/2;

#endif
那麼就只顯示一張圖片了,如果此時的圖片是不全屏的,並且是該圖片與LCD螢幕的方向成90度,可以進行以下的調整:

i:先在製作ppm圖片時把方向調整為和LCD螢幕一致的方向;

ii:如何在製作ppm圖片時通過圖片->縮放功能,把ppm圖片製作成和LCD螢幕尺寸一致大小即可




--------------------------分割線---------------------------------

上面的所有方法主要總結為:

在LINUX中使用命令把像素為800*480格式為xx.bmp或者 xx.png的圖片變成xx.ppm格式的圖片;(一般使用可牛軟體把一張xx.jpg的圖片裁剪成為像素為800*480格式為xx.bmp或者xx.png的圖片)


或者在PC的XP作業系統中下載GIMP軟體,把xx.jpg圖片變成xx.ppm格式的圖片(這種方法很麻煩,建議少用,除非上面再Linux中用命令產生的ppm檔案都不能用)


最後修改xx.ppm格式的圖片名字為logo_linux_clut224.ppm

然後用該檔案替換舊的/usr/src/linux-2.6.8.1/drivers/video/logo/logo_linux_clut224.ppm(最好先做好備份)

然後刪除同一目錄下的logo_linux_clut224.c檔案和logo_linux_clut224.o檔案

最後make clean 

make uImage



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.