• 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$ 
            
  • 相关阅读:
    HDU-1702-ACboy needs your help again!(Stack)
    HDU1276-士兵队列训练问题 (Queue)
    HDU1285-确定比赛名次(拓扑+优先队列)
    The Preliminary Contest for ICPC Asia Nanjing 2019
    拓扑排序板子 hihocoder-1174
    BZOJ1066 [SCOI2007]蜥蜴
    BZOJ3888 [Usaco2015 Jan]Stampede
    BZOJ1718 [Usaco2006 Jan] Redundant Paths 分离的路径
    BZOJ1112 [POI2008]砖块Klo
    BZOJ1031 [JSOI2007]字符加密Cipher
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5399056.html
Copyright © 2020-2023  润新知