问题跟踪表-RISC-V.md 12 KB

问题一

1、问题描述

使用root用户编译,错误提示:

Do not use Bitbake as root.

2、解决方法

修改文件:

openembedded-core/meta/classes/sanity.bbclass

修改内容:

-    if 0 == os.getuid():
-        raise_sanity_error("Do not use Bitbake as root.", d)
+    #if 0 == os.getuid():
+        #raise_sanity_error("Do not use Bitbake as root.", d)

问题二

1、问题描述

根据开发机器工具链存储位置,设置交叉编译工具链。

2、解决方法

修改代码仓:

meta-riscv

提交commit ID:

e24b5064086ee9d496cd06f603b2f8f13856e1ba

问题三

1、问题描述 ltp编译时,提示无法找到rpc/rpc.h

2、解决方法

vim  openembedded-core/meta/recipes-extended/ltp/ltp_20200930.bb +80
do_compile_prepend(){
    cp -r ${EXTERNAL_TOOLCHAIN_SYSROOT}/usr/include/rpc ${STAGING_DIR_HOST}/usr/include
}

问题四

1、问题描述

xhost编译时,提示无法找到rpc/rpc.h

2、解决方法

修改代码仓:

openembedded-core

提交commit ID:

499b74d0934f5f088facfe04477a14a22b52e2d5

问题五

1、问题描述

man-db编译报错如下:

configure: error: flex is required when building from revision control
WARNING: /home/run/code/riscv_yocto_new/thead-build/ice-xfce/tmp-glibc/work/riscv64-oe-linux/man-db/2.9.3-r0/temp/run.do_configure.90499:292 exit 1 from 'exit 1'
WARNING: Backtrace (BB generated script): 
        #1: bbfatal_log, /home/run/code/riscv_yocto_new/thead-build/ice-xfce/tmp-glibc/work/riscv64-oe-linux/man-db/2.9.3-r0/temp/run.do_configure.90499, line 292
        #2: oe_runconf, /home/run/code/riscv_yocto_new/thead-build/ice-xfce/tmp-glibc/work/riscv64-oe-linux/man-db/2.9.3-r0/temp/run.do_configure.90499, line 255
        #3: autotools_do_configure, /home/run/code/riscv_yocto_new/thead-build/ice-xfce/tmp-glibc/work/riscv64-oe-linux/man-db/2.9.3-r0/temp/run.do_configure.90499, line 239
        #4: do_configure, /home/run/code/riscv_yocto_new/thead-build/ice-xfce/tmp-glibc/work/riscv64-oe-linux/man-db/2.9.3-r0/temp/run.do_configure.90499, line 151
        #5: main, /home/run/code/riscv_yocto_new/thead-build/ice-xfce/tmp-glibc/work/riscv64-oe-linux/man-db/2.9.3-r0/temp/run.do_configure.90499, line 306

Backtrace (metadata-relative locations):
        #1: bbfatal_log, /home/run/code/riscv_yocto_new/openembedded-core/meta/classes/logging.bbclass, line 72
        #2: oe_runconf, /home/run/code/riscv_yocto_new/openembedded-core/meta/classes/autotools.bbclass, line 96
        #3: autotools_do_configure, /home/run/code/riscv_yocto_new/openembedded-core/meta/classes/autotools.bbclass, line 236
        #4: do_configure, autogenerated, line 2
Currently  1 running tasks (2301 of 2309)  99% |########################################################################################################################################### |
0: man-db-2.9.3-r0 do_configure - 1m7s (pid 90499)

2、解决方法

修改代码仓:

openembedded-core

提交commit ID:

cb5990111a990dfdb8510b81409cc0f945327e7f

问题六

1、问题描述

gcc编译报错如下:

ERROR: gcc-10.2.0-r0 do_package: QA Issue: gcc: Files/directories were installed but not shipped in any package:
  /usr/bin/riscv64-oe-linux-riscv64-linux-g++
  /usr/bin/riscv64-oe-linux-gcc-10.2.0
  /usr/bin/riscv64-oe-linux-riscv64-linux-gcc-ar
  /usr/bin/riscv64-oe-linux-riscv64-linux-gcc-nm
  /usr/bin/riscv64-oe-linux-riscv64-linux-gcc-ranlib
  /usr/bin/riscv64-oe-linux-riscv64-linux-gcc
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
gcc: 6 installed and not shipped files. [installed-vs-shipped]
ERROR: gcc-10.2.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: Logfile of failure stored in: /home/run/code/riscv_yocto_new/thead-build/ice-base/tmp-glibc/work/riscv64-oe-linux/gcc/10.2.0-r0/temp/log.do_package.56143
ERROR: Task (/home/run/code/riscv_yocto_new/openembedded-core/meta/recipes-devtools/gcc/gcc_10.2.bb:do_package) failed with exit code '1'

2、解决方法

修改代码仓:

openembedded-core

提交commit ID:

5a3e40720c904174e17a237e652d844cf932f12b

问题七

1、问题描述

编译gstreamer时,不同license导致出错如下:

ERROR: Nothing RPROVIDES 'faac' (but /home/run/code/riscv_yocto_new/meta-openembedded/meta-xfce/recipes-core/images/core-image-xfce.bb RDEPENDS on or otherwise requires it)
faac was skipped: because it has a restricted license 'commercial'. Which is not whitelisted in LICENSE_FLAGS_WHITELIST
NOTE: Runtime target 'faac' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['faac']
ERROR: Required build target 'core-image-xfce' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-xfce', 'faac']

2、解决方法

thead-build/ice-xfce/conf/local.conf文件增加:

LICENSE_FLAGS_WHITELIST="commercial"

问题八

1、问题描述

编译XFCE映像时,出错如下:

ERROR: Nothing RPROVIDES ‘apte2fsprogs-resize2fs’(but ../meta-openembedded/meta-xfce/recipes-core/images/core-image-xfce.bb RDEPENDS on or otherwise requires it)

2、解决方法

thead-build/ice-xfce/conf/local.conf文件修改:

IMAGE_INSTALL_append = " e2fsprogs-resize2fs "

注意e2fsprogs-resize2fs前面需要加空格。

问题九

1、问题描述 GNOME桌面加入packagegroup-gnome-desktop.bb会导致编译的时候polkitgobject-introspection-data报错。

2、解决方法

修改代码仓:

meta-riscv

提交commit ID:

02a7d446b6422cccd537bbd079c770793384041e

问题十(继续跟踪)

1、问题描述

core-image-xfce.bb文件中添加ffmpeggstreamer的各种插件之后,使用如下命令可以播放mpeg4的视频。

gst-play-1.0 oceans_mpeg4.mp4 --videosink fbdevsink

目前无法播放h264的视频,因为ffmpeg解码的时候会报段错误Segmentation fault

2、解决方法

替换http://ftp.ports.debian.org/debian-ports/pool-riscv64/main/f/ffmpeg/下的`libavcodec.so`及其依赖库,增加`ld-linux-riscv64-lp64d.so.1`,可以解码`h264`.

问题十一

1、问题描述

基于XFCE映像,apt-get update 提示:

gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed

2、解决方法

meta-openembedded/meta-xfce/recipes-core/images/core-image-xfce.bb文件中增加:

IMAGE_INSTALL += " gpgme gnupg"

问题十二

1、问题描述

XFCE桌面环境下,apt-get upgrade后,ls命令不可用。 apt-get update使用前需要配置:

resize2fs /dev/mmcblk0p3
cd /etc/apt
vi source.list  ##增加下面的源
deb http://mirrors.aliyun.com/debian-ports sid main
deb http://mirrors.aliyun.com/debian-ports unreleased main
deb http://mirrors.aliyun.com/thead/debian-riscv64 sid main
cd /etc/apt/trusted.gpg.d/
tftp -g -r thead-repo.gpg 192.168.1.114                   #PC IP, *.gpg 从buildroot版本的debian-rootfs.ext4中获取
tftp -g -r debian-ports-archiv 192.168.1.114

2、解决方法

