/*********************************************************************** * OK335xS psplash Screen 移植 * 说明: * 有时候,每次看到TI的logo自己心里是不爽的,因为本来就是定制的东西, * 为什么还要他的开机Logo呢,于是自己尝试移植编译一下psplash。 * * 2016-4-16 深圳 南山平山村 曾剑锋 **********************************************************************/ 一、参考文档: 1. Customizing the SDK Splash Screen http://processors.wiki.ti.com/index.php/Customizing_the_SDK_Splash_Screen 2. Makefile Makefile.am Makefile.in http://blog.csdn.net/OLillian/article/details/6281126 3. config.h.in missing? #1 https://github.com/stevedh/readingdb/issues/1 二、download: http://git.yoctoproject.org/cgit/cgit.cgi/psplash/commit/ 三、编译、运行流程: 1. aclocal; 2. autoconf; 3. automake --add-missing; 4. autoreconf --install 5. ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc; 6. make. 7. Replace the /usr/bin/psplash file in your root file system with the generated psplash file. 四、编译错误: 1. error: 1. 现象: Qt@zengjf:~/cmdTest/psplash-master$ ./autogen.sh --host=arm-linux CC=arm-linux-gnueabihf-gcc bash: ./autogen.sh: No such file or directory 2. 解决办法: 1. aclocal; 2. autoconf; 3. automake --add-missing; 4. ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc; 5. make. 2. error: 1. 现象: configure.ac:5: required file `config.h.in' not found 2. 解决办法: autoreconf --install 3. error: 1. 现象: ...... Screenshot-img.h:7:16: warning: missing whitespace after the macro name [enabled by default] Screenshot-img.h:7:0: warning: "psplash" redefined [enabled by default] Screenshot-img.h:6:0: note: this is the location of the previous definition psplash.c: In function ‘main’: psplash.c:277:19: error: ‘POKY_IMG_WIDTH’ undeclared (first use in this function) psplash.c:277:19: note: each undeclared identifier is reported only once for each function it appears in psplash.c:282:40: error: ‘POKY_IMG_HEIGHT’ undeclared (first use in this function) psplash.c:286:5: error: ‘POKY_IMG_BYTES_PER_PIXEL’ undeclared (first use in this function) psplash.c:287:5: error: ‘POKY_IMG_ROWSTRIDE’ undeclared (first use in this function) psplash.c:288:5: error: ‘POKY_IMG_RLE_PIXEL_DATA’ undeclared (first use in this function) make[1]: *** [psplash.o] Error 1 make[1]: Leaving directory `/home/Qt/cmdTest/psplash-master' make: *** [all] Error 2 2. 解决办法: ./make-image-header.sh Screenshot.png POKY 3. 原因: psplash.c中的需要用到这个POKY有关的宏名,如果改了,那么这里也要跟着改。 Qt@zengjf:~/cmdTest/psplash-master$ grep POKY * psplash.c: (fb->width - POKY_IMG_WIDTH)/2, psplash.c: (fb->height - POKY_IMG_HEIGHT)/2, psplash.c: / PSPLASH_IMG_SPLIT_DENOMINATOR - POKY_IMG_HEIGHT)/2, 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:3: installing `./install-sh' configure.ac:3: installing `./missing' Makefile.am: installing `./INSTALL' configure.ac:5: 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[1]: 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[1]: 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$