免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 880 | 回复: 0
打印 上一主题 下一主题

十七.Qtopia移植 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-20 14:45 |只看该作者 |倒序浏览

一.   安装G++
二.   安装X11的相关库函数和开发包
#Sudo apt-get –y install x-dev libx11-dev xlibs-static-dev x11proto-xext-dev libxext-dev libqt3-mt-dev

Sudo mkdir –p /usr/X11R6/include
Sudo cp –rf /usr/include/X11   /usr/X11R6/include/

三.   安装集成开发环境:
#sudo apt-get install kdevelop3
#sudo apt-get install konsole

四.   交叉编译JPEG库
1.#tar jxvf jpegsrc.v6b.tar.gz
  #./configure –enable-shared –enable-static –prefix=/gcc-3.4.5-glibc-2.3.6/arm-linux –build=i386 –host=arm

2.修改Makefile:
Cc = gcc 改为 CC = arm-linux-gcc
AR = ar rc 改为 AR=arm-linux-ar rc
AR2=randlib 改为 AR2=arm-linux-randlib

3.编译和安装
Make
Make install-lib

4.安装uuid库
#tar zxvf e2fsprogs-1.40.2.tar.gz
#cd e2fsprogs-1.40.2
#Mkdir build; cd build
#../configure –with-c=arm-linux-gcc –with-linker=arm-linux-ld –enable-elf-shlibs –host=arm –prefix=/gcc-3.4.5-glibc-2.3.6/arm-linx
#make
#make install-libs

五.   修改QT文件
1.#tar zxvf qtopia-free-src-2.2.0.tar
2.修改配置文件qtopia/src/qt/qconfig-qpe.h,打开键盘等支持
// Mouse not normally supported or needed.
// (enabling these, eg. so that USB mouse works can be done,
// but cursor should be turned on/off when device connected)
#ifndef QT_NO_QWS_CURSOR
//#define QT_NO_QWS_CURSOR
#endif
#ifndef QT_NO_QWS_MOUSE_AUTO
//#define QT_NO_QWS_MOUSE_AUTO
#endif
#ifndef QT_NO_QWS_MOUSE_PC
//#define QT_NO_QWS_MOUSE_PC
#endif

3.修改qt2/src/tools/qvaluestack.h
       if ( !this->isEmpty() )
           this->remove( this->fromLast() );

4.修改qt2/src/kernel/qwindowsystem_qws.h
在文件开头增加两个类的声明:
Class QWSInputMethod;
Class QWSGestureMethod;

