分类: LINUX
2013-02-15 20:53:53
1.安装g++
这是PC上的编译器,通过命令
root@ubuntu:~# g++ -v
可以查看到编译器的信息,如果没有则需要安装gcc
2.安装X11相关库文件和开发包
sudo apt-get install libX11-dev libXext-dev libXtst-dev
3.安装编译jpeg-6b,libpng,e2fsprogs,zlib等相关库
参考《OK6410 QT移植百科全书》的方法
4.编译Qtopia2.2.0
这里用的是友善提供的源代码及补丁,干脆偷个懒,把友善QT移植教程相关部分也copy过来把。
//以下内容是copy
交叉编译 qtopia 2.2.0
为了避免与x86版本的qtopia 2.2.0 产出冲突,我们创建一个新目录mini6410来存放arm版本的qtopia, 如下所示:
# mkdir /opt/mini6410
然后执行以下命令将 qtopia2.2.0 的源代码上述目录上解压并打上patch:
# cd /opt/mini6410
# tar xvzf /opt/qtopia-free-src-2.2.0.tar.gz
# cd /opt/mini6410/qtopia-free-2.2.0
# patch -p1 < /opt/qtopia2.2.0.friendlyarm.patch
接着执行编译前的配置:
# echo yes | ./configure -qte '-embedded -no-xft -qconfig qpe -depths 16,32 -system-jpeg -qt-zlib -qt-libpng -gif -no-g++-exceptions -no-qvfb -xplatform linux-arm-g++ -tslib' -qpe '-edition pda -displaysize 480x272 -xplatform linux-arm-g++ -luuid' -qt2 '-no-opengl -no-xft' -dqt '-no-xft -thread'
在上面configure参数中,我们指定使用了 tslib 来驱动触摸屏,在友善之臂的linux交叉编译器中,已经包含了 tslib 的库文件和头文件,因此这里不需要指定 tslib 的库文件和头文件路径。
其它的配置参数的含义通过命令 ./configure --help 来了解其含义。
最后执行以下命令进行编译及安装:
# make
# make install
编译成功后,编译生成的image存放在/opt/mini6410/qtopia-free-2.2.0/qtopia/image目录下。
//以上是copy
5. 在开发板上运行 qtopia2.2.0
把上面编译好的Qtopia整个目录复制到开发板根目录下/opt/目录下
编写启动Qtopia的脚本,存放于开发板根目录下/bin目录中,名字为Qtopia,内容如下:
#!/bin/sh export TSLIB_ROOT=/usr/local/tslib export TSLIB_TSDEVICE=/dev/event0 export TSLIB_TSEVENTTYPE=H3600 export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export QWS_MOUSE_PROTO=Tslib:/dev/event0 #export QWS_MOUSE_PROTO=TPanel:/dev/input/event1 #export QWS_MOUSE_PROTO="Tslib:/dev/input/event1 MouseMan:/dev/input/mice" #export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice export QWS_KEYBOARD="TTY:/dev/tty1" export KDEDIR=/opt/konqueror if [ -c /dev/event0 ]; then echo "touch..." export QWS_MOUSE_PROTO='TPanel:/dev/event0' if [ ! -e /etc/pointercal ]; then /bin/calibrate fi if [ -e /etc/pointercal -a ! -s /etc/pointercal ] ; then rm /mnt/disk/pointercal /bin/calibrate fi else echo "mouse..." export QWS_MOUSE_PROTO="MouseMan:/dev/mice" >/etc/pointercal fi export QTDIR=/opt/Qtopia export QPEDIR=/opt/Qtopia export PATH=$QTDIR/bin:$PATH export QT_PLUGIN_PATH=$QTDIR/plugins:$QTDIR/qt_plugins/ export QT_QWS_FONTDIR=$QPEDIR/lib/fonts/ export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/usr/local/tslib/lib:$LD_LIBRARY_PATH FB_SIZE=$(cat /sys/class/graphics/fb0/virtual_size) #export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1" case "$FB_SIZE" in 800,480) export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1" ;; 480,272) export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1" ;; *) export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1" ;; esac export HOME=/root/QtopiaHome if [ ! -e $HOME ]; then mkdir -p $HOME; fi if [ ! -e /usr/share ]; then mkdir /usr/share; fi if [ ! -e $HOME/Settings/Trolltech/qpe.conf ]; then mkdir -p $HOME/Settings/Trolltech/ cp $QPEDIR/etc/default/qpe.conf $HOME/Settings/Trolltech/qpe.conf -f fi export LANG="en_US" #temp if [ ! -e $HOME/Documents ]; then mkdir -p $HOME/Documents; fi exec $QPEDIR/bin/qpe启动开发板后发现系统一直停留在Qtopia的欢迎界面上,没有进入正常界面
这是由于系统缺少字库,把厂家的程序中opt/Qtopia/lib/fonts目录下两个字库文件helvetica_120_50.qpf,helvetica_120_50_t5.qpf放到相关位置就可以了。
重启开发板,根据提示设置时间后进入我们熟悉的正常界面。