社区导航

 

搜索
查看: 4344|回复: 6

[经验] Helper2416开发板移植minigui3.0.12之二:移植到开发板

[复制链接]

42

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-24 23:47 | 显示全部楼层 |阅读模式
本帖最后由 Gyroxp 于 2015-1-25 11:51 编辑

第二阶段:移植minigui到Helper2416开发板
  让开发板运行minigui要稍微麻烦一些,主要是配置时不能仅仅./configure就搞定,参考文章也不一定说得全对,可能需要自己阅读configure文件的配置选项,再加以实测。
  此文假定开发板的根目录挂载到/myrootfs目录,minigui相应就安装到/myrootfs/usr/local目录。
  /myrootfs由Helper2416开发板随机所带root-qtopia.tar.xz文件解压,改改名即可。

一. 安装资源包 minigui-res-be-3.0.12
  解压 $tar zxf minigui-res-be-3.0.12.tar.gz
  切入 $cd minigui-res-be-3.0.12
  配置 $./configure --prefix=/myrootfs/usr/local
  安装 $sudo make install
  除了配置一下前缀,跟安装到PC上没有区别,仍然最轻松愉快的一项。
  
二. 编译核心库 libminigui-gpl-3.0.12
  解压 $tar xzvf libminigui-gpl-3.0.12.tar.gz
  切入 $cd libminigui-gpl-3.0.12
  配置 书写配置脚本 cfg_libminigui_hlpr2416 (见下)
       $source ./cfg_libminigui_hlpr2416
       书写一个配置脚本的好处显而易见:免得每次都敲一大堆字母,日后也可作为参考。
  编译 $make
  安装 $sudo make install
###### cfg_libminigui_hlpr2416 开始######
#!/bin/bash
rm config.cache config.status -f
TOOL_CHAINS_PATH="/opt/toolchains/arm-jyxtec-linux-gnueabi/bin"
INSTALL_PATH="/myrootfs/usr/local"
export CC=${TOOL_CHAINS_PATH}/arm-linux-gcc
export RANLIB=${TOOL_CHAINS_PATH}/arm-linux-ranlib  #compile need
./configure  --prefix=${INSTALL_PATH} \
    --build=i386-linux \
    --host=arm-linux \
    --disable-pcxvfb \
    --disable-videoqvfb \
    --disable-screensaver \
    --enable-tslibial \
    --disable-pngsupport
#选项说明
#--build=i386-linux    编译者
#--host=arm-linux      运行者
#--disable-pcxvfb      必须禁止,否则无法通过编译
#--disable-videoqvfb   禁止qvfb,此类选项可以选择禁止
#--disable-screensaver 禁止屏幕保护
#--enable-tslibial     使用触摸屏必须使能
#--disable-pngsupport  如果禁止png支持,则minigui.pc里Libs无-lpng项;jpeg类似
###### cfg_libminigui_hlpr2416 结束######

三. 编译 libmgplus-1.2.4
  跟在PC上一样,缺少此库后续的示例程序包无法一次性全部编译。
  解压 $tar xzvf libmgplus-1_2_4.tar.gz
  切入 $cd libmgplus-1_2_4
  配置 书写配置脚本 cfg_libmgplus_hlpr2416
       $source ./cfg_libmgplus_hlpr2416
  编译 $make
  安装 $sudo make install
###### cfg_libmgplus_hlpr2416 开始######
#!/bin/bash
rm config.cache config.status -f
TOOL_CHAINS_PATH="/opt/toolchains/arm-jyxtec-linux-gnueabi/bin"
INSTALL_PATH="/myrootfs/usr/local"
export PKG_CONFIG_PATH="${INSTALL_PATH}/lib/pkgconfig"  #config need
export CC=${TOOL_CHAINS_PATH}/arm-linux-gcc
export CXX=${TOOL_CHAINS_PATH}/arm-linux-g++  #compile need
export RANLIB=${TOOL_CHAINS_PATH}/arm-linux-ranlib  #compile need
export CXXFLAGS="-I${INSTALL_PATH}/include"  #compile need
./configure  --prefix=${INSTALL_PATH} \
    --build=i386-linux \
    --host=arm-linux
###### cfg_libmgplus_hlpr2416 结束######

四. 编译 tslib-1.4
  虽然Helper2416开发板已经自带tslib库,但安装位置跟默认不一致,因此重新编译安装一下,避免后续编译示例程序包的时候到处去寻找,编译也并不麻烦。
  解压 $tar xzvf tslib-1.4.tar.gz
  切入 $cd tslib-1.4
  配置 书写配置脚本 cfg_tslib_hlpr2416
       $source ./cfg_tslib_hlpr2416
  编译 $make
  安装 $sudo make install
