基于QTE的无线KTV点播系统开发环境建立

安装虚拟机软件VMwareWorkstation

二、安装linux操作系统

虚拟机软件安装完成后,就可以在里面安装linux操作系统,这里我使用的

Ubuntu10.04长期支持版。1、安装完成后,进入登陆界面无法使用键盘,解决

办法为:在登陆界面右下角单击小人图案,再单击“UniversalAccess

Perferences”,在弹出的对话框中选中“Useon-screenkeyboard”。重新启动系统

,这时就可以通过上面的步骤打开屏幕键盘,输入相应的密码登陆,登录后

键盘功能正常使用。进入系统之后,要修改/etc/default/console-setup文件的内

容为XKBMODEL="pc105"XKBLAYOUT="us"XKBVARIANT=""XKBOPTIONS=""然后重

启,这样在登入界面时就可能使用键盘了。2、添加管理员用户:在命令行输

入:sudopasswdroot,输入两次密码后添加root账户成功,重启,使用root账

户登录。3、设置软件源:首先备份源列表:cp/etc/apt/sources.list

/etc/apt/sources.list_backup然后用gedit或其他编辑器打开:gedit

/etc/apt/sources.list,到官方选中合适的源,这里我们选择163的源,具体为:

debhttp://mirrors.163.com/ubuntu/lucidmainrestricteduniversemultiverse

debhttp://mirrors.163.com/ubuntu/lucid-securitymainrestricteduniversemultiverse

debhttp://mirrors.163.com/ubuntu/lucid-updatesmainrestricteduniversemultiverse

debhttp://mirrors.163.com/ubuntu/lucid-proposedmainrestricteduniversemultiverse

debhttp://mirrors.163.com/ubuntu/lucid-backportsmainrestricteduniversemultiverse

deb-srchttp://mirrors.163.com/ubuntu/lucidmainrestricteduniversemultiverse

deb-srchttp://mirrors.163.com/ubuntu/lucid-securitymainrestricteduniversemultiverse

deb-srchttp://mirrors.163.com/ubuntu/lucid-updatesmainrestricteduniversemultiverse

deb-srchttp://mirrors.163.com/ubuntu/lucid-proposedmainrestricteduniversemultiverse

deb-srchttp://mirrors.163.com/ubuntu/lucid-backportsmainrestricteduniversemultiverse

替换掉文件中所有的内容保存编辑好的文件。然后刷新列表:

apt-getupdate

因为经常会用到终端:所以把终端加到右键菜单:

apt-getinstallnautilus-open-terminal

至此我们的Linux操作系统基本安装成功。但是语言还是英文,大家可以根据

自己喜好是否调整为中文,调整方法,打开system菜单下administration下的

languagesupport,出现语言配置对话框,然后你可以选中最下面的

installl/removaelanguage安装中文或者其他语言,在调整后重系统起效!

三、安装QT开发工具

安装LinuxPC机下的IDE开发工具QtCreator

下载最新版本的QtSDKforLinux/X1132-bit**(370Mb),里面包括Qt4.6.3以及QtIDE

开发工具QtCreator,由于下载的编译好的二进制包,所以只需要改变一下文

件的属性,变为可执行,命令为:chmod+xqt-sdk-linux-x86-opensource-

2010.04.bin

这样就可以在文件所在的目录里执行一下命令进行安装:

./qt-sdk-linux-x86-opensource-2010.04.bin

安装完成后会在桌面新建一个QtCreator快捷方式。

安装标准C开发环境

apt-getinstallbuild-essentiallibncurses5-dev

安装交叉编译器

进入交叉编译器压缩包所在目录,执行命令:

tarxjvfarm-linux-gcc-3.4.6.tar.bz2-C/usr/local/

设置环境变量:gedit~/.profile在文件最后添加:

exportPATH=$PATH:/usr/local/gcc-3.4.6/arm-linux/bin

使环境变量立即生效,执行命令:

source~/.profile

交叉编译tslib触摸屏库

进入tslib-1.4.tar.bz2压缩包所在目录解压,执行命令:

tarxjvftslib-1.4.tar.bz2

