修改Linux内核的启动Logo和禁用启动光标

Linux内核下使用的图片文件类型是pnm和PPm格式的,所以在开始介绍修改linux内核启动LOGO之前,

1,先需要介绍一下怎么样设计自己开始logo的ppm图片,首先选择一张png格式的图片
使用如下命令确保你必须安装以下的工具(pngtopnm,pnmquant,pnmtoplainpnm)
如果没有安装,你可以使用sudo get-apt install netpbm命令来安装,另外你也可以使用Linux LOGO制作工具LogoMaker,可以通过如下链接下载 http://www.linuxidc.com/Linux/2012-10/71830.htm 强烈推荐。

$ pngtopnm linuxlogo.png > linuxlogo.pnm 
$ pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm 
$ pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

或者

$bmptoppm linuxlog.bmp > temp1.ppm //生成ppm
$ppmquant 224 temp1.ppm > temp2.ppm  //转换成224颜色
$pnmnoraw temp2.ppm > linuxlog.ppm  //转换成ascii格式

这样你的logo就完全制作好了,接下来我们来看如何配置内核

修改目标:用自定义的ppm图片替代/drivers/video/logo/logo_linux_clut224.ppm
同时删除logo_linux_clut224.c logo_linux_clut224.o文件这样才能使编译的使用logo_linux_clut224.ppm重新编译

2、配置logo选项
 在内核路径下执行make menuconfig
Device Drivers --->Character devices ---》Bootup logo
做好以上两个步骤,你就可以重新编译内核,
这样你可以看到你自己制作的logo,你可以发现在logo的左上角有一个闪动的光标

3、如何将开机logo中的光标去除
 在内核的当前目录进入到drivers/video/console/fbcon.c文件
 将static void fb_flashcursor(void *private)制成空函数如下