5.修改qtopia/src/libraries/qtopia/backend/event.cpp
修改前:
419              while ( !( i & day ) && i
修改后:
419     while ( !( i & day ) && (int)i

6.修改qtopia/src/libraries/qtopia/qdawg.cpp
修改前:
294        QDawgPrivate::~QDawgPrivate()
修改后
294        ~QDawgPrivate()

7.修改qtopia/src/libraries/qtopia2/thumbnailview_p.h
修改前:
81        void ThumbnailItem::paintItem(QPainter *, const QColorGrop &)
修改后:
81      void paintItem(QPainter *, const QColorGrop &)

8.修改qtopia/src/libraries/qtopiapim/abtable_p.h
修改前:
276  QListViewItem  * PhoneTypeSelector::addType(QListViewItem * prevItem, )
修改后:
QListViewItem  *addType(QListViewItem * prevItem, )

9.修改qtopia/src/libraries/qtopiapin/numberentry_p.h
修改前:
Bool Number EntryDialog::eventFilter(QObject *o, QEvent *e)
修改后:
Bool  eventFilter(QObject *o, QEvent *e)

10.修改qtopia/src/libraries/mediaplayer/videoviewer.cpp
修改前:
52        SimpleVideoWidget::SimpleVideoWidget(QWidget *parent);
修改后:
52   SimpleVideoWidget(QWidget *parent);

11.修改qtopia/src/applications/addressbook/ablabel.h
修改前:
78        bool  AbLabel::decodeHref(const
修改后:
79        bool  decodeHref(const

12.修改qtopia/src/games/minesweep/minefield.h
修改前:
105        void Mine Field::setState
106        void MineField::placeMines
修改后:
105   voiid setState
106   void placeMines

13.修改qtopia/src/settings/buttoneditor/buttoneditordialo.h
修改前:
56        ServiceRequest ButtonEditorDialog::actionFor
修改后:
56     erviceRequest actionFor

14.修改qtopia/src/settings/qipkg/packagewizard.h
修改前:
106  PageItem * PackageWizard::current() const;
修改后
106  PageItem *current() const;

16.修改qtopia/src/plugins/inputmethods/keyboard/keyboard.h
修改前:
60  KeyboardPicks::~KeyboardPicks()
修改后:
60  ~KeyboardPicks()

17.修改qtopia/src/plugins/decorations/polished/polished.h
修改前:
58  void PolishedDecoration::drawBlend
修改后:
58 void  drawBlend

18.修改qtopia/src/server/inputmethods.cpp
修改前:
IMToolButton:: IMToolButton
修改后
IMToolButton(QWiget

六.   配置.编译,安装Qtopia
1.       复制两个文件:
#cd qtopia/src/libraries/qtopia/
#cp cursto-linux-cassiopeia-g++.h  custom-linux-arm-g++.h
# cp cursto-linux-cassiopeia-g++.cpp  custom-linux-arm-g++.cpp
#cd –

2.       配置qtopia-free-2.2.0
#./configure –qte ‘-embedded –no-xft –xplatform linux-arm-g++ -qconfig qpe -depths 16,32 –no-qvfb –system-jpeg –gif’ –qpe ‘-xplatform linux-arm-g++ -edition pda –displaysize 240*320’ –qt2 ‘-no-xft’ –dqt ‘-no-xft’

#make
#make install
它将把所有必需的目录,文件复制到qtopia/image/opt/Qtopia目录下

3.       复制QT所依赖的JPEG,UUID库
Cp libjpeg.*  fs_mini/lib –d
Cp libuuid.*  fs_mini/lib –d

4.       复制字库
Cd qtopia-free-2.2.0
Cp –rf qt2/lib/fonts  qtopia/image/opt/Qtopia/lib

5.       将qtopia/image/opt/整个目录复制到开发板目录上
Cp –rf qtopia/image/opt  fs_mini/

6.       创建时区文件,直接使用主机中的时区文件
Cd fs_mini
Mkdir –p usr/share/zoneinfo/
Cp –rf  /usr/sharezoneinfo/America  usr/share/zoneinfo
Cp /usr/share/zoneinfo/zone.tab  usr/share/zoneinfo

7.       仿造触触摸屏校验文件:
在板子上,建立文件 /etc/pointercal,内容为:1 0 1 0 1 1 65536


8.       建立一个脚本文件/bin/qpe.sh,用来运行qtopia
#!/bin/sh

export HOME=/root
export QTDIR=/opt/Qtopia
export QPEDIR=/opt/Qtopia
export QWS_DIRPLAY=linuxFb:/dev/fb0
export QWS_KEYBOARD="TTY:/dev/tty1"
export QWS_MOUSE_PROTO="USB:/dev/mouse0"
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
$QPEDIR/bin/qpe &

9.       在/tmp目录上挂接tmpfs文件系统
建立/tmp目录
Mkdir tmp

修改etc/fstab文件,加入一行
Tmpfs  /tmp  tmpfs  defaults  0  0

10.   修改etc/init.d/rcS,加入一行:
/bin/qpe.sh  &

11.   修改属性:
Chmod +x ./qpe.sh

12.   禁止用tty1来启动控制台
#tty1::askfirst:-/bin/sh

13.   把libstdc++拷到/lib下
Cp –rf libstdc++.*  fs_mini/lib/ -d

14.   把libgcc_s.so拷到/lib下
Cp –rf libgcc_s.*  fs_mini/lib/  -d

15.   把libdl.so拷到/lib下
Cp –rf libdl.*  fs_mini/lib/  -d

16.   板子上电时,先把USB鼠标接上去

17.建立鼠标设备:
#mknod /dev/input/mouse c 13 32
#mknod /dev/mouse0 c 13 32



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93882/showart_1869912.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP