I have a 512MB Pi. I am trying to make sure I am getting the most out of it. I just downloaded the latest version of Raspbian and installed it on the Pi. Do I also need rpi-update? Is rpi-update meant for upgrading from one version of Raspbian to the next?
6 Answers
"In normal circumstances there is NEVER a need to run rpi-update as it always gets you to the leading edge firmware and kernel and because that may be a testing version it could leave your RPi unbootable". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Even the rpi-update documentation now warns "Even on Raspbian you should only use this with a good reason. This gets you the latest bleeding edge kernel/firmware."
sudo apt-get update; sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
will put it back to the latest supported kernel/bootcode.
I think you might be conflating two different operations.
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 only run it if you need to, as per the warning above! Do not use it regularly. 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.
-
1thanks for the great answer. So for each physical Pi that I have, I need to run
rpi-update
. It is not enough to runrpi-update
on one sd card and have it work where ever it is plugged in.rpi-update
is physical board dependent as opposed to sd card dependent. Is that correct? Then secondly, I'm curious, what does upgraded firmware do? Is it more stable? Is it faster? Does it help support the 512MB architecture?– ScoopJan 7, 2013 at 21:38 -
@Scoop: I edited my answer to answer your other questions. What the firmware updates actually contain would be a question to be answered by the changelog for the version update in question and is outside the scope of your original question. You could consider asking another one along those lines if you want.– CalebJan 7, 2013 at 23:10
-
2Hi Caleb. You say that
rpi-update
is part of raspbian but I can't find it on my rpi (even with alocate
orapt-cache search
) do you think this is normal ?– CerberApr 27, 2013 at 9:02 -
5According to raspberrypi.org
apt-get upgrade
will update the kernel and firmware, albeit possibly not to the most recent one.– goldilocks ♦Jan 6, 2015 at 17:35 -
1As stated below, this is no longer true. The things rpi-update provides are now bundled in the raspberrypi-bootloader package.– Tim DorrApr 25, 2017 at 23:24
raspbian package repo contains raspberrypi-bootloader
package which contains firmware, kernel and kernel modules that rpi-update
downloads. The version is not the latest, but files should be fine and stable. Now it shows a 20130902 version, so it's about 2 months old. The package is installed by default and is updated when a new version arrives in repo.
So you basically do not need rpi-update
if you don't want the bleeding edge firmware and kernel, just stick with apt-get
- it will update kernel, firmware and modules on its own. Actually I cannot find rpi-update
on my Pi at all.
-
Here's an updated URL if you're now on Jessie: archive.raspberrypi.org/debian/dists/jessie/main/binary-armhf/…– Tim DorrApr 25, 2017 at 23:23
Meanwhile the kernel is part of the raspberrypi-kernel
-package in Raspbian.
So rpi-update
is not needed anymore to update the kernel.
There are several kernels in the package, that means it works on every hardware-version of the Pi (ARMv6, ARMv7 and ARMv8)
Just use this fancy one-liner to keep your Pi up-to-date:
apt-get update && apt-get dist-upgrade && apt-get clean
If you are worried about not-needed stuff, add this:
apt-get autoremove --purge && apt-get remove `deborphan` --purge
The answer marked as correct is in fact outdated, and in a problematic way: rpi-update will update the firmware to the latest published version, which has to be considered "not stable". So following the recipe given you might end up with an unstable system (has happened to me ;) ).
RPI-Update is used to update the Raspberry Pi to the latest version. You don't really need it, but it is a good idea to keep the Raspberry Pi updated. So you might as well install rpi-update.
Also if you don't really need your Raspberry Pi on the latest bleeding edge updates. Rather use the following command. This will update all installed packages to their stable current version
sudo apt-get update && sudo apt-get upgrade
-
actually it will upgrade firmware as well (version will not be latest, but stable) Nov 30, 2013 at 9:31
If you look at your SD card after flashing it with the latest version of Raspbian you will actually see 2 partitions on your SD card. The first one is where the firmware is stored and the second one will be where the operating system (Raspbian) and your files are stored.
Therefore if the firmware on your SD card (first partition) is up to date then any Raspberry Pi using that SD card will be running the latest firmware version.
You can even update the firmware on the SD card by updating the files in that first partition with a Windows computer for example. (See: 3.2 Get the latest firmware version)
If the Raspbian team is using the latest firmware on their distribution though, that is a different question. In my opinion, to make sure you are running the latest firmware on your Raspi I would still use the rpi-update tool with any operating system distribution you choose.
In short, I would say the following phrase: Update the card, run everywhere.
rpi-update
has gone away for most users. Kernel updates are now included withsudo apt upgrade
, but weren't when this question was asked. If you're running special hardware or want the latest kernel and modules (and understand/accept the stability risks that these might bring) then you might still want to use rpi-update.