Comment installer et exécuter QML QtWebEngine & QtWebKit sur SBC en utilisant Yocto / impossible de récupérer L'URL de n'importe quelle source

Environnement

  • Debian GNU / Linux 7.8 (wheezy) Linux marvin 3.16-0.bpo.2-amd64 #1 SMP Debian 3.16.3-2~bpo70+1 (2014-09-21) x86_64 GNU/Linux
  • Raspberry Pi 2
  • Yocto Poky
  • Qt5

mon but est de faire tourner le moteur de mise en page Chromium sur le RPi2

je veux être en mesure de l'exécuter sur mon RPi2:

import QtQuick 2.1
import QtQuick.Controls 1.1
import QtWebEngine 1.0

ApplicationWindow {
    width: 1280
    height: 720
    visible: true
    WebEngineView {
        id: webview
        url: "http://www.qt-project.org"
        anchors.fill: parent
    }
}

comment j'ai créé mon image RPi2

j'ai réussi à créer une image pour mon RPi2 en utilisant Yocto en utilisant cet unique et merveilleux tutoriel en portugais et celui-ci en anglais

voici après en quelques lignes comment j'ai pu générer une image pour mon RPi2

mkdir -p ~/yocto/dl
cd ~/yocto
git clone -b dizzy git://git.yoctoproject.org/poky poky-dizzy
cd poky-dizzy
git clone git://git.yoctoproject.org/meta-raspberrypi 
git clone -b dizzy https://github.com/meta-qt5/meta-qt5.git
git clone -b dizzy git://git.openembedded.org/meta-openembedded
git clone -b dizzy https://bitbucket.org/embarcados/meta-embarcados.git

cd ~/yocto
. poky-dizzy/oe-init-build-env build-dizzy
bitbake qt5-image-demo

après quelques heures, je pouvais choisir l'image ~/yocto/build-dizzy/tmp/deploy/images/raspberrypi2/qt5-image-demo-raspberrypi2.rpi-sdimg

... et copier sur une carte microSD par exemple

dd if=~/yocto/build-dizzy/tmp/deploy/images/raspberrypi2/qt5-image-demo-raspberrypi2.rpi-sdimg of=/dev/sdbX bs=4M

le problème: QtWebEngine n'est pas installé

... mais quand j'ai essayé d'exécuter ce simple QtWebEngine exemple j'ai une erreur disant que QtWebEngine n'est pas installé:

root@raspberrypi2:~# /usr/bin/qt5/qmlscene qb.qml -platform eglfs
file:///home/root/qb.qml:3 module "QtWebEngine" is not installed

... j'ai donc ajouté recette de QtWebEngine mon bitbake configuration de l'image et exécution in my image configuration

vi ../poky-dizzy/meta-embarcados/meta-rpi/recipes-core/images/qt5-image-demo.bbappend

IMAGE_INSTALL += "
           packagegroup-qt5-machine-related 
           apt 
           openssh 
           qtwebengine                    => /usr/lib/qt5/libexec/QtWebEngineProcess
           qtwebengine-qmlplugins         => /usr/lib/qt5/qml/QtWebEngine
                        "

L'ERREUR RESOLVED

~/yocto/build-dizzy$ bitbake qt5-image-demo
WARNING: Host distribution "Debian-7.8" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |##########################################################################################################################################################################################| ETA:  00:00:00
Loaded 1952 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.24.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Debian-7.8"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "raspberrypi2"
DISTRO            = "poky"
DISTRO_VERSION    = "1.7.2"
TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard vfpv4 cortexa7"
TARGET_FPU        = "vfp-vfpv4-neon"
meta-embarcados   
meta-rpi          = "dizzy:821ba371852d2aa86bc71d75918df37a21d264ad"
meta-raspberrypi  = "master:6ef9d94a2c2588dcefe442577ef6ae5bbe722dec"
meta-qt5          = "dizzy:adeca0db212d61a933d7952ad44ea1064cfca747"
meta-oe           = "dizzy:5b6f39ce325d490fc382d5d59c5b8b9d5fa38b38"
meta              
meta-yocto        = "dizzy:9c4ff467f66428488b1cd9798066a8cb5d6b4c3b"
meta-ruby         = "dizzy:5b6f39ce325d490fc382d5d59c5b8b9d5fa38b38"

NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: Failed to fetch URL git://code.qt.io/qt/qtwebengine.git;branch=1.0, attempting MIRRORS if available
ERROR: Fetcher failure: Unable to find revision 21f6ce84ecca9a4ff2aa980b21d2e5174c78d14b in branch 1.0 even from upstream
ERROR: Function failed: Fetcher failure for URL: 'git://code.qt.io/qt/qtwebengine.git;branch=1.0'. Unable to fetch URL from any source.
ERROR: Logfile of failure stored in: /home/otto/yocto/build-dizzy/tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/temp/log.do_fetch.16064
ERROR: Task 634 (/home/otto/yocto/build-dizzy/../poky-dizzy/meta-qt5/recipes-qt/qt5/qtwebengine_5.3.2+git.bb, do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3306 tasks of which 3305 didn't need to be rerun and 1 failed.
No currently running tasks (1955 of 3321)

Summary: 1 task failed:
  /home/otto/yocto/build-dizzy/../poky-dizzy/meta-qt5/recipes-qt/qt5/qtwebengine_5.3.2+git.bb, do_fetch
Summary: There were 2 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Le JOURNAL

~/yocto/build-dizzy$ tail /home/otto/yocto/build-dizzy/tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/temp/log.do_fetch.16064
DEBUG: Running export PATH="/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/usr/bin/qt5:/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/usr/bin/python-native:/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/usr/bin/perl-native:/home/otto/yocto/poky-dizzy/scripts:/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi:/home/otto/yocto/build-dizzy/tmp/sysroots/raspberrypi2/usr/bin/crossscripts:/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/usr/sbin:/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/usr/bin:/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/sbin:/home/otto/yocto/build-dizzy/tmp/sysroots/x86_64-linux/bin:/home/otto/yocto/poky-dizzy/scripts:/home/otto/yocto/poky-dizzy/bitbake/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"; export HOME="/home/otto"; /usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate -P /home/otto/yocto/build-dizzy/../dl 'http://sources.openembedded.org/git2_code.qt.io.qt.qtwebengine.git.tar.gz'
DEBUG: Mirror fetch failure for url http://sources.openembedded.org/git2_code.qt.io.qt.qtwebengine.git.tar.gz (original url: git://code.qt.io/qt/qtwebengine.git;branch=1.0)
DEBUG: Fetcher failure: Fetch command failed with exit code 8, output:
http://sources.openembedded.org/git2_code.qt.io.qt.qtwebengine.git.tar.gz:
2015-05-24 03:12:49 ERROR 404: Not Found.

ERROR: Fetcher failure: Unable to find revision 21f6ce84ecca9a4ff2aa980b21d2e5174c78d14b in branch 1.0 even from upstream
DEBUG: Python function base_do_fetch finished
DEBUG: Python function do_fetch finished
ERROR: Function failed: Fetcher failure for URL: 'git://code.qt.io/qt/qtwebengine.git;branch=1.0'. Unable to fetch URL from any source.

en effet, cela me donner un 404 et c'est mon problème

http://sources.openembedded.org/git2_code.qt.io.qt.qtwebengine.git.tar.gz` 

mais je vérifie et ça marche

git clone git://code.qt.io/qt/qtwebengine.git;branch=1.0git://code.qt.io/qt/qtwebengine.git;branch=1.0`  

personne ne sait comment réparer ça?

en fait j'ai le même problème avec QtWebKit

UPDATE-COMPILATION PASS - comment courir QtWebEngine?

une partie de la Compilation / Installation de QtWebEngine a été abordée. J'ai pu compiler le QtWebEngine /usr/lib/qt5/libexec/QtWebEngineProcess. Le simple script QML ne trouve toujours pas le QtWebEngine, je pense qu'il attend /usr/lib/qt5/qml/QtWebEngine ce que je ne peux pas faire générer.

QML n'est pas absolument nécessaire. Je dois juste être capable de compiler et exécuter une application Qt5 très simple qui chargera une page Web avec les capacités du moteur de mise en page de Chrome d'où l'exigence de QtWebEngine.

mise à jour Ajouté qtwebengine QML plugins - ne peut pas comprendre la VERSION D'importation

root@raspberrypi2:~# /usr/bin/qt5/qmlscene --platform eglfs chromium.qml 
file:///home/root/chromium.qml:3 module "QtWebEngine" version 1.0 is not installed

QtWebEngine Fichiers installés

root@raspberrypi2:/usr/lib/qt5# find . -name *ngine*
./qml/QtWebEngine
./qml/QtWebEngine/experimental/libqtwebengineexperimentalplugin.so
./qml/QtWebEngine/libqtwebengineplugin.so
./plugins/iconengines
./plugins/mediaservice/libqtmedia_audioengine.so
./plugins/qtwebengine
./libexec/QtWebEngineProcess

on dirait que c'est une version 0,9

root@raspberrypi2:~# ls -al /usr/lib/libQt0Web*
lrwxrwxrwx    1 root     root            24 Jun  5 09:16 /usr/lib/libQt0WebEngine.so.0 -> libQt0WebEngine.so.0.9.0
lrwxrwxrwx    1 root     root            24 Jun  5 09:16 /usr/lib/libQt0WebEngine.so.0.9 -> libQt0WebEngine.so.0.9.0
-rwxr-xr-x    1 root     root        112744 May 24 19:04 /usr/lib/libQt0WebEngine.so.0.9.0
lrwxrwxrwx    1 root     root            28 Jun  5 09:16 /usr/lib/libQt0WebEngineCore.so.0 -> libQt0WebEngineCore.so.0.9.0
lrwxrwxrwx    1 root     root            28 Jun  5 09:16 /usr/lib/libQt0WebEngineCore.so.0.9 -> libQt0WebEngineCore.so.0.9.0
-rwxr-xr-x    1 root     root      32914884 May 24 19:04 /usr/lib/libQt0WebEngineCore.so.0.9.0
lrwxrwxrwx    1 root     root            31 Jun  5 09:16 /usr/lib/libQt0WebEngineWidgets.so.0 -> libQt0WebEngineWidgets.so.0.9.0
lrwxrwxrwx    1 root     root            31 Jun  5 09:16 /usr/lib/libQt0WebEngineWidgets.so.0.9 -> libQt0WebEngineWidgets.so.0.9.0
-rwxr-xr-x    1 root     root         73976 May 24 19:04 /usr/lib/libQt0WebEngineWidgets.so.0.9.0

modifié la version d'importation à 0.9 import QtWebEngine 0.9

maintenant une erreur différente se produit, mais une toile vierge (blanche puis rouge) s'ouvre

root@raspberrypi2:~# /usr/bin/qt5/qmlscene --platform eglfs chromium.qml 
[0605/112518:ERROR:resource_bundle.cc(607)] Failed to load /usr/share/qt5/qtwebengine_resources.pak
Some features may not be available.
[0605/112518:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
[0605/112518:WARNING:proxy_service.cc(890)] PAC support disabled because there is no system implementation
[0605/112518:ERROR:resource_bundle.cc(607)] Failed to load /usr/share/qt5/qtwebengine_resources.pak
Some features may not be available.
[0605/112518:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
En effet pas de .pak présence du fichier
root@raspberrypi2:/usr/share/qt5# ls -al
drwxr-xr-x    4 root     root          1024 Jun  5 09:27 .
drwxr-xr-x   29 root     root          1024 May 22 15:21 ..
drwxr-xr-x   40 root     root          1024 Jun  5 09:16 examples
drwx------    3 root     root          1024 Jun  5 09:27 translations

No QtWebEngine plugins.qmltypes (?)

root@raspberrypi2:~# find /usr/lib -name plugins.qmltypes
/usr/lib/qt5/qml/QtQuick.2/plugins.qmltypes
/usr/lib/qt5/qml/QtMultimedia/plugins.qmltypes
/usr/lib/qt5/qml/Qt/labs/settings/plugins.qmltypes
/usr/lib/qt5/qml/Qt/labs/folderlistmodel/plugins.qmltypes
/usr/lib/qt5/qml/Qt/WebSockets/plugins.qmltypes
/usr/lib/qt5/qml/QtServiceFramework/plugins.qmltypes
/usr/lib/qt5/qml/Qt3D/plugins.qmltypes
/usr/lib/qt5/qml/Qt3D/Shapes/plugins.qmltypes
/usr/lib/qt5/qml/QtLocation/plugins.qmltypes
/usr/lib/qt5/qml/QtPositioning/plugins.qmltypes
/usr/lib/qt5/qml/Enginio/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/LocalStorage/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/Controls/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/Layouts/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/Particles.2/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/XmlListModel/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/Window.2/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/Dialogs/plugins.qmltypes
/usr/lib/qt5/qml/QtQuick/PrivateWidgets/plugins.qmltypes
/usr/lib/qt5/qml/QtSensors/plugins.qmltypes
/usr/lib/qt5/qml/QtNfc/plugins.qmltypes
/usr/lib/qt5/qml/QtSystemInfo/plugins.qmltypes
/usr/lib/qt5/qml/QtPublishSubscribe/plugins.qmltypes
/usr/lib/qt5/qml/QtTest/plugins.qmltypes
/usr/lib/qt5/qml/QtBluetooth/plugins.qmltypes

paquets

otto@marvin:~/yocto/build-dizzy$ find . -name  packages-split | grep webengine
./tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/packages-split

sur ma machine de compilation

otto@marvin:~/yocto/build-dizzy$ find . -name qtwebengine_resources.pak 
./tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/packages-split/qtwebengine-dev/usr/share/qt5/qtwebengine_resources.pak
./tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/image/usr/share/qt5/qtwebengine_resources.pak
./tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/package/usr/share/qt5/qtwebengine_resources.pak
./tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/git/src/core/Release/gen/repack/qtwebengine_resources.pak
./tmp/work/cortexa7t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/qtwebengine/5.3.2-r0/sysroot-destdir/usr/share/qt5/qtwebengine_resources.pak
./tmp/sysroots/raspberrypi2/usr/share/qt5/qtwebengine_resources.pak

Simple QML QtWebEngine not showing web page QUESTION on Stackoverflow

9
demandé sur Community 2015-05-24 13:48:29

1 réponses

si vous regardez le rapport://code.qt.io/qt / qtwebengine.git, vous verrez qu'il n'y a pas de branche nommée 1.0, ce qui est ce que dit votre bitbake log:

ERROR: Fetcher failure: Unable to find revision 21f6ce84ecca9a4ff2aa980b21d2e5174c78d14b in branch 1.0 even from upstream

si nous clonons le qtwebengine repo, et exécutons la commande suivante, nous verrons quelle branche contient cette propagation.

$  git branch -r --contains 21f6ce84ecca9a4ff2aa980b21d2e5174c78d14b
origin/5.4
origin/5.4.2
origin/5.5
origin/5.5.0
origin/HEAD -> origin/5.5
origin/dev

ainsi, ce commit est disponible en E. g la branche 5.4.

regarder qtwebengine_5.3.2ǵit.bb recette meta-qt5, nous verrons la ligne suivante dans le recette:

QT_MODULE_BRANCH = "1.0"

c'est cette ligne qui décidera de la branche à vérifier à partir du dépôt ci-dessus.

Essayez d'ajouter un qtwebengine_5.3.2+git.bbappend dans votre propre couche, dans lequel vous ajoutez:

QT_MODULE_BRANCH = "5.4"

après cela, vous devriez au moins être capable de récupérer le SHA1 demandé. Cela semble être un bug dans les métadonnées.

Note: je n'ai pas construit testé cela sur la branche dizzy.

4
répondu Anders 2015-05-27 12:10:06