您的位置:首页 > 编程语言 > Qt开发

韦东山开发板QT移植笔记

2015-12-29 16:48 656 查看
参考 《百问网精智JZ2440开发板4.3寸LCD版使用手册.pdf2015/12/29》

修改环境变量:

sudo vi /etc/environment

修改:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"

改为:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin/"

编译依赖库/work/GUI/qtopia/deps/jpegsrc.v6b.tar.gz

tar xzf jpegsrc.v6b.tar.gz

cd jpeg-6b/

./configure --enable-shared --enable-static --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux --build=i386 --host=arm

make

make install-lib

编译依赖库/wok/GUI/qtopia/deps/e2fsprogs-1.40.2.tar.gz

mkdir build

cd build

../configure --with-cc=arm-linux-gcc --with-linker=arm-linux-ld --enable-elf-shlibs --host=arm -prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

make

make install-libs

编译依赖库/wok//GUI/qtopia/deps/libpng-1.2.23.tar.bz2

tar xjf libpng-1.2.23.tar.bz2

cd libpng-1.2.23/

cp scripts/makefile.linux ./Makefile

修改 Makefile,以下是修改后的结果,都加上了“ arm-linux-”前缀:

AR_RC=arm-linux-ar rc

CC=arm-linux-gcc

……

RANLIB=arm-linux-ranlib

……

prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

make

make install

编译依赖库/wok/GUI/qtopia/deps/tslib-1.3.tar.bz2

./autogen.sh

echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

在 make 之前,为了支持触摸屏修改 src/ts_read_raw.c 文件,如下修改代码:

char *defaulttseventtype="UCB1x00";

改为:

char *defaulttseventtype="H3600";

步骤如下:

vi src/ts_read_raw.c

为 了 防 止 出 现 “libtool:link: only absolute run-paths are allowed “ 的 错 误 , 在

plugins/Makefile 里面找 rpath,找到将其注释并加上绝对路径:

#LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)

LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`

步骤如下:

vi plugins/Makefile

/rpath

make

make install

使用补丁修改、编译 QT

/wok/GUI/qtopia 目 录 下 , qtopia-free-src-2.2.0.tar.gz 是 未 经 修 改 的 内 核 源 码 ,

qtopia-free-2.2.0_jz2440.patch 是针对 JZ2440 开发板的补丁文件。

tar xzf qtopia-free-src-2.2.0.tar.gz

cd qtopia-free-2.2.0

patch -p1 < ../qtopia-free-2.2.0_jz2440.patch

./configure -qte '-embedded -xplatform linux-arm-g++ -qconfig qpe -depths 16,24 -no-qvfb -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -lts' -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 240x320' -qt2 '-no-xft' -dqt '-no-xft'

make

make install

制作根目录:

sudo tar xjf fs_mini_mdev.tar.bz2

mv fs_mini_mdev fs_myqtopia

sudo chown book:book fs_myqtopia –R

复制依赖库:

cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/

cp libpng.so* /work/nfs_root/fs_myqtopia/lib/ -d

cp libjpeg.so* /work/nfs_root/fs_myqtopia/lib/ -d

cp libuuid.so* /work/nfs_root/fs_myqtopia/lib/ -d

cp libz.so* /work/nfs_root/fs_myqtopia/lib/ -d

安装触摸屏所依赖文件:

cd /work/GUI/qtopia/deps/tslib-1.3

make prefix=/work/nfs_root/fs_myqtopia/usr/ install

cp /work/nfs_root/fs_myqtopia/usr/etc/ts.conf /work/nfs_root/fs_myqtopia/etc/

cd /work/nfs_root/fs_myqtopia/etc/

vi ts.conf

复制字库:

cd /work/GUI/qtopia/qtopia-free-2.2.0/

mkdir image/opt/Qtopia/lib/ -p

cp -rf qt2/lib/fonts qtopia/image/opt/Qtopia/lib/

cp -rf qtopia/image/opt /work/nfs_root/fs_myqtopia

创建时区文件

cd /work/nfs_root/fs_myqtopia

mkdir -p usr/share/zoneinfo/

cp -rf /usr/share/zoneinfo/America usr/share/zoneinfo/

cp /usr/share/zoneinfo/zone.tab usr/share/zoneinfo/

建立一个脚本文件, 用来较验触摸屏

在单板根目录/bin 下建立 ts_cal.sh 文件,内容如下:

#!/bin/sh

export HOME=/root

export QTDIR=/opt/Qtopia

export QPEDIR=/opt/Qtopia

export QWS_DISPLAY=LinuxFb:/dev/fb0

export QWS_KEYBOARD="TTY:/dev/tty1"

#export QWS_MOUSE_PROTO="USB:/dev/mouse0"

export QWS_MOUSE_PROTO="TPanel:/dev/ts0"

export PATH=$QPEDIR/bin:$PATH

export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH

export TSLIB_TSDEVICE=/dev/ts0

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_PLUGINDIR=/usr/share/ts/plugins

export TSLIB_TSEVENTTYPE="H3600"

/usr/bin/ts_calibrate

步骤如下:

vi bin/ts_cal.sh

chmod +x /work/nfs_root/fs_myqtopia/bin/ts_cal.sh

建立一个脚本文件, 用来运行 qtopia

在单板根目录/bin 下建立 qpe.sh 文件, 它用来设置环境变量、 启动 qtopia。 内容如下:

#!/bin/sh

export HOME=/root

export QTDIR=/opt/Qtopia

export QPEDIR=/opt/Qtopia

export QWS_DISPLAY=LinuxFb:/dev/fb0

export QWS_KEYBOARD="TTY:/dev/tty1"

#export QWS_MOUSE_PROTO="USB:/dev/mouse0"

export QWS_MOUSE_PROTO="TPanel:/dev/ts0"

export PATH=$QPEDIR/bin:$PATH

export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH

export TSLIB_TSDEVICE=/dev/ts0

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_PLUGINDIR=/usr/share/ts/plugins

export TSLIB_TSEVENTTYPE="H3600"

if [ ! -e /etc/pointercal ]

then

/bin/ts_cal.sh

fi

$QPEDIR/bin/qpe &

步骤如下:

vi bin/qpe.sh

建立/root 目录:

mkdir -p /work/nfs_root/fs_myqtopia/root

修改根文件系统的启动脚本:

mkdir -p /work/nfs_root/fs_myqtopia/tmp

vi /work/nfs_root/fs_myqtopia/etc/fstab

加入:tmpfs /tmp tmpfs defaults 0 0

最后,修改启动脚本/work/nfs_root/fs_qtopia/etc/init.d/rcS,在最后加入以下一行:

/bin/qpe.sh &

还要修改它的属性:

$ chmod +x /work/nfs_root/fs_qtopia/bin/qpe.sh

步骤如下:

vi /work/nfs_root/fs_myqtopia/etc/init.d/rcS

chmod +x /work/nfs_root/fs_myqtopia/bin/qpe.sh

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.113:/work/nfs_root/fs_myqtopia ip=192.168.1.17:192.168.1.19:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200 user_debug=0xff

nfs 30000000 192.168.1.113:/work/nfs_root/uImage_4.3 ; bootm 30000000

程序编译:

export QTDIR=/work/GUI/qtopia/qtopia-free-2.2.0/qt2

export QPEDIR=/work/GUI/qtopia/qtopia-free-2.2.0/qtopia/

export QMAKESPEC=/work/GUI/qtopia/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/

$QPEDIR/bin/qmake

cp ./helloworld.png /work/nfs_root/fs_myqtopia/opt/Qtopia/pics/

cp ./helloworld /work/nfs_root/fs_myqtopia/opt/Qtopia/bin/

cp ./helloworld.desktop /work/nfs_root/fs_myqtopia/opt/Qtopia/apps/Applications/

挂载U盘和SD卡

mount /dev/sda1 /root/Applications/Dictionary

mount /dev/mmcblk0p1 /mnt

到此QT移植成功

有图有真相,现在把实验图片上传上来:







但是这里有一个问题,就是这里的音乐播放器不能够播放SD卡了的音乐,浏览也不行,我把SD卡挂载到/mnt目录已经成功了,但是音乐确实播放不了

这一点有待研究!

这里把最后得到的更文件目录和内核上传上来:
http://download.csdn.net/detail/chengdong1314/9382353
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: