Eclipse Kura snap is available on store but unable to install

I have found Eclipse Kura snap as “kura-nn” on snapcraft store. But it unable to find using snap find option. Is it because of unset license? Where can I find the kura snap? As the Kura documentation shows that it support Ubuntu core. Please find the doc link below.
I am trying to install Eclipse Kura on Ubuntu core running of Raspberry Pi.
Your help will be appreciated.
Can someone help me.

Thanks & Regards,

It looks like it’s only build for amd64 (Intel/AMD 64-bit CPU:s), Raspberry Pi uses an arm CPU. (see: all versions, inspect the Architecture drop down). For reference, see with is built for 2 arm variants.

Thanks, will try to create one for arm CPU.

better contact the owner of the snap so he just enables the arm architecture for the existing one ) or help him to do that in case there are changes/fixes needed) :wink:

as it seems this snap is owned by @ondra

Hi @ajoshi2402
sorry for late reply, it was still some work in progress.
However I now released kura-nn for armhf and arm64 (I have not tested arm64 version yet)

Feel free to give it spin. If you want to use bluetooth, you should also install bluez snap and connect all interfaces.
I have not build 3.3 snapshot for other than amd64 architectures, but that should come soon as well.

Kura with network control is still something I’m working on when time allows, so for now only no-network version is available as snap

1 Like

@ajoshi2402 kura and kura-nn is now available for amd64, armhf and arm64 architectures
feedback welcomed

Unfortunately I am unable to get your kura-nn snap executing on RPI3 let me know if I can provide more info. Thanks for your awesome contributions for RPI, look forward to this working

kura-nn daemon aborting at startup on Raspberry pi 3, throwing following

snap logs kura-nn
Problematic frame:
# C  []  udev_monitor_filter_update+0x13

Info from error logs

sudo cat /tmp/snap.0_kura-nn_N45udK/tmp/hs_err_pid1197.log | more

# A fatal error has been detected by the Java Runtime Environment:
#  SIGSEGV (0xb) at pc=0x51f2e5e4, pid=1197, tid=0x5183e470
# JRE version: OpenJDK Runtime Environment (8.0_172) (build 1.8.0_172-106)
# Java VM: OpenJDK Client VM (25.172-b106 mixed mode, Evaluation linux-aarch32 )
# Problematic frame:
# C  []  udev_monitor_filter_update+0x13
---------------  T H R E A D  ---------------

Current thread (0x01b8b800):  JavaThread "LinuxUdevNative" daemon [_thread_in_native, id=1380, stack(0x517ef000,0x5183f000)]]  udev_monitor_filter_update+0x13


Clean install of Ubuntu Core for Raspberry Pi 3, initial installed kura-nn (Stable) 3.2 with above error thrown. Then
snap switch --edge kura-nn 3.3.0-SNAPSHOT-110-g56cd264 , same error happening

snap list

xxxxxx@localhost:~$ snap list
Name        Version                      Rev   Tracking  Publisher  Notes
bluez       5.47-3                       167   stable    canonical  -
core        16-2.34.2+git872.88ec69f     5112  edge      canonical  core
kura-nn     3.3.0-SNAPSHOT-110-g56cd264  26    edge      ondra      -
pi2-kernel  4.4.0-1092.100               56    edge      canonical  kernel
pi3         16.04-0.5                    22    edge      canonical  gadget

XXXXX@localhost:~$ snap info kura-nn
name:      kura-nn
summary:   Eclipse Kura™ An OSGi-based Application Framework for M2M Service Gateways
publisher: ondra
license:   unset
description: |
  - kura-nn.kura-debug
  kura-nn.kura: simple, enabled, inactive
snap-id:      DeRkWuxe3GADn0kULmru9wMwsFBsquJM
tracking:     edge
refresh-date: yesterday at 22:36 UTC
  stable:    3.2.0                       (20) 167MB -
  candidate: 3.2.0                       (20) 167MB -
  beta:      3.2.0                       (20) 167MB -
  edge:      3.3.0-SNAPSHOT-110-g56cd264 (26) 161MB -
installed:   3.3.0-SNAPSHOT-110-g56cd264 (26) 161MB -

list of changes

snap changes
ID   Status  Spawn                   Ready                   Summary
1    Done    yesterday at 07:15 UTC  yesterday at 07:15 UTC  Initialize system state
2    Done    yesterday at 07:15 UTC  yesterday at 07:16 UTC  Initialize device
4    Done    yesterday at 09:42 UTC  yesterday at 09:42 UTC  Install "upower" snap
5    Done    yesterday at 09:45 UTC  yesterday at 09:45 UTC  Remove "upower" snap
6    Done    yesterday at 09:58 UTC  yesterday at 09:58 UTC  Refresh all snaps: no updates
7    Done    yesterday at 10:20 UTC  yesterday at 10:24 UTC  Install "kura-nn" snap
8    Done    yesterday at 10:58 UTC  yesterday at 10:58 UTC  Running service command
9    Done    yesterday at 11:03 UTC  yesterday at 11:04 UTC  Install "bluez" snap
10   Done    yesterday at 11:05 UTC  yesterday at 11:05 UTC  Running service command
11   Done    yesterday at 11:06 UTC  yesterday at 11:06 UTC  Running service command
12   Done    yesterday at 11:08 UTC  yesterday at 11:08 UTC  Running service command
13   Done    yesterday at 11:10 UTC  yesterday at 11:10 UTC  Running service command
14   Done    yesterday at 22:33 UTC  yesterday at 22:33 UTC  Switch "kura-nn" snap to edge
15   Done    yesterday at 22:34 UTC  yesterday at 22:36 UTC  Refresh "kura-nn" snap
16   Done    yesterday at 22:36 UTC  yesterday at 22:36 UTC  Switch "kura-nn" snap to edge

