71

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?

Ivo Rocha
  • 35
  • 3
Scoop
  • 2,571
  • 7
  • 26
  • 25
  • 6
    This is an old question, and as of 2017 the need to run `rpi-update` has gone away for *most* users. Kernel updates are now included with `sudo 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. – scruss Feb 26 '17 at 16:33
  • 1
    As of August 2017 there is the newest Stretch version available. Here are instructions for installing it: https://raspberrypi.stackexchange.com/questions/71462/now-that-raspbian-stretch-has-been-released-should-jessie-users-rush-out-and-do – SDsolar Aug 22 '17 at 01:37

6 Answers6

92

"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.

modeset
  • 327
  • 2
  • 8
Caleb
  • 1,166
  • 11
  • 17
  • 1
    thanks for the great answer. So for each physical Pi that I have, I need to run `rpi-update`. It is not enough to run `rpi-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? – Scoop Jan 07 '13 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. – Caleb Jan 07 '13 at 23:10
  • 2
    Hi Caleb. You say that `rpi-update` is part of raspbian but I can't find it on my rpi (even with a `locate` or `apt-cache search`) do you think this is normal ? – Cerber Apr 27 '13 at 09:02
  • When I run rpi-update it seems to update the kernel (including the modules). Is this answer out-dated perhaps? – Dan Sandberg Jul 03 '14 at 04:54
  • 5
    According to [raspberrypi.org](http://www.raspberrypi.org/documentation/raspbian/updating.md) `apt-get upgrade` will update the kernel and firmware, albeit possibly not to the most recent one. – goldilocks Jan 06 '15 at 17:35
  • 1
    [As stated below](https://raspberrypi.stackexchange.com/a/7302/66186), this is no longer true. The things rpi-update provides are now bundled in the raspberrypi-bootloader package. – Tim Dorr Apr 25 '17 at 23:24
  • The provided "fix" command (`sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel`) may not work outside Raspbian ("`Reinstallation of [...] is not possible, it cannot be downloaded.`"), but you can install specific firmware revisions by specifying a Git hash as described here: https://github.com/Hexxeh/rpi-update#options – patricktokeeffe Nov 06 '18 at 02:36
26

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.

Osman-pasha
  • 419
  • 4
  • 6
  • Here's an updated URL if you're now on Jessie: http://archive.raspberrypi.org/debian/dists/jessie/main/binary-armhf/Packages – Tim Dorr Apr 25 '17 at 23:23
14

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
yglodt
  • 347
  • 1
  • 3
  • 11
12

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 ;) ).

Panca
  • 121
  • 1
  • 2
3

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
Vincent P
  • 2,190
  • 13
  • 24
3

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.

Ivo Rocha
  • 35
  • 3