Linux内核启动去掉企鹅,修改linux内核kernel开机logo(小企鹅)

修改linux内核kernel的开机图片(原为小企鹅图片)。

转载请注明出处:http://blog.csdn.net/wang_zheng_kai

导航制导与控制实验室 2014年12月10日

本文主要是介绍三部分内容:

1》如何制作linux内核所需要的开机图片(ppm格式);

2》修改开机图片的两种方法;

3》调试过程中的问题与技巧;

一、如何制作linux内核所需要的开机图片(ppm格式)

1》在ubuntu系统上安装netpdm,命令如下:

# sudo apt-get install netpdm

2》准备所需要的logo图片,图片的大小请参考开发板所使用的分辨率;

3》将我们准备好的logo(mylogo.png)转换成我们需要的图片格式:

# pngtopnm mylogo.png > my_linux_logo.pnm //将png转换成pnm

# pnmquant 224 my_linux_logo.pnm > my_linux_logo_224.pnm//将pnm图片的颜色数限制在224

# pnmtoplainpnm my_linux_logo_224.pnm > my_linux_logo_224.ppm//将pnm图片转换成最终的ppm

注:我调试的这个过程是基于png格式图片的转换过程,如果是其他格式的请转换成png或者是使用其他的命令进行转换。

二、修改开机图片的两种方法:

1、方法一:替换原有图片

直接替换linux_kernel/driver/video/logo/下的图片***,并确保替换的文件名前后一致。然后确保内核配置如下所示:

Device Drivers-->

Graphics Support-->

Bootop logo-->

[*]   Standard 224-color Linux logo

重新编译并烧录到开发板中,重启即可显示。

2、方法二:添加新的图片

1》将得到的my_linux_logo_224.ppm图片文件直接复制到linux_kernel/driver/video/logo目录下;

2》修改linux_kernel目录下的如下文件:

在include/linux/linux_logo.h添加

extern const struct linux_logo my_linux_logo_224;

在drivers/video/logo.c添加

#ifdef CONFIG_LOGO_MY

/*MY LINUX LOGO*/

logo = &my_linux_logo_224;

#endif

3、修改Makefile:

添加obj-$(CONFIG_LOGO_MY) += my_linux_logo_224.o 4、修改Kconfig:

config LOGO_MY

bool "224-color my Linux logo"

default y

5、修改内核配置

Device Drivers-->

Graphics Support-->

Bootop logo-->

224-color my Linux logo

并取消[*] Standard 224-color Linux logo选项。

重新编译并烧录到开发板中,重启即可显示。

三、调试过程中的问题与技巧

我在调试过程中一直出现黑屏现象,主要是我的图片像素不正确,可以先找一个像素较小的图片来测试下图片是否成功,在制作与屏幕相对应像素的图片。

想对现实的图片进行居中显示、拉伸显示请修改driver/video/fbmem.c中的fb_show_logo_line函数和driver/video/console/fbcon.c中的fbcon_prepare_logo()函数。下面以居中显示为例子进行讲解:

例子:居中显示

(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);

经过以上方式重新编译内核启动就会看到修改的内核logo能够居中全屏显示了。

以后可能还会继续完善,谢谢。

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

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

相关文章

hdu 1233 最小生成树

/***********************************************************************************************************************map 存路径,值为权值; weight保存个点到源起点的权值; pre保存结点的前驱,即与源起点有路的下一个点…

Linux进程间通信(四) - 共享内存

共享内存的优势 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据&…

windows和linux加密u盘,linux挂载windows的各种格式U盘

从windows迁移到linux,像kali还能打开ntfs的格式硬盘,centos连ntfs都打不开,windows和linux两种系统传文件很不方便,所以在网上搜索到一些解决方案,在此记一下。挂载ntfs(安装ntfs-3g):打开ntfs-3g的下载点http://www.…

年底了,还这么忙

作为一个程序员,有时候感到很抓狂!不是因为bug,而是因为活儿多得干不完。理论上,我觉得写程序是一件好快乐好快乐的事情,现实中,写程序有时候变成了一件苦逼被人使唤的事情。 在电脑上安装了ubuntu系统&…

jQuery EasyUI使用教程之基本的拖放

2019独角兽企业重金招聘Python工程师标准>>> <jQuery EasyUI最新版下载> 本教程将为你展示如何使HTML元素可拖动。在这个示例中我们将创建3个DIV元素&#xff0c;然后使它们能够被拖动。 查看演示 首先&#xff0c;我们创建3个div元素&#xff1a; < div i…

manjaro linux 教程,Manjaro 使用基础

一、pacman/yay 的基础命令Manjaro 装好后&#xff0c;需要运行的第一条命令&#xff1a;sudo pacman -Syy ## 强制更新包数据sudo pacman-mirrors --interactive --country China # 列出所有国内的镜像源&#xff0c;并提供交互式的界面手动选择镜像源sudo pacman -Syyu # 强制…

1-3-顺时针旋转矩阵

1 /*2 题目描述&#xff1a;3 有一个NxN整数矩阵&#xff0c;请编写一个算法&#xff0c;将矩阵顺时针旋转90度。4 给定一个NxN的矩阵&#xff0c;和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。5 测试样例&#xff1a;6 [[…

在Linux中head命令,Linux 中 head 命令实例

原标题&#xff1a;Linux 中 head 命令实例head命令将每个文件的前10行打印到标准输出。对于多个文件&#xff0c;在每个文件前面加上一个给出文件名的头。如果没有文件&#xff0c;或者文件为-&#xff0c;则读取标准输入。如何使用head命令使用head显示/etc/passwd前十行内容…

C#中的局部类型

1. 什么是局部类型&#xff1f;C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分&#xff0c;分别实现在几个不同的.cs文件中。局部类型适用于以下情况&#xff1a;(1) 类型特别大&#xff0c;不宜放在一个文件中实现。(2) 一个类型中的一部分代…

【原创】Git删除暂存区或版本库中的文件

0 基础 我们知道Git有三大区&#xff08;工作区、暂存区、版本库&#xff09;以及几个状态&#xff08;untracked、unstaged、uncommited&#xff09;&#xff0c;下面只是简述下Git的大概工作流程&#xff0c;详细的可以参见本博客的其他有关Git的文章【链接】。&#xff08;1…

linux软件依赖库,【Linux】ubuntu系统安装及软件依赖库

系统&#xff1a;安装Ubuntu 16.04.1 LTS 更新到Ubuntu 16.04.3 LTS搜狗中文输入法然后安装搜狗输入法for Linux&#xff0c;直接下载deb包&#xff0c;双击->ubuntu software-center闪退&#xff0c;通过升级系统以及重装center解决:sudo apt-get updatesudo apt-get dist-…

JMS

JMS即Java消息服务&#xff08;Java Message Service&#xff09;应用程序接口是一个Java平台中关于面向消息中间件&#xff08;MOM&#xff09;的API&#xff0c;用于在两个应用程序之间&#xff0c;或分布式系统中发送消息&#xff0c;进行异步通信。Java消息服务是一个与具体…

reStructuredText(.rst)语法规则快速入门

原文&#xff1a;http://blog.useasp.net/archive/2014/09/05/rst-file-restructuredtext-markup-syntax-quikstart.aspx?utm_sourcetuicool 简介 reStructuredText是一种轻量级的文本标记语言&#xff0c;直译为&#xff1a;重构建的文本&#xff0c;是Python中Docutils项目的…

精读linux源码,Linux基础入门的操作精读.doc

摘要&#xff1a;Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想&#xf…

安卓App设计博文

安卓1080P界面设计规范解读 http://www.25xt.com/appdesign/9487.html APP设计尺寸解读&#xff1a;px、pt、ppi、dpi、dp、sp之间的关系 http://www.25xt.com/appdesign/9294.html 安卓界面设计规范 http://www.25xt.com/android转载于:https://www.cnblogs.com/tmlee/p/4894…

Android学习四、Android中的Adapter

一、Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set. 一个Adapter是…

linux select shell,linux之shell编程select和case用法

shell里的select用法&#xff1a;语法&#xff1a;#i/bin/bashselect 变量 in 列表do要执行的语句done举例&#xff1a;#!/bin/bashecho "What is your favourite OS?"select var in "windows" "Linux" "Gnu Hurd" "Free BSD&qu…

elasticsearch 查询(match和term)

elasticsearch 查询&#xff08;match和term&#xff09; es中的查询请求有两种方式&#xff0c;一种是简易版的查询&#xff0c;另外一种是使用JSON完整的请求体&#xff0c;叫做结构化查询&#xff08;DSL&#xff09;。 由于DSL查询更为直观也更为简易&#xff0c;所以大都使…

Andorid获取状态栏高度

在应用开发中&#xff0c;有时我们需要用代码计算布局的高度&#xff0c;可能需要减去状态栏(status bar)的高度。状态栏高度定义在Android系统尺寸资源中status_bar_height,但这并不是公开可直接使用的&#xff0c;例如像通常使用系统资源那样android.R.dimen.status_bar_heig…

linux 域名劫持,域名被劫持处理方案

首先简单说下什么是域名劫持&#xff0c;域名劫持就是在劫持的网络范围内拦截域名解析的请求&#xff0c;分析请求的域名&#xff0c;把审查范围以外的请求放行&#xff0c;否则直接返回假的IP地址或者什么也不做使得请求失去响应&#xff0c;其效果就是对特定的网址不能访问或…