1 修改u-boot中的LOGO
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了朝陽(yáng)免費(fèi)建站歡迎大家使用!
更換logo
替換u-boot-imx/2015.04-r0/git/tools/logos/目錄下的freescale.bmp,注意這里要替換的圖片一定是256色的位圖,如果是24位色的圖片轉(zhuǎn)換可能會(huì)出錯(cuò),造成圖片顯示不正常。
我們也可以,直接把自己需要顯示的文件不命名為freescale.bmp,那就需要自己修改u-boot-imx/2015.04-r0/git/tools/Makefile文件,將LOGO_BMP=后面的路徑設(shè)置為自己的圖片的名稱(chēng)。
編譯的時(shí)候,bmp_logo會(huì)將我們指定的圖片轉(zhuǎn)換為數(shù)組文件,保存在/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
在函數(shù)static
void *video_logo(void)中修改
splash_get_pos(&video_logo_xpos, &video_logo_ypos);
if(video_logo_xpos==0&&video_logo_ypos==0)//這里是增加的代碼,設(shè)置圖片居中顯示
{
video_logo_xpos= (VIDEO_VISIBLE_COLS - BMP_LOGO_WIDTH)>>1;
video_logo_ypos= (VIDEO_VISIBLE_ROWS - BMP_LOGO_HEIGHT)>>1;
}
3 去掉編譯信息
在函數(shù)static
void *video_logo(void)函數(shù)中注釋掉下面的代碼
sprintf(info, "%s", version_string);
space =(VIDEO_COLS - VIDEO_INFO_X) / VIDEO_FONT_WIDTH;
len = strlen(info);
if (len >space) {
int xx = VIDEO_INFO_X, yy = VIDEO_INFO_Y;
uchar p = (uchar ) info;
while (len) {
if (len > space) {
video_drawchars(xx,yy, p, space);
len -=space;
p =(uchar *) p + space;
if(!y_off) {
xx += VIDEO_FONT_WIDTH;
space--;
}
yy +=VIDEO_FONT_HEIGHT;
y_off++;
} else {
video_drawchars(xx, yy, p, len);
len = 0;
}
}
} else
video_drawstring(VIDEO_INFO_X, VIDEO_INFO_Y, (uchar *) info);
2 修改Linux啟動(dòng)的logo
1 生成logo文件
生成logo文件,我們需要用png圖片來(lái)轉(zhuǎn)換
在terminal中運(yùn)行下面的命令
pngtopnm car.png > car.pnm
#轉(zhuǎn)換png成pnm格式
pnmquant 224
car.pnm > car224.pnm #轉(zhuǎn)換像素?cái)?shù)為224
pnmtoplainpnmcar224.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 執(zhí)行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)函數(shù)中
if (depth >= 8) {
。。。。。。。
}
里面添加
#ifdef CONFIG_LOGO_CAR224
/ Generic car logo /
logo = &logo_car_clut224;
#endif
在/kernel-source/include/linux/linux_logo.h
中添加externconst struct linux_logo logo_car_clut224;
6 去掉根據(jù)CPU的數(shù)目顯示logo,只顯示一個(gè)logo
將/kernel-source/drivers/video/fbmem.c
中函數(shù)intfb_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 設(shè)置logo居中顯示
修改/kernel-source/drivers/video/fbmem.c中的
static voidfb_do_show_logo(struct fb_info info, struct fb_image image,
int rotate, unsigned
int num)函數(shù)
代碼如下:
unsigned int x;
unsigned intxoff,yoff;
//添加的代碼 ,設(shè)置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) {
//添加的代碼,設(shè)置logo居中顯示
image->dx = xoff ;
image->dy = yoff ;
///////////////////////////////
for (x = 0;
x < num && image->dx +image->width <= info->var.xres;
x++) {
info->fbops->fb_imageblit(info,image);
printk(KERN_ALERT"end\n" );
image->dx += image->width + 8;
}
}
修改函數(shù)int fb_prepare_logo(struct fb_info *info, int rotate)
在函數(shù)的結(jié)尾
returnfb_prepare_extra_logos(info, fb_logo.logo->height, yres);
改為
returnfb_prepare_extra_logos(info, fb_logo.logo->height, yres)+((info->var.yres)>>1);
重新編譯就大功告成。
當(dāng)前題目:SAIL-IMX6q使用指南--修改開(kāi)機(jī)LOGO
鏈接地址:http://aaarwkj.com/article46/isjieg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、品牌網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)