参考:【正点原子】I.MX6U 修改开机进度条及内核logo参考手册V1.0.pdf

1、修改进度条其及其logo

1 下载psplash源码

可以在网上下载 psplash 源码,正点原子也提供了修改好的 psplash 源码在光盘中。光盘路径:开发板光盘 A-基础资料\1、例程源码\7、第三方库源码\psplash\psplash.tar.gz在 Ubuntu 中创建一个 psplash 文件夹用于存放本文档的源码,将 psplash.tar.gz 源码放到此目录下解压。

解压完后会看到一个make-image-header.sh的脚本,等下会使用这个脚本来将图片变转化成头文件。

将这两张图片拷贝到psplash源码目录中,如下图所示。

在使用脚本之前,需要安装库,否则会报错。

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

安装的过程中可能会出现依赖错误可能是镜像源的问题。

修改合适的源

使用aptitude 安装

sudo aptitude install libgdk-pixbuf2.0-dev

在第一次询问的时候选择“n”

zhiguoxin@ubuntu16:~/linux/IMX6ULL/psplash$ sudo aptitude install libgdk-pixbuf2.0-dev
下列“新”软件包将被安装。
  gcc-6-base:i386{a} libc6:i386{ab} libelf1:i386{ab} libffi6:i386{a} libgcc1:i386{a} libgdk-pixbuf2.0-dev{b} libglib2.0-0:i386{ab}
  libglib2.0-bin:i386{ab} libglib2.0-dev{ab} libpcre3:i386{a} libpcre3-dev{a} libpcre32-3{a} libpcrecpp0v5{a} libpng12-dev{ab} libselinux1:i386{a}
  zlib1g:i386{ab} zlib1g-dev{ab}
0 个软件包被升级,新安装 17 个, 0 个将被删除, 同时 0 个将不升级。
需要获取 6,406 kB 的存档。 解包后将要使用 33.3 MB。
下列软件包存在未满足的依赖关系:
 libelf1 : 破坏: libelf1:i386 (!= 0.165-3ubuntu1.1) 但是 0.165-3ubuntu1 将被安装。
 libelf1:i386 : 破坏: libelf1 (!= 0.165-3ubuntu1) 但是 0.165-3ubuntu1.1 已安装。
 zlib1g : 破坏: zlib1g:i386 (!= 1:1.2.8.dfsg-2ubuntu4.1) 但是 1:1.2.8.dfsg-2ubuntu4 将被安装。
 zlib1g:i386 : 破坏: zlib1g (!= 1:1.2.8.dfsg-2ubuntu4) 但是 1:1.2.8.dfsg-2ubuntu4.1 已安装。
 libc6 : 破坏: libc6:i386 (!= 2.23-0ubuntu10) 但是 2.23-0ubuntu3 将被安装。
 libc6:i386 : 破坏: libc6 (!= 2.23-0ubuntu3) 但是 2.23-0ubuntu10 已安装。
 zlib1g-dev : 依赖: zlib1g (= 1:1.2.8.dfsg-2ubuntu4) 但是 1:1.2.8.dfsg-2ubuntu4.1 已安装。
 libpng12-dev : 依赖: libpng12-0 (= 1.2.54-1ubuntu1) 但是 1.2.54-1ubuntu1.1 已安装。
 libglib2.0-bin : 冲突: libglib2.0-bin:i386 但是 2.48.0-1ubuntu4 将被安装。
 libglib2.0-bin:i386 : 冲突: libglib2.0-bin 但是 2.48.2-0ubuntu3 已安装。
 libglib2.0-dev : 依赖: libglib2.0-0 (= 2.48.0-1ubuntu4) 但是 2.48.2-0ubuntu3 已安装。
 libgdk-pixbuf2.0-dev : 依赖: libgdk-pixbuf2.0-0 (= 2.32.2-1ubuntu1) 但是 2.32.2-1ubuntu1.5 已安装。
                        依赖: gir1.2-gdkpixbuf-2.0 (= 2.32.2-1ubuntu1) 但是 2.32.2-1ubuntu1.5 已安装。
 libglib2.0-0 : 破坏: libglib2.0-0:i386 (!= 2.48.2-0ubuntu3) 但是 2.48.0-1ubuntu4 将被安装。
 libglib2.0-0:i386 : 破坏: libglib2.0-0 (!= 2.48.0-1ubuntu4) 但是 2.48.2-0ubuntu3 已安装。
