Raspberry Pi – Firmware and Updates

Now that the system is installed on the SD card and the ssh service has been configured properly, we're going to take care of the system and firmware updates; few words have to be said about the system partitioning scheme.
The Raspbian installation consist of two partitions: the fat16 boot partition, that contains the firmware needed to the Pi to boot, and the ext4 system partition.

Raspbian is based on Debian, therefore it uses apt as package handling utility. To proceed with a full system update, simply issue the following command:

# apt-get update && apt-get upgrade

If you desire to continue, confirm it with Y when asked by the interactive update process.
The first part of the command will update the packets' list to the latest version available, whilst the second part of the command will actually download and install the updated packages.
Just a reminder that the downloaded packages will be kept in the apt cache folder located at /var/cache/apt/archives. It's possible to get rid of such files as follows:

# apt-get clean

The update process could possibly also update the kernel, but for a more up to date copy of the firmware we'll count on the rpi-update utility.
As mentioned by the instructions found here at the git repository of the project, to install the tool, run the following command as root:

# wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && chmod +x /usr/bin/rpi-update

this would download and set the permissions to the rpi-update script.
To succesfully run the updater, the package git-core is needed, installing it by:

# apt-get install git-core

Now everything is ready to proceed with the firmware update:

# rpi-update

Let it run for a couple of minutes and if a new version of the firmware is available, it'll be downloaded to the boot partition and will be available upon reboot.

One more thing to say is about the memory split setting. The Pi is equipped with either 256MB or 512MB of RAM shared between the system and the GPU.
Originally, it was possible to pick one among the following memory split choices:

192/ 64
224/ 32
240/ 16

copying the relative file located in /boot over the file start.elf.
For instance, to give 240MB to the system and 16MB to the GPU, do as follows:

# cp /boot/arm240_start.elf /boot/start.elf

Although, now it is possible to (and it's now the only way to) choose the memory split by setting the parameter gpu_mem in /boot/config.txt as follows:


To particularise the split amount depending on whether the Pi has 256 or 512MB of RAM, it's possible to specify both split values as follows:


Reboot the system to make the changes final.

# reboot

Leave a comment

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.