/***********************************************************************
* OK335xS psplash Screen 移植
* 说明:
* 有时候,每次看到TI的logo自己心里是不爽的,因为本来就是定制的东西,
* 为什么还要他的开机Logo呢,于是自己尝试移植编译一下psplash。
*
* 2016-4-16 深圳 南山平山村 曾剑锋
**********************************************************************/ 一、参考文档:
. Customizing the SDK Splash Screen
http://processors.wiki.ti.com/index.php/Customizing_the_SDK_Splash_Screen
. Makefile Makefile.am Makefile.in
http://blog.csdn.net/OLillian/article/details/6281126
. config.h.in missing? #
https://github.com/stevedh/readingdb/issues/1 二、download:
http://git.yoctoproject.org/cgit/cgit.cgi/psplash/commit/ 三、编译、运行流程:
. aclocal;
. autoconf;
. automake --add-missing;
. autoreconf --install
. ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc;
. make.
. Replace the /usr/bin/psplash file in your root file system with the generated psplash file. 四、编译错误:
. error:
. 现象:
Qt@zengjf:~/cmdTest/psplash-master$ ./autogen.sh --host=arm-linux CC=arm-linux-gnueabihf-gcc
bash: ./autogen.sh: No such file or directory
. 解决办法:
. aclocal;
. autoconf;
. automake --add-missing;
. ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc;
. make.
. error:
. 现象:
configure.ac:: required file `config.h.in' not found
. 解决办法:
autoreconf --install
. error:
. 现象:
......
Screenshot-img.h::: warning: missing whitespace after the macro name [enabled by default]
Screenshot-img.h::: warning: "psplash" redefined [enabled by default]
Screenshot-img.h::: note: this is the location of the previous definition
psplash.c: In function ‘main’:
psplash.c::: error: ‘POKY_IMG_WIDTH’ undeclared (first use in this function)
psplash.c::: note: each undeclared identifier is reported only once for each function it appears in
psplash.c::: error: ‘POKY_IMG_HEIGHT’ undeclared (first use in this function)
psplash.c::: error: ‘POKY_IMG_BYTES_PER_PIXEL’ undeclared (first use in this function)
psplash.c::: error: ‘POKY_IMG_ROWSTRIDE’ undeclared (first use in this function)
psplash.c::: error: ‘POKY_IMG_RLE_PIXEL_DATA’ undeclared (first use in this function)
make[]: *** [psplash.o] Error
make[]: Leaving directory `/home/Qt/cmdTest/psplash-master'
make: *** [all] Error
. 解决办法:
./make-image-header.sh Screenshot.png POKY
. 原因:
psplash.c中的需要用到这个POKY有关的宏名,如果改了,那么这里也要跟着改。
Qt@zengjf:~/cmdTest/psplash-master$ grep POKY *
psplash.c: (fb->width - POKY_IMG_WIDTH)/,
psplash.c: (fb->height - POKY_IMG_HEIGHT)/,
psplash.c: / PSPLASH_IMG_SPLIT_DENOMINATOR - POKY_IMG_HEIGHT)/,
psplash.c: POKY_IMG_WIDTH,
psplash.c: POKY_IMG_HEIGHT,
psplash.c: POKY_IMG_BYTES_PER_PIXEL,
psplash.c: POKY_IMG_ROWSTRIDE,
psplash.c: POKY_IMG_RLE_PIXEL_DATA);
...... 五、完整编译过程如下:
Qt@zengjf:~/cmdTest/psplash-master$ aclocal
Qt@zengjf:~/cmdTest/psplash-master$ autoconf
Qt@zengjf:~/cmdTest/psplash-master$ automake --add-missing
configure.ac:: installing `./install-sh'
configure.ac:: installing `./missing'
Makefile.am: installing `./INSTALL'
configure.ac:: required file `config.h.in' not found
Makefile.am: installing `./depcomp'
Qt@zengjf:~/cmdTest/psplash-master$ autoreconf --install
Qt@zengjf:~/cmdTest/psplash-master$ ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc
configure: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-linux-strip... no
checking for strip... 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 for style of include used by make... GNU
checking for arm-linux-gcc... arm-linux-gnueabihf-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether arm-linux-gnueabihf-gcc accepts -g... yes
checking for arm-linux-gnueabihf-gcc option to accept ISO C89... none needed
checking dependency style of arm-linux-gnueabihf-gcc... gcc3
checking for library containing strerror... none required
checking for arm-linux-gcc... (cached) arm-linux-gnueabihf-gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether arm-linux-gnueabihf-gcc accepts -g... (cached) yes
checking for arm-linux-gnueabihf-gcc option to accept ISO C89... (cached) none needed
checking dependency style of arm-linux-gnueabihf-gcc... (cached) gcc3
checking how to run the C preprocessor... arm-linux-gnueabihf-gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
Qt@zengjf:~/cmdTest/psplash-master$ make
make all-am
make[]: Entering directory `/home/Qt/cmdTest/psplash-master'
arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -g -Wall -Wextra -D_GNU_SOURCE -g -O2 -MT psplash.o -MD -MP -MF .deps/psplash.Tpo -c -o psplash.o psplash.c
mv -f .deps/psplash.Tpo .deps/psplash.Po
arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -g -Wall -Wextra -D_GNU_SOURCE -g -O2 -MT psplash-fb.o -MD -MP -MF .deps/psplash-fb.Tpo -c -o psplash-fb.o psplash-fb.c
mv -f .deps/psplash-fb.Tpo .deps/psplash-fb.Po
arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -g -Wall -Wextra -D_GNU_SOURCE -g -O2 -MT psplash-console.o -MD -MP -MF .deps/psplash-console.Tpo -c -o psplash-console.o psplash-console.c
mv -f .deps/psplash-console.Tpo .deps/psplash-console.Po
arm-linux-gnueabihf-gcc -g -Wall -Wextra -D_GNU_SOURCE -g -O2 -o psplash psplash.o psplash-fb.o psplash-console.o
arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -g -Wall -Wextra -D_GNU_SOURCE -g -O2 -MT psplash-write.o -MD -MP -MF .deps/psplash-write.Tpo -c -o psplash-write.o psplash-write.c
mv -f .deps/psplash-write.Tpo .deps/psplash-write.Po
arm-linux-gnueabihf-gcc -g -Wall -Wextra -D_GNU_SOURCE -g -O2 -o psplash-write psplash-write.o
make[]: Leaving directory `/home/Qt/cmdTest/psplash-master'
Qt@zengjf:~/cmdTest/psplash-master$ ls
aclocal.m4 config.log install-sh psplash psplash-console.o psplash.o Screenshot-img.h
AUTHORS config.status Makefile psplash-bar-img.h psplash.doap psplash-poky-img.h Screenshot.png
autom4te.cache configure Makefile.am psplash.c psplash-fb.c psplash-write stamp-h1
base-images configure.ac Makefile.in psplash-colors.h psplash-fb.h psplash-write.c
ChangeLog COPYING make-image-header.sh psplash-config.h psplash-fb.o psplash-write.o
config.h depcomp missing psplash-console.c psplash.h radeon-font.h
config.h.in INSTALL NEWS psplash-console.h psplash-hand-img.h README
Qt@zengjf:~/cmdTest/psplash-master$