###### cfg_tslib_hlpr2416 开始######
#!/bin/bash
rm config.cache config.status -f
TOOL_CHAINS_PATH="/opt/toolchains/arm-jyxtec-linux-gnueabi/bin"
INSTALL_PATH="/myrootfs/usr/local"
export CC=${TOOL_CHAINS_PATH}/arm-linux-gcc
./configure  --prefix=${INSTALL_PATH} \
    --build=i386-linux \
    --host=arm-linux \
###### cfg_tslib_hlpr2416 结束######

五. 编译示例程序包 mg-samples-3.0.12
  解压 $tar xzvf mg-samples-3.0.12.tar.gz
  切入 $cd mg-samples-3.0.12
  配置 书写配置脚本 cfg_mg-samples_hlpr2416
       $source ./cfg_mg-samples_hlpr2416
  编译 $make
       成功则在src/目录下可以看到编译好的示例程序。
###### cfg_mg-samples_hlpr2416 开始######
#!/bin/bash
rm config.cache config.status -f
TOOL_CHAINS_PATH="/opt/toolchains/arm-jyxtec-linux-gnueabi/bin"
INSTALL_PATH="/myrootfs/usr/local"
export PKG_CONFIG_PATH="${INSTALL_PATH}/lib/pkgconfig"  #config need
export CC=${TOOL_CHAINS_PATH}/arm-linux-gcc
export CFLAGS="-I${INSTALL_PATH}/include"  #config need
export LIBS="-lts"  #ts compile need
./configure  \
    --build=i386-linux \
    --host=arm-linux \
#export CFLAGS
#  虽然指定了 PKG_CONFIG_PATH ,但貌似并没把Cflags提取出来,这里依然要指定
#  否则找不到 minigui/common.h
#export LIBS="-lts"
#  虽然指定了 PKG_CONFIG_PATH ,但貌似并没有把Libs提取出来,依然要指定选项
#  否则无法链接tslib
###### cfg_mg-samples_hlpr2416 结束######

六. 在开发板运行minigui
1. 由于tslib重新编译安装过,因此要将/myrootfs/usr/local/etc/ts.conf文件的第2行 #module_raw input 前的#去掉
2. 修改运行时配置文件 /myrootfs/usr/local/etc/MiniGUI.cfg
    [system]
    gal_engine=pc_xvfb  -->  gal_engine=fbcon
    ial_engine=pc_xvfb  -->  ial_engine=tslib
    [fbcon]
    defaultmode=1024x768-16bpp  -->  defaultmode=480x272-16bpp  此行必须与实际屏对应,否则运行时出错。
    只需修改这3行。
3. 修改 /myrootfs/etc/init.d/rcS,禁止qtopia自动运行
4. 参照 /myrootfs/bin/qtopia 脚本编写一个触摸屏配置脚本cfg_ts,拷贝到 /myrootfs 目录
5. 启动开发板,根目录挂载到宿主机 /myrootfs 目录
    开发板执行触摸屏配置脚本 #source /cfg_cs
5. 将 mg-samples-3.0.12/src 目录的可执行程序拷入开发板即可执行;
    也可以通过nfs挂载/src目录并执行。
###### cfg_ts 开始######
#!/bin/sh
# tsconfig begin
unset TS_INFO_FILE
if [ -c /dev/input/event0 ]; then
    INPUT_PATH=/dev/input
else
    INPUT_PATH=/dev
fi
export TSLIB_TSDEVICE=$INPUT_PATH/event1
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_TSEVENTTYPE=H3600
export TSLIB_FBDEVICE=/dev/fb0
# tsconfig end
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/ts:$LD_LIBRARY_PATH
###### cfg_ts 结束######

全文完。
Helper2416运行minigui版helloworld.jpg

回复

使用道具 举报

594

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-1-25 00:11 来自手机 | 显示全部楼层
这个作业可以得良好了!

回复

使用道具 举报

939

TA的帖子

3

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2015-1-25 09:14 | 显示全部楼层
相当给力

回复

使用道具 举报

22

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-25 10:07 | 显示全部楼层
兄弟给力,期待再接再厉2

回复

使用道具 举报

42

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-1-25 11:53 | 显示全部楼层
加个图片,争取评个优

回复

使用道具 举报

11

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2015-1-27 13:48 | 显示全部楼层
看看

点评

看看也谢谢,万一以后用得着呢  详情 回复 发表于 2015-1-27 16:05

回复

使用道具 举报

42

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-1-27 16:05 | 显示全部楼层



看看也谢谢,万一以后用得着呢

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-11-15 10:15 , Processed in 0.515071 second(s), 20 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表