本帖最后由 翠花儿 于 2021-8-17 14:03 编辑
本章节介绍的是在uboot下logo显示和修改步骤。本章节使用的资料已经放到了开发板网盘资料中,路径为“11_Linux系统开发进阶\72_章节_Uboot-Logo修改文档使用资料”。 1 Uboot修改首先我们在home目录下新建一个文件夹imx6ull,然后打开i.MX6ULL终结者光盘资料\05_uboot linux源码,在window下解压下图箭头所指的压缩包,解压后分别得到linux-imx-rel_imx_4.1.15_2.1.0_ga_20200323.tar.gz和uboot-imx-rel_imx_4.1.15_2.1.0_ga_20200323.tar.gz 最后把俩压缩包通过SSH拷贝到imx6ull文件夹里。 使用命令“tar -xvf uboot-imx-rel_imx_4.1.15_2.1.0_ga_20200323.tar.gz ”解压uboot。 要修改uboot配置的屏幕信息,使用命令“vi ./board/freescale/mx6ul_topeet/mx6ul_topeet.c”。如下图所示。 打开文件后,查找“qn_output”。将最后一个的值修改为“qn_enable”,如下图所示。 查找“displays”。 将对应配置修改为使用的屏幕配置。 //7.0塑胶屏 { .bus = MX6UL_LCDIF1_BASE_ADDR, .addr = 0, .pixfmt = 24, .detect = NULL, .enable = do_enable_parallel_lcd, .mode = { .name = "7.0", .xres = 800, .yres = 1280, .pixclock = 13518, .left_margin = 20, .right_margin = 20, .upper_margin = 4, .lower_margin = 4, .hsync_len = 10, .vsync_len = 4, .sync = 0, .vmode = FB_VMODE_NONINTERLACED } }, //10.1寸铁壳屏 { .bus = MX6UL_LCDIF1_BASE_ADDR, .addr = 0, .pixfmt = 24, .detect = NULL, .enable = do_enable_parallel_lcd, .mode = { .name = "10.1", .xres = 1024, .yres = 600, .pixclock = 15385, .left_margin = 220, .right_margin = 40, .upper_margin = 21, .lower_margin = 7, .hsync_len = 60, .vsync_len = 10, .sync = 0, .vmode = FB_VMODE_NONINTERLACED, //.flag = FB_MODE_IS_DETAILED } }, //7.0寸铁壳屏 { .bus = MX6UL_LCDIF1_BASE_ADDR, .addr = 0, .pixfmt = 24, .detect = NULL, .enable = do_enable_parallel_lcd, .mode = { .name = "1024x600", .xres = 1024, .yres = 600, .pixclock = 17531, .left_margin = 120, .right_margin = 130, .upper_margin = 15, .lower_margin = 17, .hsync_len = 70, .vsync_len = 3, .sync = 0, .vmode = FB_VMODE_NONINTERLACED } }, //5寸屏 { .bus = MX6UL_LCDIF1_BASE_ADDR, .addr = 0, .pixfmt = 24, .detect = NULL, .enable = do_enable_parallel_lcd, .mode = { .name = "5.0", .xres = 800, .yres = 480, .pixclock = 17531, .left_margin = 120, .right_margin = 130, .upper_margin = 15, .lower_margin = 17, .hsync_len = 70, .vsync_len = 3, .sync = 0, .vmode = FB_VMODE_NONINTERLACED } }, //4.3寸屏 { .bus = MX6UL_LCDIF1_BASE_ADDR, .addr = 0, .pixfmt = 24, .detect = NULL, .enable = do_enable_parallel_lcd, .mode = { .name = "4.3", .xres = 480, .yres = 272, .pixclock = 128570,//62170, .left_margin = 89, .right_margin = 164, .upper_margin = 23, .lower_margin = 10, .hsync_len = 10, .vsync_len = 10, .sync = 0, .vmode = FB_VMODE_NONITERLACED } }, //9.7寸屏 { .bus = MX6UL_LCDIF1_BASE_ADDR, .addr = 0, .pixfmt = 24, .detect = NULL, .enable = do_enable_parallel_lcd, .mode = { .name = "9.7",//Hannstar-XGA .xres = 1024, .yres = 768, .pixclock = 15385, .left_margin = 220, .right_margin = 40, .upper_margin = 21, .lower_margin = 7, .hsync_len = 60, .vsync_len = 10, .sync = FB_SYNC_EXT, .vmode = FB_VMODE_NONINTERLACED } }, |
笔者测试9.7寸屏幕,所以修改为9.7的配置。如下图所示。 保存退出。 使用命令“vi ./drivers/video/cfb_console.c”,如下图 跳转至1986行。将 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); |
这部分注释掉。如下图。 logo图片要求Bmp格式,8位色深。 这里作者提供了一种修改位深度为 8 位的方法: 1. 在百度上下载 ps 软件。 2. 在 ps 中打开软件,点击图像——模式——索引,设置为下图所示。 3.点击文件——储存为.BMP 格式,设置为下图所示,点击保存。 将准备好的“.bmp”格式的图片拷贝到uboot的“/tools/logos”目录下,作者拷贝的文件为“xunwei.bmp”。 将图片名称修改为“freescale.bmp”。 保存退出。编译uboot,生成u-boot.imx。编译uboot请参考i.MX6ULL 终结者-开发板使用手册28.2章节 2 Uboot测试重新烧写镜像,参考i.MX6ULL 终结者-开发板使用手册第六章I.MX6ULL镜像烧写,启动即可看到logo显示。
|