# PYNQ image v3.1 for Pynq-Z1: build fails during RootFS (multistrap ubuntu-keyring error)

**URL:** <https://discuss.pynq.io/t/pynq-image-v3-1-for-pynq-z1-build-fails-during-rootfs-multistrap-ubuntu-keyring-error/8691>\
**Category:** Support\
**Created:** [August 15, 2025, 11:36am UTC](https://discuss.pynq.io/t/pynq-image-v3-1-for-pynq-z1-build-fails-during-rootfs-multistrap-ubuntu-keyring-error/8691 "2025-08-15T11:36:41Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Charlie\_FPGA](https://avatars.discourse-cdn.com/v4/letter/c/5daacb/32.png) [@Charlie\_FPGA](https://discuss.pynq.io/u/Charlie_FPGA)\
**Post date:** [August 15, 2025, 11:36am UTC](https://discuss.pynq.io/t/pynq-image-v3-1-for-pynq-z1-build-fails-during-rootfs-multistrap-ubuntu-keyring-error/8691/1 "2025-08-15T11:36:41Z")

</div>

Hi all,

I’m trying to generate a **PYNQ image v3.1** for the **Pynq-Z1** using Docker. In the future I’ll target a different custom board.

I followed this tutorial: [https://pynq.readthedocs.io/en/latest/pynq\_sd\_card.html](https://pynq.readthedocs.io/en/latest/pynq_sd_card.html)

## Host setup

- Host: **WSL Ubuntu 22.04 LTS**
- Tools installed: **Vitis, Vivado, Petalinux 2024.1**

## Docker: build and run

Repository and build:

```bash
git clone --recursive https://github.com/Xilinx/PYNQ.git PYNQ
cd PYNQ/sdbuild
docker build \
  --build-arg USERNAME=$(whoami) \
  --build-arg USER_UID=$(id -u) \
  --build-arg USER_GID=$(id -g) \
  -t pynqdock:latest .

```

Run container:

```bash
docker run --init --rm -it \
  -v /tools/Xilinx:/tools/Xilinx \
  -v /home/xilinx/petalinux_projects:/home/xilinx/petalinux_projects \
  --name pynq-sdbuild-env \
  --privileged pynqdock:latest /bin/bash

```

## Build output (hardware/XSA)

```plaintext
INFO: [Project 1-1941] Successfully created Hardware Platform: /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_bsp/hardware_project/pynqz1.xsa
INFO: [Hsi 55-2053] elapsed time for repository (/tools/Xilinx/Vivado/2024.1/data/embeddedsw) loading 0 seconds
INFO: [Vivado 12-12082] Found metadata file: xsa.json
INFO: [Vivado 12-6078] Validating platform properties...
INFO: [Vivado 12-6079] Validating unified platform...
INFO: [Vivado 12-6073] Validating 'pre_synth' platform state...
INFO: [Vivado 12-6077] Validating platform files...
INFO: [Vivado 12-6066] Finished running validate_hw_platform for file: './pynqz1.xsa'
INFO: [Common 17-206] Exiting Vivado at Mon Aug 11 09:59:05 2025...
Built pynqz1 successfully!

```

## Build output (boot image)

```plaintext
[INFO] Successfully built bootloader
cd /home/xilinx/petalinux_projects/PYNQ/sdbuild/output/boot/Pynq-Z1 && petalinux-package --boot --fpga /home/xilinx/petalinux_projects/PYNQ/sdbuild/../boards/Pynq-Z1/base/base.bit --u-boot -p /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project --force
[NOTE] Argument: "--boot" has been deprecated. It is recommended to start using new python command line Argument.
[NOTE] Use: petalinux-package boot [OPTIONS]
[INFO] File in BOOT BIN: "/home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/zynq_fsbl.elf"
[INFO] File in BOOT BIN: "/home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/u-boot.elf"
[INFO] File in BOOT BIN: "/home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/system.dtb"
[INFO] Generating zynq binary package BOOT.BIN...
[INFO]
****** Bootgen v2024.1
  **** Build date : Apr 29 2024-12:18:25
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
    ** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
[INFO] : Bootimage generated successfully

```

## Failure during RootFS generation

At some point (I believe during RootFS generation), it fails:

```plaintext
cp -f /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/BOOT.BIN /home/xilinx/petalinux_projects/PYNQ/sdbuild/output/boot/Pynq-Z1
PYNQ_BOARDNAME=Pynq-Z1 FPGA_MANAGER=1 petalinux-build -c u-boot-xlnx-scr -p /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project
[INFO] Building u-boot-xlnx-scr
...
NOTE: Tasks Summary: Attempted 789 tasks of which 771 didn't need to be rerun and all succeeded.
[INFO] Failed to copy built images to tftp dir: /tftpboot
[INFO] Successfully built u-boot-xlnx-scr
cp -f /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/boot.scr /home/xilinx/petalinux_projects/PYNQ/sdbuild/output/boot/Pynq-Z1/boot.scr
mkdir -p /home/xilinx/petalinux_projects/PYNQ/sdbuild/ccache
sudo rm -rf /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm
mkdir /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm
QEMU_EXE=/opt/qemu/bin/qemu-arm-static PYNQ_BOARD=Unknown ARCH=arm PYNQ_SDIST=/home/xilinx/petalinux_projects/PYNQ/sdbuild/prebuilt/pynq_sdist.tar.gz PYNQ_ROOTFS=/home/xilinx/petalinux_projects/PYNQ/sdbuild/prebuilt/pynq_rootfs.arm.tar.gz /home/xilinx/petalinux_projects/PYNQ/sdbuild/scripts/create_rootfs.sh /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm /home/xilinx/petalinux_projects/PYNQ/sdbuild/ubuntu/jammy/arm
+ set -e
+ target=/home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm
+ SRCDIR=/home/xilinx/petalinux_projects/PYNQ/sdbuild/ubuntu/jammy/arm
+ ARCH=
+ fss='proc dev sys'
+ echo /opt/qemu/bin/qemu-arm-static
/opt/qemu/bin/qemu-arm-static
+ multistrap_conf=/home/xilinx/petalinux_projects/PYNQ/sdbuild/ubuntu/jammy/arm/multistrap.config
+ multistrap_opt=
+ '[' -n '' ']'
+ sudo -E multistrap -f /home/xilinx/petalinux_projects/PYNQ/sdbuild/ubuntu/jammy/arm/multistrap.config -d /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm
multistrap 2.2.11 using /home/xilinx/petalinux_projects/PYNQ/sdbuild/ubuntu/jammy/arm/multistrap.config
multistrap 2.2.11 using /home/xilinx/petalinux_projects/PYNQ/sdbuild/ubuntu/jammy/arm/multistrap.config
Using foreign architecture: armhf
multistrap building armhf multistrap on 'amd64'
I: Setting /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm/lib64 -> /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm/lib symbolic link.
I: Downloading ubuntu-keyring
E: Can't find a source to download version '2021.03.26' of 'ubuntu-keyring:amd64'
multistrap: Unable to download keyring package: '/home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm/'
make: *** [Makefile:431: /home/xilinx/petalinux_projects/PYNQ/sdbuild/build/jammy.arm.stage1.tar.gz] Error 1

```

**Any ideas on how to fix this `multistrap`/`ubuntu-keyring` issue for Jammy in this PYNQ v3.1 Docker flow?** Thanks!

---

<div class="post-metadata">

**Author:** ![joshgoldsmith](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/joshgoldsmith/32/5347_2.png) [@joshgoldsmith](https://discuss.pynq.io/u/joshgoldsmith)\
**Post date:** [August 15, 2025, 2:08pm UTC](https://discuss.pynq.io/t/pynq-image-v3-1-for-pynq-z1-build-fails-during-rootfs-multistrap-ubuntu-keyring-error/8691/2 "2025-08-15T14:08:03Z")

</div>

Hi @Charlie_FPGA

I was not able to replicate this issue. Following the steps in the documentation, I was able to build the Pynq-Z1 image.

Can I just confirm you are downloading the most recent rootfs and sdist from [pynq.io](http://pynq.io)?

- Arm32 rootfs: [https://download.amd.com/opendownload/pynq/jammy.arm.3.1.0.tar.gz](https://download.amd.com/opendownload/pynq/jammy.arm.3.1.0.tar.gz)
- SDIST: [https://download.amd.com/opendownload/pynq/pynq-3.1.tar.gz](https://download.amd.com/opendownload/pynq/pynq-3.1.tar.gz)

Also, when placing them inside `PYNQ/sdbuild/prebuilt/` you need to rename these files to `pynq_rootfs.arm.tar.gz` and `pynq_sdist.tar.gz`, respectively. I realise that is not in the documentation, so I will update that soon.

Let me know how you get on.

---

<div class="post-metadata">

**Author:** ![Charlie\_FPGA](https://avatars.discourse-cdn.com/v4/letter/c/5daacb/32.png) [@Charlie\_FPGA](https://discuss.pynq.io/u/Charlie_FPGA)\
**Post date:** [August 16, 2025, 2:55pm UTC](https://discuss.pynq.io/t/pynq-image-v3-1-for-pynq-z1-build-fails-during-rootfs-multistrap-ubuntu-keyring-error/8691/3 "2025-08-16T14:55:08Z")

</div>

Hello @joshgoldsmith,

Thank you for your message. Yes, I also renamed the “agnostic-boards” rootfs and sdist.

I was desperate and switched from the Docker workflow to running Pynq directly on the host (without Docker)… but I got exactly the same results!

The issue was related to file permissions. My mistake was installing Petalinux as root using `sudo`.

Petalinux 2024.1 installation steps:

> **[AMD Technical Information Portal](https://docs.amd.com/r/2024.1-English/ug1144-petalinux-tools-reference-guide/Installation-Requirements)**

Petalinux Installation command:

> chmod 755 ./petalinux-v-final-installer.run  
> ./petalinux-v-final-installer.run

After that everything is working smoothly. And the weird multistrap error disappeared.

Thanks again for your support.  
BR, Carlos.

---

<div class="post-metadata">

**Author:** ![system](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/system/32/2_2.png) [@system](https://discuss.pynq.io/u/system)\
**Post date:** [August 19, 2025, 2:55pm UTC](https://discuss.pynq.io/t/pynq-image-v3-1-for-pynq-z1-build-fails-during-rootfs-multistrap-ubuntu-keyring-error/8691/4 "2025-08-19T14:55:15Z")

</div>

Closed on August 19, 2025, 2:55pm UTC

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.
