armlinux启动logo制作

Linux开机logo设置 Linux开机logo 阅读详情

armlinux启动logo制作

优龙ST2410开发板-启动图标制做

1.方案分析

ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bootlogo。

首先分析一下Logo的显示代码:

不难发现Logo显示是在加载显示驱动fb后由kernel/drivers/video/fbcon.c中的fbcon_show_logo函数来完成的。

fbcon_show_logo函数中有很多兼容性代码,不是都会用到的!我们用的是SHARP(夏普)的TFT真彩屏.

再仔细看一下,这里用到的显示数据均来自kernel/include/linux/linux_logo.h。这里同样也有一些兼容性的数据,其中对我们有用的是:

linux_logo_red[] —— 调色板中的红色分量

linux_logo_green[] —— 调色板中的绿色分量

linux_logo_blue[] —— 调色板中的蓝色分量

linux_logo[] —— Logo图案的点阵

以上数据都是不需要你修改的 在fbcon_show_logo里只做了256色的显示,所以要先设置一个RGB调色板。这里的调色板是从0x20色开始编的,所以实际好象只有最多224色的显示。linux_logo.h里默认是做了一个214级的灰度调色板,如果想要更多色彩的话可以自已修改(注意调色板的颜色不能超过224种)

再看linux_logo[],这是Logo图案的点阵。因为是256色的图,所以每点为一个Byte。Logo图案是80*80大小,所以这里总共有6400 Byte。一共是800行,每行8 Byte即8Point,每10行数据对应Logo图案中一行。可以先自己试试放一些简单图形进去显示看看。(同样注意颜色要从0x20开始,0-0x1f的32种颜色是不确定的)。

以上分析是针对系统原版内核256色80x80的启动图标的说明。而我们要通过修改或替代原内核文件,来实现我们制做公司的的启动图标,要求如下:

1.开发板起动以后以全屏显示即240x320模式显示

2.图像以224色彩显示

2.方案设计

当然你不会只想显示一些简单图形,而是希望能把自已做的图片放上去。建议使用PhotoShop8.0这里提供三个方法加工图片:

1)先搞一个256色调色板,前面32个颜色空着,把后面224种颜色设一下吧。注意要尽量把颜色选全一些,要能覆盖到整个颜色区域上。这样就有一个通用的调色板,可适用所有图片,但颜色的真实性稍差。然后把自己的图片打开,先将颜色设置到RGB空间里,然后裁剪/缩放到240x320象数的尺寸,再将颜色优化到先前定义好的调色板里,图片就加工好了。

2)不用通用调色板,打开自己的图片,先将颜色设置到RGB空间,裁剪/缩放到240x320象素的尺寸,然后指定优化为224色图象。这样图片就加工好了,但其调色板就是专用的,不适合用到其他图片里。

3)GIMP+FBLOGO GIMP为LINUX下一个绘图程序,我们使用它打开图片后在菜单栏先择: 图片->模式->索引颜色,然后通过工具选项将图片大小调整到240x320象数大小,保存为.png格式。在使FBLOGO工具将其转换成linux_logo.h文件。

使用前两种方法加工图片,还需要把数据放到我们的linux_logo.h里。调色板可以直接保存为文件,然后可以通过自制的小程序读出来就可以了。图片的点阵比较难取,当然也可以自己做个程序去取屏幕上的点,不过比较困难。而后一种方法使用fblogo工具将用GIMP转换的图片文件自动生成linux_logo.h文件。

3.最终实施方案

通过以上内容分析,我们确定使用第三种方法GIMP加fblogo工具的方案进行实施,以下我们制做的流程及其方法:

软件环境:linux虚拟机、fblogo工具、linux下的图像编辑工具GIMP

硬件环境:X86PC机一台、优龙ST2410开发板一个、交叉网线一条。

1.调试并编译开发板所相对应的内核包,调试通过后保留.config配制文件,准备编译bootlogo时使用。

2.在linux上解压fblogo_0.52.tgz包,并进行软件安装,生成fblogo二进制可执行文件。

3.进入linux的kde图形界面,在终端下使用gimp命令运行gimp工具。

4.打开公司的logo.jpg图像文件,依次选择 图像->模式->索引颜色、并将其图片大小调至240x320象素,最后将文件保存为logo.png格式。