打开:28;关闭;561;defer: 11; 冲突;32                                                                                                      .下列动作将解决这些依赖关系:

      保持 下列软件包于其当前版本:
1)      libc6:i386 [未安装的]
2)      libelf1:i386 [未安装的]
3)      libffi6:i386 [未安装的]
4)      libgcc1:i386 [未安装的]
5)      libgdk-pixbuf2.0-dev [未安装的]
6)      libglib2.0-0:i386 [未安装的]
7)      libglib2.0-bin:i386 [未安装的]
8)      libglib2.0-dev [未安装的]
9)      libpcre3:i386 [未安装的]
10)     libpng12-dev [未安装的]
11)     libselinux1:i386 [未安装的]
12)     zlib1g:i386 [未安装的]
13)     zlib1g-dev [未安装的]



是否接受该解决方案?[Y/n/q/?] n
打开:621;关闭;11275;defer: 294; 冲突;942                                                                                                 o下列动作将解决这些依赖关系:

      保持 下列软件包于其当前版本:
1)      libc6:i386 [未安装的]
2)      libelf1:i386 [未安装的]
3)      libffi6:i386 [未安装的]
4)      libgcc1:i386 [未安装的]
5)      libglib2.0-0:i386 [未安装的]
6)      libglib2.0-bin:i386 [未安装的]
7)      libpcre3:i386 [未安装的]
8)      libselinux1:i386 [未安装的]
9)      zlib1g:i386 [未安装的]

      降级 下列软件包:
10)     gir1.2-gdkpixbuf-2.0 [2.32.2-1ubuntu1.5 (now) -> 2.32.2-1ubuntu1 (xenial)]
11)     libgdk-pixbuf2.0-0 [2.32.2-1ubuntu1.5 (now) -> 2.32.2-1ubuntu1 (xenial)]
12)     libgdk-pixbuf2.0-common [2.32.2-1ubuntu1.5 (now) -> 2.32.2-1ubuntu1 (xenial)]
13)     libglib2.0-0 [2.48.2-0ubuntu3 (now) -> 2.48.0-1ubuntu4 (xenial)]
14)     libglib2.0-bin [2.48.2-0ubuntu3 (now) -> 2.48.0-1ubuntu4 (xenial)]
15)     libpng12-0 [1.2.54-1ubuntu1.1 (now) -> 1.2.54-1ubuntu1 (xenial)]
16)     zlib1g [1:1.2.8.dfsg-2ubuntu4.1 (now) -> 1:1.2.8.dfsg-2ubuntu4 (xenial)]



是否接受该解决方案?[Y/n/q/?] y
下列软件包将被“降级”:
  gir1.2-gdkpixbuf-2.0 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libglib2.0-0 libglib2.0-bin libpng12-0 zlib1g
下列“新”软件包将被安装。
  libgdk-pixbuf2.0-dev libglib2.0-dev{a} libpcre3-dev{a} libpcre32-3{a} libpcrecpp0v5{a} libpng12-dev{a} zlib1g-dev{a}
