Iotedge: Installation of Moby fails on Raspberry Pi Zero W

Created on 9 Jul 2018  路  7Comments  路  Source: Azure/iotedge

I just received my brand new Raspberry Pi Zero W:
https://www.raspberrypi.org/products/raspberry-pi-zero-w/

To start with, I installed NOOBS on it:
https://www.raspberrypi.org/downloads/noobs/

My goal is to connect it to my Azure IoT Hub, so I'm trying to install Azure IoT Edge on it using this tutorial:
https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-linux-arm

Unfortunately I get an error when I run the first command in the tutorial:

# Download and install the moby-engine
curl -L https://aka.ms/moby-engine-armhf-latest -o moby_engine.deb && sudo dpkg -i ./moby_engine.deb

The following error occurs:

pi@raspberrypi:~ $ sudo curl -L https://aka.ms/moby-engine-armhf-latest -o moby_engine.deb && sudo dpkg -i ./moby_engine.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   193  100   193    0     0    644      0 --:--:-- --:--:-- --:--:--   647
100 15.4M  100 15.4M    0     0  1157k      0  0:00:13  0:00:13 --:--:-- 1314k
(Reading database ... 115462 files and directories currently installed.)
Preparing to unpack ./moby_engine.deb ...
Unpacking moby-engine (1.0.0-1) over (1.0.0-1) ...
Setting up moby-engine (1.0.0-1) ...
Job for docker.service failed because a fatal signal was delivered causing the control process to dump core.
See "systemctl status docker.service" and "journalctl -xe" for details.
docker.service couldn't start.

The command "systemctl status docker.service" gives me the following:

pi@raspberrypi:~ $ systemctl status docker.service
 docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: core-dump) since Sun 2018-07-08 10:11:02 CEST; 4s ago
     Docs: https://docs.docker.com
  Process: 1734 ExecStart=/usr/bin/dockerd -H fd:// (code=dumped, signal=SEGV)
 Main PID: 1734 (code=dumped, signal=SEGV)
      CPU: 278ms

Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Main process exited, code=dumped, status=11/SEGV
Jul 08 10:11:02 raspberrypi systemd[1]: Failed to start Docker Application Container Engine.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Unit entered failed state.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Failed with result 'core-dump'.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Jul 08 10:11:02 raspberrypi systemd[1]: Stopped Docker Application Container Engine.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Start request repeated too quickly.
Jul 08 10:11:02 raspberrypi systemd[1]: Failed to start Docker Application Container Engine.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Unit entered failed state.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Failed with result 'core-dump'.

The command "journalctl -xe" gives me the following:

-- Unit docker.socket has begun starting up.
Jul 08 10:11:02 raspberrypi systemd[1]: Listening on Docker Socket for the API.
-- Subject: Unit docker.socket has finished start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit docker.socket has finished starting up.
-- 
-- The start-up result is done.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Start request repeated too quickly.
Jul 08 10:11:02 raspberrypi systemd[1]: Failed to start Docker Application Container Engine.
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit docker.service has failed.
-- 
-- The result is failed.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.socket: Unit entered failed state.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Unit entered failed state.
Jul 08 10:11:02 raspberrypi systemd[1]: docker.service: Failed with result 'core-dump'.

The command "journalctl -u docker.service" gives me the following:

