How to use spread to test Ubuntu Core image?

testopi@localhost:~$ snap list
Name                  Version                    Rev   Developer  Notes
core                  16-2.26.14+git279.63c2007  2506  canonical  core
orangepi-zero-gadget  16-0.1                     1     orangepi   gadget
orangepi-zero-kernel  4.9-0.1                    1     orangepi   kernel
testopi@localhost:~$ snap version 
snap    2.26.14+git279.63c2007~ubuntu16.04.1
snapd   2.26.14+git279.63c2007~ubuntu16.04.1
series  16
kernel  4.9-orangepi-zero
testopi@localhost:~$ 


2017/07/26 19:10:36 Preparing external:ubuntu-core-16-arm-32:tests/main/...
2017/07/26 19:10:41 Preparing external:ubuntu-core-16-arm-32:tests/main/listing...
^[^Y2017/07/26 19:11:42 Executing external:ubuntu-core-16-arm-32:tests/main/listing (1/1)...
2017/07/26 19:11:42 Error executing external:ubuntu-core-16-arm-32:tests/main/listing : 
-----
+ echo 'List prints core snap version'
List prints core snap version
+ '[' external = linode -o external == qemu ']'
+ expected='^core .* [0-9]{2}-[0-9.]+(\+git[0-9]+\.[0-9a-f]+)? +[0-9]+ +canonical +- *$'
+ snap list
+ grep -Pq '^core .* [0-9]{2}-[0-9.]+(\+git[0-9]+\.[0-9a-f]+)? +[0-9]+ +canonical +- *$'
-----
2017/07/26 19:11:43 Debug output for external:ubuntu-core-16-arm-32:tests/main/listing : 
-----
+ echo '# journal messages for snapd'
# journal messages for snapd
+ journalctl -u snapd
-- Logs begin at Wed 2017-07-26 11:17:59 UTC, end at Wed 2017-07-26 11:19:00 UTC. --
Jul 26 11:17:59 localhost.localdomain snapd[1058]: 2017/07/26 11:17:59.409854 main.go:78: Exiting on terminated signal.
Jul 26 11:17:59 localhost.localdomain systemd[1]: Stopping Snappy daemon...
Jul 26 11:17:59 localhost.localdomain systemd[1]: Stopped Snappy daemon.
Jul 26 11:18:32 localhost.localdomain systemd[1]: Starting Snappy daemon...
Jul 26 11:18:35 localhost.localdomain snapd[1415]: 2017/07/26 11:18:35.146178 daemon.go:252: started snapd/2.26.14+git279.63c2007~ubuntu16.04.1 (series 16) ubuntu-core/16 (armhf) linux/4.9-orangepi-zero.
Jul 26 11:18:35 localhost.localdomain systemd[1]: Started Snappy daemon.
Jul 26 11:18:39 localhost.localdomain snapd[1415]: 2017/07/26 11:18:39.612731 snapmgr.go:429: No snaps to auto-refresh found
+ echo '# apparmor denials '
# apparmor denials 
+ dmesg --ctime
+ grep DENIED
+ true
+ echo '# seccomp denials (kills) '
# seccomp denials (kills) 
+ dmesg --ctime
+ grep type=1326
+ true
+ echo '# snap interfaces'
# snap interfaces
+ snap interfaces
Slot                               Plug
:account-control                   -
:alsa                              -
:autopilot-introspection           -
:bluetooth-control                 -
:browser-support                   -
:camera                            -
:classic-support                   -
:core-support                      core:core-support-plug
:dcdbas-control                    -
:docker-support                    -
:firewall-control                  -
:framebuffer                       -
:fuse-support                      -
:greengrass-support                -
:hardware-observe                  -
:hardware-random-control           -
:hardware-random-observe           -
:home                              -
:io-ports-control                  -
:joystick                          -
:kernel-module-control             -
:kubernetes-support                -
:log-observe                       -
:lxd-support                       -
:mount-observe                     -
:netlink-audit                     -
:netlink-connector                 -
:network                           -
:network-bind                      -
:network-control                   -
:network-observe                   -
:network-setup-control             -
:network-setup-observe             -
:opengl                            -
:openvswitch-support               -
:physical-memory-control           -
:physical-memory-observe           -
:ppp                               -
:process-control                   -
:raw-usb                           -
:removable-media                   -
:shutdown                          -
:snapd-control                     -
:system-observe                    -
:system-trace                      -
:time-control                      -
:timeserver-control                -
:timezone-control                  -
:tpm                               -
:uhid                              -
orangepi-zero-gadget:i2c-0         -
orangepi-zero-gadget:i2c-1         -
orangepi-zero-gadget:i2c-2         -
orangepi-zero-gadget:opi-gpio-0    -
orangepi-zero-gadget:opi-gpio-1    -
orangepi-zero-gadget:opi-gpio-10   -
orangepi-zero-gadget:opi-gpio-11   -
orangepi-zero-gadget:opi-gpio-12   -
orangepi-zero-gadget:opi-gpio-13   -
orangepi-zero-gadget:opi-gpio-14   -
orangepi-zero-gadget:opi-gpio-15   -
orangepi-zero-gadget:opi-gpio-16   -
orangepi-zero-gadget:opi-gpio-18   -
orangepi-zero-gadget:opi-gpio-19   -
orangepi-zero-gadget:opi-gpio-198  -
orangepi-zero-gadget:opi-gpio-199  -
orangepi-zero-gadget:opi-gpio-2    -
orangepi-zero-gadget:opi-gpio-3    -
orangepi-zero-gadget:opi-gpio-6    -
orangepi-zero-gadget:opi-gpio-7    -
orangepi-zero-gadget:serial-1      -
orangepi-zero-gadget:serial-2      -
-----
2017/07/26 19:11:43 Restoring external:ubuntu-core-16-arm-32:tests/main/...




2017/07/26 19:12:20 Restoring project on external:ubuntu-core-16-arm-32...
2017/07/26 19:12:27 Successful tasks: 0
2017/07/26 19:12:27 Aborted tasks: 0
2017/07/26 19:12:27 Failed tasks: 1
    - external:ubuntu-core-16-arm-32:tests/main/listing
error: unsuccessful run
2017/07/26 19:16:10 Reusing external:ubuntu-core-16-arm-32...
2017/07/26 19:16:11 Reusing project data on external:ubuntu-core-16-arm-32...
2017/07/26 19:16:11 Preparing project on external:ubuntu-core-16-arm-32...
2017/07/26 19:16:13 Preparing external:ubuntu-core-16-arm-32:tests/main/...
2017/07/26 19:17:33 Preparing external:ubuntu-core-16-arm-32:tests/main/alias...
2017/07/26 19:18:26 Executing external:ubuntu-core-16-arm-32:tests/main/alias (1/1)...
2017/07/26 19:18:36 Restoring external:ubuntu-core-16-arm-32:tests/main/...
2017/07/26 19:19:01 Restoring project on external:ubuntu-core-16-arm-32...
2017/07/26 19:19:06 Successful tasks: 1
2017/07/26 19:19:06 Aborted tasks: 0

listing is failing because of the Notes field of the core snap, the test expects to find - in there but instead it finds core, how did you get this snap, did you build it?

great that alias passed the second time! \o/ the failure was really weird, maybe due to a previous error.

seems this has changed in the edge channel:

ogra@pi3:~$ snap list core
Name  Version                    Rev   Developer  Notes
core  16-2.26.14+git279.63c2007  2506  canonical  core
ogra@pi3:~$

I didn’t build it…

Failed tasks: security-device-cgroups:uinput resolved

2017/07/26 19:34:15 Reusing project data on external:ubuntu-core-16-arm-32...
2017/07/26 19:34:15 Preparing project on external:ubuntu-core-16-arm-32...
2017/07/26 19:34:17 Preparing external:ubuntu-core-16-arm-32:tests/main/...
2017/07/26 19:35:10 Preparing external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:uinput...
2017/07/26 19:35:29 Executing external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:uinput (1/2)...
2017/07/26 19:35:45 Error executing external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:uinput : 
+ echo 'Given a snap is installed'
Given a snap is installed
+ . /home/gopath/src/github.com/snapcore/snapd/tests/lib/snaps.sh
+ install_local test-snapd-tools
+ local SNAP_NAME=test-snapd-tools
+ shift
+ local SNAP_FILE=/home/gopath/src/github.com/snapcore/snapd/tests/lib/snaps/test-snapd-tools/test-snapd-tools_1.0_all.snap
++ dirname /home/gopath/src/github.com/snapcore/snapd/tests/lib/snaps/test-snapd-tools/test-snapd-tools_1.0_all.snap
+ local SNAP_DIR=/home/gopath/src/github.com/snapcore/snapd/tests/lib/snaps/test-snapd-tools
+ '[' '!' -f /home/gopath/src/github.com/snapcore/snapd/tests/lib/snaps/test-snapd-tools/test-snapd-tools_1.0_all.snap ']'
+ snap install --dangerous /home/gopath/src/github.com/snapcore/snapd/tests/lib/snaps/test-snapd-tools/test-snapd-tools_1.0_all.snap
test-snapd-tools 1.0 installed
+ echo 'Then the device is not assigned to that snap'
Then the device is not assigned to that snap
+ udevadm info /sys/devices/virtual/misc/uinput
+ grep -Pq 'E: TAGS=.*?snap_test-snapd-tools_env'
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
+ echo 'And the device is not shown in the snap device list'
And the device is not shown in the snap device list
+ grep -q 'c 10:223 rwm' /sys/fs/cgroup/devices/snap.test-snapd-tools.env/devices.list
grep: /sys/fs/cgroup/devices/snap.test-snapd-tools.env/devices.list: No such file or directory
+ echo =================================================
=================================================
+ echo 'When a udev rule assigning the device to the snap is added'
When a udev rule assigning the device to the snap is added
+ content='KERNEL=="uinput", TAG+="snap_test-snapd-tools_env"'
+ echo 'KERNEL=="uinput", TAG+="snap_test-snapd-tools_env"'
+ udevadm control --reload-rules
+ udevadm settle
+ udevadm trigger
+ udevadm settle
+ echo 'Then the device is shown as assigned to the snap'
Then the device is shown as assigned to the snap
+ grep -Pq 'E: TAGS=.*?snap_test-snapd-tools_env'
+ udevadm info /sys/devices/virtual/misc/uinput
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
-----
2017/07/26 19:35:45 Debug output for external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:uinput : 
-----
+ echo '# journal messages for snapd'
# journal messages for snapd
+ journalctl -u snapd
-- Logs begin at Wed 2017-07-26 11:42:26 UTC, end at Wed 2017-07-26 11:43:02 UTC. --
Jul 26 11:42:27 localhost.localdomain systemd[1]: Stopped Snappy daemon.
Jul 26 11:42:45 localhost.localdomain systemd[1]: Starting Snappy daemon...
Jul 26 11:42:45 localhost.localdomain snapd[2409]: 2017/07/26 11:42:45.923296 daemon.go:252: started snapd/2.26.14+git279.63c2007~ubuntu16.04.1 (series 16) ubuntu-core/16 (armhf) linux/4.9-orangepi-zero.
Jul 26 11:42:45 localhost.localdomain systemd[1]: Started Snappy daemon.
+ echo '# apparmor denials '
# apparmor denials 
+ dmesg --ctime
+ grep DENIED
+ true
+ echo '# seccomp denials (kills) '
# seccomp denials (kills) 
+ dmesg --ctime
+ grep type=1326
+ true
+ echo '# snap interfaces'
# snap interfaces
+ snap interfaces
Slot                               Plug
:account-control                   -
:alsa                              -
:autopilot-introspection           -
:bluetooth-control                 -
:browser-support                   -
:camera                            -
:classic-support                   -
:core-support                      core:core-support-plug
:dcdbas-control                    -
:docker-support                    -
:firewall-control                  -
:framebuffer                       -
:fuse-support                      -
:greengrass-support                -
:hardware-observe                  -
:hardware-random-control           -
:hardware-random-observe           -
:home                              -
:io-ports-control                  -
:joystick                          -
:kernel-module-control             -
:kubernetes-support                -
:log-observe                       -
:lxd-support                       -
:mount-observe                     -
:netlink-audit                     -
:netlink-connector                 -
:network                           -
:network-bind                      -
:network-control                   -
:network-observe                   -
:network-setup-control             -
:network-setup-observe             -
:opengl                            -
:openvswitch-support               -
:physical-memory-control           -
:physical-memory-observe           -
:ppp                               -
:process-control                   -
:raw-usb                           -
:removable-media                   -
:shutdown                          -
:snapd-control                     -
:system-observe                    -
:system-trace                      -
:time-control                      -
:timeserver-control                -
:timezone-control                  -
:tpm                               -
:uhid                              -
orangepi-zero-gadget:i2c-0         -
orangepi-zero-gadget:i2c-1         -
orangepi-zero-gadget:i2c-2         -
orangepi-zero-gadget:opi-gpio-0    -
orangepi-zero-gadget:opi-gpio-1    -
orangepi-zero-gadget:opi-gpio-10   -
orangepi-zero-gadget:opi-gpio-11   -
orangepi-zero-gadget:opi-gpio-12   -
orangepi-zero-gadget:opi-gpio-13   -
orangepi-zero-gadget:opi-gpio-14   -
orangepi-zero-gadget:opi-gpio-15   -
orangepi-zero-gadget:opi-gpio-16   -
orangepi-zero-gadget:opi-gpio-18   -
orangepi-zero-gadget:opi-gpio-19   -
orangepi-zero-gadget:opi-gpio-198  -
orangepi-zero-gadget:opi-gpio-199  -
orangepi-zero-gadget:opi-gpio-2    -
orangepi-zero-gadget:opi-gpio-3    -
orangepi-zero-gadget:opi-gpio-6    -
orangepi-zero-gadget:opi-gpio-7    -
orangepi-zero-gadget:serial-1      -
orangepi-zero-gadget:serial-2      -
-----
2017/07/26 19:35:45 Restoring external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:uinput...
2017/07/26 19:35:46 Preparing external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:kmsg...
2017/07/26 19:36:06 Executing external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:kmsg (2/2)...
2017/07/26 19:36:23 Restoring external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:kmsg...
2017/07/26 19:36:24 Restoring external:ubuntu-core-16-arm-32:tests/main/...
2017/07/26 19:36:43 Restoring project on external:ubuntu-core-16-arm-32...
2017/07/26 19:36:47 Successful tasks: 1
2017/07/26 19:36:47 Aborted tasks: 0
2017/07/26 19:36:47 Failed tasks: 1
    - external:ubuntu-core-16-arm-32:tests/main/security-device-cgroups:uinput
error: unsuccessful run

Failed tasks: core-snap-refresh can be ignored

2017/07/26 20:34:01 Preparing external:ubuntu-core-16-arm-32:tests/main/...
2017/07/26 20:35:24 Preparing external:ubuntu-core-16-arm-32:tests/main/core-snap-refresh...
2017/07/26 20:36:03 Executing external:ubuntu-core-16-arm-32:tests/main/core-snap-refresh (1/1)...
2017/07/26 20:36:09 Error executing external:ubuntu-core-16-arm-32:tests/main/core-snap-refresh : 
-----
+ . /home/gopath/src/github.com/snapcore/snapd/tests/lib/boot.sh
+ '[' 0 = 0 ']'
+ snap list
+ awk '/^core / {print($3)}'
+ snap refresh core --
snap "core" has no updates available
+ snap list
+ awk '/^core / {print($3)}'
+ [[ ubuntu-core-16-arm-32 == ubuntu-core-16-* ]]
++ bootenv snap_core
++ '[' 1 -eq 0 ']'
++ command -v grub-editenv
++ sed 's/^snap_core=//'
++ fw_printenv snap_core
++ cat prevBoot
+ test core_2506.snap = core_2506.snap
++ bootenv snap_try_core
++ '[' 1 -eq 0 ']'
++ command -v grub-editenv
++ sed 's/^snap_try_core=//'
++ fw_printenv snap_try_core
## Error: "snap_try_core" not defined
++ cat nextBoot
+ test '' = core_2506.snap
-----
2017/07/26 20:36:09 Debug output for external:ubuntu-core-16-arm-32:tests/main/core-snap-refresh : 
-----
+ echo '# journal messages for snapd'
# journal messages for snapd
+ journalctl -u snapd
-- Logs begin at Wed 2017-07-26 12:42:39 UTC, end at Wed 2017-07-26 12:43:24 UTC. --
Jul 26 12:42:39 localhost.localdomain systemd[1]: Stopped Snappy daemon.
Jul 26 12:43:15 localhost.localdomain systemd[1]: Starting Snappy daemon...
Jul 26 12:43:18 localhost.localdomain snapd[1607]: 2017/07/26 12:43:18.393950 daemon.go:252: started snapd/2.26.14+git279.63c2007~ubuntu16.04.1 (series 16) ubuntu-core/16 (armhf) linux/4.9-orangepi-zero.
Jul 26 12:43:18 localhost.localdomain systemd[1]: Started Snappy daemon.
+ echo '# apparmor denials '
# apparmor denials 
+ dmesg --ctime
+ grep DENIED
+ true
+ echo '# seccomp denials (kills) '
# seccomp denials (kills) 
+ dmesg --ctime
+ grep type=1326
+ true
+ echo '# snap interfaces'
# snap interfaces
+ snap interfaces
Slot                               Plug
:account-control                   -
:alsa                              -
:autopilot-introspection           -
:bluetooth-control                 -
:browser-support                   -
:camera                            -
:classic-support                   -
:core-support                      core:core-support-plug
:dcdbas-control                    -
:docker-support                    -
:firewall-control                  -
:framebuffer                       -
:fuse-support                      -
:greengrass-support                -
:hardware-observe                  -
:hardware-random-control           -
:hardware-random-observe           -
:home                              -
:io-ports-control                  -
:joystick                          -
:kernel-module-control             -
:kubernetes-support                -
:log-observe                       -
:lxd-support                       -
:mount-observe                     -
:netlink-audit                     -
:netlink-connector                 -
:network                           -
:network-bind                      -
:network-control                   -
:network-observe                   -
:network-setup-control             -
:network-setup-observe             -
:opengl                            -
:openvswitch-support               -
:physical-memory-control           -
:physical-memory-observe           -
:ppp                               -
:process-control                   -
:raw-usb                           -
:removable-media                   -
:shutdown                          -
:snapd-control                     -
:system-observe                    -
:system-trace                      -
:time-control                      -
:timeserver-control                -
:timezone-control                  -
:tpm                               -
:uhid                              -
orangepi-zero-gadget:i2c-0         -
orangepi-zero-gadget:i2c-1         -
orangepi-zero-gadget:i2c-2         -
orangepi-zero-gadget:opi-gpio-0    -
orangepi-zero-gadget:opi-gpio-1    -
orangepi-zero-gadget:opi-gpio-10   -
orangepi-zero-gadget:opi-gpio-11   -
orangepi-zero-gadget:opi-gpio-12   -
orangepi-zero-gadget:opi-gpio-13   -
orangepi-zero-gadget:opi-gpio-14   -
orangepi-zero-gadget:opi-gpio-15   -
orangepi-zero-gadget:opi-gpio-16   -
orangepi-zero-gadget:opi-gpio-18   -
orangepi-zero-gadget:opi-gpio-19   -
orangepi-zero-gadget:opi-gpio-198  -
orangepi-zero-gadget:opi-gpio-199  -
orangepi-zero-gadget:opi-gpio-2    -
orangepi-zero-gadget:opi-gpio-3    -
orangepi-zero-gadget:opi-gpio-6    -
orangepi-zero-gadget:opi-gpio-7    -
orangepi-zero-gadget:serial-1      -
orangepi-zero-gadget:serial-2      -
-----
2017/07/26 20:36:09 Restoring external:ubuntu-core-16-arm-32:tests/main/core-snap-refresh...
2017/07/26 20:36:10 Restoring external:ubuntu-core-16-arm-32:tests/main/...
2017/07/26 20:36:34 Restoring project on external:ubuntu-core-16-arm-32...
2017/07/26 20:36:38 Successful tasks: 0
2017/07/26 20:36:38 Aborted tasks: 0
2017/07/26 20:36:38 Failed tasks: 1
    - external:ubuntu-core-16-arm-32:tests/main/core-snap-refresh
error: unsuccessful run

this looks like an issue with the gadget snap … did you use my source tree as base so you have all the minimally required bits ? (if not, do you have the source of your gadget somewhere public ?)

It’s strange, listing passed after the last amd64 edge core was detected https://travis-ci.org/snapcore/spread-cron/builds/257642291 i’ll double check

Yes, The gadget.yaml and uboot.env.in is the same as yours.

does your snapcraft.yaml also properly generate the uboot.env (with the same values used in mine) ?

for some reason fw_setenv/fw_printenv do not seem to work in that test … which could happen if “-r -s 131072” was not used for the mkenvimage call … does fw_setenv/_printenv work if you use it on the cmdline manually ?

It is also the same, I will show more details tomorrow, thanks!

1 Like

This is the content of the snapcraft.yaml.

name: orangepi-zero-gadget
version: 16-0.1
summary: OrangePi Zero support package
description: |
  Support files for booting OrangePi Zero
type: gadget
architectures:
  - armhf
confinement: strict
grade: stable

parts:
  uboot:
    plugin: make
    source: git://git.denx.de/u-boot.git
    source-branch: v2017.05
    prepare: |
      git apply ../../../uboot.patch
      make orangepi_zero_defconfig
    build: |
        ROOT=`pwd`	
        CROSS_COMPILE=${ROOT}/../../../../toolchain/gcc-linaro-6.3.1/bin/arm-linux-gnueabihf- make -j4
    install: |
      cp u-boot-sunxi-with-spl.bin $SNAPCRAFT_PART_INSTALL/
      tools/mkenvimage -r -s 131072 -o $SNAPCRAFT_PART_INSTALL/uboot.env ../../../uboot.env.in
      cd $SNAPCRAFT_PART_INSTALL/; ln -s uboot.env uboot.conf
    build-packages:
      - libpython2.7-dev
      - build-essential
      - bc
      - device-tree-compiler
      - python-minimal

  hooks:
    plugin: dump
    source: meta/hooks
    organize:
      prepare-device: meta/hooks/prepare-device

slots:
  opi-gpio-0:
    interface: gpio
    number: 0
  opi-gpio-1:
    interface: gpio
    number: 1
  opi-gpio-2:
    interface: gpio
    number: 2
  opi-gpio-3:
    interface: gpio
    number: 3
  opi-gpio-6:
    interface: gpio
    number: 6
  opi-gpio-7:
    interface: gpio
    number: 7
  opi-gpio-10:
    interface: gpio
    number: 10 
  opi-gpio-11:
    interface: gpio
    number: 11
  opi-gpio-12:
    interface: gpio
    number: 12
  opi-gpio-13:
    interface: gpio
    number: 13
  opi-gpio-14:
    interface: gpio
    number: 14
  opi-gpio-15:
    interface: gpio
    number: 15
  opi-gpio-16:
    interface: gpio
    number: 16
  opi-gpio-18:
    interface: gpio
    number: 18
  opi-gpio-19:
    interface: gpio
    number: 19
  opi-gpio-198:
    interface: gpio
    number: 198
  opi-gpio-199:
    interface: gpio
    number: 199
  i2c-0:
    interface: i2c
    path: /dev/i2c-0
  i2c-1:
    interface: i2c
    path: /dev/i2c-1
  i2c-2:
    interface: i2c
    path: /dev/i2c-2
  serial-1:
    interface: serial-port
    path: /dev/ttyS1
  serial-2:
    interface: serial-port
    path: /dev/ttyS2

This is the content of the uboot.env

$ strings uboot.env 
arch=arm
baudrate=115200
board=sunxi
board_name=sunxi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_targets=fel mmc0 usb0 pxe dhcp 
bootcmd=run snappy_boot
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_fel=if test -n ${fel_booted} && test -n ${fel_scriptaddr}; then echo '(FEL boot)'; source ${fel_scriptaddr}; fi
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=setenv devnum 0; run usb_boot
bootdelay=2
bootm_size=0xa000000
console=ttyS0,115200
cpu=armv7
dfu_alt_info_ram=kernel ram 0x42000000 0x1000000;fdt ram 0x43000000 0x100000;ramdisk ram 0x43300000 0x4000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
eth1addr=12:42:20:3b:f4:2e
ethaddr=02:42:20:3b:f4:2e
fdt_addr_r=0x43000000
fdt_addr=0x43000000
fdtcontroladdr=5bf3cee8
fdtfile=sun8i-h2-plus-orangepi-zero.dtb
fdt_file=sun8i-h2-plus-orangepi-zero.dtb
initrd_file=initrd.img
kernel_addr_r=0x42000000
kernel_file=kernel.img
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x42000000
loadfdt=fatload mmc 0:1 ${fdt_addr} ${snap_kernel}/dtbs/${fdt_file}
loadfiles=run loadkernel; run loadinitrd; run loadfdt
loadinitrd=fatload mmc 0:1 ${ramdiskaddr} ${snap_kernel}/${initrd_file}; setenv initrd_size ${filesize}
loadkernel=fatload mmc 0:1 ${loadaddr} ${snap_kernel}/${kernel_file}
mmcargs=setenv bootargs "console=ttyS0,115200 console=tty0 root=${mmcroot}"
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
preboot=usb start
pxefile_addr_r=0x43200000
ramdisk_addr_r=0x43300000
ramdiskaddr=0x43300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x43100000
snappy_boot=if test "${snap_mode}" = "try"; then setenv snap_mode "trying"; saveenv; if test "${snap_try_core}" != ""; then setenv snap_core "${snap_try_core}"; fi; if test "${snap_try_kernel}" != ""; then setenv snap_kernel "${snap_try_kernel}"; fi; elif test "${snap_mode}" = "trying"; then setenv snap_mode ""; saveenv; fi; run loadfiles; setenv mmcroot "/dev/disk/by-label/writable ${snappy_cmdline} snap_core=${snap_core} snap_kernel=${snap_kernel}"; run mmcargs; bootz ${loadaddr} ${ramdiskaddr}:${initrd_size} ${fdt_addr}
snappy_cmdline=rng_core.default_quality=700 net.ifnames=0 init=/lib/systemd/systemd ro panic=-1 fixrtc
soc=sunxi
stderr=serial
stdin=serial,usbkbd
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
testopi@localhost:~$ fw_printenv
arch=arm
baudrate=115200
board=sunxi
board_name=sunxi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_targets=fel mmc0 usb0 pxe dhcp 
bootcmd=run snappy_boot
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_fel=if test -n ${fel_booted} && test -n ${fel_scriptaddr}; then echo '(FEL boot)'; source ${fel_scriptaddr}; fi
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=setenv devnum 0; run usb_boot
bootdelay=2
bootm_size=0xa000000
console=ttyS0,115200
cpu=armv7
dfu_alt_info_ram=kernel ram 0x42000000 0x1000000;fdt ram 0x43000000 0x100000;ramdisk ram 0x43300000 0x4000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
eth1addr=12:42:20:3b:f4:2e
ethaddr=02:42:20:3b:f4:2e
fdt_addr=0x43000000
fdt_addr_r=0x43000000
fdt_file=sun8i-h2-plus-orangepi-zero.dtb
fdtcontroladdr=5bf3cee8
fdtfile=sun8i-h2-plus-orangepi-zero.dtb
initrd_file=initrd.img
kernel_addr_r=0x42000000
kernel_file=kernel.img
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x42000000
loadfdt=fatload mmc 0:1 ${fdt_addr} ${snap_kernel}/dtbs/${fdt_file}
loadfiles=run loadkernel; run loadinitrd; run loadfdt
loadinitrd=fatload mmc 0:1 ${ramdiskaddr} ${snap_kernel}/${initrd_file}; setenv initrd_size ${filesize}
loadkernel=fatload mmc 0:1 ${loadaddr} ${snap_kernel}/${kernel_file}
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
mmcargs=setenv bootargs "console=ttyS0,115200 console=tty0 root=${mmcroot}"
preboot=usb start
pxefile_addr_r=0x43200000
ramdisk_addr_r=0x43300000
ramdiskaddr=0x43300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x43100000
snap_core=core_2499.snap
snap_kernel=orangepi-zero-kernel_1.snap
snappy_boot=if test "${snap_mode}" = "try"; then setenv snap_mode "trying"; saveenv; if test "${snap_try_core}" != ""; then setenv snap_core "${snap_try_core}"; fi; if test "${snap_try_kernel}" != ""; then setenv snap_kernel "${snap_try_kernel}"; fi; elif test "${snap_mode}" = "trying"; then setenv snap_mode ""; saveenv; fi; run loadfiles; setenv mmcroot "/dev/disk/by-label/writable ${snappy_cmdline} snap_core=${snap_core} snap_kernel=${snap_kernel}"; run mmcargs; bootz ${loadaddr} ${ramdiskaddr}:${initrd_size} ${fdt_addr}
snappy_cmdline=rng_core.default_quality=700 net.ifnames=0 init=/lib/systemd/systemd ro panic=-1 fixrtc
soc=sunxi
stderr=serial
stdin=serial,usbkbd
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
testopi@localhost:~$

well, this looks all fine and like the gadget is proper, i wonder why the snap_try_core variable is not set then …

perhaps some issue with the test … @fgimenez any idea ?

If the error comes from core-snap-refresh it can be ignored, this test is only meant to be executed under specific circumstances when there’s actually a core refresh available, that’s why it is marked as manual https://github.com/snapcore/snapd/blob/master/tests/main/core-snap-refresh/task.yaml#L8 You need to specifically request it to be executed when the testbed is refreshable.

About the rest of errors reported, security-device-cgroups:uinput seems the most concerning IMO (the rest of them are probably caused by previous errors) the actual problem is:

+ udevadm info /sys/devices/virtual/misc/uinput
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.

@ogra any idea what might be causing this?

perhaps a missing kernel config option ?
(is CONFIG_INPUT_UINPUT set in this kernel ? )

well, either drop the uinput test or enable the device in your kernel config :wink: