Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
I'm installing Minion on a Raspberry Pi and getting an error. I can install it, log on to Karaf the first time and configure the Minion. When I try launch the minion afterwards, Karaf fails to launch.
Log in /var/log/minion/minion.log shows the following error:
2018-11-13T12:50:32,089 | ERROR | ForkJoinPool.commonPool-worker-1 | KarafExtender | 104 - org.opennms.container.extender - 23.0.0 | Failed to install one or more features.
org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=minion-provisiond-detectors; type=karaf.feature; version="[23.0.0,23.0.0]"; filter:="(&(osgi.identity=minion-provisiond-detectors)(type=karaf.feature)(version>=23.0.0)(version<=23.0.0))" [caused by: Unable to resolve minion-provisiond-detectors/23.0.0: missing requirement [minion-provisiond-detectors/23.0.0] osgi.identity; osgi.identity=opennms-icmp-best; type=karaf.feature [caused by: Unable to resolve opennms-icmp-best/23.0.0: missing requirement [opennms-icmp-best/23.0.0] osgi.identity; osgi.identity=opennms-icmp-jna; type=karaf.feature [caused by: Unable to resolve opennms-icmp-jna/23.0.0: missing requirement [opennms-icmp-jna/23.0.0] osgi.identity; osgi.identity=org.opennms.opennms-icmp-jna; type=osgi.bundle; version="[23.0.0,23.0.0]"; resolution:=mandatory [caused by: Unable to resolve org.opennms.opennms-icmp-jna/23.0.0: missing requirement [org.opennms.opennms-icmp-jna/23.0.0] osgi.wiring.package; filter:="(osgi.wiring.package=com.sun.jna)" [caused by: Unable to resolve com.sun.jna [11](R 11.0): missing requirement [com.sun.jna [11](R 11.0)] osgi.native; (|(&(osgi.native.osname~=win32)(osgi.native.processor~=x86))(&(osgi.native.osname~=win32)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=win)(osgi.native.processor~=x86))(&(osgi.native.osname~=win)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=wince)(osgi.native.processor~=arm))(&(osgi.native.osname~=sunos)(osgi.native.processor~=x86))(&(osgi.native.osname~=sunos)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=sunos)(osgi.native.processor~=sparc))(&(osgi.native.osname~=sunos)(osgi.native.processor~=sparcv9))(&(osgi.native.osname~=aix)(osgi.native.processor~=ppc))(&(osgi.native.osname~=aix)(osgi.native.processor~=ppc64))(&(osgi.native.osname~=linux)(osgi.native.processor~=ppc))(&(osgi.native.osname~=linux)(osgi.native.processor~=ppc64))(&(osgi.native.osname~=linux)(osgi.native.processor~=ppc64le))(&(osgi.native.osname~=linux)(osgi.native.processor~=x86))(&(osgi.native.osname~=linux)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=linux)(osgi.native.processor~=arm))(&(osgi.native.osname~=linux)(osgi.native.processor~=armel))(&(osgi.native.osname~=linux)(osgi.native.processor~=aarch64))(&(osgi.native.osname~=linux)(osgi.native.processor~=ia64))(&(osgi.native.osname~=linux)(osgi.native.processor~=sparcv9))(&(osgi.native.osname~=freebsd)(osgi.native.processor~=x86))(&(osgi.native.osname~=freebsd)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=openbsd)(osgi.native.processor~=x86))(&(osgi.native.osname~=openbsd)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=macosx)(|(osgi.native.processor~=x86)(osgi.native.processor~=x86-64)(osgi.native.processor~=ppc))))]]]]]
at org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42) ~[?:?]
Not sure if this is important, but before that the log is saying that it cannot validate file integrity from the repositories folder
I would expect it's pretty reasonable to require 64-bit OS support.
Matthew Brooks October 24, 2019 at 8:56 PM
So ultimately the solution to this issue is if running on a Raspberry Pi 3+, you will need to be running on a 64bit OS (Ubuntu Core18 is one option).
Matthew Brooks October 24, 2019 at 8:54 PM
So it turns out the bundle wrap approach was not going to work since JNA is already installed at karaf startup time and we can't wrap that copy. So if we wanted to get the JNA pinger to work on Arm32 Rpi we would need to re-package the JNA bundle completely and update the metadata.
I tested Minion on Arm64 with Ubuntu Core18 and the JNA pinger just works out of the box on that architecture. So rather than fixing via the above ugly method, we can simply say we don't support Minion on Arm32.
Matthew Brooks October 24, 2019 at 4:26 PM
The JNA pinger implementation does work if you can get the JNA bundle to install. I tried hacking the bundle headers to get it installed and confirmed the JNA impl was working in Minion on arm.
To fix this in a less hacky way, we can use the bundle wrap protocol in our feature repository to alter the bundle headers to allow the JNA bundle to install.
Not sure if this is the right place for this.
I'm installing Minion on a Raspberry Pi and getting an error. I can install it, log on to Karaf the first time and configure the Minion. When I try launch the minion afterwards, Karaf fails to launch.
Log in /var/log/minion/minion.log shows the following error:
2018-11-13T12:50:32,089 | ERROR | ForkJoinPool.commonPool-worker-1 | KarafExtender | 104 - org.opennms.container.extender - 23.0.0 | Failed to install one or more features. org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=minion-provisiond-detectors; type=karaf.feature; version="[23.0.0,23.0.0]"; filter:="(&(osgi.identity=minion-provisiond-detectors)(type=karaf.feature)(version>=23.0.0)(version<=23.0.0))" [caused by: Unable to resolve minion-provisiond-detectors/23.0.0: missing requirement [minion-provisiond-detectors/23.0.0] osgi.identity; osgi.identity=opennms-icmp-best; type=karaf.feature [caused by: Unable to resolve opennms-icmp-best/23.0.0: missing requirement [opennms-icmp-best/23.0.0] osgi.identity; osgi.identity=opennms-icmp-jna; type=karaf.feature [caused by: Unable to resolve opennms-icmp-jna/23.0.0: missing requirement [opennms-icmp-jna/23.0.0] osgi.identity; osgi.identity=org.opennms.opennms-icmp-jna; type=osgi.bundle; version="[23.0.0,23.0.0]"; resolution:=mandatory [caused by: Unable to resolve org.opennms.opennms-icmp-jna/23.0.0: missing requirement [org.opennms.opennms-icmp-jna/23.0.0] osgi.wiring.package; filter:="(osgi.wiring.package=com.sun.jna)" [caused by: Unable to resolve com.sun.jna [11](R 11.0): missing requirement [com.sun.jna [11](R 11.0)] osgi.native; (|(&(osgi.native.osname~=win32)(osgi.native.processor~=x86))(&(osgi.native.osname~=win32)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=win)(osgi.native.processor~=x86))(&(osgi.native.osname~=win)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=wince)(osgi.native.processor~=arm))(&(osgi.native.osname~=sunos)(osgi.native.processor~=x86))(&(osgi.native.osname~=sunos)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=sunos)(osgi.native.processor~=sparc))(&(osgi.native.osname~=sunos)(osgi.native.processor~=sparcv9))(&(osgi.native.osname~=aix)(osgi.native.processor~=ppc))(&(osgi.native.osname~=aix)(osgi.native.processor~=ppc64))(&(osgi.native.osname~=linux)(osgi.native.processor~=ppc))(&(osgi.native.osname~=linux)(osgi.native.processor~=ppc64))(&(osgi.native.osname~=linux)(osgi.native.processor~=ppc64le))(&(osgi.native.osname~=linux)(osgi.native.processor~=x86))(&(osgi.native.osname~=linux)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=linux)(osgi.native.processor~=arm))(&(osgi.native.osname~=linux)(osgi.native.processor~=armel))(&(osgi.native.osname~=linux)(osgi.native.processor~=aarch64))(&(osgi.native.osname~=linux)(osgi.native.processor~=ia64))(&(osgi.native.osname~=linux)(osgi.native.processor~=sparcv9))(&(osgi.native.osname~=freebsd)(osgi.native.processor~=x86))(&(osgi.native.osname~=freebsd)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=openbsd)(osgi.native.processor~=x86))(&(osgi.native.osname~=openbsd)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=macosx)(|(osgi.native.processor~=x86)(osgi.native.processor~=x86-64)(osgi.native.processor~=ppc))))]]]]] at org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42) ~[?:?]
Not sure if this is important, but before that the log is saying that it cannot validate file integrity from the repositories folder