pi@raspberrypi:~ $ journalctl -u docker.service
-- Logs begin at Thu 2016-11-03 18:16:44 CET, end at Sun 2018-07-08 11:10:41 CEST. --
Jul 08 11:06:22 raspberrypi systemd[1]: Starting Docker Application Container Engine...
Jul 08 11:06:25 raspberrypi systemd[1]: docker.service: Main process exited, code=dumped, status=11/SEGV
Jul 08 11:06:25 raspberrypi systemd[1]: Failed to start Docker Application Container Engine.
Jul 08 11:06:25 raspberrypi systemd[1]: docker.service: Unit entered failed state.
Jul 08 11:06:25 raspberrypi systemd[1]: docker.service: Failed with result 'core-dump'.
Jul 08 11:06:25 raspberrypi systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Jul 08 11:06:25 raspberrypi systemd[1]: Stopped Docker Application Container Engine.
Jul 08 11:06:25 raspberrypi systemd[1]: Starting Docker Application Container Engine...
Jul 08 11:06:29 raspberrypi systemd[1]: docker.service: Main process exited, code=dumped, status=11/SEGV
Jul 08 11:06:29 raspberrypi systemd[1]: Failed to start Docker Application Container Engine.
Jul 08 11:06:29 raspberrypi systemd[1]: docker.service: Unit entered failed state.
Jul 08 11:06:29 raspberrypi systemd[1]: docker.service: Failed with result 'core-dump'.
Jul 08 11:06:29 raspberrypi systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Jul 08 11:06:29 raspberrypi systemd[1]: Stopped Docker Application Container Engine.
Jul 08 11:06:29 raspberrypi systemd[1]: Starting Docker Application Container Engine...
Jul 08 11:06:33 raspberrypi systemd[1]: docker.service: Main process exited, code=dumped, status=11/SEGV
Jul 08 11:06:33 raspberrypi systemd[1]: Failed to start Docker Application Container Engine.
Jul 08 11:06:33 raspberrypi systemd[1]: docker.service: Unit entered failed state.
Jul 08 11:06:33 raspberrypi systemd[1]: docker.service: Failed with result 'core-dump'.
Jul 08 11:06:34 raspberrypi systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Jul 08 11:06:34 raspberrypi systemd[1]: Stopped Docker Application Container Engine.
Jul 08 11:06:34 raspberrypi systemd[1]: docker.service: Start request repeated too quickly.
Jul 08 11:06:34 raspberrypi systemd[1]: Failed to start Docker Application Container Engine.
Jul 08 11:06:34 raspberrypi systemd[1]: docker.service: Unit entered failed state.
Jul 08 11:06:34 raspberrypi systemd[1]: docker.service: Failed with result 'core-dump'.

I would really appreciate some help, thank you!

customer-reported iotedge

Most helpful comment

FWIW, no having support for Pi Zero W is a deal breaker for using Azure IoT. The form factor and price at scale are far more compelling then the runtime. While I'd prefer to use Azure IoT, it's got to support the platforms we need. 馃し鈥嶁檧

All 7 comments

@erwindemoel that package is built for arm32v7 (aka armhf), not v6 (aka armel). An armel package isn't provided, so Pi Zero isn't supported I'm afraid. Even if it was, you'd run into the same problem for IoT Edge packages and containers, which only support armhf.

Here's some information about Microsoft's distribution of moby-engine. I'd expect to see more details over time.

Hi @damonbarry, thanks for the information. Do we expect that Microsoft will support v6 (armel) in the future? Or is it a specific hardware limitation that won't allow IoT Edge to ever be installed on a Raspberry Pi Zero W?

@erwindemoel armel support is not on our roadmap, but we're continually evaluating the platforms for which we'll provide "tier 1" support; it could happen if there's enough momentum, and if we overcome the technical hurdles.

One big hurdle I know about for armel is that .NET Core doesn't support it (see dotnet/coreclr#10605). Both Edge Agent and Edge Hub run in .NET Core.

This would be marvellous to have. In some use case a device like Pi Zero W it's cost effective!

FWIW, no having support for Pi Zero W is a deal breaker for using Azure IoT. The form factor and price at scale are far more compelling then the runtime. While I'd prefer to use Azure IoT, it's got to support the platforms we need. 馃し鈥嶁檧

FWIW, no having support for Pi Zero W is a deal breaker for using Azure IoT. The form factor and price at scale are far more compelling then the runtime. While I'd prefer to use Azure IoT, it's got to support the platforms we need. 馃し鈥嶁檧

Whole-heartedly agree with you! This is too cost effective of a solution to ignore. It could provide access to a ton of untapped potential

Moby engine was successfully installed on pi Zero following the details on this docs :
https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge?view=iotedge-2020-11

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AndyLiTaiwan picture AndyLiTaiwan  路  5Comments

pierrickcurt picture pierrickcurt  路  4Comments

josiahlaivins picture josiahlaivins  路  6Comments

alaendle picture alaendle  路  4Comments

Lexmark-pcarey picture Lexmark-pcarey  路  4Comments