gpt4 book ai didi

qt - 如何使用Yocto在SBC上安装和运行QML QtWebEngine&QtWebKit/无法从任何来源获取URL

转载 作者:行者123 更新时间:2023-12-04 04:25:16 25 4
gpt4 key购买 nike

环境

  • Debian GNU/Linux 7.8(简述)Linux marvin 3.16-0.bpo.2-amd64 #1 SMP Debian 3.16.3-2~bpo70+1 (2014-09-21) x86_64 GNU/Linux
  • 树莓派2
  • Yocto Poky
  • Qt5

  • 我的目标是在RPi2上运行Chromium布局Web引擎

    我希望能够在我的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图像

    我已经使用 this unique and amazing tutorial in portuguesethis one in english使用Yocto为RPi2成功创建了一个图像

    在几行之后,我如何能够为我的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

    ...但是当我尝试运行此 simple QtWebEngine example时,出现错误,提示未安装 QtWebEngine :
    root@raspberrypi2:~# /usr/bin/qt5/qmlscene qb.qml -platform eglfs
    file:///home/root/qb.qml:3 module "QtWebEngine" is not installed

    ...所以我将 QtWebEngine recipe添加到了我的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布局引擎功能的Web页面,因此需要 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
    现在出现了另一个错误,但是空白(白色然后是红色)的 Canvas 正在打开
    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()

    确实不存在 .pak文件
    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

    Simple QML QtWebEngine not showing web page QUESTION on Stackoverflow

    最佳答案

    如果您查看 repo 库git://code.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

    因此,该提交在5.4分支上可用。

    看一看 qtwebengine_5.3.2ǵit.bb中的 meta-qt5配方,我们将在配方中看到以下行:
    QT_MODULE_BRANCH = "1.0"

    这行将决定从上面的存储库中 check out 哪个分支。

    尝试在自己的图层中添加 qtwebengine_5.3.2+git.bbappend,在其中添加:
    QT_MODULE_BRANCH = "5.4"

    之后,您至少应该能够获取请求的SHA1。这似乎是元数据中的错误。

    注意:我尚未在头昏眼花的分支上对此进行构建测试。

    关于qt - 如何使用Yocto在SBC上安装和运行QML QtWebEngine&QtWebKit/无法从任何来源获取URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30422646/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com