• [转]miniGUI3.0.12移植到Hi3531


    转自:http://www.alaiblog.com/minigui/porting-minigui3-0-12-to-hi3531.html

    之前一直在用miniGUI2.0的版本,看到现在miniGui3.0 GPL开源了,所以下载来移植到Hi3531平台上,下面阿来详细将这个移植过程记录如下:

    一、移植资源包:

    下载miniGUI3.0.12组件

    简单介绍一下各个库:

    freetype:字体

    qvfb2和gvfb::虚拟显存,主要用在pc机上做仿真

    jpegsrc:显示jpeg图像时要用到的库

    libpng:显示png图像时要用到的库

    zlib:PNG压缩算法

    libminigui:minigui3.0.12的核心库

    minigui-res:minigui3.0.12资源文件,包括字体、图标、位图等

    mg-samples:minigui3.0.12例子程序

    minigui3.0.12可选组件: libmg3d(3D支持)、libmgi(提供输入接口)、libmgp(提供打印机接口的支持)、 libmgplus(2D矢量图支持和图像加速)、libmgutils(提供一些常用对话框的模板),可以根据自己的需要来使用。

    在这里我只安装了freetype,zlib,,jpegsrc,,libpng, libmgplus以及res,主库,和sample。

    这里提示下,下面操作的安装目录是:/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi  这里你自己选择合适的安装目录就可以了。

    二、编译zlib库

    编译配置脚本:

    1. [root@localhost]CC=arm-hisiv100nptl-linux-gcc \   
    2.                 CXX=arm-hisiv100nptl-linux-g++  \   
    3.                 LD=arm-hisiv100nptl-linux-ld    \   
    4.                 AS=arm-hisiv100nptl-linux-as    \   
    5.                 AR=arm-hisiv100nptl-linux-ar    \   
    6.                 ./configure     \   
    7.                 --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi       \   
    8.                 --shared   
    9. [root@localhost] make   
    10. [root@localhost] make install   

    三、编译png库

    编译配置脚本:

    1. [root@localhost]CC=arm-hisiv100nptl-linux-gcc \   
    2.                 CXX=arm-hisiv100nptl-linux-g++  \   
    3.                 LD=arm-hisiv100nptl-linux-ld    \   
    4.                 AS=arm-hisiv100nptl-linux-as    \   
    5.                 AR=arm-hisiv100nptl-linux-ar    \   
    6.                 ./configure     \   
    7.                 --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi       \   
    8.                 --build=i386-linux      \   
    9.                 --host=arm-hisiv100nptl-linux   \   
    10.                 --target=arm-hisiv100nptl-linux \   
    11. [root@localhost] make   
    12. [root@localhost] make install   

    注意;如果编译时报错提示zlib库没有安装的,解决方法:

    在编译之前(我是在configure之前),手动指定一下参数:

    1. export CFLAGS="-I/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/include"  
    2. export LDFLAGS="-L/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/lib"  

    四、编译jpeg库

    编译配置脚本:

    1. [root@localhost]CC=arm-hisiv100nptl-linux-gcc \   
    2.                 CXX=arm-hisiv100nptl-linux-g++  \   
    3.                 LD=arm-hisiv100nptl-linux-ld    \   
    4.                 AS=arm-hisiv100nptl-linux-as    \   
    5.                 AR=arm-hisiv100nptl-linux-ar    \   
    6.                 ./configure     \   
    7.                 --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi       \   
    8.                 --build=i386-linux      \   
    9.                 --host=arm-hisiv100nptl-linux   \   
    10.                 --target=arm-hisiv100nptl-linux \   
    11.                 --enable-shared \   
    12. [root@localhost] make   
    13. [root@localhost] make install   

     五、编译freetype库

    编译配置脚本:

    1. [root@localhost]./configure     \   
    2.                 --host=arm-hisiv100nptl-linux   \   
    3.                 --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi     \   
    4.                 --enable-static \  

    运行配置脚本后,修改:

    1. [root@localhost] vim config.cache   
    2. # 修改如下行   
    3. ac_cv_path_LD=${ac_cv_path_LD=arm-linux-gnu-ld}   
    4. ac_cv_prog_CC=${ac_cv_prog_CC=arm-linux-gnu-gcc}   
    5. ac_cv_prog_CPP=${ac_cv_prog_CPP='arm-linux-gnu-gcc -E'}   
    6. #重新配置,再运行一次配置脚本
    7. #修改Makefile文件,以跳过编译test目录。
    8. # 去掉“all:”后的变量“tttest”
    9. # 注释掉“install:”下的第二行:“cd $(FTTESTDIR); $(MAKE) –f$(MAKEFILE) install”

    之后编译:

    1. [root@localhost]make   
    2. [root@localhost]make install  

    六、安装minigui资源库

    编译配置脚本:

    1. [root@localhost]CC=arm-hisiv100nptl-linux-gcc \   
    2.                 CXX=arm-hisiv100nptl-linux-g++  \   
    3.                 LD=arm-hisiv100nptl-linux-ld    \   
    4.                 AS=arm-hisiv100nptl-linux-as    \   
    5.                 AR=arm-hisiv100nptl-linux-ar    \   
    6.                 ./configure     \   
    7.                 --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi       \   
    8. [root@localhost]make   
    9. [root@localhost]make install   

    七、编译minigui核心库

    编译配置脚本:

    1. [root@localhost]CC=arm-hisiv100nptl-linux-gcc \   
    2.                 CPP=arm-hisiv100nptl-linux-cpp \   
    3.                 LD=arm-hisiv100nptl-linux-ld    \   
    4.                 AR=arm-hisiv100nptl-linux-ar    \   
    5.                 RANLIB=arm-hisiv100nptl-linux-ranlib    \   
    6.                 STRIP=arm-hisiv100nptl-linux-strip      \   
    7.                 LDFLAGS="-L/home/minicross/miniarm/lib_hi3531"  \   
    8.                 CPPFLAGS="-I/home/minicross/miniarm/include_hi3531"     \   
    9.                 ./configure     \   
    10.                 --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi       \   
    11.                 --build=x86_64-linux    \   
    12.                 --host=arm-hisiv100nptl-linux   \   
    13.                 --target=arm-hisiv100nptl-linux \   
    14.                 --disable-screensaver   \   
    15.                 --disable-splash        \   
    16.                 --disable-jpgsupport    \   
    17.                 #--with-osname=linux     \   
    18.                 #--with-targetname=fbcon \   
    19.                 #--enable-autoial        \   
    20.                 #--disable-vbfsupport    \  

    运行完配置脚本后,会出现这样的提示:

    Going to generate license pictures ...

    ./configure: line 15530: ./runme.sh: No such file or directory

    不用理会这个提示,继续往下操作。

    修改:vim src/newgal/pcxvfb/Makefile 的194行,将/usr/include去掉

    INCLUDES = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include \

    -I$(abs_top_srcdir)/src/newgal/ -I/usr/include/

    否则编译pcxvfb.c将出错

    之后再编译安装:

    1. [root@localhost]make   
    2. [root@localhost]make install  

    八、编译libmgplus

    编译配置脚本:

    1. CC=arm-hisiv100nptl-linux-gcc \   
    2. CPP=arm-hisiv100nptl-linux-cpp \   
    3. LD=arm-hisiv100nptl-linux-ld    \   
    4. AR=arm-hisiv100nptl-linux-ar    \   
    5. RANLIB=arm-hisiv100nptl-linux-ranlib    \   
    6. STRIP=arm-hisiv100nptl-linux-strip      \   
    7. ./configure     \   
    8. --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi       \   
    9. --build=x86_64-linux    \   
    10. --host=arm-hisiv100nptl-linux   \   
    11. --target=arm-hisiv100nptl-linux \   

    make编译时候会出现错误:

    configure: WARNING: using cross tools not prefixed with host triplet

    checking pkg-config is at least version0.9.0... yes

    checking for MINIGUI... configure: error: Package requirements (minigui >=3.0.10) were not met:

    No package 'minigui' found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you

    installed software in a non-standard prefix.

    Alternatively, you may set the environment variables MINIGUI_CFLAGS

    and MINIGUI_LIBS to avoid the need to call pkg-config.

    See the pkg-config man page for more details.

    解决方法:

    1. export PKG_CONFIG_PATH=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/lib/pkgconfig/  
    1. [root@localhost]make   
    2. [root@localhost]make install  

    九、编译minigui例子程序

    编译配置脚本:

    1. [root@localhost]CC=arm-hisiv100nptl-linux-gcc \   
    2.                 CPP=arm-hisiv100nptl-linux-cpp \   
    3.                 LD=arm-hisiv100nptl-linux-ld    \   
    4.                 AR=arm-hisiv100nptl-linux-ar    \   
    5.                 RANLIB=arm-hisiv100nptl-linux-ranlib    \   
    6.                 STRIP=arm-hisiv100nptl-linux-strip      \   
    7.                 ./configure     \   
    8.                 --prefix=/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi       \   
    9.                 --build=x86_64-linux    \   
    10.                 --host=arm-hisiv100nptl-linux   \   
    11.                 --target=arm-hisiv100nptl-linux \  

    在配置阶段或遇到环境变量的问题,但是在配置了环境变量后还是出现错误,就直接在configure文件中添加了变量,这样才通过配置。修改如下:

    vim configure

    # 在 $as_echo_n "checking for MINIGUI... " >&6; }后添加如下变量:

    1. MINIGUI_CFLAGS = -I/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/include   
    2. MINIGUI_LIBS = -L/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/lib  

    然后开始make,又出现如下错误:no such file: File format not recognized collect2: ld returned 1 exit status。经过网上查资料后发现是生成的Makefile有问题,需要逐个修改Makefile。修改每个Makefile中的如下行:

    1. LDFLAGS = -lminigui_ths -ljpeg -lm -lpthread -ldl -lz –lpng   
    2. LIBS =  -L/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/lib   

    这样就可以编译生成可执行文件了。。。

    十、修改MiniGUI.cfg

    将MiniGUI.cfg的开头部分改为:

    1. [system]   
    2. # GAL engine and default options   
    3. gal_engine=fbcon  
    4. defaultmode=800x480-16bpp (对应板子分辨率)   
    5. # IAL engine   
    6. ial_engine=console  
    7. mdev=/dev /mice   
    8. mtype=IMPS2  
    9. [fbcon]   
    10. defaultmode=800x480-16bpp  

    修改res资源放置的路径,在配置文件中的[cursorinfo]->cursorpath以及[resinfo]->respath

    否则运行sample程序时会出错。

    修改路径:

    1. 103 [cursorinfo]   
    2. 104 # Edit following line to specify cursor files path   
    3. 105  cursorpath=/usr/local/share/minigui/res/cursor/  
    1. 131 [resinfo]   
    2. 132 respath=/usr/local/share/minigui/res/  

    到这里就大功告成了………

  • 相关阅读:
    Style file: generic.xaml
    OpenCV源码分析:RGB到其他色彩空间的转换
    3D《四大名捕 大结局》
    Halcon 10.0:Hobject图像转CBitmap
    Halcon 映射校正例程注释(MapImage)
    信息论-基础知识
    注释:这50个词,在这10月30号之前完成
    谱聚类(Spectral Clustering, SC)
    K-means聚类算法
    利用Adapter对象将数据填充到DataTable(或DataSet)的例子
  • 原文地址:https://www.cnblogs.com/pengzhiwei/p/3035394.html
Copyright © 2020-2023  润新知