有两种方法可以改变开机logo,编译进内核或者修改u-boot。
《一》、编译进内核
一、 制作LOGO图片(可以使用gimp)
1. 制作一个.ppm格式图片(logo_tvu_clut.ppm)
2. ppmquant 224 logo_tvu_clut.ppm > logo_tvu_clut224.ppm
3. pnmnoraw logo_tvu_224.ppm > logo_tvu_clut224_ascii.ppm
4. cp logo_tvu_clut224_ascii.ppm logo_tvu_clut224.ppm
5. mv logo_tvu_clut224.ppm ~/ingenic/.../kernel/drivers/video/logo/
 
二 、修改相关文件
一、修改kernel目录下的如下文件:
1、 在include/linux/linux_logo.h添加
extern const struct linux_logo logo_tvu_clut224;
2、在drivers/video/logo.c添加: 
#ifdef CONFIG_LOGO_TVU_CLUT224
/* Tvu Linux logo */
logo = &logo_tvu_clut224;
#endif
3、修改Makefile:
添加 obj-$(CONFIG_LOGO_TVU_CLUT224) += logo_tvu_clut224.o
4、修改Kconfig:
添加:config LOGO_TVU_CLUT224
bool "Tvu 224-color logo"
default y
二、修改 u-boot 目录下的如下文件:
1.修改include/configs/halley2.h文件
/* #define CONFIG_LCD_LOGO */ 注释掉此行,否则如果u-boot中也存在开机logo的话,会先在LCD上显示u-boot LOGO,再显示framebuffer上的LOGO。
三、配置内核
1.Device Drivers
-->Graphics support
-> Support for frame buffer devices
2.Device Drivers
-->Graphics support
--><*>Backlight & LCD device support
--> Lowlevel LCD controls
SLCD TRULY TFT240240-2-E with control IC st7789s (240x240)
SLCDC USE TE SIGNAL
SLCDC CONTINUA TRANFER
Lowlevel Backlight controls
Generic PWM based Backlight Driver V13
 
 
3.Device Drivers
-->Graphics support
--><*>JZ LCDC framebuffer V1.3
-->set lcd gpio (lcd v13 8bit slcd)
---> lcd v13 8bit slcd
 
 
4.Device Drivers
-->Graphics support
----->Console display driver support
--------> < * > Framebuffer Console support
[ * ] Map the console to the primary display device
 
5.Device Drivers
-->Graphics support
---> [ * ] Bootup logo --->
----> [ * ] Tvu 224-color logo (选取哪一个取决于../kernel/drivers/video/logo/Kconfig)
eg.
config LOGO_TVU_CLUT224
bool "Tvu 224-color logo"
default y
 
 
四、编译内核及u-boot
注意:编译之前要先初始化编译环境
source build/envsetup.sh
lunch halley2_norflash-user
1、编译内核:
进入kernel目录下,执行make uImage, 会在arch/mips/boot/下生成uImage.
2、编译u-boot:
进入u-boot目录下,先执行make distclean, 再执行make halley2_v10_uImage_sfc_nor, 会在u-boot目录下生成u-boot-with-spl.bin。
将uImage 和 u-boot-with-spl.bin 烧录进X1000E核心板,开机即可显示你所设计的logo。
 
五、开机黑屏没有显示logo
如果出现黑屏现象,可能是由于图片像素不正确,可以先找一个像素较小的图片来测试一下是否成功,再制作与屏幕相对应的图片。
想实现logo的居中显示、拉伸显示修改、kernel/drivers/video/fbmem.c文件中的fb_show_logo_line函数(大概位于第500行左右)和kernel/drivers/console/fbcon.c文件中的fbcon_prepare_logo函数(大概位于第596行左右)。
居中显示:
(1)修改源码/driver/video/fbmem.c中的fb_show_logo_line函数。
//image.dx=0;  
//image.dy=y;  
image.width=logo->width;  
image.height=logo->height;  
下增加:
image.dx = (info->var.xres / 2) - (image.width / 2);  
image.dy = (info->var.yres / 2) - (image.height / 2);
全屏显示:
(2)修改源码/driver/video/console/fbcon.c中的fbcon_prepare_logo()函数
在logo_height = fb_prepare_logo(info, ops->rotate);后增加下面一行代码
logo_height += (info->var.yres / 2) - (logo_height / 2);  
经过以上方式重新编译内核,把uImage烧录进X1000E核心板,开机即可居中全屏显示logo。
 
六、Linux下LCD 10分钟自动熄屏的问题
Linux下的LCD驱动默认10分钟后会自动关闭屏幕,我们可以修改一下代码让其不自动关屏。
方法1:修改kernel/drivers/tty/vt/vt.c 文件中的变量blankinterval,设置为0;
方法2:修改kernel/drivers/tty/vt/vt.c 文件中的函数(blank_screen_t),在函数开头直接return;
 
