[Yocto] VB Build on Ubuntu 20.04

my BeagleV-aHead is on it’s way, so while I wait, I was going to build the images in a VirtualBox with Ubuntu 20.04
following direction at

everything went fine down to “Starting Build” then

ERROR: linux-thead-5.10.y-r0 do_unpack: Bitbake Fetcher Error: UnpackError('No up to date source found: clone directory not available or not up to date: /home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/../downloads/git2/github.com.beagleboard.linux.git; shallow clone not enabled', 'git://github.com/beagleboard/linux.git;branch=beaglev-v5.10.113-1.1.2;protocol=https')

ERROR: opensbi-0.9-r0 do_unpack: Bitbake Fetcher Error: FetchError('Fetch command export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AGENT_PID="1357"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/sysroots-uninative/x86_64-linux/usr/bin:/home/amf/devel/beagleV/xuantie-yocto/openembedded-core/scripts:/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_beagle-oe-linux/opensbi/0.9-r0/recipe-sysroot-native/usr/bin/riscv64-oe-linux:/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_beagle-oe-linux/opensbi/0.9-r0/recipe-sysroot/usr/bin/crossscripts:/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_beagle-oe-linux/opensbi/0.9-r0/recipe-sysroot-native/usr/sbin:/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_beagle-oe-linux/opensbi/0.9-r0/recipe-sysroot-native/usr/bin:/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_beagle-oe-linux/opensbi/0.9-r0/recipe-sysroot-native/sbin:/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_beagle-oe-linux/opensbi/0.9-r0/recipe-sysroot-native/bin:/home/amf/devel/beagleV/xuantie-yocto/openembedded-core/bitbake/bin:/home/amf/devel/beagleV/xuantie-yocto/thead-build/light-fm/tmp-glibc/hosttools"; export HOME="/home/amf"; git -c core.fsyncobjectfiles=0 -c gc.autoDetach=false -c core.pager=cat ls-remote https://github.com/beagleboard/beaglev-ahead-opensbi.git  failed with exit code 128, output:\nfatal: unable to access \'https://github.com/beagleboard/beaglev-ahead-opensbi.git/\': Could not resolve host: github.com\n', None)

there are more errors, but lets start with these two

Thanks,

1 Like

I saw this same issue a few times, never really found a good solution, i had better luck upgrading distro:

Since your on a VM, use Debian Bullseye instead, it’s what works best for me now, and is the default ci backend: .gitlab-ci.yml · Linux_SDK_V1.1.2-light-beagle · BeagleV-Ahead / xuantie-yocto · GitLab

For reference, here is the whole docker file, for package hints for you VM…

# https://github.com/gmacario/easy-build/blob/master/build-yocto/Dockerfile
ARG FRM='debian:bullseye-slim'
ARG TAG='latest'

FROM ${FRM}
ARG FRM
ARG TAG

ENV DEBIAN_FRONTEND noninteractive

RUN apt update && apt -y upgrade

# Required Packages for the Host Development System
# http://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#required-packages-for-the-host-development-system
RUN apt install -y gawk wget git-core diffstat unzip texinfo gcc-multilib \
        build-essential chrpath socat cpio python3 python3-pip python3-pexpect python-is-python3 \
        xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
        pylint3 xterm

# Additional host packages required by poky/scripts/wic
RUN apt install -y curl dosfstools mtools parted syslinux tree zip

# Additional host packages required by ssh-agent
RUN apt install -y openssh-client git rsync

# Additional host packages required by our fork
RUN apt install -y lz4 zstd bison flex autoconf cmake software-properties-common 

# More missing
RUN apt install -y file

RUN apt-add-repository contrib

RUN apt update && apt install -y repo

# Create a non-root user that will perform the actual build
RUN id build 2>/dev/null || useradd --uid 30000 --create-home build
RUN apt install -y sudo
RUN echo "build ALL=(ALL) NOPASSWD: ALL" | tee -a /etc/sudoers

