Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303516
  • 博文数量: 27
  • 博客积分: 422
  • 博客等级: 一等列兵
  • 技术积分: 2839
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-17 12:16
文章分类

全部博文(27)

文章存档

2013年(13)

2012年(14)

分类: 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放到相关位置就可以了。

重启开发板,根据提示设置时间后进入我们熟悉的正常界面。



阅读(5554) | 评论(0) | 转发(5) |
给主人留下些什么吧!~~