snap interfaces

snap interfaces
Slot                      Plug
bluez:service             bluez:client
:account-control          -
:alsa                     -
:autopilot-introspection  -
:bluetooth-control        -
:broadcom-asic-control    -
:browser-support          -
:camera                   -
:can-bus                  -
:classic-support          -
:core-support             -
:daemon-notify            -
:dcdbas-control           -
:docker-support           -
:dvb                      -
:firewall-control         -
:framebuffer              -
:fuse-support             -
:gpg-keys                 -
:gpg-public-keys          -
:gpio-memory-control      -
:greengrass-support       -
:hardware-observe         -
:hardware-random-control  -
:hardware-random-observe  -
:home                     -
:hostname-control         -
:io-ports-control         -
:joystick                 -
:kernel-module-control    -
:kubernetes-support       -
:kvm                      -
:log-observe              -
:lxd-support              -
:mount-observe            -
:netlink-audit            -
:netlink-connector        -
:network                  kura-nn
:network-bind             kura-nn
: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            -
:ssh-keys                 -
:ssh-public-keys          -
:system-observe           -
:system-trace             -
:time-control             -
:timeserver-control       -
:timezone-control         -
:tpm                      -
:uhid                     bluez
pi3:bcm-gpio-0            -
pi3:bcm-gpio-1            -
pi3:bcm-gpio-10           -
pi3:bcm-gpio-11           -
pi3:bcm-gpio-12           -
pi3:bcm-gpio-13           -
pi3:bcm-gpio-14           -
pi3:bcm-gpio-15           -
pi3:bcm-gpio-16           -
pi3:bcm-gpio-17           -
pi3:bcm-gpio-18           -
pi3:bcm-gpio-19           -
pi3:bcm-gpio-2            -
pi3:bcm-gpio-20           -
pi3:bcm-gpio-21           -
pi3:bcm-gpio-22           -
pi3:bcm-gpio-23           -
pi3:bcm-gpio-24           -
pi3:bcm-gpio-25           -
pi3:bcm-gpio-26           -
pi3:bcm-gpio-27           -
pi3:bcm-gpio-3            -
pi3:bcm-gpio-4            -
pi3:bcm-gpio-5            -
pi3:bcm-gpio-6            -
pi3:bcm-gpio-7            -
pi3:bcm-gpio-8            -
pi3:bcm-gpio-9            -
pi3:bt-serial             -
pi3:i2c-0                 -
pi3:i2c-1                 -
pi3:i2c-2                 -
-                         bluez:bluetooth-control
-                         bluez:home
-                         bluez:network-control
-                         kura-nn:bluetooth-control
-                         kura-nn:bluez
-                         kura-nn:firewall-control
-                         kura-nn:hardware-observe
-                         kura-nn:home
-                         kura-nn:io-ports-control
-                         kura-nn:log-observe
-                         kura-nn:mount-observe
-                         kura-nn:netlink-audit
-                         kura-nn:network-control
-                         kura-nn:network-setup-control
-                         kura-nn:ppp
-                         kura-nn:process-control
-                         kura-nn:removable-media
-                         kura-nn:system-observe
-                         kura-nn:time-control

Did you try to connect all these unconnected interfaces (one of system-observe and/or hardware-observe might be the ones allowing udev_monitor access …)

@auphof indeed as @ogra pointed out , you need to connect all those interfaces first, otherwise apparmor will flag any attempt of kura to access hw or bind network
There is helper script which does this all for you:
$ /snap/kura-nn/current/connect-interfaces
Once interfaces are connected, restart kura service:
$ sudo systemctl restart snap.kura-nn.*

You also might want to install bluez snap if you want to use bluetooth…

Thank you @ondra and @ogra, kura daemon is now running after /snap/kura-nn/current/connect-interfaces and I can continue my exploring.

I am just beginning to explore using ubuntu-core and snap’s. Is there a readme or other document such useful initialization can be recorded.

cat /snap/kura-nn/current/readme.txt seems to be generic and I can’t locate a readme on Github kura-snap

you are welcome @auphof yeah that read me is pulled from kura, non snap related

Usually generic snap package info applies on all snaps you get from store, classic snaps are a bit special, but on Ubuntu Core you get only strict confined snaps anyway. kura is strictly confined snap, which means by default kura’s sandbox is very restricted and you need to grant it appropriate permissions for it to function. So rule of thumb for any snap install is:

  1. snap install
  2. snap interfaces
  3. connect all interfaces need by snap, for most interfaces this translates to → $ snap connect <snap nane>:<interface name> core:<interface name>
  4. Restart snap services if needed and you should be good to go

Some snaps can be deemed as trusted and then step 3 is done automatically, in which case you just install snap and off you go… Eventually this would be long term goal when kura snap matures. You managed to catch kura snap very fresh so feel free to feedback when things are not working :slight_smile:

As for snaps created by me, I usually try to add help function, typically $ <snap name>.help which gives you info about configuration options, but it’s not always the case if there is nothing to be configured as for kura(-nn) snap, this is not added yet, I plan to add there things like java memory configuration as kura can run on pi3 as well as on 8G RAM gateway…

@ondra I checked Kura snap packages and they seem to be pretty outdated. Any plan to update them to the latest version?