QT5- SD création - Olimex [FR]

Started by habanas, January 22, 2015, 12:20:30 PM

Previous topic - Next topic

habanas


il faut aussi éditer le fichier qeglfshooks_stub.cpp
nano qtbase/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp

chercher createNativeWindow avec
ctrl-w
et modifier la fonction comme suis :

////////////////////////////////////////////////////////////////////////////

EGLNativeWindowType QEglFSHooks::createNativeWindow(QPlatformWindow *platformWindow,
                                                    const QSize &size,
                                                    const QSurfaceFormat &format)
{
    Q_UNUSED(platformWindow);
    Q_UNUSED(size);
    Q_UNUSED(format);
---------------------------Partie a modifier------------------------------------
    //return 0;      
    static struct mali_native_window native_window = {      
        .width = (short unsigned int)size.width(),      
        .height = (short unsigned int)size.height(),      
    };   
    return &native_window;   
----------------------------------------------------------------------------------
}

////////////////////////////////////////////////////////////////////////////

Nous allons maintenant pouvoir compiler les source QT

il faut en premier configurer avec :
remarque :remplacer [chemin compilateur linaro] par le chemin du compilateur Linaro--

#./configure -opengl es2 -device linux-a20olimex-g++ -device-option CROSS_COMPILE=/[chemin compilateur linaro]/gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux/bin/arm-linux-gnueabihf- \
-sysroot /mnt/a20/ -opensource -confirm-license -optimized-qmake -release \-make libs \-prefix /opt/qt5olim2 -no-pch -nomake examples -nomake tests \-no-xcb -eglfs -v

attention a bien vérifier le chemin du cross-compilateur et aussi vérifier que la carte cible est toujours monter dans /mnt/a20 avec la commande
#ls /mnt/a20

vous devriez avoir un config.summary de ce type là a la fin :

habanas



////////////////////////////////////////////////////////////////////////////

Build options:
  Configuration .......... accessibility alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile dbus egl eglfs evdev eventfd fontconfig full-config getaddrinfo getifaddrs glib iconv icu inotify ipv6ifname large-config largefile libudev linuxfb medium-config minimal-config mremap nis no-harfbuzz opengl opengles2 openssl pcre png posix_fallocate qpa qpa reduce_exports reduce_relocations release rpath shared small-config system-freetype system-png system-zlib xinput2 xlib xrender
  Build parts ............  libs
  Mode ................... release
  Using C++11 ............ yes
  Using PCH .............. no
  Target compiler supports:
    iWMMXt/Neon .......... no/auto

Qt modules and options:
  Qt D-Bus ............... yes (loading dbus-1 at runtime)
  Qt Concurrent .......... yes
  Qt GUI ................. yes
  Qt Widgets ............. yes
  Large File ............. yes
  JavaScriptCore JIT ..... yes (To be decided by JavaScriptCore)
  QML debugging .......... yes
  Use system proxies ..... no

Support enabled for:
  Accessibility .......... yes
  ALSA ................... yes
  CUPS ................... no
  FontConfig ............. yes
  FreeType ............... yes (system library)
  Glib ................... yes
  GTK theme .............. no
  HarfBuzz ............... no
  Iconv .................. yes
  ICU .................... yes
  Image formats:
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using bundled copy)
    PNG .................. yes (in QtGui, using system library)
  journald ............... no
  mtdev .................. no
  Networking:
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    OpenSSL .............. yes (loading libraries at run-time)
  NIS .................... yes
  OpenGL / OpenVG:
    EGL .................. yes
    OpenGL ............... yes (OpenGL ES 2.x)
    OpenVG ............... no
  PCRE ................... yes (bundled copy)
  pkg-config ............. yes
  PulseAudio ............. no
  QPA backends:
    DirectFB ............. no
    EGLFS ................ yes
    KMS .................. no
    LinuxFB .............. yes
    XCB .................. no
  Session management ..... yes
  SQL drivers:
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. no
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. no
  udev ................... yes
  xkbcommon .............. no
  zlib ................... yes (system library)

