基於SAIL IMX6Q教你如何修改開機LOGO

2021-09-29 04:26:05 字數 3545 閱讀 3152

作為乙個程式猿,大家有時候想要修改開機logo卻找不到更加便捷的方法,接著我給大家推薦乙個修改開機logo的方法。

使用imx6q 修改開機logo指南

1 修改u-boot中的logo

1 更換logo

替換
u-boot-imx/2015.04-r0/git/tools/logos/目錄下的freescale.bmp,注意這裡要替換的一定是256色的點陣圖,如果是24位色的轉換可能會出錯,造成顯示不正常。

我們也可以,直接把自己需要顯示的檔案不命名為freescale.bmp,那就需要自己修改u-boot-imx/2015.04-r0/git/tools/makefile檔案,將logo_bmp=後面的路徑設定為自己的的名稱。

編譯的時候,bmp_logo會將我們指定的轉換為陣列檔案,儲存在/u-boot-imx/2015.04-r0/git/mx6qsabresd_config/include/目錄下的bmp_logo.h、bmp_logo_data.h中

2 將居中顯示

修改
u-boot-imx/2015.04-r0/git/drivers/video/cfb_console.c

在函式static
void *video_logo(void)中修改

splash_get_pos(&video_logo_xpos, &video_logo_ypos);

if(video_logo_xpos0&&video_logo_ypos0)//這裡是增加的**,設定居中顯示

3 去掉編譯資訊

在函式static

void *video_logo(void)函式中注釋掉下面的**

sprintf(info, "

%s", version_string);

space =

(video_cols - video_info_x) / video_font_wid len = strlen(info);

if (len >

space)

yy +=

video_font_height;

y_off++;

} else

} } else

video_drawstring(video_info_x, video_info_y, (uchar *) info);2 修改linux啟動的logo

1 生成logo檔案

生成logo檔案,我們需要用png來轉換

在terminal中執行下面的命令

pngtopnm car.png > car.pnm

#轉換png成pnm格式

pnmquant 224

car.pnm > car224.pnm #轉換畫素數為224

pnmtoplainpnm
car224.pnm > logo_car_clut224.ppm

2 將logo_car_clut224.ppm拷貝到/kernel-source/drivers/video/logo/目錄下

3 在/kernel-source/drivers/video/logo/kconfig下增加

config logo_car224

bool

「standard car logo」

default y

在/kernel-source/drivers/video/logo/makefile下增加

obj-$(config_logo_car224)
+= logo_car_clut224.o

4 執行bitbake

-c menuconfig -v linux-imx

在menuconfig中選擇standard car logo

5 在/kernel-source/drivers/video/logo/logo.c中的

const struct linux_logo *
__init_refok fb_find_logo(int depth)函式中

if (depth >= 8)

裡面新增

#ifdef config_logo_car224

/* generic car logo */

logo = &logo_car_clut224;

#endif在/kernel-source/include/linux/linux_logo.h

中新增extern

const struct linux_logo logo_car_clut224;

6 去掉根據cpu的數目顯示logo,只顯示乙個logo

將/kernel-source/drivers/video/fbmem.c

中函式int

fb_show_logo(struct fb_info *info, int rotate)

將y = fb_show_logo_line(info,

rotate, fb_logo.logo, 0,

num_online_cpus());

改為y =

fb_show_logo_line(info, rotate, fb_logo.logo, 0,

/num_online_cpus()/1);

7 設定logo居中顯示

修改/kernel-source/drivers/video/fbmem.c中的

static void

fb_do_show_logo(struct fb_info *info, struct fb_image *image,

int rotate, unsigned

int num)函式

**如下:

unsigned int x;

unsigned int

xoff,yoff;

//新增的** ,設定logo居中顯示

xoff =

(info->var.xres - num * (fb_logo.logo->width ))>>1;

yoff =

(info->var.yres - (fb_logo.logo->height ))>>1;

if (rotate ==

fb_rotate_ur)

}

修改函式int fb_prepare_logo(struct fb_info *info, int rotate)

在函式的結尾

return

fb_prepare_extra_logos(info, fb_logo.logo->height, yres);

改為return

fb_prepare_extra_logos(info, fb_logo.logo->height, yres)+((info->var.yres

)>>1);

這樣之後,   重新編譯就大功告成啦。

基於SAIL IMX6Qlinux配置靜態iP

之前的一些配置靜態ip的方法太過麻煩,大家已經不勝其煩了應該,我們可以嘗試用imx6 linux來配置靜態ip。接下來看一下修改方法吧。修改root etc network inte ces檔案,修改內容如下 auto eth0 iface eth0 inet static address 192....

基於IMX6UL新增 HDMI

基於imx6ul 新增hdmi 1 實現hw6ul lite 開發板上的擴充套件 hdmi 介面功能及 bsp 2 能夠將 freescale yoctolinux 的gui 通過hdmi 介面顯示輸出 準備工作 1 vpn 連線2 ubuntu14.04 作業系統 其它 linux 發行版也可以 ...

6 基於 AspectJ和Schema的AOP

1.jdk5.0註解的基本知識 註解的定義 使用 訪問 2.使用 aspectj 2.1 使用前準備 jdk5.0以上版本 將spring的asm模組引入進來 將aspcectj註解類庫及相應解析類庫引入 2.2 通過 或者spring配置使用 aspectj切面 書p227 3.aspectj語法...