Pi3 64 bit model assertion

To test an arm64 specific fix I create a 64bit model assertion for the Pi3 to build a UC18 64 bit arm image that booted successfully on my Pi3.

If anyone else wants to play with it, here is what it looks like (replace the xxx with your accout-id):

cat > in.json <<EOF
{
    "type": "model",
    "authority-id": "xxx",
    "brand-id": "xxx",
    "series": "16",
    "model": "ubuntu-core-18-pi3-64",
    "display-name":"Ubuntu Core 18 (pi3-64)",
    "architecture": "arm64",
    "base": "core18",
    "gadget": "pi=18-pi3",
    "kernel": "pi-kernel=18-pi3",
    "timestamp": "2018-08-13T09:00:00+00:00"
}
EOF

With that the image can be created like:

$ snap sign < in.json > pi3-64.model
$ ubuntu-image pi3-64.model --channel=edge

# write to sdcard
$ sudo snap install godd --devmode --beta
$ godd pi.img /dev/sdX

Enjoy!

2 Likes

Any reason to not just make that a semi-official image ?

…probably restricted to the edge channel if we do not want to officially support it … after all it doesnt make much sense to use a 1GB board with arm64 in production (you will quickly run out of ram due to the binaries occupying nearly twice the amount at runtime) but it is surely a good way to do arm64 development and test builds.

The Pi Foundation/Broadcom (upstream) does something similar in providing the 64bit boot firmware but not officially supporting it …

@ogra Yeah, sounds like a good idea. I pushed an image, will announce in a separate forum post.

Hi mvo, All,

  1. Is there now an ‘official’ version for ARM64?

  2. When i try using this json file for a build for a 64-bit Raspberry Pi image, i run the ‘snap sign’ cmd, etc, still, i get this error:

    ubuntu-image -O rpi3_arm64.img --channel=edge pi3_arm64.model
    Warning: for backwards compatibility, ubuntu-image falls back to ubuntu-image snap if no subcommand is given
    error: cannot fetch and check prerequisites for the model assertion: cannot add assertion model (ubuntu-core-18-pi3-64; series:16 brand-id:kaiwan-billimoria): error finding matching public key for signature: found public key "DIST … " from "WJu … " but expected it from: kaiwan-billimoria
    COMMAND FAILED: snap prepare-image --channel=edge pi3_arm64.model /tmp/tmp_a91rt83/unpack

How can i fix this? Any help appreciated, TIA!

the model assertions for Core images are stored next to the images at:

just grab ubuntu-core-18-arm64+raspi3.model-assertion from there …

if you want to roll your own model assertion. make sure that the assertion and the gadget you use use the same brand-id (and that it is associated with a valid login.ubuntu.com account)