Ubuntu-image unable to build a simple armhf image

Hello forum members.

This one is a bit of a head-scratcher, I cannot get around it to build a simple image for my OrangePi R1.

Ubuntu-Image throws me this error:

error: cannot use snap “orangepi-r1-kernel-ruhan_0.1_armhf”, parallel snap instances are unsupported
COMMAND FAILED: snap prepare-image --channel=edge --snap=orangepi-r1-kernel-ruhan_0.1_armhf --snap=orangepi-r1-ruhan_16-0.1_armhf.snap models/orangepi-r1-uc16.model /tmp/tmp3ngomiws/unpack

Here is my model file:

{
“type”: “model”,
“series”: “16”,
“model”: “ruhan-ubuntucore”,
“display-name”:“Ubuntu Core 16 (armhf)”,
“architecture”: “armhf”,
“kernel”: “orangepi-r1-kernel-ruhan”,
“gadget”: “orangepi-r1-ruhan”,
“authority-id”: “removed for security purposes”,
“brand-id”: “removed for security purposes”,
“timestamp”: “2021-08-14T17:00:00+00:00”
}

Kernel and gadget snapcraft yaml files:

name: orangepi-r1-ruhan
version: 16-0.1
summary: Orange Pi R1
description: |
Bootloader files and partitoning data to create a
bootable Ubuntu Core image for the Orange Pi R1.
type: gadget
base: core

architectures:

  • build-on: amd64
    run-on: armhf

confinement: strict
grade: stable

parts:
uboot:
plugin: nil
–snip –

name: orangepi-r1-kernel-ruhan
version: ‘0.1’
#adopt-info: kernel
summary: Linux kernel for OrangePi R1
description: |
kernel for OrangePi-R1

grade: stable
confinement: strict
type: kernel

architectures:

  • build-on: amd64
    run-on: armhf
    –snip–

I have tried a model file with the “base” property added, removed it, compiled gadget with and without a base, still the same error.

I have reverted my snapcraft to the legacy 4.x version,

snapcraft --version
snapcraft, version 4.8

snap info snapcraft
name: snapcraft
summary: easily create snaps
publisher: Canonical✓
store-url: https://snapcraft.io/snapcraft
contact: https://forum.snapcraft.io/c/snapcraft
license: GPL-3.0
description: |
Package, distribute, and update any app for Linux and IoT.

Snaps are containerised software packages that are simple to create and install. They auto-update
and are safe to run. And because they bundle their dependencies, they work on all major Linux
systems without modification.
commands:

  • snapcraft
    snap-id: vMTKRaLjnOJQetI78HjntT37VuoyssFE
    tracking: 4.x/stable
    refresh-date: yesterday at 18:44 SAST
    channels:
    latest/stable: 5.0 2021-08-09 (6751) 58MB classic
    latest/candidate: ↑
    latest/beta: ↑
    latest/edge: 5.0.1.post6+git50600144 2021-08-06 (6777) 58MB classic
    5.x/stable: 5.0 2021-08-09 (6751) 58MB classic
    5.x/candidate: ↑
    5.x/beta: ↑
    5.x/edge: ↑
    4.x/stable: 4.8 2021-06-03 (6512) 74MB classic
    4.x/candidate: ↑
    4.x/beta: ↑
    4.x/edge: ↑
    installed: 4.8 (6512) 74MB classic

Any ideas?
I have been searching for the kernel sources, found it after a hefty amount of digging.
I plan to release this snapcraft.yamls on my github, so that you can build an image for your OrangePi R1 as well.

is there a .snap missing in your command ?

Hello, it is only these two on the ‘ubuntu-image’ command.

ubuntu-image snap -c edge --snap orangepi-r1-kernel-ruhan_0.1_armhf --snap orangepi-r1-ruhan_16-0.1_armhf.snap -O images models/orangepi-r1-uc16.model
And yes, the snaps have been copied over, so the files is present in the current directory.

you are still missing .snap at the end of the kernel snap name …

Oh, simple mistake. I was executing this command in a script, to save me some time, did not notice it.
I realized my mistake just when I posted. Thanks.

1 Like