原因:目前更新的deb包使用的工具链和现有Yocto项目编译的工具链不匹配导致。

方法:使用同一个工具链编译,然后制作源,更新即可。

问题十三

1、问题描述

apt-get update提示:

"No sandbox user '_apt' on the system, can not drop privileges"

2、解决方法

修改代码仓:

openembedded-core

提交commit ID:

fdf4b62947c2a22e304dba68ead4943ce2a07ea4

问题十四

1、问题描述

apt-get install提示下列warning:
dpkg: error processing package xxx 或 assuming package has no files currently installed

2、解决方法

使用buildroot版本的/sbin/ldconfig替换后,相关warning消失。

问题十五

1、问题描述

apt-get install安装无签名deb包时,提示Error如下:

no Release file

2、解决方法

测试时,使用如下命令:

apt-get update --allow-insecure-repositories

问题十六(需要跟踪)

1、问题描述

ldconfig提示非法指令:

ldconfig[533]: unhandled signal 4 code 0x1 at 0x000000000002b06c in ldconfig[10000+6b000]
…
Illegal instruction

2、解决方法

在系统启动后,使用buildroot版本的/sbin/ldconfig替换现有版本的/sbin/ldconfig,目前怀疑是工具链问题。

问题十七

1、问题描述

evolution-data-server配置错误:

-- Checking for module 'sqlite3>=3.7.17'
--   Found sqlite3, version 3.33.0
-- Checking for module 'libgdata>=0.15.1'
--   No package 'libgdata' found
CMake Error at cmake/modules/PkgConfigEx.cmake:32 (message):
  Necessary libraries not found or not enough version.  If you want to
  disable Google, please use -DENABLE_GOOGLE=OFF argument to cmake command.
Call Stack (most recent call first):
  CMakeLists.txt:786 (pkg_check_modules_for_option)

2、解决方法

修改代码仓:

meta-openembedded

提交commit ID:

10a7ec7caa90512b642962ef91dfdce9baf0d152

问题十八

1、问题描述

bitbake core-image-gnome -c populate_sdk编译报错,信息如下:

1. binutils-external-cross-canadian.bb:do_install错误:
| ln: failed to create symbolic link '/home/lqg/al_yocto/temp/riscv_yocto/thead-build/ice-gnome/tmp-glibc/work/x86_64-nativesdk-oesdk-linux/binutils-external-cross-canadian-riscv64/2.32-r0/image/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/riscv64-linux-ld.bfd': File exists

2、解决方法

修改代码仓:

meta-external-toolchain

提交commit ID:

933f57e865ca0ac56c69adbb984d5e68dc068683

问题十九

1、问题描述

gdb-external-cross-canadian.bb编译错误,信息如下:

ERROR:gdb-external-cross-canadian-riscv64-8.2.50.20190202-git-r0 do_package: QA Issue: gdb-external-cross-canadian-riscv64: Files/directories were installed but not shipped in any package:
  /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/riscv64-linux
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
gdb-external-cross-canadian-riscv64: 1 installed and not shipped files. [installed-vs-shipped]

2、解决方法

修改代码仓:

meta-external-toolchain

提交commit ID:

933f57e865ca0ac56c69adbb984d5e68dc068683

问题二十

1、问题描述

webkitgtk编译错误如下:

In file included from DerivedSources/WebCore/unified-sources/UnifiedSource-3c72abbe-48.cpp:8:
 /home/lqg/al_yocto/temp/riscv_yocto/thead-build/ice-gnome/tmp-glibc/work/riscv64-oe-linux/webkitgtk/2.30.2-r0/webkitgtk-2.30.2/Source/WebCore/platform/network/ResourceResponseBase.cpp: In      member function 'void WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting()':
 /home/lqg/al_yocto/temp/riscv_yocto/thead-build/ice-gnome/tmp-glibc/work/riscv64-oe-linux/webkitgtk/2.30.2-r

注:webkiggtk编译时间很长,如果编译不过,需要扩大swap分区。

2、解决方法

修改代码仓:

meta-riscv

提交commit ID:

7d22565122cc58a80bc74cf8937b3b46499c24ce