NOTE: Qt is using double for qreal on this system. This is binary incompatible against Qt 5.1.
Configure with '-qreal float' to create a build that is binary compatible with 5.1.

////////////////////////////////////////////////////////////////////////////

habanas

ensuite il faut compiler les lib et les installer avec les commande suivante (étape très longue 2-5 heure)

#make -j 5 (~3H)
#make install (~20Min)

-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

habanas


configuration de QT
Installer QT
Il est possible d'installer plusieurs version de QT.
la première méthode installe seulement QT-creator, la seconde installe l'environnement QT avec tout les outils ( documentation, exemple ...)
Méthode 1 :
Télécharger et exécuter le lien suivant sur votre environnement de développement
http://download.qt-project.org/official_releases/qtcreator/3.3/3.3.0/qt-creator-opensource-linux-x86-3.3.0.run
# wget http://download.qt-project.org/official_releases/qtcreator/3.3/3.3.0/qt-creator-opensource-linux-x86-3.3.0.run
# chmod +x qt-creator-opensource-linux-x86-3.3.0.run
#./qt-creator-opensource-linux-x86-3.3.0.run

Méthode 2 :
Télécharger et exécuter le lien suivant sur votre environnement de développement
http://download.qt-project.org/official_releases/online_installers/qt-opensource-linux-x86-online.run
# wget http://download.qt-project.org/official_releases/qtcreator/3.3/3.3.0/qt-opensource-linux-x86-online.run
# chmod +x qt-opensource-linux-x86-online.run
#./qt-opensource-linux-x86-online.run

Une fois l'IDE installé , il faut configurer le compilateur
@Qtcreator
outils → options
appareil mobile → ajouter → périphérique Linux générique 
nom : olimex
IP : 192.168.xxx.xxx
authentification
Login de la carte
mdp de la carte

Compiler & Exécuter

Débogueur → ajouter
Nom :gdb-olimex
Chemin:[chemin linaro]/gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux/bin/arm-linux-gnueabihf-gdb

Compilateur → ajouter → GCC
Nom : gcc-olimex
chemin du compilateur : [chemin linaro]/gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux/bin/arm-linux-gnueabihf-g++

Version de QT → ajouter → /opt/qt5olim2/bin/qmake (chemin définis dans .config lors de la compilation des source QT)
Nom de la version : Qt-olimex

Kits → ajouter
Nom : Olimexkit
Type de périphérique : périphérique Linux générique
Appareil mobile : olimex
Racine du système : /mnt/a20
compilateur : gcc-olimex
Version de QT : Qt-olimex

a partir de là vous devriez avoir vos projet qui s'exécute automatiquement sur la carte distante si celle-ci a bien était monter dans /mnt/a20

Sources

https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build
http://linux-sunxi.org/
http://linux-sunxi.org/Fex_Guide
http://linux-sunxi.org/Mali_binary_driver
https://www.olimex.com/forum/index.php?topic=3825.0
https://www.olimex.com/forum/index.php?topic=3826.0
http://qt-project.org/wiki/Building_Qt_5_from_Git
https://www.olimex.com/forum/index.php?topic=2666.0
http://wickwire2099.blogspot.pt/

mimi1962

bonsoir,

j'utilise une carte olimex A20 avec une sdcard et l'image A20-OLinuXino-MICRO Debian with kernel 3.4.90+ release 10.
je souhaite installer la version 5.3.2 de QT pour utiliser les websocket

j'ai essayer de suivre de tuto, mais la commande :

git clone git://gitorious.org/cross-compile-tools/cross-compile-tools.git

me donne le message d'erreur:
Cloning into 'cross-compile-tools'...
fatal: The remote end hung up unexpectedly

merci d'avance
Cordialement.

Michel


mimi1962

bonjour,

j'ai résolu le problème en remplaçant git par https.

