Hands-on with Raspbian GNU/Linux Stretch for Raspberry Pi

A new release of Raspbian GNU/Linux for Raspberry Pi systems is available. I have made upgrade installations, as well as clean installations, and here are the results.
Written by J.A. Watson, Contributor

Well, isn't that just the way things go? I go away for a week (bicycling in northeast Holland, very nice), and a new release of Raspbian for the Raspberry Pi is announced. I shouldn't complain, though, because it gives me something to do as I adjust to my new life as an OAP.

The Raspbian GNU/Linux operating system for all models of Raspberry Pi systems has recently been updated, bringing the base to the recently released Debian 9 Stretch. The release announcement on the Raspberry Pi Blog gives a general overview, focusing mainly on application updates, and refers to the Debian 9 release notes for details about changes in the operating system itself.

Please note that if you jumped right in and downloaded/installed/upgraded this release immediately after it was announced, there have been some important updates and bug fixes released since then, so be sure to re-check the release announcement at the end, under 'Updates.'

The release announcement recommends making a clean installation of this new release whenever possible, rather than upgrading existing Raspbian Jessie installations. That's good advice, but I'm sure it's not possible in every situation, so I have done both upgrades and clean installations on most of my assortment of Raspberry Pi systems.

Before performing either an update or a clean installation, you should make a backup of your current system. However, if you choose to follow the advice of the release announcement and make a clean installation, I would suggest that it would be a good investment to simply get a new SD card, and put your existing card aside as an additional layer of backup security.

I decided to start by upgrading my Pi 3 system. The upgrade process is simple enough -- just edit two files (/etc/apt/sources.list and /etc/apt/sources.list.d/raspi.list) and change every occurrence of jessie to stretch.

Note: Both of these files should exist on any standard Raspbian system. If one of them comes up as "not found," it almost certainly means that you made a typo, not that the file doesn't exist. If you proceed with the update without modifying one of the files, the results will not be pleasant. Not that I have made this mistake or anything...

Then, simply run the usual update/upgrade commands:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove

Don't neglect that last command, because after the upgrade is complete, there is a lot of cruft that can be removed.

The upgrade process took a bit more than an hour on my Raspberry Pi 3 using a wired network connection. That's a pretty long time -- and you can't just walk away and let it run, because it will ask for input several times during the upgrade process. This was on the fastest member of the Raspberry Pi family, so I shudder to think how long an upgrade on the other models will take -- but I'm about to find out.

Raspbian stretch

Raspbian GNU/Linux stretch with PIXEL desktop. (Image: J.A. Watson)

I decided to jump to the other extreme for the next upgrade -- my original Raspberry Pi Model B. Oh my goodness did that take a while. Using the same wired network connection that I had used for the Pi 3, it took about an hour just to download the files, and then another four hours or so to actually perform the upgrade. Yikes!

I think that this makes it clear that unless you have some really special case where you have a lot of custom applications, configuration and/or data, making a clean installation is a much better choice than upgrading an existing system.

After the upgrade process was complete, I rebooted and got the next small surprise. Rather than booting directly to the PIXEL desktop, as it had been doing, I got a login screen. Hmm. The release notes don't mention this specifically, but I suspect that it is a side effect of the "better handling of other user names" that is mentioned there. Anyway, as long as you know the password for 'pi' (or whatever your default login name might be), this is not a problem. But if you have changed the default password, which hopefully everyone has done for security reasons, and you have forgotten what you changed it to, because you've been booting to the desktop, well, then you're going to have to think again about making a clean installation.

That is pretty much it for the upgrade procedure. Now, let's take a look at making a clean installation of the new release. As I mentioned above, if you choose this option I suggest that you simply remove the existing SD card and set it aside, and use a new SD card for the installation.

The installation image can be downloaded from the Raspbian Downloads webpage, as always. Also, as with previous editions, you can choose between the NOOBS (New Out Of Box Software) version, which will allow you to install various other operating systems alongside Raspbian, and the Raspbian stand-alone version. Within each of those two choices, you will also be able to choose between the GUI version including the PIXEL desktop and the minimal Lite version without PIXEL.

Whichever version you download, be sure to verify the sha256 checksum of your file with the value given on the download page.

The images are in zip format, which you must then unzip and copy to an SD card; this can be done with one command like this:

unzip -p 2017-08-16-raspbian-stretch.zip | dd bs=4M of=/dev/sdX iflag=fullblock oflag=direct status=progress

In this command you should replace sdX with the device name of your SD card.

The first time I did this, I then expanded the root filesystem to fill the free space on the SD card. The card then would not boot in my Raspberry Pi 3, it just displayed the four raspberries after power-on and then hung.

I then repeated the unzip/dd command and booted the SD card without expanding the filesystem. This time the initial boot process performed the filesystem expand automatically, and everything worked just fine. I don't know if something has changed in the initial boot scripts, but my advice is to just not try to 'help' the initialization process; simply let it do its work.

As I mentioned above, the first thing to do after successfully booting a clean installation is to download and install all the latest updates. In my case, one of those updates is particularly important, because the Raspberry Pi Configuration utility will not let you configure the keyboard without it.

The next thing I did was test Bluetooth functionality with the new release. For those who have not read my previous posts about this, I have found that the latest Logitech multi-device mice (m590 and m720) did not work with Raspbian Jessie. They were detected and paired, but after pairing, I got a message that said:


Although the Pi would say that they were paired, the LED on the mouse would not stop the rapid-blinking pairing mode display, and of course, the mouse wouldn't work.

Well, there's good news on this with the new release. Although you still get the silly "no services" message, the pairing light on the mouse stops blinking, and they actually work correctly. Hooray!

The Logitech K380 multi-device Bluetooth keyboard was no problem at all, connecting and working without any fuss just as it had done with Raspbian Jessie.

(Image: J.A. Watson)

One last bit of good news about this release. The HeptaPi computing cluster that I recently built still worked after the upgrade. On the systems that I upgraded Jessie to Stretch, I didn't have to do anything at all; on the systems that got a clean installation, of course I had to follow the instructions in my original post again.


I was curious as to whether the new Raspbian release was compatible with the latest dispy version (4.8.3), so it would not require specifically installing the older 4.7.1 version. Alas, it seems not to be. When I tried it on a server system, that one would then not be used on the compute.py test run; when I tried it on the client system, the compute.py test failed to produce any results at all.

So, that's the long and the short of it. Raspbian GNU/Linux 9 Stretch is available and seems to work just fine, with some nice improvements over Raspbian Jessie. The fastest and easiest way to get it is to simply make a clean installation, but if that is not possible for some reason, you can upgrade an existing Jessie installation. So have fun with it!


Raspberry Pi OS refresh: Raspbian's update to Debian Stretch is out now

Raspberry Pi owners can download the newest major release of Raspbian OS today.

Raspbian GNU/Linux: New release includes installable x86 image

Raspbian GNU/Linux 2017-06-21 is available now, for both Raspberry Pi and x86 platforms.

Raspberry Pi: A closer look at Raspbian PIXEL

How does Raspbian PIXEL compare to the other Linux distributions I have been looking at?

Raspberry Pi: A closer look at Raspbian PIXEL GNU/Linux

It's not just for the Raspberry Pi anymore! After recent updates and security fixes, a version of Raspbian PIXEL for x86 systems is now in the works.

Editorial standards