ARM Linux platform qt-2.3.10 + qtopia-free-2.1.1 + tslib porting

Source: Internet
Author: User

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 ~!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.