Hi everyone,
I want to create a snap for an OLIMEX which run Ubuntu 16.04 LTS and has a armhf processor.
I never do a snap before so with tutorials online I manage to do something which works in my Ubuntu VM on my computer (amd64). But when I tried to cross compile my snap to armhf, I get stuck… Here is my snapcraft.yaml file:
name: configure-iot
version: '0.0.1'
summary: Configuration script for IOTR
description: |
This script allows user to configure the IOTR from Itron.
base: core
grade: stable
confinement: strict
architectures:
- build-on: all
run-on: armhf
apps:
configure-iot:
command: bin/hello
plugs: [home,network-bind]
parts:
configure-iot:
plugin: python
python-version: python3
source: .
stage-packages: [ncbi-blast+]
So as you can see in this file, I change the “run-on” parameter. The problem is it didn’t work when I tried to use it on my armhf device and I get this strange issue:
dev@ssniotr:~$ configure-iot
/snap/configure-iot/x1/usr/bin/python3: 1: /snap/configure-iot/x1/usr/bin/python3: cannot open y:: No such file
/snap/configure-iot/x1/usr/bin/python3: 1: /snap/configure-iot/x1/usr/bin/python3: ELF: not found
/snap/configure-iot/x1/usr/bin/python3: 1: /snap/configure-iot/x1/usr/bin/python3: ????$: not found
/snap/configure-iot/x1/usr/bin/python3: 1: /snap/configure-iot/x1/usr/bin/python3: ?+??،Q
P@??F??@???B? @?@??SA?
?Q???!???QP: not found
/snap/configure-iot/x1/usr/bin/python3: 2: /snap/configure-iot/x1/usr/bin/python3:: not found
/snap/configure-iot/x1/usr/bin/python3: 3: /snap/configure-iot/x1/usr/bin/python3: ?@???: not found
/snap/configure-iot/x1/usr/bin/python3: 4: /snap/configure-iot/x1/usr/bin/python3: Syntax error: “(” unexpected
I tried a lot of thinks such as:
- Try to build on a Raspberry Pi 3 B+ with Raspbian Buster --> It didn’t work because it was a 32-bits distribution
- Try to build with Multipass on a Raspberry Pi 3 B+ with Ubuntu 20.04 LTS Server 64-bits --> It didn’t work because I receive this error :
ubuntu@ubuntu : ~/configure-iot/snap $ snapcraft
Launching a VM.
launch failed: Internal error: qemu-system-x86_64 failed getting vmstate (Process returned exit code: 1) with output:
qemu-system-aarch64: -nographic: No machine specified, and there is no default
Use -machine help to list supported machines
An error occurred with the instance when trying to launch with ‘multipass’: returned exit code 2.
Ensure that ‘multipass’ is setup correctly and try again.
- Try to build with lxd on a Raspberry Pi 3 B+ with Ubuntu 20.04 LTS Server 64-bits --> It didn’t work because I receive this error :
ubuntu@ubuntu : ~/configure-iot/snap $ snapcraft --use-lxd
The LXD provider is offered as a technology preview for early adopters.
The command line interface, container names or lifecycle handling may change in upcoming releases.
Launching a container.
An error occurred with the instance when trying to launch with ‘LXD’: Create instance: Requested architecture isn’t supported by this host.
Ensure that ‘LXD’ is setup correctly and try again.
- Tried to install snapcraft on the Olimex (my armhf device) --> Not working because I got this message:
dev@ssniotr:/home/dev$ sudo snap install snapcraft
error: cannot install “snapcraft”: Post
https://api.snapcraft.io/v2/snaps/refresh: dial tcp: lookup
api.snapcraft.io on 127.0.0.1:53: server misbehaving
Have you an idea to compile for armhf ? or to solve one of these issues ?
Thanks