Directory structure
E2fsprogs:/root/ARM-QT/e2fsprogs
Jpeg-6b:/root/ARM-QT/jpeg-6b
Qt-2.3.10:/root/ARM-QT/qt-2.3.10
Qt-2.3.2:/root/ARM-QT/qt-2.3.2 // PC version QT, not used
Qtopia-free-2.1.1:/root/ARM-QT/qtopia-free-2.1.1
Qt-x11-free-3.3.8:/root/ARM-QT/qt-x11-free-3.3.8 // PC version qtopia, not used
Tmake-1.13:/root/ARM-QT/tmake-1.13
Tslib:/root/ARM-QT/tslib
1. Qt-2.3.10 Transplantation
The qt-2.3.10 has provided support for tslib, but the qws_mouse_proto it is not tslib, but tpanel, which is different from qte4.5
. The compilation process of tslib is no longer repeated. Check the article "QTE + tslib porting for ARM Linux platform". The difference is that qtopia Compilation
The tslib used for translation must be of the hardware FP type. Note that the tslib compilation process is shown below:
Bytes ----------------------------------------------------------------------------------------
Note:
(1)
If you use the maguscore compiler to generate tslib, the following error will be reported during the qtopia compilation process:
Libts. So use software FP, wherea libqpe. So use hardware FP.
Solution: Use the Aigo compiler to generate tslib and re-compile qtopia.
Bytes ----------------------------------------------------------------------------------------
(1 ):
Maguscore:
Export cc =/opt/Magus/ARM/3.4.6/bin/ARM-Linux-gcc
Aigo:
Export cc =/opt/mtwk/usr/local/gcc-3.4.3-glibc-2.3.4/ARM-Linux/bin/ARM-Linux-gcc
(2): Echo "ac_cv_func_malloc_0_nonnull = yes"> arm-linux.cache
If this sentence is not found, the error rpl_malloc cannot be found during make. Cause: # define malloc rpl_malloc is in configure.
In this case, you only need to write ac_cv_func_malloc_0_nonnull = yes to the. cache file, and allow configure to read this configuration from the file to bypass # define
Malloc rpl_malloc
(3 ):
Maguscore:
./Configure -- prefix = $ PWD/release -- Host = arm-Linux -- target arm-Linux -- cache-file = arm-linux.cache
Cflags = '-L/opt/mtwk/usr/local/gcc-3.4.3-glibc-2.3.4/ARM-Linux/lib'
Aigo:
./Configure -- prefix = $ PWD/release -- Host = arm-Linux -- target arm-Linux -- cache-file = arm-linux.cache
Cflags = '-L/opt/mtwk/usr/local/gcc-3.4.3-glibc-2.3.4/ARM-Linux/AMR-Linux/lib'
(4 ):
Make clean
Make
Make install
Note:
When the input. So module is loaded, A segement fault error is thrown. This is because the _ ts_attach_raw () function in ts_attach.c in tslib
The NULL pointer is used.
It has been modified. For details, see ts_config.c.
Over.
The following focuses on the analysis of qt-2.3.10 compilation process:
(1)
[~ #] Cd/root/ARM-QT/qt-2.3.10
Compile and write the mkqte. Sh script. The script content is as follows:
#! /Bin/bash
Export qt2dir =/root/ARM-QT/qt-2.3.2
Export tmakedir =/root/ARM-QT/tmake-1.13
Export dqtdir =/root/ARM-QT/qt-x11-free-3.3.8
Export qtedir =/root/ARM-QT/qt-2.3.10
Export qpedir =/root/ARM-QT/qtopia-free-2.1.1
CD $ dqtdir
Export qtdir = $ dqtdir
Export Path = $ qtdir/bin: $ path
Export LD_LIBRARY_PATH = $ qtdir/lib: $ LD_LIBRARY_PATH
CD $ qt2dir
Export tmakepath = $ tmakedir/lib/Linux-G ++
Export qtdir = $ qt2dir
Export Path = $ qtdir/bin: $ path
Export LD_LIBRARY_PATH = $ qtdir/lib: $ LD_LIBRARY_PATH
Export tmakepath = $ tmakedir/lib/Linux-G ++
Export qtdir = $ qt2dir
Export Path = $ qtdir/bin: $ path
Export LD_LIBRARY_PATH = $ qtdir/lib: $ LD_LIBRARY_PATH
CD $ qtedir/tools/qvfb
CD $ qtedir
Export tmakepath = $ tmakedir/lib/qws/Linux-arm-G ++
Export qtdir = $ qtedir
# Export Path =/opt/mtwk/usr/local/gcc-3.4.3-glibc-2.3.4/ARM-Linux/bin: $ qtdir/bin: $ path
# Export LD_LIBRARY_PATH = $ qtdir/lib: $ qtdir/../tslib/src/release/lib: $ LD_LIBRARY_PATH
Export Path =/opt/Magus/ARM/3.4.6/bin: $ qtdir/bin: $ path
Export
LD_LIBRARY_PATH =/lib:/usr/lib: $ qtdir/../tslib/src/release/lib:/opt/Magus/ARM/3.4.6/ARM-
Linux/lib: $ LD_LIBRARY_PATH
CP $ qpedir/src/QT/qconfig-qpe.h src/tools/-F
./Configure-xplatform Linux-arm-G ++-system-JPEG-thread-tslib-no-xft-qconfig qpe-keypad-mode-
No-qvfb-Depths 4, 8, 16, 32-L.-lm-ljpeg-lts-I $ PWD/../tslib/src/release/include-
I/opt/Magus/ARM/3.4.6/ARM-Linux/include
(2)
[~ #]./Mkqte. Sh
(3) error during compilation:
[1] page_size page_mask not found
In the inlcude directory of the cross compiler, there is an ASM/page. h file. Copy the Code related to page_size page_mask
Src/kernel/qpixmapcache. cpp file.
[2]
2. Qtopia-free-2.1.1 Transplantation
Libraries such as libqte. So, libts. So, and libjpeg. So are used to compile qtopia.
[~ #] Cd/root/ARM-QT/qtopia-free-2.1.1
Compile and write the mkqpe. Sh script. The script content is as follows:
#--------------------------------
#! /Bin/bash
Export qt2dir =/root/ARM-QT/qt-2.3.2
Export tmakedir =/root/ARM-QT/tmake-1.13
Export dqtdir =/root/ARM-QT/qt-x11-free-3.3.8
Export qtedir =/root/ARM-QT/qt-2.3.10
Export qpedir =/root/ARM-QT/qtopia-free-2.1.1
CD $ dqtdir
Export qtdir = $ dqtdir
Export Path = $ qtdir/bin: $ path
Export LD_LIBRARY_PATH = $ qtdir/lib: $ LD_LIBRARY_PATH
CD $ qt2dir
Export tmakepath = $ tmakedir/lib/Linux-G ++
Export qtdir = $ qt2dir
Export Path = $ qtdir/bin: $ path
Export LD_LIBRARY_PATH = $ qtdir/lib: $ LD_LIBRARY_PATH
Export tmakepath = $ tmakedir/lib/Linux-G ++
Export qtdir = $ qt2dir
Export Path = $ qtdir/bin: $ path
Export LD_LIBRARY_PATH = $ qtdir/lib: $ LD_LIBRARY_PATH
CD $ qtedir/tools/qvfb
CD $ qtedir
Export tmakepath = $ tmakedir/lib/qws/Linux-arm-G ++
Export qtdir = $ qtedir
# We must use arm complier of Aigo. To build qtopia. Otherwise the phase of link will give
Follow error:
#
Export Path =/opt/mtwk/usr/local/gcc-3.4.3-glibc-2.3.4/ARM-Linux/bin: $ qtdir/bin: $ path
# Export Path =/opt/Magus/ARM/3.4.6/bin: $ qtdir/bin: $ path
Export
LD_LIBRARY_PATH =/lib:/usr/lib: $ qtdir/../tslib/src/release/lib:/opt/Magus/ARM/3.4.6/ARM-
Linux/lib: $ PWD/../qt-2.3.10/lib: $ LD_LIBRARY_PATH
CP $ qpedir/src/QT/qconfig-qpe.h src/tools/
CD $ qpedir
Export qtdir = $ qtedir
Export Path = $ qpedir/bin: $ path
# Osk configure
#./Configure-xplatform Linux-arm-G ++-edition PDA-no-qtopiadesktop-displaysize 320x240-ljpeg
-Luuid
./Configure-Prefix $ PWD/image/opt/qtopia-xplatform Linux-arm-G ++-edition PDA-no-qtopiadesktop-
Displaysize 320x240-ljpeg-luuid-I $ PWD/../tslib/src/release/include-lts
# Make clean
Make
Make install
#--------------------------------
(2)
[~ #]./Mkqpe. Sh
Wait for a while, but you may choose to listen to a song !~
The above is just a rough description of the entire process, so we can't avoid errors. Let's take a look at it first and sort it out later ~!