有两种方法可以改变开机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. Linux+Apache+PHP+MySQL服务器环境配置(CentOS篇)

    1.配置php.ini vi /etc/php.ini 2.配置apache 先给需要配置的文件做个备份 cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/h ...

  2. 阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法

    最近网站CPU经常爆满,到阿里云提交了工单,工程师给我的处理意见:   您好,虚拟主机CPU占用比较高通常这种情况有两种可能:   一是网站应用程序代码逻辑较复杂,或业务架构效率比较低,在请求了某个网 ...

  3. Android项目实战_手机安全卫士手机防盗界面

    #安全卫士手机防盗# ###1.Activity的任务栈 1.类似一个木桶,每层只能放一个木块,我们放入木块和取出木块的时候只能从最上面开始操作 ###2.Android中的坐标系![](http:/ ...

  4. 【译】x86程序员手册00 - 翻译起因

    从上一次学习MIT的操作系统课程又过去了一年.上次学习并没有坚持下去.想来虽有种种原因,其还在自身无法坚持罢了.故此次再鼓起勇气重新学习,发现课程都已由2014改版为2016了.但大部分内容并没有改变 ...

  5. 关于Python中的classmethod

    Python 中的 classmethod classmethod: 作用是直接将自己的类对象,传给类方法. 一.classmethod 1)不用classmethod的时候 你的代码可能是这样写的, ...

  6. DECLARE_MESSAGE_MAP( )

    DECLARE_MESSAGE_MAP( ) 说明: 你的程序中的每一个CCmdTarget的派生类都可以提供一个消息映射以处理消息.在你的类声明的末尾使用DECLARE_MESSAGE_MAP宏.然 ...

  7. HDU 2451 Simple Addition Expression(找规律,考验智商)

    题目 最近比赛的题目好多签到题都是找规律的考验智商的题目啊,,,我怎么越来越笨了,,,, 通过列举,可以发现规律: 从左往右按位扫这个数: 当数的长度大于1时: 当首位大于3时,答案就是4*4*4*… ...

  8. JeePlus 工作流版本 sping mvc oa crm erp java html5 源码

    https://shop108220642.taobao.com/search.htm?spm=2013.1.w5002-5297459241.1.mnhAZ5&search=y http:/ ...

  9. 【css】最近使用的两种图标字体库

    ## 0. 前言 比较基础的图标加载:<img src="x.png">和块元素的背景background: url(./x.png). 页面多图标时,使用雪碧图(多个 ...

  10. uva 202(Repeating Decimals UVA - 202)

    题目大意 计算循环小数的位数,并且按照格式输出 怎么做 一句话攻略算法核心在于a=a%b*10,用第一个数组记录被除数然后用第二个数组来记录a/b的位数.然后用第三个数组记录每一个被除数出现的位置好去 ...