七、去除开机LOGO中的光标
打开fbcon.c文件(kernel/drivers/video/console/fbcon.c)
方法一:
1.将static void fb_flashcursor(struct work_struct *work)制成空函数
static void fb_flashcursor(struct work_struct *work)
{
#if 0
...
...
#endif
}
2.同样的方法将函数static void fbcon_cursor(struct vc_data *vc, int mode)制成空函数。
方法二:
打开Makefile文件(kernel/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没有定义的问题问题,注释代码:
/kernel/drivers/video/console/bitblit.c
//ABING
//      if (err)
//              soft_cursor(info, &cursor);
 
 
《二》、U-boot logo
一、制作logo图片,并命名为tvu_logo.bmp,把tvu_logo.bmp拷贝到u-boot/tools/logos/目录下
二、修改u-boot/tools/Makefile文件,大约在第158行
158 LOGO_BMP ?= logos/ingenic.bmp
改为 LOGO_BMP ?= logos/tvu_logo.bmp
三、在u-boot目录下,先执行make distclean, 再执行make halley2_v10_uImage_sfc_nor,会在u-boot目录下生成u-boot-with-spl.bin。
将u-boot-with-spl.bin 烧录进X1000E核心板,开机即可显示你所设计的logo。
注意:
此种方法具有局限性,不适合显示较大的logo图片,如果图片较大,u-boot-with-spl.bin大小大于烧录器所分配的空间大小,不能进行烧录(经验证15K左右的.bmp图片可以)。此种方法制作开机logo可能会出现u-boot使用过程中宕机重启的后果!
 

君正Ingenic X1000E_halley2 更改Logo的更多相关文章

  1. MIPS开发板的“不二”选择——Creator Ci20单板计算机评测(芯片是君正JZ4780 ,也就是MIPS R3000,系统推荐Debian或深度,官网就有,其它语言有FreePascal和Go和Java和Python)

    在MIPS架构的CPU上开发软件,当然需要使用MIPS专用的工具链来编译代码.不过一般的LINUX发行版内都有相应的配套工具链供用户使用.Ci20出厂时的LINUX发行版为DEBIAN 7.5,相应的 ...

  2. 手把手教你君正X2000开发板的OpenHarmony环境搭建

    摘要:本文主要介绍基于君正X2000开发板的OpenHarmony环境搭建以及简单介绍网络配置情况 本文分享自华为云社区<君正X2000开发板的OpenHarmony环境搭建>,作者: 星 ...

  3. 开发Android应用怎么更改LOGO图标

    开发安卓应用怎么更改LOGO图标,我们知道我们开发安卓程序的时候,都需要给他整一个logo,一般开发程序都会自动一个图标,我们怎么给他更换自己想要的logo图标,之前大家看过我们写的怎么安装程序到虚拟 ...

  4. 解密电子书之三:MCU(君正)

    汉王科技,早先使用的是Marvell的Xscal(ARM架构).而后据说出于功耗与价格的考虑,汉王旗下的全线产品,除了双品牌的T61(ALEX)以外,都使用北京君正提供的产品.君正的4740,基于MI ...

  5. 44.Linux君正X1000-添加st7789v显示

    由于板子LCD旧屏是ili9335型号的,旧屏有时候会断货,如果断货则使用一个st7789v型号的LCD 它们两个屏的区别在于初始化屏的参数不同,引脚都一样,也就是说需要使板子同时支持ili9335型 ...

  6. RT-thread v2.1.0修正版

    RT-Thread v2.1.0是v2.0.1正式版这个系列的bug修正版.RT-Thread v2.1.0修正的主要内容包括: 这个版本经历的时间比较长,并且原定的一些目标也还未能完成(更全的POS ...

  7. 北京君正集成电路的Newton平台--穿戴式

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/hellomxj1/article/details/25324125   Newton1开发平台 • 很适合 ...

  8. CSAW2013

    竞赛地址:https://ctf.isis.poly.edu/challenges/ 第一关:Trivia Trivia意思为琐事,每题分值50,比较简单 1.Drink all the booze, ...

  9. 编译器的未来——我们还需要C++么?

    在未来我们还需要纯C++开发模式么? 随着C++11的诞生,C++已经越来越臃肿,从03的时候就觉得C++实在是太复杂了.以一个合格C++程序员的标准来简单的来说3-5年略有小成,5-8年才可以说自己 ...

随机推荐

  1. input获得焦点和失去焦点

    总结:placeholder因为在IE7 8 9 浏览器不支持所以没用它效果:当input获取光标的时候如果是默认提示则input内容为空.如果不是则为输入内容           当失去光标的时候, ...

  2. Android项目实战_手机安全卫士流量统计

    ## 1.抽屉控件SlidingDrawer:一定要配置android:handle(把手)和android:content(内容),并在子View中添加把手和内容的布局```java <Sli ...

  3. java编码终极探秘

    首先要明白,java中string字符串都是unicode码保存的,只不过显示的时候会根据一定的规则,比如GBK或者是UTF-8去对照表中查找进行显示. 之所以会乱码就是因为使用错了编码方式. 数据是 ...

  4. UICollectionView框架总结

    一.UIcollectionView介绍 1.1.简介 首先看苹果官方文档 UICollectionView Class Reference 的介绍: The UICollectionView cla ...

  5. sqlserver 批量更新

    select * from [LPicture] UPDATE [dbo].[LPicture] SET [picGroup] = ' WHERE LPictureid ,); select * fr ...

  6. day06-数字类型、字符串类型内置方法

    目录 数字类型内置方法 字符串类型内置方法 有序 or 无序 可变 or 不可变 数字类型内置方法 1. int()强制类型转化成整型 age_str = '18' # 定义字符串 age = int ...

  7. Please, commit your changes or stash them before you can merge

    参照 : https://blog.csdn.net/iefreer/article/details/7679631 用git pull来更新代码的时候,遇到了下面的问题: error: Your l ...

  8. CAD计算两曲线间最短路径(com接口)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  9. centos7安装个人网盘nextcloud

    本节介绍如何在centos7上建立个人云盘nextcloud服务器 第一:建立用户nextcloud 第二:安装下载工具wget 第三:把nextcloud账号添加到sudoers目录下 第四:切换到 ...

  10. 使用官方组件下载图片,保存到MySQL数据库,保存到MongoDB数据库

    需要学习的地方,使用官方组件下载图片的用法,保存item到MySQL数据库 需要提前创建好MySQL数据库,根据item.py文件中的字段信息创建相应的数据表 1.items.py文件 from sc ...