Not working on Raspberry Pi Zero / latest Raspbian

I’m getting the following error after running rpi-update on my original Raspberry Pi Zero.

   Firmware exited with status pid 7911 exit 1
    Quitting firmware gracefully
    Entering safe mode because firmware exited too many times in a row. Reverting to Tinker
    Unable to determine hardware version. I see: Hardware	: BCM2835
     - expecting BCM2708 or BCM2709.
    If this is a genuine Raspberry Pi then please report this
    to If this is not a Raspberry Pi then you
    are on your own as wiringPi is designed to support the
    Raspberry Pi ONLY.

Raspbian and all packages are up to date, so is particle-agent.

I’m pretty sure it has something to do with wiringpi but I cannot figure out the problem.

$ gpio -v
gpio version: 2.44
Copyright (c) 2012-2017 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Pi Zero, Revision: 03, Memory: 512MB, Maker: Sony
  * Device tree is enabled.
  *--> Raspberry Pi Zero Rev 1.3
  * This Raspberry Pi supports user-level GPIO access.

Ping @jvanier

This thread has the same issue and upgrading Raspbian fixed it in this case. I know you said you’re at the latest version but maybe there are additional things you can check based on that other thread.

I know, I have seen this thread before I posted mine.

$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Hit jessie InRelease
Get:1 jessie InRelease [14.9 kB]
Hit jessie/main armhf Packages
Get:2 jessie/main armhf Packages [8,981 kB]
Hit jessie/ui armhf Packages
Ign jessie/main Translation-en_US
Ign jessie/main Translation-en
Ign jessie/ui Translation-en_US
Ign jessie/ui Translation-en
Get:3 jessie/contrib armhf Packages [37.5 kB]
Get:4 jessie/non-free armhf Packages [70.3 kB]
Get:5 jessie/rpi armhf Packages [1,356 B]
Ign jessie/contrib Translation-en_US
Ign jessie/contrib Translation-en
Ign jessie/main Translation-en_US
Ign jessie/main Translation-en
Ign jessie/non-free Translation-en_US
Ign jessie/non-free Translation-en
Ign jessie/rpi Translation-en_US
Ign jessie/rpi Translation-en
Fetched 9,105 kB in 51s (178 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


$ cat /proc/cpuinfo
processor	: 0
model name	: ARMv6-compatible processor rev 7 (v6l)
BogoMIPS	: 997.08
Features	: half thumb fastmult vfp edsp java tls
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xb76
CPU revision	: 7

Hardware	: BCM2835
Revision	: 900093
Serial		: 00000000be7b821a

And finally:

$ sudo particle-agent version
particle-agent 0.2.3

I do not see anything wrong. Note that this is a fresh install of Raspbian and there is no other software running on the Zero.

Wiped the particle agent package, remove all files by hand (especially /var/lib/particle/settings.json) and reinstalled: the problem persists.

It already fails after the login when trying to claim the device.

Could this difference be important?..
In this thread:

In the other thread:

There are differenct extensions (Features) between ARMv6 and ARMv7 as described here:

I could be leading you down a wild goose chase, but it is my observation…
Does the particle-agent rely on any of those that are not on the ARMv6?

The error is thrown by wiringpi. But BCM2835 is supported by 2.44, which is what I have!

The funny thing is, it worked before I ran rpi-update!

Ok, so my idea was on the wrong track.
Since you say it did work before rpi-update, maybe try researching the ChangeLog of Raspbian to see if anything changed in how it uses those ARM features, but you would need to focus on which features particle-agent uses. Just guessing at this point…

I still assume (and it is just an assumption!) it is something to do with your processor chip, based on the information provided.

Raspbian should have nothing to do with it. rpi-update updates the Raspberry firmware.

To be fair, I cannot say with certainty that it worked before. It did claim the Raspberry to my Particle account but I never tried actually flashing firmware to it. I ran rpi-update and after a reboot of the Raspberry, ran into the start-loop also mentioned in the other thread.

But fair point. I downgraded to Kernel 4.4.50-v7+ (from 4.9.x) and it works again.

$ sudo rpi-update 52241088c1da59a359110d39c1875cda56496764

So there is definitely some problem with either particle-agent or wiringpi on the 4.9 Linux kernel.


I looked into the issue a bit more for my own education.

As far as I figured out, in the current releases of Raspbian, using sudo apt update && sudo apt upgrade will also update the firmware (which is not firmware according to a 1990s definition, so that confused me) to the latest stable distribution version.

Also, in the latest releases, it appears rpi-update updates the firmware to the latest and not necessarily stable version. This is recommended only if there is a particular reason that you need the latest firmware.

I would go with the firmware version you now have installed since it is working.

1 Like

I figured that out yesterday as well. It’s been a while since I played with Raspberries :wink: And no, the “firnware” in this case is just the kernel image.

I hope the thread can help someone else with the same problem.

Great to hear it works for you now! Could you clarify which combination didn’t work and which combination works? I’d like to put my Raspberry Pi in the state that didn’t work for you and see if upgrading some library inside particle-agent fixes the issue.

Simply run rpi-update on the latest Raspbian. That should put it in a broken state.


I’m curious what improvements to your Raspberry Pi you expect to get from running rpi-update. It’s not an official tool from Raspberry Pi right?

It is not. It is, however, included in Raspbian. When I started using Raspberries a long time ago, pretty much every tutorial told you to run rpi-update (and most still do from what I can find with a quick Google search).

I did some playing around with my new RaspberryPi 3.

I did the following, which worked for me:

  1. Install the latest Raspbian, using the download link from the Particle Guide.
  2. Install onto an SD Card per the instructions.
  3. In my case, add the instructions for a headless install.
  4. SSH to the Pi.
  5. Execute sudo apt update && sudo apt upgrade
  6. Execute sudo apt dist-upgrade
  7. Execute bash <( curl -sL ) per the Particle Guide.

Steps 5 & 6 MUST be performed in order to successfully install the particle-agent. Thanks to @nrobinson2000 for step 6.
DO NOT execute rpi-update as it prevents the installation of the particle-agent.