OK335xS psplash Screen 移植

/***********************************************************************
 *                   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$ 
        

 

点赞