Raspbian and other Raspberry Pi Software: the ultimate guide 2020

Raspbian and other Raspberry Pi Software: the ultimate guide 2020

Raspbian is the main and basic software for RPi devices, officially supported by the Raspberry Pi Foundation. In fact, it is an operating system, based on Debian and optimized for Raspberry Pi hardware. It comes with lots of pre-installed pieces of software appropriate for most ARM users and developers.

And in this blog post, I am going to look through almost all possible operating systems, as well as the Raspberry Pi images, compare and review major types of other software you can use for your complicated Raspberry Pi Projects.

But the main operating system, ready-to-use and optimized to the needs of the most developers and makers is Raspbian. So, first thing firstly, let’s dig deeper into this type of OS for RPi.

What is Raspbian?

Raspbian Jessie

In its time Raspbian Jessie was quite a big step forward for Raspberry Pi operating system to become more user-friendly and looked more like an ordinary desktop interface all of us got really used to. On the screenshot, you can see that Jessie has got GUI. Moreover, LibreOffice suite and Claws Mail applications have been added to meet the needs of a wider variety of users. LibreOffice is the set of applications, including a word processor, spreadsheet, presentation graphics, vector drawing and database programs just like MS Office does. All files made with LibreOffice are compatible with Microsoft Office.

Claws Mail is an email client. It supports all common email protocols and offers all the functionality of an ordinary mail agent (like Windows Mail or Thunderbird).

The programming applications list was enriched with Java apps (BlueJ and Greenfoot, they’ve also traveled to Stretch, read below). Other applications, updated and pre-installed by default in this version are:

  • New versions of Scratch, Sonic Pi, and the Epiphany web browser
  • Sense HAT is under Scratch and Python (changed from Astro Pi ).
  • Pygame Zero game is added
  • Screenshots become available via scrot utility (by push PrintScreen button)

Raspbian Stretch

Comparing with the previous versions or Raspbian, Stretch stands out with its internal technical developments rather than those notable in everyday routine use. It offers:

  • Updated applications (like Sonic Pi or Chromium)
  • More advanced approach to audio over Bluetooth (better integration with ALSA architecture)
  • Usernames handling has been improved. Automatic logging in with the name “pi” has been replaced with the passworded name of the current user
  • Scratch 2 (programming language) improvement. Now, it’s possible to use the Sense HAT with Scratch 2
  • Broadpwn fix. The vulnerability of BCM43xx wireless chipset for an attacker to take control over it has been addressed

Other Raspbian images

On their community website, you can find such unofficial additional images for Raspberry Pi such as

  • Adafruit Educational distro
  • Pisces by Mike Thompson
  • Pisces+MATE Image by Mike Thompson
  • Darkbasic
  • RaspRazor
  • CNXSoft minimal
  • Comitup Remote Wifi Management

They include quite a good number of useful tools for their images, mentioned above. For example, the one I personally liked the most was the “Pisces” Image by Mike Thompson. It includes GNU C and C++ compilers, SSH server, Xorg and LXDE desktop environment. Pretty good set for a software developer!

How to install Raspbian

Writing a Raspbian image on an SD card

  1. Setup Etcher on your PC (download it from here)
  2. Insert an SD card
  3. Open the Etcher app and choose your downloaded Raspberry Pi .img or .zip file
  4. Select the SD card
  5. Push the “Flash!” button to start

All set! After that simply insert the SD card with an image into your device and switch it on. The system will boot automatically.

Upgrading to the newer version of Raspbian

  1. DO THE BACKUP FIRST OF ALL!
  2. Upgrade the older version with the commands

$ sudo apt-get update

  1. In /etc/apt/sources.list change Jessie to Stretch
  2. Then repeat step 2.
  3. Then double-check that everything works correctly and otherwise use the option 1 writing an image on SD card

How to update Raspbian

So, to purely update your current Raspbian do the following (in the terminal):

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get dist-upgrade

You can also do the extra stuff to get the latest updates of particular applications:

$ sudo apt-get install -y rpi-chromium-mods

