Raspberry pi firmware update

I found this document and noticed my pi is running old firmware. I've already tested the procedure on a spare pi (running 2017-01-11-raspbian-jessie-lite), it seems to work (upgrade from 4.4.36-v7+ to 4.4.42-v7+ - this isn't the vesion pi-hole is running on)
The question(s) however:

  • Is it necessary / advisable to upgrade the pi's firmware?
  • Will pi-hole (also running DNScrypt) still work, or will I have to reinstall everything?
  • Does pi-hole work with the latest firmware (seems to be v4.4.42-v7+), versions can be found here

I one had an intensive discussion about this rpi-update tool with a hardware developer that uses Raspberry Pi for a number of embedded application projects.

Short answer for the impatient: Don't use rpi-update! It has the potential to break your Raspberry Pi irreversibly.

Longer explanation follows:

The tool rpi-update is used to upgrade the firmware for your Raspberry Pi. The advantage of this tool is also its biggest weakness: It updates your Pi hardware to the bleeding-edge development version of the Raspberry Pi firmware. There have been discussion on the official Raspberry Pi forum to rename it to rpi-unstable but that never got accepted.

Excerpt from the official README of the rpi-update tool:

Even on Raspbian you should only use this with a good reason.

This gets you the latest bleeding edge kernel/firmware. There is always the possibility of regressions.

Bug fixes and improvements will eventually make their way into new Raspbian releases and apt-get when they are considered sufficiently well tested.

A good reason for using this would be if you like to help with the testing effort, and are happy to risk breakages and submit bug reports. These testers are welcome.

Furthermore, the license it ship along with:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

(well, it is a commonly found thing to find something like this in an OSS license, but still...)

Finally, this is not even needed, since the official Raspbian repo includes packages called raspberrypi-bootloader (containing both, bootloader and firmware), and raspberrypi-kernel (containing the kernel and kernel modules) They are the same that rpi-update would download downloads. The difference is, though, that the version are not the latest (less bleeding), but the versions downloaded here can be considered as reasonably tested and should run fully stable with little to no risk to break anything. Their current version is from 2016.12.15 so only one month old - I guess that is acceptable.

I and others think that it should have a public health warning. Before you run rpi-update you need to a) have a backup, b) know why you're running it, c) know what it's going to do (how it could ruin your day) and d) know what you are installing hasn't been tested.

This tool broke things for users quite frequently and never once achieved anything noticeably (at least not recently - in the early days it was quite helpful when the camera implementation was not yet working, etc. in the very early days of RPi). Final note: There has been a reason why it has been removed entirely from the official repository.

1 Like

Thanks for this, I did some further testing:

  • downgraded the pi to 4.4.36-v7+, using the command (as it was installed anyway):
    sudo rpi-update b2de18efa673f3337dae0defd394306f2191437c
  • prepared a new SD card with 2017-01-11-raspbian-jessie-lite
  • booted the pi from the new SD card, firmware version did NOT change
  • updated the software:
    sudo apt-get update && sudo apt-get upgrade
  • reboot
    The firmware did upgrade from 4.4.36-v7+ to 4.4.38-v7+

Thus, confirmed, no need to use rpi-update, simply update/upgrade the system and reboot.