lorsque je lance le ./configure,
./configure -opengl es2 -device linux-a20olimex-g++ -device-option CROSS_COMPILE=/opt/toolchain/bin/arm-linux-gnueabihf- -sysroot /mnt/a20/ -opensource -confirm-license -optimized-qmake -release -make libs -prefix /usr/local/qt5a20 -tslib -no-pch -nomake examples -nomake tests -no-xcb


j'ai le message suivant:

/opt/toolchain/bin/arm-linux-gnueabihf-g++: 1: /opt/toolchain/bin/arm-linux-gnueabihf-g++: Syntax error: "(" unexpected
Creating qmake...
make: Rien à faire pour « first ».
Running configuration tests...
Note: PKG_CONFIG_LIBDIR automatically set to /mnt/a20//usr/lib/pkgconfig:/mnt/a20//usr/share/pkgconfig
Note: PKG_CONFIG_SYSROOT_DIR automatically set to /mnt/a20/

Could not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
The OpenGL ES 2.0 functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in
/opt/qt5/qtbase/mkspecs/devices/linux-a20olimex-g++.

Merci d'avance.
Cordialement.
Michel

Blastmun

#21
Bonsoir, très bon tuto!  :)
Je profite que ce post soit en français pour vous poser une question, lorsque je démarre ma carte Olinuxino A20 lime2, les led verte et orange du port gigabit s'allume et le laser de ma souris aussi mais rien ne s'affiche a l'écran :/.... Si vous avez une idée du problème.
Cordialement


PS: J'ai gravé directement l'image "a20-lime2_debian_3.4.90_release_2" avec win32 disk imager sur ma carte sd. Je suis sous windows 8.1

mimi1962

bonjour blastmum,

As tu lancé sous root la commande ./change_display_olimex_A20
démarrage en ssh pour le A20-micro et l'image A20-OLinuXino-MICRO Debian with kernel 3.4.90+ release 10 c'est l'adresse 192.168.1.254 qui est installé par défaut.

Cordialement.

Michel

mimi1962

bonjour,

j'avance, en suivant le tuto avec le fichier de configuration
j'ai suivi pour un a20-micro 4g le site suivant:
http://wapel.de/?p=190
et le ./configure suivant:
./configure -opengl es2 -device linux-a20olimex-g++ -device-option CROSS_COMPILE=/opt/toolchain/bin/arm-linux-gnueabihf- -sysroot /mnt/a20/ -opensource -confirm-license -optimized-qmake -release -make libs -prefix /usr/local/qt5a20 -tslib -no-pch -nomake examples -nomake tests -no-xcb -eglfs -v

j'obtiens lors de l'instruction make install l'erreur suivante:

compilation terminated.
make[3]: *** [.obj/yarr/YarrPattern.o] Erreur 1
make[3]: quittant le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
make[2]: *** [sub-Target-pri-install_subtargets-ordered] Erreur 2
make[2]: quittant le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
make[1]: *** [sub-Source-JavaScriptCore-JavaScriptCore-pro-install_subtargets-ordered] Erreur 2
make[1]: quittant le répertoire « /opt/qt5/qtwebkit »
make: *** [module-qtwebkit-install_subtargets] Erreur 2

les librairies on l'air d'être installés, mais tous les fichiers important du répertoire bin n'y sont pas uic, qmake, ....

Merci d'avance

Michel

habanas

Bonjour Michel
j'ai pas trop eu le temps de regarder pâque et tt ça mais je jette un œil cette semaine.

habanas

#25
Bonjour Blastmun
QuoteBonsoir, très bon tuto!  :)
Je profite que ce post soit en français pour vous poser une question, lorsque je démarre ma carte Olinuxino A20 lime2, les led verte et orange du port gigabit s'allume et le laser de ma souris aussi mais rien ne s'affiche a l'écran :/.... Si vous avez une idée du problème.
Cordialement

Merci pour le compliment :) .
Pour ton problème la seul solution que je vois pour vérifier si ta carte démarre bien, est d'utiliser un câble usb <-> serie pour vérifier le boot, tu peut en trouver sur le site d'olimex sur le lien suivant

