嵌入式linux去掉开机进度条,更换背景,换企鹅logo

  • 目前在使用NXP IMA8MM yocto 环境
  • 开机动画是使用psplash制作的
  • 下载psplash

git clone git://git.yoctoproject.org/psplash

  • 将base-images目录下的psplash-poky.png换成自己想要的图片
  • 注释掉进度条相关代码

1.将psplash.c文件中的psplash_draw_progress函数的调用注释掉

2.将psplash.c文件中以下代码屏蔽,这段代码是显示进度条边框的

  /* Draw progress bar border */

  psplash_fb_draw_image (fb,

                          (fb->width  - BAR_IMG_WIDTH)/2,

                          SPLIT_LINE_POS(fb),

                          BAR_IMG_WIDTH,

                          BAR_IMG_HEIGHT,

                          BAR_IMG_BYTES_PER_PIXEL,

                          BAR_IMG_ROWSTRIDE,

                          BAR_IMG_RLE_PIXEL_DATA);

  • 制作autogen.sh脚本,用于生成Makefile

#!/bin/bash

aclocal
autoheader
automake --add-missing
autoconf

  • 生成Makefile

./autogen.sh

  • 配置交叉编译库

./configure --host=arm-linux --prefix=/home/bert/arm/paplash/

  • make && make install
  • 将/home/bert/arm/psplash/bin/目录下的psplash与psplash-write拷贝到根文件系统/usr/bin/目录下

遇到的问题

我的宿主机是ubuntu16.04。make时提示:

./make-image-header.sh: 7: ./make-image-header.sh: gdk-pixbuf-csource: not found

尝试sudo apt-get install libgdk-pixbuf2.0-dev

各种依赖问题装不上,蛋疼至极

最终通过以下方法解决:

1. 将psplash的源码copy到ubuntu12.04并在源码根目录执行./make-image-header.sh base-image/psplash-poky.png POKY

2. 将生成的psplash-poky-img.h复制到ubuntu16.04中

3.再执行make

更换开机企鹅logo

pngtopnm logo.png > linuxlogo.pnm
pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
pnmtoplainpnm linuxlogo224.pnm > logo_linux_clut224.ppm
  • 然后把logo_linux_clut224.ppm 替换到/drivers/video/logo
  • 配置内核
Device Drivers-->
    Graphics Support-->
        Bootop logo-->
        [*]   Standard
				 224-color Linux logo
  • 编译内核
原文地址:https://www.cnblogs.com/real-bert/p/14420241.html