$ sudo apt-get install -y python-sense-emu python3-sense-emu

$ sudo apt-get install -y python-sense-emu-doc realvnc-vnc-viewer

$ sudo apt-get install -y realvnc-vnc-server

This is especially useful if your current Raspbian is Jessie (or Raspberry Pi Desktop) as these updates are included in the newer version of Raspbian called (Stretch — read above). Also, in 2016 the Raspberry Pi Foundation released a special update called PIXEL, which includes all of the updates mentioned in this chapter. (Read more about PIXEL later in this article).

Other official software for Raspberry Pi

What’s NOOBS?

NOOBS is a great starter Raspberry Pi software package to be downloaded the first thing first, especially by rookie RPi users (that’s why it’s called “noobs”). It is an archive which contains an out of the box installer for Raspbian, all the most popular applications and alternative operating systems. So, all you need to do is to download the archive, write it up to your SD card and first boot your Raspberry Pi device with this SD card. The NOOBS installer will do all the rest of the job and provide you with the user-friendly interface app to set up more applications on your Raspberry Pi within a few clicks.

There are two versions of NOOBS — full and lite. The full one contains the latest Raspbian and forces it to be installed first. Then you’ll be able to choose among other apps and systems to be installed as well. The NOOBS Lite doesn’t contain the Raspbian pre-installed and leaves you an opportunity to choose which system you’d like to first boot on your Pi.

Third-Party Operating Systems

  1. Ubuntu
  2. Windows 10 IoT Core
  3. RiscOS
  4. SUSE

Ubuntu

As to Ubuntu for Raspberry Pi, there are 2 options available: Ubuntu MATE and Snappy Ubuntu Core developed by Martin Wimpress and Rohith Madhavan.

I’d like to start with a more popular Ubuntu MATE. It’s greatly optimized for the Raspberry Pi 2 and Raspberry Pi 3 devices with LibreOffice and Firefox applications provided, built-in Bluetooth and Wifi support, hardware-accelerated VLC video playback and decoding and encoding in ffmpeg.

The next feature of this OS is that there’s not a predefined user on the first boot. You’ll need to set it up manually as well as configure the regional settings. Ubuntu MATE for RPi does have got several bugs to pay attention to.

  • Ubuntu MATE 16.04.2 is not snap compatible
  • WiFi doesn’t work on the first boot. To enable it a reboot is required.

Concerning the Snappy Ubuntu Core, it’s a minimized lightweight version of Ubuntu, specially designed for embedded and IoT devices. The key features of Ubuntu Core are a higher level of security and separation between kernel and device drivers, which can help embedded engineers and software developers work in parallel.

Ubuntu Core is available only for Raspberry Pi 2 and Raspberry Pi 3 models. Also, due to its increased security, the installation process is a little bit different. You’ll need to perform the following steps:

  • Create an Ubuntu SSO account
  • Download the proper Ubuntu Core image (for RPi 2 or 3)
  • Form up and import an SSH Key into your Ubuntu SSO account
  • Write the Ubuntu Core image on an SD card
  • Attach the monitor and keyboard
  • Implement the first boot configuration instructions
  • Log in to your user account via SSH

For full instructions look through the Ubuntu Core documentation.

Windows 10 IoT Core

In general, the Windows 10 IoT Core is used for connecting your Raspberry Pi device to a large set of Microsoft instruments, like Visual Studio or Azure, to code and then download the code to your RPi device. This is how the project is done on your Pi with Windows 10 IoT Core.

In other words, you have to do the whole job on some of your PC, and the Raspberry Pi device is connected to your PC working environment as an additional device. This is only reasonable if you are an active Windows user and Raspberry Pi is an additional project of yours. But if you are authentic ARM devices professional, it will seem tricky to you, because you’ll have to get to know the entire Microsoft environment from scratch.

Anyway, if Windows 10 IoT Core is your choice, you’ ll need to download the image on your PC, write the image on an SD card, install Visual studio (to operate the coding project within), then insert an SD card with an image into your RPi device (priorly connected to Ethernet or Internet), get connected your Raspberry Pi to MS Visual studio environment (using the device IP address) and then you are all set!

RiscOS

RisOS developers pronounce their software to be one of the most user-friendly and stable ones. This is achieved by the fact, that RiscOS is able to reside at ROM, so the system corruption is close to impossible. A lot of the software features and drivers are made with the hand-optimized ARM assembler, which provides the best possible level of performance for ARM-based devices.

This operating system also goes with a list of pre-installed bundle applications. This includes graphics conversion and enhancement, games, office suite applications (Like MS Office), file compression apps, FTP, PDF viewer, Oregano browser and much more.

The installation process is also based on writing the system image to the SD card. For RiscOS you’ll need an SD card of 2GB or greater capacity. So, you simply follow these steps:

  1. Download the RiscOS RPi image (you can get it here)
  2. Write the downloaded image to the SD card via some of your desktop PC using Win32DiskImager (or SystemDisc app, as recommended by the community)
  3. Insert the SD card with the image into your Raspberry Pi
  4. The IP address is not assigned to your device, so you have to do it manually. Simply got to “!Configure” and click the “Internet” option. Then you can set up TCP/IP right there.
  5. After you set up your IP, the software is ready for work!

SUSE

In fact, openSUSE is kind of a project, which offers a set of instruments, tools and features collected in one operating system, supported by a community. So, looking at their openSUSE source www.opensuse.org you’ll find the two distributions: Tumbleweed and Leap. And it’s not a case of a few words to describe the difference between them. But I’ll try. 🙂

Originally, openSUSE (as the overall SUSE company) targets the enterprises, so both distros are dedicated and optimized for industrial purposes. Thus, the key difference between the Tumbleweed and the Leap is in their stability level. I mean, the Leap is a stable full operating system, which is appropriate for usage in the situation when the absence of changes, experiments and downtime are critical. On the opposite side is the Tumbleweed, which is a so-called “rolling distribution”, updating so fast, that it would require quite a lot of attention. It’s tied with the general SUSE development and allows the user to be in close touch with, even the smallest updates and changes. While openSUSE Leap is only a subject of regular general big updates, strongly timetabled.

Both Leap and Tumbleweed contain the same applications set, the only difference is their versions. Tumbleweed has got more up-to-date ones then conservative Leap. The apps and features include KDE Plasma, Qt, gcc, X.org, Firefox browser, LibreOffice, GIMP, digiKam, Amarok music app and Dragon Video Player. Both systems use btrfs root filesystem by default and are compatible with MBR and UEFI systems, including UEFI Secure Boot support.

The installation of openSUSE images to Raspberry Pi is not a very easy thing. The systems are quite heavy. They use full installer ISO images of 4.7GB each! They can be both burned to a CD/DVD disks and copied directly to a USB stick and booted. As you can imagine, for Raspberry Pi it’s better to use the second option. Then goes a multi-step algorithm, containing the next major parts:

  • Creating a bootable SD card (at least 16GB) with a special formatting
  • Copying the Raspberry Pi firmware and bootloader
  • Downloading and writing the needed distribution on the SD card with a special app (e.g. Win32DiskImager)
  • Booting and installing the distros. For that, you will need some other PC and an additional monitor to connect your Raspberry Pi to
  • Insert your SD card with an openSUSE image on it and start booting the system

In case of troubles with booting, you will probably need a small trick — creating a Hybrid MBR/GPT on the SD card for the Raspberry Pi

Another way of installing openSUSE on Raspberry Pi is the Network/PXE installation method. The further steps have their own peculiarities, depending on what distribution you are installing on your RPi.

So, for Tumbleweed:

  1. Download the image (a minimum 16GB SD card is required)
  2. Extract the image onto the SD card under the root rights
  3. Insert the SD card with the image into your RPi device
  4. Connect the Pi to some Desktop PC and to a monitor as well and then switch on the RPi
  5. If you used a DHCP server, check it for your Raspberry Pi IP to provide on the first boot
  6. Wait until the automatic installation is finished

For Leap:

  1. Download the image (an SD card of 16GB is required)
  2. Extract the image onto the SD card under the root rights
  3. Insert the SD card with the image into your RPi device
  4. Connect the Pi to some Desktop PC and to a monitor as well and then switch on the RPi
  5. Walk through the first boot steps (this is the only difference from the previous tutorial)
  6. If you used a DHCP server, check it for your Raspberry Pi IP to provide on the first boot
  7. Wait until the automatic installation is finished

Non-official Linux-based operating systems for Raspberry Pi

Fedora

PiDora

PiBang

Linutop OS XS

ArchiLinux 32

Gentoo Linux

Kali Linux

Chromium OS

CentOS

DietPi

Aros

Slackware ARM (SARPi)

Other non-Linux operating systems for RPi

Plan 9

Plan 9 is an operating system developed in the 1980s by the Bell Labs including the developers Ken Thompson, Rob Pike, Dave Presotto, and Phil Winterbottom. The OS is currently kept on being supported by the community of enthusiasts. This system as very alike Unix but at the same time is quite different.

The main feature of Plan 9 OS is that it assigns multiple processes to their own personal channels, so-called “mutable namespaces”. Every process operating within this namespace doesn’t affect the namespaces of unrelated processes. For a file server mounting a simple 9P file, the protocol is used.

Generally, Plan 9 is a kernel system but still has its own applications set. Most of them are developed exclusively for Plan 9 but there are several ones taken from Unix, like dc, ed and troff applications. Currently, Plan 9 is officially supported. You can get the updated information via their website www.9p.io

FreeBSD

FreeBSD is an open-source operating system, which history counts up more than 30 years. And all that time there has been a strong community developing and supporting the software. So, FreeBSD implementation ranges from servers and desktops to modern embedded platforms.

Another big field for the usage of this operating system is a platform for websites hosting and within embedded networking and storage devices. There are also other features, which made FreeBSD very popular among its users.

They include:

  • “bhyve”, which is a BSD licensed free hypervisor
  • KMS And New drm2 Video Drivers
  • Capsicum application enabled by default
  • A Binary Packaging System
  • Modified firewalls allowing network administration specialists to imitate different bad network conditions
  • Jails — a system which is a substitute for virtualization
  • Linux environment emulation
  • DTrace is a comprehensive framework for tracing and troubleshooting kernel and application performance issues.
  • Over 23,000 apps gathered into a huge Collection and ready for installation
  • Network Virtualization: allowing to work within multiple instances

Haiku OS

Haiku is an open-source operating system that is based on BeOS but forked to an independent project long ago (in 2001) and now is currently being developed and maintained.

Initially, Haiku was designed for x86 architecture devices but it also offers ports to ARM (devices like Raspberry Pi), as well as PowerPC and MIPS platforms are claimed to be underway.

The main goal of this operating system is to be user-friendly and suitable both for inexperienced users and for professionals. That’s why Haiku includes the features to be liked by ordinary users, such as the cohesive design on the one hand. And things like custom kernel, object-oriented API and database-like file system, on the other hand, respected by developers.

Haiku has also got a pre-installed set of native tools:

  • Java support — applications such as Netbeans or JDownloader can be set up and run via OpenJDK virtual machine that is also available
  • Caya messenger
  • Office alternatives: Sum-It (spreadsheet) and WonderBrush (a drawing tool)
  • Programming languages: PERL, Python and Ruby
  • Freeware games (reachable via HaikuDepot)

NetBSD

NetBSD is distributed in three ways:

  • Formal release form. Released on a regular basis and each release contains stable and tested libraries and applications.
  • Maintenance branches form. It consists of really short-term minor updates including a particular bug with a solution for it.
  • NetBSD-current form.The updates are released almost daily and offer the latest features and applications, very often untested and with a high probability of bugs to be occurring.

In addition, the NetBSD’s community is so large, that when you face some bug or a problem, this is likely to have been already fixed by someone else within the community. So it’s always reasonable to communicate with other users via forums and make contributions sharing your own experience as well.

HelenOS

Another great feature of this operating system is that it supports a lot of types of hardware architecture: md64, arm32, ia64 EFI, Mips32 MSIM, MIPS Malta etc.

The system developers community defines the product’s aim mainly for learning operating systems in general rather than the practical implementation of the software. Although there is an example of HelenOS professional use within the ​Operating Systems course at Charles University, Prague.

What is Raspberry Pi Images?

Another simple example is a retro gaming Retropie project that can be also used as a ready-for-booting operating system.

So, when we speak about Raspberry Pi images we mean exactly Raspberry Pi Disk images, which are literally some SDs with some compatible software on them. Though, very often a lot of pieces of software for RPi comes to say “unready”, meaning you will need to make an effort to download it, install, set up and run yourself. Luckily, quite detailed tutorials are provided in these cases!

Below, you can find a short example list of the software for Raspberry Pi that you can find in the form of disk images.

Thin Clients for RPi

TrueOS Pico is a thin client used for the connection of different ARM devices into one server.

Networking Images

Pi-Point is an application that manages the WiFi access point for Raspberry Pi devices, turning it into a real wireless access point. Is distributed as 8Gb SD card presets or can be made up manually by a user (which is not a simple task to fulfill).

RasPBX consists of features of Asterisk with its FreePBX GUI which is all about the free open-source framework for communications apps such as IP Telephony, IP PBX, VoIP, SIP etc. RasPBX is adapted specially for building up such projects on Raspberry Pi.

Home Automation Disk Images

Motion Eye OS is a complete RPi tool for video surveillance or other projects alike to be made on Raspberry Pi.

Open Lighting. OLA (or Open Lighting Architecture) is an open-source application for lighting control automation, previously used in the entertainment industry. Nowadays the system is widely adopted for DIY home automation projects on ARM devices.

Education Purposed Images

Coder is a free open source web-based project built up for learning the basics of Javascript, HTML and CSS. All the manipulations and tasks are fulfilled via a web browser.

Images for Developers

Nard is an SDK for the development of MOTS embedded systems remotely running on a permanent basis.

Tingbot an educational software development kit (SDK) for learning how to make up apps It comes with it’s one simplified code editor based on Python, which, in turn, significantly simplifies the application’s creation technical process.

Special Images for Aviation and Marine Industries

OpenPlotter is an application to help sailing navigation for small and medium boats. This is an open-source project that uses Raspberry Pi devices as a hardware platform. Moreover, this system also offers ready-made home automation.

Stratux is an RTL-SDR ARM-based devices receiver for weather and aviation traffic data. It features flexible parameters and enables users to set up everything they need for a particular case.

Audio and Music Images for Raspberry Pi

Moode Audio is a Media Player for ARM devices, also known as TCplayer. The app supports HiFiBerry and Mambo berry cards which are used for significant sound improvement. The image features modern adaptive interface, supports the Bluetooth connection, Pi Touchscreen and much more for great music experience on RPi.

PiFM Radio Transmitter is an image to make your RPi a real FM radio transmitter in a few steps. This image contains a small piece of a python code which is launched on the Pi with an antenna connected to the pin 4. The system works on 100.0 MHz.

RuneAudio is considered to be one of the best and Hi-Fi audio player, specially designed for ARM devices such as Raspberry Pi, Odroid, Cubietruck, Beaglebone, Cubox and Udoo. This is a lightweight OS, which connects all your content sources (like NAS or USB-drive), clients (desktop or mobile) with the Hi-Fi music hardware making the whole assembly a great music entertainment system.

The images, described above do not consist of the full list of all the possible software, applications or other features ever designed for Raspberry Pi. Our team is currently working on the document, which will contain all the possible images for Raspberry Pi ever designed that can be found on the Internet.

Other software for Raspberry Pi

However, Raspberry Pi boards (as well as other ARM mini PCs) are closely associated with IoT and DIY making fields. That’s why in the chart below you can find mostly entertainment or IoT aimed groups od software for Raspberry Pi. The other ways of using such hardware are either unlike or have a narrow purpose. Anyway, feel free to add your own ideas in the comments.

Raspberry Pi Media Centers

  • OSMC
  • OpenELEC
  • LibreELEC
  • KODI (or XBMC)
  • Rasplex
  • Plex

These pieces of software, in general, aims to turn an RPi device into a multi-purpose media center. Almost all of them provide great cross-device connectivity, including TV-set, Audio-system, Video and Audio-Players of any type, data-source and storages like HDDs, USB-drives or even NAS with any type of auxiliary hardware and peripherals. The main features of such kinds of Meda Centers are economy, silence, stability and ability to play almost all formats of digital content.

Raspberry Pi emulators for gaming

  • EmulationStation
  • Retropie
  • Lakka
  • PiPlay
  • Recallbox

Almost all of them use the EmulationStation software front-end as the basis, accompanied by the RetroArch emulators. All of them are great for retro gaming hobbyists as they port only arcade machine or console video games to Raspberry Pi.

Web Browsers for RPi

  • Midori
  • Chromium
  • Epiphany
  • Firefox
  • Google Chrome

All of them are lightweight as Raspberry Pi hardware can hardly cope with multi-threaded apps like Chrome. In general, all browsers compatible with single PC boards are simple and basic, free and open-source to provide occasional surfing the Net, downloading and content display.

RPi Virtual Machines

  • PIXEL
  • LXDE
  • QEMU
  • Virtualbox

Virtual machines help to install and run the applications non-typical for the hardware or even those which aren’t compatible with the architecture. It helps to reach different goals for programming Raspberry Pi devices for specific tasks and widens the variety of this hardware implementation.

Raspberry Pi Printers Software

  • Octopi
  • AstroPrint

RPi devices are great for making smart things and one of the best examples of that is smart printing. One of the best features is that the represented software helps to create a WiFi (wireless) printers from old ones. Also, these applications have got a big cluster for setting up and running a 3D printing and adopt 3D printers for different purposes and projects.

Raspberry Pi Software for Schools

  • PiNET

It is unique, supported by the Raspberry Pi Foundation free and open-source software which helps to set up and running a so-called Raspberry Pi classroom. The main aim of such classrooms is to teach students the basics of programming languages as well as making projects using embedded technologies, such as single-board mini-PCs like RPi. The software’s main features include the private network, based on a centralized operating system (Raspbian) with share folders, automatic back up and manageable work collections.

Raspbian Weather Researching Software

  • Weather Station

The software is dedicated to making your Raspberry Pi a real DIY weather station. The Raspberry Pi Foundation offers a special hardware kit including plug-in connectors and sensors for gathering the environmental data (wind speed and direction, precipitation, temperature, pressure, etc.), analyzing and storing them to some remote node, or plug-in data storage hardware. There’s a large weather watch enthusiast community sociating via different forums, portals and websites, which you can set up connect your weather display system as well using the represented app.

Crypto Mining Software (stopped!)

  • Minepeon

However, it’s not a good idea to mine cryptocurrencies on such hardware like Raspberry Pi nowadays, due to the level of mining difficulty. It’s unprofitable. The modern mining Bitcoin (as well as altcoins) algorithms require way much more powerful hardware which RPi will never be even close to. In fact, ARM-based devices have got absolutely different goals. Though, there was an attempt to mine Bitcoin on RPis when it was somehow profitable (long ago). Now, the project’s been stopped and the last update on their website dated back to 2014.

RPi Music Production Software

  • Sonic-Pi

It’s a free and open-source project (under MIT license),
claimed to be useful both for beginners and music professionals. Sonic Pi allows to synth sounds and composes music via coding. The users may define their particular tones and rhythms and change these parameters whilst playing back. The software was developed by Dr. Pam Burnard, University of Cambridge and thus, it goes with a bunch of lessons tutorials and study programs to provide an exciting education for beginners.

Final notes

Also, reading this article you can make sure that the possibilities for software development in ARM industry are really unlimited. Generally, there are not so many applications for Raspberry Pi, though the demand for it is quite big.