- 论坛徽章:
- 0
|
一. 安装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 |
|