?
近期有部分客戶詢問飛凌嵌入式i.MX8M系列開發(fā)板如何添加或更改開機(jī)動(dòng)畫,下文以O(shè)KMX8MM-C為例整理出如下思路,可供客戶嘗試。
?
一、下載?psplash源碼
1.下載psplash:gitclone git://git.yoctoproject.org/psplash,會(huì)下載到當(dāng)前目錄的psplash文件夾中
?
forlinx@ubuntu:~$ git clone git://git.yoctoproject.org/psplash
Cloning into 'psplash'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 306 (delta 2), reused 0 (delta 0), pack-reused 295
Receiving objects: 100% (306/306), 128.73 KiB | 74.00 KiB/s, done.
Resolving deltas: 100% (192/192), done.
?
2.下載成功后會(huì)在當(dāng)前目錄下生成一個(gè)psplash文件夾,進(jìn)入psplash文件夾
?
forlinx@ubuntu:~$ cd psplash/ forlinx@ubuntu:~/psplash$ ls
?
?
會(huì)看到一個(gè) make-image-header.sh 的腳本,等下會(huì)使用這個(gè)腳本來將圖片轉(zhuǎn)化成頭文件。
?
3.在使用腳本之前,需要安裝庫,否則會(huì)報(bào)錯(cuò)。
?
forlinx@ubuntu:~/psplash$ sudo apt-get install libgdk-pixbuf2.0-dev
[sudo] password for forlinx:
?Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
? ? linux-hwe-5.4-headers-5.4.0-84 Use 'sudo apt autoremove' to remove it.
?【…】
forlinx@ubuntu:~/psplash$ sudo apt-get install build-essential libncurses5-dev
Reading package lists... Done
Building dependency tree?
Reading state information... Done
【…】
?
4.將想要替換的圖片復(fù)制到psplash文件夾中,此處用的是我們公司的logo,命名為logo-1024x600.png ,外框照片命名為logo-bar.png。
??
進(jìn)度條的外框 logo-bar.png。
?
?
將這兩張圖片拷貝到 psplash 源碼目錄中,如下圖所示。
?
?
二 制作logo
1.在 psplash 源碼中執(zhí)行以下指令來生成 logo-1024x600-img.h?
?
?
可以看到它必須是要加 POKY 參數(shù)的,因?yàn)槠渌胤揭玫竭@樣的宏定義。
?
2.返回到 psplash 源碼下,執(zhí)行以下指令生成 ?logo-bar-img.h?
?
forlinx@ubuntu:~/psplash$ ./make-image-header.sh logo-bar.png BAR forlinx@ubuntu:~/psplash$ ls
?
?
同樣我們打開 logo-bar-img.h 這個(gè)文件。它必須是加 BAR 參數(shù)的,因?yàn)槠渌胤綍?huì) 用到這樣的宏定義。?
?
forlinx@ubuntu:~/psplash$ vi logo-bar-img.h?
?
?
3.打開 psplash.c,將里面的 #include "psplash-poky-img.h" 修改成 #include "logo-1024x600-img.h"。將里面的 #include " psplash-bar-img.h" 修改成 #include "logo-bar-img.h"。修改完后如下圖所示。
?
forlinx@ubuntu:~/psplash$ vi psplash.c
?
?
修改完成后保存退出 psplash.c,返回到源碼目錄下。?
?
4.制作 autogen.sh 腳本,用于生成 Makefile。?
?
forlinx@ubuntu:~/psplash$ vi autogen.sh?
?
內(nèi)容如下:
?
#!/bin/bash aclocal autoheader automake --add-missing autoconf
?
制作完腳本后,賦予它可執(zhí)行權(quán)限,再執(zhí)行這個(gè)腳本。
?
forlinx@ubuntu:~/psplash$ chmod 777 autogen.sh
? forlinx@ubuntu:~/psplash$ ./autogen.sh configure.ac:7: installing './compile'
configure.ac:3: installing './install-sh'
configure.ac:3: installing './missing' Makefile.am: installing './INSTALL'
Makefile.am: installing './depcomp'
?
5.修改 Makefile.am,將 psplash-poky-img.h 修改成logo-1024x600-img.h,將 psplash-bar-img.h 修改成 logo-bar-img.h。
?
forlinx@ubuntu:~/psplash$ vi Makefile.am?
?
修改完后的 Makefile.am 如下圖所示。
?
?
修改完 Makefile.am 后保存退出,回到源碼目錄下。?
?
6.執(zhí)行以下指令,使能環(huán)境變量。
?
forlinx@ubuntu:~/psplash$ . /opt/fsl-imx-xwayland/4.14-sumo/environment-setup-aarch64-poky-linux?
?
7.環(huán)境變量使能后,就可以執(zhí)行以下指令配置交叉編譯工具鏈。
?
forlinx@ubuntu:~/psplash$ ./configure --host=aarch64-poky-linux
? configure: loading site script /opt/fsl-imx-xwayland/4.14-sumo/site-config-aarch64-poky-linux
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for aarch64-poky-linux-strip... aarch64-poky-linux-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
【…】
?
8.執(zhí)行 make 指令進(jìn)行編譯。
?
forlinx@ubuntu:~/psplash$ make
? cd . && /bin/bash /home/forlinx/psplash/missing automake-1.15 --gnu Makefile
cd . && /bin/bash ./config.status Makefile depfiles
config.status: creating Makefile
config.status: executing depfiles commands
./make-image-header.sh base-images/psplash-bar.png BAR
make ?all-am
make[1]: Entering directory '/home/forlinx/psplash'
aarch64-poky-linux-gcc ?--sysroot=/opt/fsl-imx-xwayland/4.14-sumo/sysroots/aarch64-poky-linux -DHAVE_CONFIG_H -I. ? ?-g -Wall -Wextra ?-D_GNU_SOURCE -DFO
NT_HEADER="radeon-font.h" -DFONT_DEF=radeon_font -O2 -pipe -g -feliminate-unused-debug-types ?-MT psplash-psplash.o -MD -MP -MF .deps/psplash-psplash.T
po -c -o psplash-psplash.o `test -f 'psplash.c' || echo './'`psplash.c
【…】
?
編譯完成后會(huì)在源碼目錄下生成 psplash 和 psplash-write 文件。
?
三、替換出廠系統(tǒng)logo?
將編譯生成的 psplash 和 psplash-write 文件拷貝到開發(fā)板出廠文件系統(tǒng)/usr/bin 目錄下。
?
okmx8mm login:root
Last login: Thu Jun 20 10:00:15 UTC 2019 on tty7
root@okmx8mm:~# cd /usr/bin/
root@okmx8mm:/usr/bin# ls psp* psplash ?psplash-default ?psplash-write
root@okmx8mm:/usr/bin# rm psplash
root@okmx8mm:/usr/bin# rm psplash-write
root@okmx8mm:/usr/bin# cp /run/media/sda1/psplash ./
root@okmx8mm:/usr/bin# cp /run/media/sda1/psplash-write ./
root@okmx8mm:/usr/bin# sync
?
保存重啟后可看到開機(jī)動(dòng)畫已替換完成。效果如下:
?
?
原文鏈接:https://www.forlinx.com/article_view_806.html
?
審核編輯:鄢孟繁
評(píng)論
查看更多