0 个软件包被升级,新安装 7 个, 7 个被降级, 0 个将被删除, 同时 0 个将不升级。
需要获取 3,949 kB 的存档。 解包后将要使用 17.6 MB。
您要继续吗?[Y/n/?] y
读取: 1 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libpcrecpp0v5 amd64 2:8.38-3.1 [15.2 kB]
读取: 2 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 zlib1g amd64 1:1.2.8.dfsg-2ubuntu4 [51.3 kB]
读取: 3 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libpng12-0 amd64 1.2.54-1ubuntu1 [116 kB]
读取: 4 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libglib2.0-bin amd64 2.48.0-1ubuntu4 [39.4 kB]
读取: 5 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libglib2.0-0 amd64 2.48.0-1ubuntu4 [1,117 kB]
读取: 6 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libgdk-pixbuf2.0-0 amd64 2.32.2-1ubuntu1 [158 kB]
读取: 7 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libgdk-pixbuf2.0-common all 2.32.2-1ubuntu1 [9,996 B]
读取: 8 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 gir1.2-gdkpixbuf-2.0 amd64 2.32.2-1ubuntu1 [8,094 B]
读取: 9 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libpcre32-3 amd64 2:8.38-3.1 [136 kB]
读取: 10 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libpcre3-dev amd64 2:8.38-3.1 [525 kB]
读取: 11 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 zlib1g-dev amd64 1:1.2.8.dfsg-2ubuntu4 [168 kB]
读取: 12 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libglib2.0-dev amd64 2.48.0-1ubuntu4 [1,377 kB]
读取: 13 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libpng12-dev amd64 1.2.54-1ubuntu1 [184 kB]
读取: 14 http://mirrors.nju.edu.cn/ubuntu xenial/main amd64 libgdk-pixbuf2.0-dev amd64 2.32.2-1ubuntu1 [44.5 kB]
已下载 3,949 kB,耗时 2(1,331 kB/s)
正在选中未选择的软件包 libpcrecpp0v5:amd64。
(正在读取数据库 ... 系统当前共安装有 193154 个文件和目录。)
正准备解包 .../libpcrecpp0v5_2%3a8.38-3.1_amd64.deb  ...
正在解包 libpcrecpp0v5:amd64 (2:8.38-3.1) ...
dpkg:警告:即将把 zlib1g:amd64 从 1:1.2.8.dfsg-2ubuntu4.1 降级到 1:1.2.8.dfsg-2ubuntu4
正准备解包 .../zlib1g_1%3a1.2.8.dfsg-2ubuntu4_amd64.deb  ...
正在将 zlib1g:amd64 (1:1.2.8.dfsg-2ubuntu4) 解包到 (1:1.2.8.dfsg-2ubuntu4.1)...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
正在设置 zlib1g:amd64 (1:1.2.8.dfsg-2ubuntu4) ...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
dpkg:警告:即将把 libpng12-0:amd64 从 1.2.54-1ubuntu1.1 降级到 1.2.54-1ubuntu1
(正在读取数据库 ... 系统当前共安装有 193162 个文件和目录。)
正准备解包 .../libpng12-0_1.2.54-1ubuntu1_amd64.deb  ...
正在将 libpng12-0:amd64 (1.2.54-1ubuntu1) 解包到 (1.2.54-1ubuntu1.1)...
dpkg:警告:即将把 libglib2.0-bin 从 2.48.2-0ubuntu3 降级到 2.48.0-1ubuntu4
正准备解包 .../libglib2.0-bin_2.48.0-1ubuntu4_amd64.deb  ...
正在将 libglib2.0-bin (2.48.0-1ubuntu4) 解包到 (2.48.2-0ubuntu3)...
dpkg:警告:即将把 libglib2.0-0:amd64 从 2.48.2-0ubuntu3 降级到 2.48.0-1ubuntu4
正准备解包 .../libglib2.0-0_2.48.0-1ubuntu4_amd64.deb  ...
正在将 libglib2.0-0:amd64 (2.48.0-1ubuntu4) 解包到 (2.48.2-0ubuntu3)...
dpkg:警告:即将把 libgdk-pixbuf2.0-0:amd64 从 2.32.2-1ubuntu1.5 降级到 2.32.2-1ubuntu1
正准备解包 .../libgdk-pixbuf2.0-0_2.32.2-1ubuntu1_amd64.deb  ...
正在将 libgdk-pixbuf2.0-0:amd64 (2.32.2-1ubuntu1) 解包到 (2.32.2-1ubuntu1.5)...
dpkg:警告:即将把 libgdk-pixbuf2.0-common 从 2.32.2-1ubuntu1.5 降级到 2.32.2-1ubuntu1
正准备解包 .../libgdk-pixbuf2.0-common_2.32.2-1ubuntu1_all.deb  ...
正在将 libgdk-pixbuf2.0-common (2.32.2-1ubuntu1) 解包到 (2.32.2-1ubuntu1.5)...
dpkg:警告:即将把 gir1.2-gdkpixbuf-2.0:amd64 从 2.32.2-1ubuntu1.5 降级到 2.32.2-1ubuntu1
正准备解包 .../gir1.2-gdkpixbuf-2.0_2.32.2-1ubuntu1_amd64.deb  ...
正在将 gir1.2-gdkpixbuf-2.0:amd64 (2.32.2-1ubuntu1) 解包到 (2.32.2-1ubuntu1.5)...
正在选中未选择的软件包 libpcre32-3:amd64。
正准备解包 .../libpcre32-3_2%3a8.38-3.1_amd64.deb  ...
正在解包 libpcre32-3:amd64 (2:8.38-3.1) ...
正在选中未选择的软件包 libpcre3-dev:amd64。
正准备解包 .../libpcre3-dev_2%3a8.38-3.1_amd64.deb  ...
正在解包 libpcre3-dev:amd64 (2:8.38-3.1) ...
正在选中未选择的软件包 zlib1g-dev:amd64。
正准备解包 .../zlib1g-dev_1%3a1.2.8.dfsg-2ubuntu4_amd64.deb  ...
正在解包 zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4) ...
正在选中未选择的软件包 libglib2.0-dev。
正准备解包 .../libglib2.0-dev_2.48.0-1ubuntu4_amd64.deb  ...
正在解包 libglib2.0-dev (2.48.0-1ubuntu4) ...
正在选中未选择的软件包 libpng12-dev:amd64。
正准备解包 .../libpng12-dev_1.2.54-1ubuntu1_amd64.deb  ...
正在解包 libpng12-dev:amd64 (1.2.54-1ubuntu1) ...
正在选中未选择的软件包 libgdk-pixbuf2.0-dev。
正准备解包 .../libgdk-pixbuf2.0-dev_2.32.2-1ubuntu1_amd64.deb  ...
正在解包 libgdk-pixbuf2.0-dev (2.32.2-1ubuntu1) ...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 libpcrecpp0v5:amd64 (2:8.38-3.1) ...
正在设置 libpng12-0:amd64 (1.2.54-1ubuntu1) ...
正在设置 libglib2.0-0:amd64 (2.48.0-1ubuntu4) ...
正在设置 libglib2.0-bin (2.48.0-1ubuntu4) ...
正在设置 libgdk-pixbuf2.0-common (2.32.2-1ubuntu1) ...
正在设置 libgdk-pixbuf2.0-0:amd64 (2.32.2-1ubuntu1) ...
正在设置 gir1.2-gdkpixbuf-2.0:amd64 (2.32.2-1ubuntu1) ...
正在设置 libpcre32-3:amd64 (2:8.38-3.1) ...
正在设置 libpcre3-dev:amd64 (2:8.38-3.1) ...
正在设置 zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4) ...
正在设置 libglib2.0-dev (2.48.0-1ubuntu4) ...
正在设置 libpng12-dev:amd64 (1.2.54-1ubuntu1) ...
正在设置 libgdk-pixbuf2.0-dev (2.32.2-1ubuntu1) ...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...

