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
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.