Bitbake元工具链-qt5:UnicodeDecodeError

时间:2018-02-16 04:48:44

标签: qt5 embedded-linux yocto bitbake openembedded

这里有点奇怪,这个确切的配置用于构建就好了,但现在失败了。我的qt5图层中没有自定义bbappends,因此它应该只是meta-qt5的vanilla构建。

失败看起来像这样:

$ bitbake meta-toolchain-qt5
NOTE: Started PRServer with DBfile: /media/parallels/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 38360, PID: 18679
Loading cache: 100% |###################################################################################################################################################| ETA:  00:00:00
Loaded 2898 entries from dependency cache.
Parsing recipes: 100% |#################################################################################################################################################| Time: 00:00:01
Parsing of 2362 .bb files complete (2359 cached, 3 parsed). 2900 targets, 156 skipped, 9 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.26.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "overo"
DISTRO            = "poky"
DISTRO_VERSION    = "1.8"
TUNE_FEATURES     = "arm armv7a vfp neon callconvention-hard cortexa8"
TARGET_FPU        = "vfp-neon"
meta              
meta-yocto        = "(nobranch):83aa565d93aacae484976562ef1ae8dbbb6b2bc0"
meta-gnome        
meta-oe           
meta-xfce         
meta-systemd      
meta-networking   
meta-multimedia   
meta-python       = "(nobranch):10d3c8f85280a0bf867a8e4f84bcda81c290d28e"
meta-gumstix      = "(nobranch):68e4b5771aef2d11fcf04bb8759fecd409de1ac3"
meta-gumstix-extras = "(nobranch):0ee78d47ff3082000e9e087b1ec0d56df13457d9"
meta-bluechiip    = "HHR-STREAM4:a60b5fb37479e2ff1348ab100c0f3735713a730c"
meta-ros          = "(nobranch):d465a23c0a96e651419d46b29ab7c0c3663da314"
meta-ti           = "(nobranch):03cb3ff15f3b8535ca409ce682f44ec1b81da0c3"
meta-java         = "(nobranch):66c97ae7461f4c1a13917131787bb76dc34e6b6f"
meta-qt5          = "(nobranch):90919b9d86988e7da01fa2c0a07246b5b5600a5d"

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Unable to install packages. Command '/media/parallels/build/tmp/sysroots/x86_64-linux/usr/bin/smart --quiet --data-dir=/media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/var/lib/smart install -y packagegroup-core-standalone-sdk-target-dbg@all packagegroup-core-standalone-sdk-target@all packagegroup-qt5-toolchain-target@all' returned 1:
Traceback (most recent call last):
  File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/smart/backends/rpm/pm.py", line 358, in __call__
    self._process_rpmout()
  File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/smart/backends/rpm/pm.py", line 343, in _process_rpmout
    output = self.rpmout.read()
  File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/codecs.py", line 474, in read
    newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4948: ordinal not in range(128)

ERROR: Function failed: do_populate_sdk
ERROR: Logfile of failure stored in: /media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/temp/log.do_populate_sdk.18850
ERROR: Task 7 (/home/parallels/yocto/poky/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk) failed with exit code '1'
NOTE: Tasks Summary: Attempted 4705 tasks of which 4704 didn't need to be rerun and 1 failed.
No currently running tasks (4704 of 4706)

(在确切的失败点上更加冗长......)

$ bitbake -v -c populate_sdk meta-toolchain-qt5
<snip>
NOTE: Executing '/media/parallels/build/tmp/sysroots/x86_64-linux/usr/bin/createrepo --dbpath /media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/rpmdb/cortexa8hf_vfp_neon --update -q /media/parallels/build/tmp/deploy/rpm/cortexa8hf_vfp_neon' ...
NOTE: Executing '/media/parallels/build/tmp/sysroots/x86_64-linux/usr/bin/createrepo --dbpath /media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/rpmdb/x86_64_nativesdk --update -q /media/parallels/build/tmp/deploy/rpm/x86_64_nativesdk' ...
NOTE: Installing the following packages: packagegroup-core-standalone-sdk-target-dbg packagegroup-core-standalone-sdk-target packagegroup-qt5-toolchain-target
NOTE: to be installed: packagegroup-core-standalone-sdk-target-dbg@all packagegroup-core-standalone-sdk-target@all packagegroup-qt5-toolchain-target@all
NOTE: /media/parallels/build/tmp/sysroots/x86_64-linux/usr/bin/smart --quiet --data-dir=/media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/var/lib/smart install -y packagegroup-core-standalone-sdk-target-dbg@all packagegroup-core-standalone-sdk-target@all packagegroup-qt5-toolchain-target@all
ERROR: Unable to install packages. Command '/media/parallels/build/tmp/sysroots/x86_64-linux/usr/bin/smart --quiet --data-dir=/media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/var/lib/smart install -y packagegroup-core-standalone-sdk-target-dbg@all packagegroup-core-standalone-sdk-target@all packagegroup-qt5-toolchain-target@all' returned 1:
Output from udev-cache-182-r9.0.0@cortexa8hf_vfp_neon:
 Removing any system startup links for udev-cache ...
 Adding system startup for /media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/etc/init.d/udev-cache.
Traceback (most recent call last):
  File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/smart/backends/rpm/pm.py", line 358, in __call__
    self._process_rpmout()
  File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/smart/backends/rpm/pm.py", line 343, in _process_rpmout
    output = self.rpmout.read()
  File "/media/parallels/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/codecs.py", line 474, in read
    newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4948: ordinal not in range(128)

ERROR: Function failed: do_populate_sdk
ERROR: Logfile of failure stored in: /media/parallels/build/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/temp/log.do_populate_sdk.344
ERROR: Task 6 (/home/parallels/yocto/poky/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3582 tasks of which 3581 didn't need to be rerun and 1 failed.

我对此的解读是,软件包管理器只期望软件包packagegroup-core-standalone-sdk-target-dbg packagegroup-core-standalone-sdk-target&amp; package中的ascii字符。 packagegroup-qt5-toolchain-target并遇到超出范围的值(195 / 0xc3)。可能聪明的是期待错误的编码。如果这是正确的,如何为这些包的安装指定备用编码&amp;我怎样才能确定正确的编码应该是什么?

我有点惊讶于这突然变成了一个问题,因为我的构建指向与之前的工作状态完全相同的来源 - 它可能完全不同。我遇到的唯一另一件事是我在构建工作和失败之间运行了apt-get更新,因此完全有可能其中一个构建工具的版本可能已更改。

如果我有任何关于如何进行的建议将非常感激,如果我能提供更多数据,请告诉我。

1 个答案:

答案 0 :(得分:0)

看起来它实际上并没有在任何与meta-qt5相关的包上失败,而是udev-cache应该来自oe-core中的udev配方。

如果您之前已经构建了相同的源而没有问题,我会尝试强制重建udev包,只是为了排除某个文件意外地被破坏。

再次尝试bitbake -c cleansstate udev然后bitbake meta-toolchain-qt5