https://www.olimex.com/Products/Components/Cables/USB-Serial-Cable/USB-Serial-Cable-F/.
Une fois branché a ta carte sur l'UART0 tu aura un aperçus en console du processus de démarrage.

Si tu ne possède pas ce matériel, plusieurs chose a tester:


  • Tu peux essayer de graver la carte avec un autre logiciel. Personnellement j'ai quelque soucie avec win32diskimager, j'utilise plutôt HDDRawCopy1.10Portable (http://hddguru.com/software/HDD-Raw-Copy-Tool/HDDRawCopy1.10Portable.exe).

  • L'image que tu as est peut etre erroné, tu peux essayer dans télécharger une nouvelle.
    (https://www.olimex.com/wiki/A20-OLinuXino-LIME2#Linux)

  • Comme l'as indiqué mimi1962, tu peux essayer d'accéder a ta carte par ssh avec le logiciel putty par exemple, Si l'adresse par défaut est 192.168.1.254 tu devrais pouvoir atteindre la console administrateur de la carte facilement avec les log suivant :
    log : root
    pwd : olimex

  • Si l'adresse de la carte n'est pas celle par défaut tu peux essayer de modifier le fichier /etc/network/interfaces sur la carte SD la partition qui contient ce fichier.

  • Si tu accèdent a la console de la carte il faut utiliser le script dans le dossier /~  ./change_display_olimex_A20 est suivre simplement les instructions pour avoir l'écran que tu souhaite




habanas

Quote from: mimi1962 on April 06, 2015, 09:44:45 PM
bonjour,

j'avance, en suivant le tuto avec le fichier de configuration
j'ai suivi pour un a20-micro 4g le site suivant:
http://wapel.de/?p=190
et le ./configure suivant:
./configure -opengl es2 -device linux-a20olimex-g++ -device-option CROSS_COMPILE=/opt/toolchain/bin/arm-linux-gnueabihf- -sysroot /mnt/a20/ -opensource -confirm-license -optimized-qmake -release -make libs -prefix /usr/local/qt5a20 -tslib -no-pch -nomake examples -nomake tests -no-xcb -eglfs -v

j'obtiens lors de l'instruction make install l'erreur suivante:

compilation terminated.
make[3]: *** [.obj/yarr/YarrPattern.o] Erreur 1
make[3]: quittant le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
make[2]: *** [sub-Target-pri-install_subtargets-ordered] Erreur 2
make[2]: quittant le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
make[1]: *** [sub-Source-JavaScriptCore-JavaScriptCore-pro-install_subtargets-ordered] Erreur 2
make[1]: quittant le répertoire « /opt/qt5/qtwebkit »
make: *** [module-qtwebkit-install_subtargets] Erreur 2

les librairies on l'air d'être installés, mais tous les fichiers important du répertoire bin n'y sont pas uic, qmake, ....

Merci d'avance

Michel

Re Michel
Comme ça je ne vois pas d'ou peux venir le problème. A tu eu des soucies lors du ./configure et du make. Si oui je veux bien un retour.Le problème viens peut être de plus haut.

Sinon par rapport a mes procédure j'utilise le compilateur Linaro
et il faut peut être vérifier que ta carte cible est toujours monter dans /mnt/a20




mimi1962

bonsoir.

le ./configure se passe bien

effectivement le make doit poser problème, voici les dernières lignes

make[2]: quittant le répertoire « /opt/qt5/qtwebkit/Source/WTF »
cd Source/JavaScriptCore/ && ( test -e Makefile.JavaScriptCore || /opt/qt5/qtbase/bin/qmake /opt/qt5/qtwebkit/Source/JavaScriptCore/JavaScriptCore.pro -o Makefile.JavaScriptCore ) && make -f Makefile.JavaScriptCore
make[2]: entrant dans le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
( test -e Makefile.LLIntOffsetsExtractor || /opt/qt5/qtbase/bin/qmake /opt/qt5/qtwebkit/Source/JavaScriptCore/LLIntOffsetsExtractor.pro -o Makefile.LLIntOffsetsExtractor ) && make -f Makefile.LLIntOffsetsExtractor
make[3]: entrant dans le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
ruby /opt/qt5/qtwebkit/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb llint/LowLevelInterpreter.asm LLIntDesiredOffsets.h
make[3]: ruby : commande introuvable
make[3]: *** [LLIntDesiredOffsets.h] Erreur 127
make[3]: quittant le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
make[2]: *** [sub-LLIntOffsetsExtractor-pro-make_first-ordered] Erreur 2
make[2]: quittant le répertoire « /opt/qt5/qtwebkit/Source/JavaScriptCore »
make[1]: *** [sub-Source-JavaScriptCore-JavaScriptCore-pro-make_first-ordered] Erreur 2
make[1]: quittant le répertoire « /opt/qt5/qtwebkit »
make: *** [module-qtwebkit-make_first] Erreur 2

Blastmun

#28
Quote from: habanas on April 07, 2015, 05:07:06 PM
Bonjour Blastmun
QuoteBonsoir, très bon tuto!  :)
Je profite que ce post soit en français pour vous poser une question, lorsque je démarre ma carte Olinuxino A20 lime2, les led verte et orange du port gigabit s'allume et le laser de ma souris aussi mais rien ne s'affiche a l'écran :/.... Si vous avez une idée du problème.
Cordialement

Merci pour le compliment :) .
Pour ton problème la seul solution que je vois pour vérifier si ta carte démarre bien, est d'utiliser un câble usb <-> serie pour vérifier le boot, tu peut en trouver sur le site d'olimex sur le lien suivant