进入解压后的目录:cdtslib-1.4修改脚本:

geditbuild.sh

文件内容修改为:

#/bin/sh

exportCC=arm-linux-gcc

./autogen.sh

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

./configure--host=arm-linux--cache-file=arm-linux.cache-prefix=/usr/local/tslib

make

makeinstall

保存退出,并执行命令:./build.sh

执行完成后就将tslib安装到了/usr/local/tslib下。

交叉编译Qt4.6.3

进入压缩包所在目录,执行命令解压:

tarxzvfqt-everywhere-opensource-src.tar.gz

进入解压后的目录:

cdqt-everywhere-opensource-src

修改错误文件:

geditsrc/3rdparty/freetype/include/freetype/config/ftconfig.h

将第330行修改为:"orr%0,%0,%2,lsl#16/n/t"/*%0|=%2<<16*/

执行以下命令开始配置:

./configure-qt-kbd-tty-qt-gfx-linuxfb-no-gfx-transformed-no-gfx-multiscreen-qt-mouse-

pc-no-gfx-qvfb-no-gfx-vnc-qt-kbd-tty-qt-gfx-linuxfb-no-gfx-qvfb-no-gfx-vnc-qt-mouse-

tslib-no-glib-prefix/usr/local/qte4.6.3-embeddedarm-release-shared-fast-no-

largefile-qt-sql-sqlite-no-qt3support-no-xmlpatterns-no-mmx-no-3dnow-no-sse-no-

sse2-no-svg-no-webkit-qt-zlib-qt-gif-qt-libtiff-qt-libpng-qt-libmng-qt-libjpeg-makelibs

-nomaketools-nomakeexamples-nomakedocs-nomakedemo-no-nis-no-cups-no-

iconv-no-dbus-no-openssl-xplatformqws/linux-arm-g++-little-endian-qt-freetype-

depths16,18-I/usr/local/tslib/include-L/usr/local/tslib/lib-v-D__ARM_ARCH_5TEJ__

然后输入O回车,在输入yes回车开始配置,配置完成后输入以下命令开始编

译:make

编译完成后输入以下命令开始安装:makeinstall

完成后qte就安装到了/usr/local/qte4.6.3下。

四、交叉编译blueZ协议栈及相关依赖库

需要的安装包有:bluez-libs-3.36.tar.gz

libxml2-2.6.11.tar.gz

glib-2.14.4.tar.gz

libsndfile-1.0.17.tar.gz

libusb-0.1.12.tar.gz

dbus-1.0.2.tar.gz

bluez-utils-3.36.tar.gz

openobex-1.3.tar.gz

交叉编译bluez-libs

Source~/.profile

./configure-prefix=/root/bluez/bluez-libs--host=arm-linux

然后复制/root/bluez/bluez-libs/lib/pkgconfig/bluez.pc到/usr/lib/pkgconfig

2、交叉编译libxml

./configure--prefix=/root/bluez/libxml--host=arm-linuxCC=arm-linux-gcc

如果出现找不到编译器错误,则执行source~/.profile

然后将/root/bluez/libxml/lib/pkgconfig/libxml-2.0.pc复制到

/usr/lib/pkgconfig

3、交叉编译glib

apt-getinstallgettext

apt-getinstalllibglib2.0-dev

进入解压后的目录,执行以下命令:

echoac_cv_type_long_long=yes>arm-linux.cache

echoglib_cv_stack_grows=no>>arm-linux.cache

echoglib_cv_uscore=no>>arm-linux.cache

echoac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache

./configure--prefix=/root/bluez/glib--host=arm-linuxCC=arm-linux-gcc--cache-file=arm-

linux.cache

4、交叉编译libsndfile

./configure--prefix=/root/bluez/libsndfile--host=arm-linuxCC=arm-linux-gcc

cp/root/bluez/libsndfile/lib/pkgconfig/sndfile.pc/usr/lib/pkgconfig

5、交叉编译libusb

./configure--prefix=/root/bluez/libusb--host=arm-linuxCC=arm-linux-gcc

cp/root/bluez/libusb/lib/pkgconfig/libusb.pc/usr/lib/pkgconfig

