Как установить и запустить QML QtWebEngine & QtWebKit на SBC с помощью Yocto / невозможно получить URL из любого источника
окружающая среда
- 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 Покы
- Qt5
моя цель-запустить веб-движок Chromium layout на RPi2
я хочу иметь возможность запускать это на моем 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
}
}
как я создал свой образ RPi2
я успешно создал изображение для моего RPi2 с помощью Yocto с помощью этот уникальный и удивительный учебник на португальском языке и это на английском
здесь после нескольких строк, как я смог создать изображение для моего 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
через несколько часов я мог выбрать изображение, построенное ~/yocto/build-dizzy/tmp/deploy/images/raspberrypi2/qt5-image-demo-raspberrypi2.rpi-sdimg
... и скопируйте на карту microSD, например
dd if=~/yocto/build-dizzy/tmp/deploy/images/raspberrypi2/qt5-image-demo-raspberrypi2.rpi-sdimg of=/dev/sdbX bs=4M
проблема: QtWebEngine не установлен
... но когда я попытался запустить это простой QtWebEngine пример я получил ошибку, сказав, что QtWebEngine не установлен:
root@raspberrypi2:~# /usr/bin/qt5/qmlscene qb.qml -platform eglfs
file:///home/root/qb.qml:3 module "QtWebEngine" is not installed
... поэтому я добавил рецепт QtWebEngine мой bitbake настройки изображения и побежал 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
"
ошибка 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.
журнал
~/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.
действительно это дайте мне 404 и это моя проблема
http://sources.openembedded.org/git2_code.qt.io.qt.qtwebengine.git.tar.gz`
но я проверю это и работает
git clone git://code.qt.io/qt/qtwebengine.git;branch=1.0git://code.qt.io/qt/qtwebengine.git;branch=1.0`
кто-нибудь знает как это исправить?
на самом деле у меня такая же проблема с QtWebKit
ОБНОВЛЕНИЕ-КОМПИЛЯЦИЯ PASS
- как мне бежать QtWebEngine
?
была рассмотрена часть компиляции/установки QtWebEngine. Я смог скомпилировать QtWebEngine /usr/lib/qt5/libexec/QtWebEngineProcess
. Простой скрипт QML по-прежнему не находит QtWebEngine
, я думаю, он ожидает /usr/lib/qt5/qml/QtWebEngine
что я не в состоянии генерировать.
QML не является жестким требованием. Мне просто нужно иметь возможность скомпилировать и запустить очень простое приложение Qt5, которое загрузит веб-страницу с возможностями Chromium Layout Engine, следовательно, требование QtWebEngine.
обновление добавлено QtWebEngine QML плагины-не могу понять версию импорта
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 файлы, установленные
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
похоже, это версия 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
изменена версия импорта на 0.9 import QtWebEngine 0.9
теперь появляется другая ошибка, но открывается пустой (белый, затем красный) холст
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()
Действительно, нет!-Настоящий файл -28-->
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
Нет 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
пакетов
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
на моей сборке машины
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
простой QML QtWebEngine не показывает вопрос веб-страницы на Сайте StackOverflow
1 ответов
если вы посмотрите на Git РЕПО://код.qt.io/qt / qtwebengine.git, вы увидите, что нет ветви с именем 1.0, что и говорится в вашем журнале bitbake:
ERROR: Fetcher failure: Unable to find revision 21f6ce84ecca9a4ff2aa980b21d2e5174c78d14b in branch 1.0 even from upstream
если мы клонируем РЕПО qtwebengine и запустим следующую команду, мы узнаем, какая ветвь содержит эту фиксацию.
$ 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
таким образом, эта фиксация доступна на e.g филиал 5.4.
взглянув на qtwebengine_5.3.2ǵit.bb
рецепт meta-qt5
, мы увидим следующую строку в рецепт:
QT_MODULE_BRANCH = "1.0"
именно эта строка будет решать, какую ветвь проверить из репозитория выше.
попробуйте добавить qtwebengine_5.3.2+git.bbappend
в вашем собственном слое, в который вы добавляете:
QT_MODULE_BRANCH = "5.4"
после этого вы, по крайней мере, сможете получить запрошенный SHA1. Похоже, это ошибка в метаданных.
примечание: Я не строил тестировал это на головокружительной ветви.