https://www.olimex.com/Products/Components/Cables/USB-Serial-Cable/USB-Serial-Cable-F/.
Une fois branché a ta carte sur l'UART0 tu aura un aperçus en console du processus de démarrage.

Si tu ne possède pas ce matériel, plusieurs chose a tester:


  • Tu peux essayer de graver la carte avec un autre logiciel. Personnellement j'ai quelque soucie avec win32diskimager, j'utilise plutôt HDDRawCopy1.10Portable (http://hddguru.com/software/HDD-Raw-Copy-Tool/HDDRawCopy1.10Portable.exe).

  • L'image que tu as est peut etre erroné, tu peux essayer dans télécharger une nouvelle.
    (https://www.olimex.com/wiki/A20-OLinuXino-LIME2#Linux)

  • Comme l'as indiqué mimi1962, tu peux essayer d'accéder a ta carte par ssh avec le logiciel putty par exemple, Si l'adresse par défaut est 192.168.1.254 tu devrais pouvoir atteindre la console administrateur de la carte facilement avec les log suivant :
    log : root
    pwd : olimex

  • Si l'adresse de la carte n'est pas celle par défaut tu peux essayer de modifier le fichier /etc/network/interfaces sur la carte SD la partition qui contient ce fichier.

  • Si tu accèdent a la console de la carte il faut utiliser le script dans le dossier /~  ./change_display_olimex_A20 est suivre simplement les instructions pour avoir l'écran que tu souhaite

Salut, merci pour ta réponse, j'ai re-gravé l'image avec ton logiciel et niquel cela fonctionne. :D Plus qu'a bien configurer la carte au démarrage package etc et voila :) . Merci!

habanas

Pas trop d'idée pour ton problème Michel   :(
par contre pour certain kit QT comme QT_webkit, il faut installer des packs en plus sur l'hôte, je te laisse verifier s'ils sont installés.

libicu-dev
libsqlite3-dev
libxslt1-dev
libssl-dev


Ensuite tu peux toujours essayer de compiler juste le module qui t'intéresse, voir le résultat !


cd qt-everywhere-opensource-src-5.0.2
cd ../$module
make
make install


j'ai pas plus. Si tu trouve la solution, n'hésite pas à la poster, je modifierais le tuto en conséquence .
Merci pour la remarque sur le premier lien git -> https . C'est corrigé.