# Fix error "Please use a locale setting which supports utf-8."
# See https://wiki.yoctoproject.org/wiki/TipsAndTricks/ResolvingLocaleIssues
RUN apt install -y locales
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
        echo 'LANG="en_US.UTF-8"'>/etc/default/locale && \
        dpkg-reconfigure --frontend=noninteractive locales && \
        update-locale LANG=en_US.UTF-8

ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8

USER build
WORKDIR /home/build
CMD "/bin/bash"

# EOF

Regards,

2 Likes

if i issue “bitbake -k thead-image-linux” again, i get the following

ERROR: Nothing RPROVIDES ‘ap6203’ (but /home/amf/devel/beagleV/xuantie-yocto/meta-light/recipes-core/images/thead-image-linux.bb RDEPENDS on or otherwise requires it)
ap6203 was skipped: incompatible with machine light-a-val (not in COMPATIBLE_MACHINE)
NOTE: Runtime target ‘ap6203’ is unbuildable, removing…
Missing or unbuildable dependency chain was: [‘ap6203’]
ERROR: Nothing RPROVIDES ‘thead-image-linux’
No eligible RPROVIDERs exist for ‘thead-image-linux’

using debian11, bullseye, it now builds
however, there is no ‘deploy’ directory in ‘tmp-glibc’ directory

any idea on this ?
thanks,

MACHINE=light-beagle bitbake -k thead-image-linux

Regards,

1 Like

finally got it to build with a deploy directory and all it’s content.
Are there instructions or script to create an sdcard image ??

Directions for flashing the onboard eMMC is at the bottom of: readme.md · Linux_SDK_V1.1.2-light-beagle · BeagleV-Ahead / xuantie-yocto · GitLab

Directions for creating a bootable microSD have not been provided by the vendor.

Regards,

1 Like

I managed to get the yocto image building on PopOS 22.04 which is based on ubuntu, with a small patch to llvm based on an issue building with gcc11.

My fix is based on someone else posting a similar error and their already being a patch Compiling Cling error: ‘numeric_limits’ is not a member of ‘std’ - Cling - ROOT Forum

The llvm change is here ⚙ D89450 llvm/utils/benchmark: add missing <limits> inclusion

diff --git a/meta-light/recipes-devtools/llvm/llvm.bb b/meta-light/recipes-devtools/llvm/llvm.bb
index b64a3c91..74ec892f 100644
--- a/meta-light/recipes-devtools/llvm/llvm.bb
+++ b/meta-light/recipes-devtools/llvm/llvm.bb
@@ -23,6 +23,7 @@ SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=http
            file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \
            file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
            file://0001-fix-the-atomic-build-failure.patch;patchdir=.. \
+           file://0008-missing-import.patch;patchdir=.. \
            file://0001-Force-to-link-the-dl-to-wa-the-find-dl-lib-issue.patch;patchdir=.. \
           "
 
diff --git a/meta-light/recipes-devtools/llvm/llvm/0008-missing-import.patch b/meta-light/recipes-devtools/llvm/llvm/0008-missing-import.patch
new file mode 100644
index 00000000..c56a6fd3
--- /dev/null
+++ b/meta-light/recipes-devtools/llvm/llvm/0008-missing-import.patch
@@ -0,0 +1,12 @@
+diff --git a/llvm/utils/benchmark/src/benchmark_register.h b/llvm/utils/benchmark/src/benchmark_register.h
+--- a/llvm/utils/benchmark/src/benchmark_register.h
++++ b/llvm/utils/benchmark/src/benchmark_register.h
+@@ -1,6 +1,7 @@
+ #ifndef BENCHMARK_REGISTER_H
+ #define BENCHMARK_REGISTER_H
+ 
++#include <limits>
+ #include <vector>
+ 
+ #include "check.h"
+

I signed up to the beagle gitlab but haven’t had time to figure out how to submit a change.

Hope this helps others.

Oh what’s your git.beagleboard.org user name… for spam/ci/etc protection, first time users are disabled, and i need to just check a click box, in your user profile…

My username is wolfeidau, i just signed up today.

Thanks!

and all set, you can fork, push, use ci etc. :wink:

1 Like