5.将上述文件保存到fblogo工具所在文件夹,首先在命令行下执行convert –colors 223 logo.png logo.png 将文件保存为224色素(目前fblogo工具仅支持到224色),接着再使用fblogo logo.png linux_logo.h 生成linux_logo.h内核启动代码中的图像缓冲区文件格式。

6.将linux_logo.h文件拷贝到kernel的include/linux目录即可。

7.重新编译linux系统内核,将生成的zImage内核镜像拷贝到windows下,准备对目标板进行烧写。

8.用串口将目标板与PC主机相连,接通电源,使用bnw工具进入目标板的bios程序并将生成的zImage内核镜像拷烧写到板子上,重起目标板,你会发现目标板上已经出现了美丽的logo图片。如果没有,请核对以上的步骤,并重新测试直到成功为止。

4 方案总结

4.1 方案实施过程中的关键问题

1.确保内核能够正常运行,编译时对开发板各硬件的驱动支持及其相关的配制,启动后能够自动加载文件系统。

2.安装fblogo工具,fblogo工具的编译需要使用到第三方的库文件libpng.so库以及zliba.a库的支持,编译成功后,在命令行试运行fblogo 如果安装成功将出现其使用的帮助信息。

3.fblogo工具对图片的要求是仅支持PNG格式的224色图片。

4.最后针对不同的开发板的LCD显示屏应使用与其相适应的图片大小,否则可能使系统无法正常工作。

4.2 方案实施后的遗留问题

由于使用到了logo的制做工具fblogo 所以图片在色彩上最大仅能支持到224色图片,在bootlogo启动文件linux_logo.h中有图像的色彩域点阵代码(即图片的16位进制的代码),如有需要可以自行修改,但其难度可想而知,建议可以将图片保存为TIF之类的非压缩格式,然后自已编写小程序将其从图象文件中的固定位置取点阵数据。

5 2.6内核启动Logo

在配置内核的时候选中了启动Logo的支持。

使用下面的方法可以将企鹅的Logo换成自己喜欢的任意图片。

首先准备一幅自己喜欢的图片,然后将背景涂成黑色。然后将该图片保存成png格式,例如linuxlogo.png。在Linux下使用下面的命令:

# pngtopnm linuxlogo.png > linuxlogo.pnm

# pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm

# pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

然.ppm替换/usr/src/linux-2.6.8.1/drivers/后用生成的linuxlogo224video/logo/logo_linux_clut224.ppm(最好先做好备份),然后删除同一目录下的logo_linux_clut224.c文件,重新编译内核,启动之后就可以在屏幕左上方看到自己的Logo了。

 

RK356x U-Boot研究所(驱动篇)4.2.1 DRM分析之LOGO显示 阅读详情

相关推荐

linux(tina)系统内核驱动显示开机logo

linux系统,tina,开机logo显示

记录全志、瑞芯微平台linux、Android系统功能及其各类外设驱动调试 2065

linux启动logo修改 bootlogo

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

Run for the future! 4627

ESP32-P4实战:LVGL V9.4 PPA加速配置与性能对比

本文详细介绍了如何在ESP32-P4平台上配置LVGL V9.4的PPA硬件加速功能,通过启用PPA加速显著提升图形处理性能并降低CPU占用率。文章包含环境准备、配置步骤、性能对比及常见问题解决方案,帮助开发者高效利用ESP32-P4的PPA加速器优化嵌入式GUI应用。

rice5的博客 1191

linux显示启动logo源码分析以及修改显示logo

1、linux显示启动logo整个流程分析 (1)logo图片在内核源码中是以ppm格式的文件保存,在编译内核时会把ppm格式的文件自动转换成.c文件,在c文件中会构造一个struct linux_logo结构体变量, 变量名字就是文件的名字,struct linux_logo结构体在内核中用来表示一副logo图像信息; (2)内核在初始化显示器后,会按照配置去匹配合适的struct linux_logo结构体,也就是查找logo图片; (3)将logo图像显示到默认屏幕上; 2、linux显示启动lo

weixin_42031299的博客 6286

MIMO-OFDM 通信-感知一体化(ISAC)中的联合优化与性能权衡

本文深入探讨了MIMO-OFDM技术在通信-感知一体化(ISAC)系统中的核心作用与挑战。文章分析了如何通过联合优化资源分配、波束成形与波形设计,在有限的频谱与硬件资源下,实现通信速率与感知精度之间的最佳平衡,并指出了工程实践中面临的同步、干扰等关键难题。

dapp9builder的博客 216

深入理解Linux 内核追踪机制

Linux 存在众多 tracing tools,比如 ftrace、perf,他们可用于内核的调试、提高内核的可观测性。众多的工具也意味着繁杂的概念,诸如 tracepoint、trace events、kprobe、eBPF 等,甚至让人搞不清楚他们到底是干什么的。本文尝试理清这些概念。

youzhangjing_的博客 1730

linux logo 的启动方式

<br /> <br />1.方案分析<br />ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bootlogo。<br />首先分析一下Logo的显示代码:<br />不难发现Logo显示是在加载显示驱动fb后由kernel/drivers/video/fbcon.c中的fbcon_show_logo函数来完成的。<br />fbcon_show_logo函数中有很多兼容性代码,不是都会用到的!我们用的是SHARP(夏普)的TFT真彩屏.<br />再仔细

linux嵌入式驱动软件开发 4521

Part03 数据结构

本文介绍了CSP-S初赛中常见的高级数据结构及其实现,包括: 线性结构:双端栈、双端队列、单调队列、优先队列和ST表,重点分析了它们的特点、时间复杂度及典型应用场景。 集合与森林:并查集(带路径压缩和按秩合并)和树的孩子兄弟表示法,展示了多叉树转化为二叉树存储的方法。 特殊树结构:包括二叉堆、树状数组、线段树和字典树,详细说明了它们的构建、查询和更新操作,特别强调了线段树的递归实现和字典树的前缀匹配特性。 每种数据结构都配有核心C++代码实现,涉及数组模拟、动态规划和树形结构等编程技巧,适合算法竞赛选手快速

weixin_43863957的博客 1181

修改 linux启动logo

修改目标:用自定义的ppm图片替代/drivers/video/logo/logo_linux_clut224.ppm同时删除logo_linux_clut224.c logo_linux_clut224.o文件这样才能使编译的使用logo_linux_clut224.ppm重新编译ppm图片的生成:# pngtopnm logo_linux_clut .png > logo_linux_clut .pnm# pnmquant 224 logo_linux_clut .pnm > logo_linux

sense的专栏 990

农业杂草检测——棉花杂草数据集

然后将本层13×13的特征图谱经过×2上采样扩充到26×26,并与上层中26×26的特征图谱拼接,得到新的26×26的特征图谱,在该特征尺度上进行第二次预测,此时得到的特征图谱是相对输入图像16倍下采样,具有中尺度感受野,适合检测中等尺度对象;通过目标检测,能够及时清除杂草,减少病虫害的滋生和传播,保障棉花的健康生长,并有助于降低生产成本。对于地膜覆盖的棉田,由于膜内耕作层土温高、底墒好,杂草出苗早而集中,一般覆膜后5 - 7天杂草陆续出土,在墒情好的情况下,15天左右即形成出土高峰。

qq_38220914的博客 1247

【近源攻击】badusb制作

BadUSB是利用伪造HID设备执行攻击载荷的一种攻击方式。HID(Human InterfaceDevice)设备通常指的就是键盘鼠标等与人交互的设备,用户插入BadUSB,就会自动执行预置在固件中的恶意代码。BadUsb插入后,会模拟键盘鼠标对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载其他代码并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。

qinjilll的博客 2550

嵌入式Linux开机Logo的制作

<br /> 嵌入式Linux开机Logo的制作<br /> <br /> <br /> <br />ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bootlogo。<br /><br />1.首先分析一下Logo的显示代码:<br /><br />Logo显示是在加载显示驱动fb后由kernel/drivers/video/fbcon.c中的fbcon_show_logo函数来完成的。<br /><br />fbcon_show_l

yihui8的专栏 3044

ncode控件使用总结

