Running within Fedora Silverblue 37, I attempted to build the VF2(visionfive 2) image from within a podman ubuntu 20.04(focal) container rather than from straight ubuntu focal. Unfortunately, I have not been able to successfully repeat the build to get all the described VF2 build binaries and images and such with the steps described below.
Afterwards, how does one slip in/overlay the Fedora Silverblue 37 packages as much as possible into the VF2 image using the existing working VF2 kernel?
Why is it that buildroot also annoying downloads all the dependant packages from different repositories within the build process?
Why couldn't all these buildroot packages all be fetched beforehand AND THEN build?
Why is it that we don't separate the package documentation from the package binaries and optionally build documentation afterwards? This could save enormous amounts of build time when iterating through all this.
fetch ubuntu 20.04 focal container
podman pull ubuntu:focal-20221130
create a directory to share data between the container and the host fedora silverblue 37
mkdir -p /mnt/vf2share
start ubuntu 20.04 focal container
podman run -v ~/vf2share:/mnt/vf2share --net host -i -t ubuntu:focal-20221130 /bin/bash
#Later we'll start it like this after it has been committed
podman run -v /var/home/davidm/vf2share:/mnt/vf2share:Z --net host -i -t ubuntu-vf2-buildr /bin/bash
issues with group and owner in the build.
tar: Makefile.in: Cannot change ownership to uid 71588, gid 10513: Invalid argument
tar: README: Cannot change ownership to uid 71588, gid 10513: Invalid argument
tar: Exiting with failure status due to previous errors
Attempted to resolve them with this alias, but did nothing to help. There are a lot of instances of "am__untar" holding tar commands. I can't possibly ask for a change request for this many files just to run this in a container. Don't most CI systems use containers to build stuff? Are there other devs here experiencing such issues or you resort to running native os in order to do this kind of work always? The tar flag in question to resolve all this is "--no-same-owner" but it has to be applied everywhere consistently.
alias tar='tar --no-same-owner'
cd VisionFive2
git checkout JH7110_VisionFive2_devel
git submodule update --init --recursive
Ensure we checkout on the label JH7110_VisionFive2_devel for all except opensbi
cd buildroot && git checkout --track origin/JH7110_VisionFive2_devel && cd ..
cd u-boot && git checkout --track origin/JH7110_VisionFive2_devel && cd ..
cd linux && git checkout --track origin/JH7110_VisionFive2_devel && cd ..
cd opensbi && git checkout master && cd ..
cd soft_3rdpart && git checkout JH7110_VisionFive2_devel && cd ..
I used an emacs shell with no color enabled to capture the build output for discussing with other developers. You can use whatever you want.
emacs -nw --color=no
#alt-x shell
Now start the build of everything
time make -j$(nproc)
# or
time make -j$(nproc) all
FINISHED ubuntu 20.04 focal container
pause podman container
ctrl-p ctrl-q
list podman containers
podman ps
Output will contain:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c35f4187b36 docker.io/library/ubuntu:focal-20221130 /bin/bash 2 hours ago Up 2 hours ago admiring_wescoff
save all our actions and name the container
podman commit 8c35f4187b36 ubuntu-vf2-buildr
attach back into the running session
podman attach ubuntu-vf2-buildr
exit the container
exit
kill any running containers
podman kill 8c35f4187b36
next time you want to use this container:
podman run -v /var/home/davidm/vf2share:/mnt/vf2share:Z --net host -i -t ubuntu-vf2-buildr /bin/bash
Thank you in advance for any help on these matters. Cheers.
Running within Fedora Silverblue 37, I attempted to build the VF2(visionfive 2) image from within a podman ubuntu 20.04(focal) container rather than from straight ubuntu focal. Unfortunately, I have not been able to successfully repeat the build to get all the described VF2 build binaries and images and such with the steps described below.
podman pull ubuntu:focal-20221130
mkdir -p /mnt/vf2share
Attempted to resolve them with this alias, but did nothing to help. There are a lot of instances of "am__untar" holding tar commands. I can't possibly ask for a change request for this many files just to run this in a container. Don't most CI systems use containers to build stuff? Are there other devs here experiencing such issues or you resort to running native os in order to do this kind of work always? The tar flag in question to resolve all this is "--no-same-owner" but it has to be applied everywhere consistently.
alias tar='tar --no-same-owner'
Inside ubuntu 20.04 focal container
git clone https://github.com/starfive-tech/VisionFive2.git
cd VisionFive2
BR2_KERNEL_HEADERS_CUSTOM_REPO_URL="https://github.com/starfive-tech/linux.git"
FINISHED ubuntu 20.04 focal container
ctrl-p ctrl-q
podman ps
Output will contain: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8c35f4187b36 docker.io/library/ubuntu:focal-20221130 /bin/bash 2 hours ago Up 2 hours ago admiring_wescoff
podman commit 8c35f4187b36 ubuntu-vf2-buildr
attach back into the running sessionpodman attach ubuntu-vf2-buildr
exit the container
exit
kill any running containers
podman kill 8c35f4187b36
next time you want to use this container:podman run -v /var/home/davidm/vf2share:/mnt/vf2share:Z --net host -i -t ubuntu-vf2-buildr /bin/bash
Thank you in advance for any help on these matters. Cheers.