在安装一次就可以了,没有提示依赖的问题。

2、制作进度条和 logo

psplash源码中执行以下指令来生成logo-alientek-img.h

./make-image-header.sh logo-alientek.png POKY

POKY 参数只是一个变量,它会传入到logo-alientek-img.h文件里面,可以打开查看。

vi logo-alientek-img.h

可以看到它必须是要加 POKY 参数的,因为其他地方要用到这样的宏定义。
返回到psplash源码下,执行以下指令生成psplash-bar-img.h

./make-image-header.sh logo-psplash-bar.png BAR
ls

同样我们打开 logo-psplash-bar-img.h 这个文件。它必须是加 BAR 参数的,因为其他地方会用到这样的宏定义。

vi logo-psplash-bar-img.h

打开psplash.c,将里面的#include “psplash-poky-img.h"修改成#include “logo-alientek-img.h”。将里面的 #include” psplash-bar-img.h"修改成 #include" logo-psplash-bar-img.h"。修改完后如下图所示。

vi psplash.c

修改完成后保存退出 psplash.c,返回到源码目录下。制作autogen.sh脚本,用于生成Makefile。

vi autogen.sh

脚本内容如下。

#!/bin/bash
aclocal
autoheader
automake --add-missing
autoconf

制作完脚本后,赋予它可执行权限,再执行这个脚本。

chmod +x autogen.sh
./autogen.sh

修改Makefile.am,将psplash-poky-img.h修改成logo-alientek-img.h,将psplash-bar-img.h修改成logo- psplash-bar-img.h

vi Makefile.am

修改完后的 Makefile.am 如下图所示。

修改完 Makefile.am 后保存退出,回到源码目录下。执行以下指令,使能环境变量。

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

环境变量使能后,就可以执行以下指令配置交叉编译工具链。

./configure --host=arm-linux

执行make指令进行编译。

make

编译完成后会在源码目录下生成psplashpsplash-write文件。

3、替换出厂系统进度条和 logo

将编译生成的psplash和psplash-write文件拷贝到开发板出厂文件系统/usr/bin 目录下。

scp /home/zhiguoxin/linux/IMX6ULL/psplash/psplash  root@192.168.10.50:/usr/bin

可能会出现下面的问题

问题1

解决好办法如下:

rm ~/.ssh/known_hosts

问题2

解决办法如下:

使用ssh进入到开发板,输入一下指令

# 进入带=到开发板目/usr/bin/录
cd /usr/bin/
# 查询占用进程ID
sudo fuser psplash
# 杀死这个进程
sudo kill -9 95

然后在ubuntu中执行就可以了

# 解压源码
tar -vxf psplash.tar.gz
# 安装libgdk-pixbuf2.0-dev
##sudo apt-get install libgdk-pixbuf2.0-dev
# logo-alientek-img.h
./make-image-header.sh logo-alientek.png POKY
# 生成 psplash-bar-img.h
./make-image-header.sh logo-psplash-bar.png BAR
# 修改 psplash.c
vi psplash.c
    #include "logo-alientek-img.h"
    #include "logo-psplash-bar-img.h"
# 制作 autogen.sh 脚本,用于生成 Makefile
vi autogen.sh
    #!/bin/bash
    aclocal
    autoheader
    automake --add-missing
    autoconf
# 赋予脚本可执行权限
chmod +x autogen.sh
# 执行这个脚本
./autogen.sh
# 修改makefile
vi Makefile.am
    logo-alientek-img.h logo-psplash-bar-img.h
    
# 使能环境变量
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
# 配置交叉编译工具链
./configure --host=arm-linux
# 编译
make

# 在开发板中找到psplash进程,杀死
cd /usr/bin/
sudo fuser psplash
sudo kill -9 95

# 将编译生成的 psplash 和 psplash-write 文件拷贝到开发板出厂文件系统/usr/bin 目录下
scp /home/zhiguoxin/linux/IMX6ULL/psplash/psplash  root@192.168.10.50:/usr/bin
scp /home/zhiguoxin/linux/IMX6ULL/psplash/psplash-write  root@192.168.10.50:/usr/bin

完成后启动开发板,可以看到如下界面

2、修改内核 logo

修改完出厂系统的进度条后,我们发现开机后仍后正点原子的出厂logo存在,这并不是刚刚的修改失败,因为这个是内核的logo,我们刚刚修改的是进度条界面的logo。接下来我们就来修改内核的logo。

2.1 图片准备

图片要求:

  • 格式:BMP或者PNG格式。如果是别的格式的图片,可以通过Windows自带的画图软件来另存为BMP或者PNG格式。
  • 分辨率:不能高于屏幕LCD的分辨率。可以用画图软件,可以对图片右键选择属性,在详细信息中可以看到图片的分辨率。

这里以光盘源码中的logo-linux.png为例。

光盘路径:开发板光盘 A-基础资料\1、例程源码\7、第三方库源码\psplash

2.2 源码准备

本文档以出厂系统为例。在 Ubuntu 中新建一个 linux-alientek 的文件夹用于存放出厂的内核源码。将光盘中的出厂内核源码linux-imx-4.1.15-2.1.0-gb78e551-v1.4.tar.xz拷贝到linux-alientek目录中。

光盘路径:开发板光盘 A-基础资料\1、例程源码\3、正点原子Uboot和Linux出厂源码

解压内核源码。

tar vxf linux-imx-4.1.15-2.1.0-gb78e551-v1.4.tar.xz
ls

在文件管理器中进入内核源码的drivers/video/logo目录下,可以看到启动内核时的 logo。这里可以看到正点原子出厂系统内核启动的 logo。