数据格式txt转s3t #HEADER #TITLES Absolute_Time,COG_Ax,COG_Ay,COG_Az,LF_SPINDLE_AZ #UNITS ,g,g,g,g, #DATATYPES Double,Float,Float,Float,Float #DATA 2. 导入s3t数据 3. 输入数据控件 直接拖入数据源或者添加控件数据 4.

技术联盟 2006

linux 开机企鹅LOGO修改

1.方案分析 ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bootlogo。 首先分析一下Logo的显示代码: 不难发现Logo显示是在加载显示驱动fb后由kernel/drivers/video/fbcon.c中的fbcon_show_logo函数来完成的。 fbcon_show_logo函数中有很多兼容性代码,不是都会用...

FLY_THINK2012的博客 786

15、运行语音识别应用:从Mac到微控制器的部署指南

本文详细介绍了如何在Mac上运行语音识别应用,并将其部署到Arduino Nano 33 BLE Sense和SparkFun Edge等微控制器设备上的完整流程。内容涵盖应用构建、设备特定的音频与输出实现、部署步骤、常见问题解决方案及进一步优化建议。通过本指南,开发者可快速实现基于TensorFlow Lite的嵌入式语音识别系统,并根据需求进行自定义修改与功能扩展。

l3m4n的博客 58

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

linux下logo制作相关资料

http://blogold.chinaunix.net/u2/67203/showart_1277576.html 优龙ST2410开发板-启动图标制做 1.方案分析 ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bo

路在脚下 1216

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

更改内核的启动画面

更改内核的启动画面

vrix的专栏 3155

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

RK356X配置启动信息以及sh终端显示在lcd/hdmi上

ARM Linux/RK356X配置启动信息以及sh终端显示在lcd/hdmi上。

Zempy0513的博客 1309

linux开机logo居中显示

参考:http://2836917.blog.51cto.com/2826917/511555 1.修改drivers/video/fbmen.c 471 // p_w_picpath.dx = 0; 472 // p_w_picpath.dy = y; 473 p_w_picpath.dx = (info->var.xres/2) – (logo-...

weixin_33875564的博客 246

linux开机企鹅数量,linux logo居中,小企鹅的数量问题

logo居中:1、设置logo图片在屏幕中的位置vi drivers/video/fbmem.c找到"fb_show_logo_line"函数,把image.dx = 0;image.dy = y;改为#ifdef CONFIG_LOGO_LOWERPOWER_WARNING /*no config*/if(1 == get_battery_status()){image.dx = (info-...

weixin_29116603的博客 580

ARM Linux内核启动(1)

通过分析可知ARM-linux内核的启动分为两个过程,首先,自解压内核到内存中;其次,跳转到解压缩之后的内核运行。压缩内核的启动部分在 linux/arch/arm/boot/compressed/head.S和arch\arm\boot\compressed\misc.c两个文件中。而分压缩内核的启动部分,是真正的linux内核的入口,在linux/arch/arm/kernel/head.S文

思考的智慧,知识源于思考 1543

更改嵌入式Linux中开机画面

一直想给嵌入式仪表加个开机LOGO,但是没有找到更换的方法。最近在网上收集了一些文章,整理一下一共自己参考。目前也还没有试过这种方法究竟是否可以。但察看Kernel源代码可以知道,Linux-2.6的内核和以前的内核版本在LOGO处理上是不一样的。Linux2.6的版本与之相关的是/drivers/video/logo/目录下的文件,/include/linux/linux_logo.h中仅仅定义

juyin2015的博客 4987

更改嵌入式Linux中开机画面----左上角小企鹅图标

一直想给嵌入式仪表加个开机LOGO,但是没有找到更换的方法。最近在网上收集了一些文章,整理一下一共自己参考。目前也还没有试过这种方法究竟是否可以。但察看Kernel源代码可以知道,Linux-2.6的内核和以前的内核版本在LOGO处理上是不一样的。Linux2.6的版本与之相关的是/drivers/video/logo/目录下的文件,/include/linux/linux_logo.h中仅仅定义...

weixin_30907935的博客 768

设置linux开发板开机启动画面

1,make ARCH=arm menuconfig   Device Drivers  --->    Graphics support  --->   重新编译内核,然后下载到开发板,就可以看到启动的时候有小企鹅了.

浮华若水 4460
上一篇: Linux kernel logo
ImportantPerson
博客等级 码龄14年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值