同样的方法将函数static void fbcon_cursor(struct vc_data *vc, int mode)用空函数替换如下

  1304 static void fbcon_cursor(struct vc_data *vc, int mode)
  1305 { 
  1306 #if 0 //modify by yejj for clear cursor of lcdc
  1307 struct fb_info *info

4.另一种禁止光标的方法:

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没有定义的问题问题,注释代码:
drivers/video/console/bitblit.c
//ABING
//      if (err)
//              soft_cursor(info, &cursor);

最后,修改好后都要进行make
make 出自己需要的包,如果是开发板,则有所不同,根据需要进行编译,到此,大功告成!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 判断浏览器类型

var Sys {}; var ua navigator.userAgent.toLowerCase(); var s; (s ua.match(/msie ([\d.])/)) ? Sys.ie s[1] : (s ua.match(/firefox\/([\d.])/)) ? Sys.firefox s[1] : (s ua.match(/chrome\/([\d.])/)) ? Sys.chrome s[1] : (s ua.match(/opera.(…

python time perf_Python Time 的学习笔记

PyNotes-timePyNotes(2)关于time的简单介绍参考资料概述time模块 时间戳的获取、时间格式的转换和程序运行时间的计算。方法时间的获取time.time()以floa浮点数获取当前时间戳,即计算机内部时间值,epoch 是1970年1月1日00:00:00(UTC)>>> time.t…

Linux logo和屏幕光标

logo和屏幕光标 Linux默认开机LOGO一般都是80x80的小企鹅图标,有时候为了一些效果,希望在Linux 启动过程中,全屏看到用户自定义的LOGO,这就需要为Linux增加新的LOGO。 准备png图片 使用任何图片软件,制作一张自定义…

arcgis选出点规定范围的面

示例数据如下 对点数据进行缓冲区建立 打开缓冲区工具箱 主要设置输入数据和距离(缓冲范围) 缓冲结果如下 接下来进行空间连接 输入目标要素(选出的面)和连接要素(缓冲的结果) 打开空间连接的属性表 选中我…

函数实现-aoti-atol

1. 函数原型 int atoi ( const char * str ); long int atol ( const char * str ); 2. 函数工作 atoi是将字符串转化为整型,atol是将字符串转化为长整型,这两个函数的实现十分相似。工作步骤基本如下: 跳过若干空格、制表符等 如果有…

python2卸载后yum不可用_centos7误删除python2导致的python和yum不可用处理-阿里云开发者社区...

centos7查看版本cat /etc/redhat-release // 我这边是 CentOS Linux release 7.6.1810 (Core)强制删除已安装程序及其关联rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps删除所有残余文件 ##xargs,允许你对输出执行其他某些命令whereis python |xargs rm -frv验证删…

arcgis批量按掩膜提取栅格

新建工具箱 迭代要素类 插入栅格

SIP协议学习1

SIP协议是由IETF提出的在IP网络上进行多媒体通信的应用层控制协议。采用分层的方法来创建服务,是应用层上的一个控制协议,用来创建,修改和终止有多个参与者的多媒体会话进程。参与会话的成员可以通过组播,单播或者两者结合的方式进…

一些关于罗马字符的知识

I 1 V 5 X 10 L 50 C 100 D 500 M 1000 下面是关于构造罗马数字的一些通用的规则的介绍: 字符是叠加的。I 表示 1,II 表示 2,而 III 表示 3。VI 表示 6 (字面上为逐字符相加,“5 加 1”),VII 表示 7&#xff0c…

python 分词 识别_python分词如何实现新词识别

2013-12-19 回答# -*- coding: utf-8 -*-import jiebacreated on 2015-11-23def word_split(text):"""split a text in words. returns a list of tuple that contains(word, location) location is the starting byte position of the word."""…

Oracle数据库游标操作

1、含有参数的游标 declare cursor cur_my (mv number) is select * from Person where no<mv;begin for tem in cur_my(4) loop DBMS_OUTPUT.put_line(name:||tem.name); end loop;end; 2、设置引用游标declare temp_row Person%rowtype; type my_type is ref curs…

SIP协议学习2-pjsip

一、 在windows下利用vc6.0编译pjsip源码 首先阅读文档readme.txt&#xff0c;查找在win32平台源码的编译方法。自己总结方法如下&#xff1a; a.设置pjsua为当前活动工程 b.因为编译的时候提醒缺少config_site.h文件&#xff0c;所以在pjlib/include/pj/下新建一个空的c…

python库快速安装_python的pip快速安装代码

pip install xx,经常由于网速&#xff0c;或者安装版本问题导致安装速度慢超时等问题&#xff0c;现提供一个py镜像安装代码&#xff0c;安装库文件前执行下这个程序&#xff0c;可以很快下载cmd 进入命令提示符python .py文件位置pip install xx 安装库的名称import osini&quo…

基于C#的AE+IDL二次桌面端程序开发

目录 一、内容 1.2 实训内容 1.2.1 IDL综合开发 1.2.2 基于AO/AE的GIS二次开发 1.2.3 COM_IDL_connect组件开发 三、 实训软硬件环境 四、实训内容及成果 4.1 平台总体描述 4.1.1 系统简介 4.1.2 系统功能 4.2 基础模块 4.2.1…

PJSIP学习笔记——从simple_pjsua.c示例程序了解PJSUA-LIB的基本使用流程

要了解pjsip的使用&#xff0c;simple_pjsua.c是一个很好的例子&#xff0c;虽然代码只有短短的172行&#xff0c;却展示了pjsua-lib层的完整使用流程、注册流程和基本呼叫流程。 下面是学习过程中整理的simple_pjsua.c中的main函数主要流程&#xff1a; 先来看看pjsip-apps/s…

arcgis字段计算器--随机数

代码 def a():number arcgis.rand(Integer 0 25)return number 结果

tomcat webapps目录文件都能删吗_详细测试实现Tomcat根域名访问的场景,看这篇文章就够了...

写在前面的话首先吐槽一下&#xff0c;我发现国内的博客大多是垃圾&#xff0c;完全没有人测试代码&#xff0c;就在那瞎扯淡&#xff0c;如果你看到别的地方说的跟我的文章说的不一样&#xff0c;请以我这篇为准&#xff0c;因为我每个场景都经过N次测试&#xff0c;确保没有问…

C语言STATIC用法

C语言STATIC用法转自:http://blog.csdn.net/vagrantisme/article/details/4083722   1. static 变量  静态变量的类型 说明符是static。 静态变量当然是属于静态存储方式&#xff0c;但是属于静态存储方式的量不一定就是静态变量。 例如外部变量虽属于静态 存储方式&#x…

SIP初步

1、什么是SIP SIP&#xff08;会话发起协议&#xff09;属于IP应用层协议&#xff0c;用于在IP网上为用户提供会话应用。会话&#xff08;Session&#xff09;指两方或多方用户之间的语音、视频、及其他媒体形式的通信&#xff0c;具体可能是IP电话、会议、即时消息等等。 SIP…