将我们准备好的 logo-linux.png 图片拷贝到这个目录中。拷贝完后的目录如下所示

将正点原子出厂系统 logo 重命名为logo_linux_clut224_V1.ppm。因为我们等下要替换掉logo_linux_clut224.ppm

mv logo_linux_clut224.ppm logo_linux_clut224_V1.ppm

2.3、图片格式转换

我们需要把png格式的图片转换成ppm格式。安装图片转换工具netpdm,执行以下命令。

sudo apt-get install netpbm

使用 netpbm 工具转换图片,执行以下命令。

pngtopnm logo-linux.png > logo-linux.pnm
pnmquant 224 logo-linux.pnm > logo-linux224.pnm
pnmtoplainpnm logo-linux224.pnm > logo_linux_clut224.ppm

分析:

pngtopnm logo-linux.png > logo-linux.pnm

这步是将准备好的logo-linux.png 转换成logo-linux.pnm,即转换成 pnm格式。

pnmquant 224 logo-linux.pnm > logo-linux224.pnm

这步是将 logo-linux.pnm 图片的最大颜色数量改为224。

注意,这里前后名字不能一样,可以理解为要另存为。否则会报错,如下图所示。

pnmtoplainpnm logo-linux224.pnm > logo_linux_clut224.ppm

这步是将 pnm 格式图片转换成 ppm 格式,顺便将其重命名为 logo_linux_clut224.ppm,我们是在内核源码的 drivers/video/logo 目录下直接进行的,所以此步就直接替换内核原来的 logo(之前的 logo_linux_clut224.ppm 我们已经重命名了 logo_linux_clut224_V1.ppm)如果不是在 drivers/video/logo 目录下进行的转换,需要将转换好的 logo_linux_clut224.ppm拷贝到 drivers/video/logo 目录下替换掉原先的 logo_linux_clut224.ppm。

2.4、配置内核logo显示

出厂系统的内核已经配置好 logo 显示了,可以跳过此步。但为了文档的完整性,这里还是要说明一下。(注:这里使用的还是出厂的内核源码)

执行以下命令安装编译内核要用到的库和显示 menucofig 菜单时要用到的库。

返回到内核源码的顶层目录下,执行以下指令使能交叉编译器,清理并配置内核。(注意:如果没有安装文档对应的交叉编译器,请按照《I.MX6U用户快速体验》4.2小节搭建交叉编译环境来安装)

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
make distclean
make imx_v7_defconfig -j 16

2.5 编译内核

执行以下指令编译内核zImage文件。

make zImage -j8

编译成功(编译大概需要好几分钟,请耐心等待)就会提示zImage is ready

arch/arm/boot目录下的zImage烧录到开发板或者使用TFTP挂载到开发板上,启动开发板即可显示 logo

现在使用mfgtool软件使用otg烧录固件。

注意:将开发板上的拨码开关拨至USB,插上电脑的USB线至USB OTG接口,开始烧录。

烧录完成后,将开发板上的拨码开关拨至EMMC。复位开发板就可以了。

修改了内核的logo后可能重启开发板后还是显示这个正点原子的logo,虽然你的内核的 logo修改了,但是进度条界面的 logo的logo又被覆盖了,这时你只需要你将第一步最开始修改进度条的logo所生成的文件拷贝到你的板子上面就可以了。

scp /home/zhiguoxin/linux/IMX6ULL/psplash/psplash  root@192.168.10.50:/usr/bin
scp /home/zhiguoxin/linux/IMX6ULL/psplash/psplash-write  root@192.168.10.50:/usr/bin

2.6 修改内核Logo位置

1、修改fbmem.c

vi drivers/video/core/fbmem.c

找到fb_show_logo_line函数,把

image.dx = 0;
image.dy = y;

改为

image.dx = (info->var.xres/2) - (428/2);
image.dy = (info->var.yres/2) - (214/2);

2、修改fbcon.c

vi drivers/video/console/fbcon.c

找到fbcon_prepare_logo函数,在

logo_height = fb_prepare_logo(info, ops->rotate);

后面加上

logo_height += (info->var.yres/2) - (214/2);


如果想删除内核logo

rm /usr/bin/psplash
rm /usr/bin/psplash-write
Logo

更多推荐