6、交叉编译dbus

echoac_cv_have_abstract_sockets=yes>arm-linux.cache

./configure--host=arm-linux--prefix=/root/bluez/dbusCC=arm-linux-gcc--cache-

file=arm-linux.cache--without-x

7、交叉编译bluez-utils

在bluez-utils-3.36/network/bridge.h中添加如下宏定义:

#defineSIOCBRADDBR0x89a0/*createnewbridgedevice*/

#defineSIOCBRDELBR0x89a1/*removebridgedevice*/

#defineSIOCBRADDIF0x89a2/*addinterfacetobridge*/

#defineSIOCBRDELIF0x89a3/*removeinterfacefrombridge*/

在bluez-utils-3.36/input/storage.c加入宏定义

#defineENOKEY161

apt-getinstalllibbluetooth-dev

apt-getinstalllibcwiid1

./configure--prefix=/root/bluez/bluez-utils--host=arm-linuxCC="arm-linux-gcc-

I/root/bluez/bluez-libs/include-L/root/bluez/bluez-libs/lib"--disable-audio

将所有目录中makefile文件里的wall改为shared

8、交叉编译openobex库

./configure--prefix=/root/bluez/openobex--host=arm-linux

CC="arm-linux-gcc-I/root/bluez/bluez-libs/include-L/root/bluez/bluez-libs/lib"--enable-

bluetooth--disable-usb--enable-apps

五、移植QTE以及用到的相关库

1、整理相关库并打包

进入QT库所在目录:

cd/usr/local/qte4.6.3/lib/

执行命令:

tarczvfqtlib.tar.bz2*

将库压缩包拷贝到建立好的整理目录:

cpqtlib.tar.bz2/home/lib/

解压库压缩包:

tarxzvfqtlib.tar.bz2

删除库压缩包:

rm-irfqtlib.tar.bz2

拷贝相关库到当前目录,首先拷贝tslib库:

cp/usr/local/tslib/lib/libts*/home/lib/

cp-rf/usr/local/tslib/lib/ts/home/lib/

然后进入交叉编译器库所在目录,拷贝需要用到的有关gcc的库:

cd/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib

cplibgcc_s.so.1/home/lib/

Cplibrt.so.1/home/lib/

Cplibstdc++.so.6/home/lib/

Cplibz.so.1/home/lib/

最后再拷贝蓝牙库:

Cp/root/bluez/bluz-libs/lib/lib*/home/lib/

所有相关库整理完成,最后打包,并将生成的压缩包下载到开发板上:

tarczvflib.tar.bz2lib/

2、下载其他应用程序到开发板

将触摸屏校准程序、蓝牙测试程序以及自己开发的程序都打包并下载到开发板,由于使用的是QT开发的应用程序,所以在程序执行时需要设置一些环境变量,这样程序才能正常执行,一般都将这些设置编写为一个脚本,一般的脚本内容为:

#bin/sh

exportQTDIR=$PWD

exportLD_LIBRARY_PATH=$PWD/lib:/lib

exportTSLIB_TSDEVICE=/dev/input/event0

exportTSLIB_PLUGINDIR=$PWD/lib/ts

exportTSLIB_CONSOLEDEVICE=none

exportQT_TSLIBDIR=$PWD/lib

exportTSLIB_CONFFILE=$PWD/etc/ts.conf

exportPOINTERCAL_FILE=$PWD/etc/ts-calib.conf

exportQWS_MOUSE_PROTO=tslib:/dev/input/event0

exportTSLIB_CALIBFILE=$PWD/etc/ts-calib.conf

exportQT_QWS_FONTDIR=/mnt/yaffs/qte/lib/fonts

cd/mnt/yaffs/bluetooth/

./start.sh

cd/mnt/yaffs/qte/bin/

rm-irfplaylist

./server-qws

另外,如果需要开机启动程序,需要修改init.sh脚本,添加启动内容。

在QT编写程序的过程中,如果需要交叉编译并移植到开发板执行,一般中文都无法正常显示,所以需要在程序中指定使用的文本编码以及使用的字体。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值