MiniGUI3.0.12 移植到mini2440

环境:

PC:debian 6

硬件:mini2440

arm-linux-gcc:2440 自带的arm-linux-gcc-4.4.3.tar


软件包:

jpegsrc.v8c.tar.gz
minigui-res-be-3.0.12.tar.gz
libminigui-gpl-3.0.12.tar.gz
freetype-1.3.1.tar.gz
mg-samples-3.0.12.tar.gz
libpng-1.0.59.tar.gz
zlib-1.2.6.tar.gz


移植开始:

step1:建目录/opt/minigui/arm/cross,编译完的目标文件全部放在cross目录下。源文件解压到/opt/minigui/arm下


step2:编译Freetype库
cd  freetype-1.3.1/
./configure  --host=arm-linux  --enable-static  --prefix=/opt/minigui/arm/cross
vi Makefile
第12行  all:  ttlib  ttest  ttpo为all:  ttlib  ttpo
第34行  注释(或删)掉,即#cd   $(FTTESTDIR);  $(MAKE)  -f  $(MAKEFILE)  install
否则make就会出现错误
make
make  install

step3:编译JPEG库
cd  jpeg-8c/

CC=arm-linux-gcc \

CXX=arm-linux-g++ \
LD=arm-linux-ld  \
AS=arm-linux-as  \
AR=arm-linux-ar  \
./configure  --prefix=/opt/minigui/arm/cross  --build=i386-linux  \
--host=arm-linux  --target=arm-linux  --enable-shared

make
make  install


step4:编译PNG库
cd  libpng-1.0.59/
CC=arm-linux-gcc \
CXX=arm-linux-g++ \
LD=arm-linux-ld  \
AS=arm-linux-as  \
AR=arm-linux-ar \
./configure  --prefix=/opt/minigui/arm/cross  --build=i386-linux  \
--host=arm-linux  --target=arm-linux

make
make  install


step5:编译zlib库
cd  zlib-1.2.6/
CC=arm-linux-gcc \
CXX=arm-linux-g++  \
LD=arm-linux-ld \
AS=arm-linux-as \
AR=arm-linux-ar \
./configure  --prefix=/opt/minigui/arm/cross  --shared


make
make  install


step6:编译资源库
cd  minigui-res-be-3.0.12/
CC=arm-linux-gcc \
CXX=arm-linux-g++ \
LD=arm-linux-ld  \
AS=arm-linux-as  \
AR=arm-linux-ar  \
./configure  --prefix=/opt/minigui/arm/cross


make
make  install


step7:编译核心库
cd  libminigui-gpl-3.0.12/
CC=arm-linux-gcc \
CXX=arm-linux-g++ \
LD=arm-linux-ld \
AS=arm-linux-as \
AR=arm-linux-ar \ 
CFLAGS="-I/opt/minigui/arm/cross/include -I/opt/toolschain/4.4.3/arm-none-linux-gnueabi/include " \
CPPFLAGS="-g -I/opt/minigui/arm/cross/include -I/opt/toolschain/4.4.3/arm-none-linux-gnueabi/include " \
CXXFLAGS="-g -I/opt/minigui/arm/cross/include -I/opt/toolschain/4.4.3/arm-none-linux-gnueabi/include " \
./configure  --prefix=/opt/minigui/arm/cross  --host=arm-linux  \
--target=arm-linux  --build=i386-linux  --with-osname=linux  \
--with-targetname=fbcon  --enable-autoial  \
--disable-vbfsupport  --enable-tslibial
(上面的--enable-tslibial选项是minigui支持触摸屏必选的选项)
在configure过程中会提示找不到某个文件,不要理它。继续


make
make  install


step8:编译示例库

cd  mg-samples-3.0.12/

这个库 好像有问题。其实我们只要make一个helloword出来测试是否移植成功就可以了。哪就手工编译一个helloworld

cd /opt/minigui/arm/mg-samples-3.0.12/src

arm-linux-gcc -o helloworld helloworld.c -L/opt/minigui/arm/cross/lib -lminigui_ths -ljpeg -lm -lpthread -ldl -lpng -lts -I/opt/minigui/arm/cross/include

ok,编译成功。


交叉编译完成。把上面生成的minigui库拷贝到mini2440的根文件系统中。我用的是nfs

cp /opt/minigui/arm/cross /opt/2440/rootfs_qtopia_qt4/usr/local -dr 


修改开发板上minigui配置文件vi /usr/local/etc/MiniGUI.cfg

把其中的system段修改成如下:

[system]
# GAL engine and default options
gal_engine=fbcon
defaultmode=240x320-16bpp


# IAL engine
ial_engine=tslib
#ial_engine=console
#mdev=/dev/input/mice
mdev=/dev/input/event0
mtype=IMPS2


[fbcon]
defaultmode=240x320-16bpp


接下来就要移植tslib

下载源码

$ git clone https://github.com/kergoth/tslib
编译:
$ ./autogen.sh
$ ./configure --host=arm-linux --prefix=/opt/minigui/arm/cross/tslib
$ make
$ make install

完成后把tslib拷贝到mini2440 /usr/local中

配置tslib环境:

export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal_a70
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib


另外/usr/local/tslib/etc/ts.conf 中的内容应该是:

module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

运行/usr/local/tslib/bin/ts_calibrate 校准触摸屏

最后把helloworld拷贝到2440中.运行。


参考:

http://hi.baidu.com/tracyangrad/item/81c11a0cfc89560b6c904866

http://www.latelee.org/embedded-linux/120-porting-linux-tslib.html

http://sgbihu.com/?p=249



你可能感兴趣的:(miniGUI)