I’m just sitting here running updates on my Pi in an effort to get camera streaming working and I thought it would help to give an explanation of the various updates you might want to run. I found a rather good answer on Stack Exchange and thought I’d replicate it here for reference. Thanks to Caleb and Ivo Rocha for the original:
rpi-update
is a tool to upgrade the firmware for your Raspberry Pi. Firmware is a small package of code that usually lives on a special chip of a computer that helps the software know how to talk to the hardware. However, in the case of the Raspberry Pi, the firmware will live on the first partition of the SD card.
- Raspbian is an operating system or the core software for your Raspberry Pi. Software (including the OS) lives on second partition of the SD card and is all the stuff that gets executed when you use your device.
Both of these need updating independently. For convenience, the rpi-update
tool is included in the Raspbian distribution of Linux because it is a useful software tool that manages the firmware of your Pi’s. You should run it periodically to make sure your devices have the latest firmware. Separately, you need to keep your software up to date using the standard Debian software management tools like sudo apt-get update && sudo apt-get upgrade
.
Each of these functions is separate, and updating one will not update the other. Upgrading your distribution to the latest software packages might get you a new version of rpi-update
, but unless you RUN rpi-update
your firmware will not get updated.
Since the place the firmware is stored is actually flashed to the first partition of the SD card (sort of like a BIOS), you will not need to run this on every device. Once you load a new version of software or firmware onto an SD card, any device you plug that card into will be running that version.
Best practice
I added this bit after a blog comment from Foundation guru Gordon Hollingworth.
Please note that although the rpi-update updates the firmware, it also will update the linux kernel (if there is a new one!) But so will sudo apt-get upgrade…. So if you do it in the wrong order then you could upgrade the firmware (with rpi-update) and then downgrade it with apt-get update/upgrade
Make sure you do it in the following order:
- sudo apt-get update
- sudo apt-get upgrade
- Then, if you want the bleeding-edge version… sudo rpi-update
That will make sure you end up with the latest version of the kernel.
As others have commented, rpi-update is useful if you want the latest, latest, latest version of the firmware, but does carry with it a few risks to the stability of your system.