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

 安装虚拟机软件VMware Workstation

二、安装linux操作系统

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

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

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

Perferences”,在弹出的对话框中选中“Use on-screen keyboard”。重新启动系统

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

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

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

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

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

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

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

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

deb http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse

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

apt-get update

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

apt-get install nautilus-open-terminal

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

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

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

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

三、安装QT开发工具

安装LinuxPC机下的IDE开发工具Qt Creator

下载最新版本的Qt SDK for Linux/X11 32-bit** (370 Mb),里面包括Qt4.6.3以及Qt IDE

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

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

2010.04.bin

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

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

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

安装标准C开发环境

apt-get install build-essential libncurses5-dev

安装交叉编译器

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

tar xjvf arm-linux-gcc-3.4.6.tar.bz2 -C /usr/local/

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

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

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

source ~/.profile

交叉编译tslib触摸屏库

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

tar xjvf tslib-1.4.tar.bz2

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

gedit build.sh

文件内容修改为:

#/bin/sh

export CC=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

make install

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

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

交叉编译Qt 4.6.3

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

tar xzvf qt-everywhere-opensource-src.tar.gz

进入解压后的目录:

cd qt-everywhere-opensource-src

修改错误文件:

gedit src/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 -embedded arm -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 -make libs 

-nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-

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

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

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

译:make

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

完成后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-linux CC=arm-linux-gcc

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

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

/usr/lib/pkgconfig

3、交叉编译glib

apt-get install gettext

apt-get install libglib2.0-dev

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

 

echo ac_cv_type_long_long=yes > arm-linux.cache

echo glib_cv_stack_grows=no >> arm-linux.cache

echo glib_cv_uscore=no >> arm-linux.cache

echo ac_cv_func_posix_getpwuid_r=yes >> arm-linux.cache

 

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

linux.cache

4、交叉编译libsndfile

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

 

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

5、交叉编译libusb

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

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

6、交叉编译dbus

echo ac_cv_have_abstract_sockets=yes > arm-linux.cache

 

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

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

7、交叉编译bluez-utils

 

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

#define SIOCBRADDBR     0x89a0          /* create new bridge device     */

#define SIOCBRDELBR     0x89a1          /* remove bridge device         */

#define SIOCBRADDIF     0x89a2          /* add interface to bridge      */

#define SIOCBRDELIF     0x89a3          /* remove interface from bridge */

 

 

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

#define ENOKEY 161

 

 

apt-get install libbluetooth-dev

apt-get install libcwiid1

./configure --prefix=/root/bluez/bluez-utils --host=arm-linux CC="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/

执行命令:

tar czvf qtlib.tar.bz2  *

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

cp qtlib.tar.bz2 /home/lib/

解压库压缩包:

tar xzvf qtlib.tar.bz2

删除库压缩包:

rm -irf qtlib.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

cp libgcc_s.so.1 /home/lib/

Cp librt.so.1 /home/lib/

Cp libstdc++.so.6 /home/lib/

Cp libz.so.1 /home/lib/

最后再拷贝蓝牙库:

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

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

tar czvf lib.tar.bz2 lib/

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

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

#bin/sh

export QTDIR=$PWD

export LD_LIBRARY_PATH=$PWD/lib:/lib

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_PLUGINDIR=$PWD/lib/ts

export TSLIB_CONSOLEDEVICE=none

export QT_TSLIBDIR=$PWD/lib

export TSLIB_CONFFILE=$PWD/etc/ts.conf

export POINTERCAL_FILE=$PWD/etc/ts-calib.conf

export QWS_MOUSE_PROTO=tslib:/dev/input/event0

export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf

export QT_QWS_FONTDIR=/mnt/yaffs/qte/lib/fonts

cd /mnt/yaffs/bluetooth/

./start.sh

cd /mnt/yaffs/qte/bin/

rm -irf playlist

./server -qws

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

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

你可能感兴趣的:(脚本,qt,开发工具,makefile,编译器,Sockets)