Installing Linux on a HP Stream 11

Feb 12, 2018 · 1315 words · 7 minute read

The HP Stream 11 is “cloud ready” laptop with the appearance, feel and finish of a Fisher-Price toy. It’s also very cheap, or in this case free, from a relative, as it’d managed to Windows Update itself into a corner. So there’s only one option to revive it.

First, it’s entirely clear to me which version of the HP Stream 11 this is. I think it’s a 2014 model, but they have been releasing updates under the same name and the same chassis - it’s light blue and has ridges on the lid. The back says model “hp-y050sa”, which doesn’t appear on HP’s long list of models . What it does have is: 2GB of RAM, a Celeron 3060 CPU, 32GB eMMC storage, two USB ports, 1 HDMI, micro-SD card reader, headphone jack and power socket. It also has a keyboard with a space bar so spongy it only works every second press.

HP Stream 11 running raspbian

As ever with Linux there are multitude of distributions to choose from, even if you want to have only a ‘lightweight’ distribution. In the end I went for the desktop version of Raspbian , which is a lighter variant of Debian. The main reason being that I don’t do a lot of Linux at the moment, but when I do it’s often on a Raspberry Pi, so having something familiar makes life a little easier.

I also don’t have any particular demands of the laptop, being cheap, light and able to run a web browser are enough to turn it into a travel laptop that I can easily carry with me and not worry if something happens to it.

Installation

It should be obvious, but a warning to anyone following along: if you do this you will wipe anything that was on the laptop previously. Therefore back up any files etc. before starting. I never re-installed Windows afterwards, so I have no idea what steps you would need to take to return the laptop to its original state if you don’t like having Linux on it. Also it might not work, and you could end up with a light-weight pale blue brick.

To install Raspbian Desktop you will need two USB sticks, the first should be flashed with the ISO image of the Raspbian Desktop OS, the second you need to download the Debian non-free firmware onto. During the installation process the installer will say it doesn’t have all the firmware it needs, and ask for it, in this case it can find it on the second USB stick (luckily the Stream has exactly 2 USB ports).

The next step is to get the Stream to boot from a USB drive. I followed the steps described by Kevin Purdman in his Make the HP Stream 11 into a Linux Crapbook post, starting at step 4. In summary they are:

  • Reboot the Stream, pressing the Esc key at the first part of the boot process to enter the BIOs menu. You have to be very quick, it’s quite tricky to catch the brief window of opportunity.
  • Once the menu appears, press F10 to select the BIOS setup, and then System Configuration.
  • Move down to the Boot Options menu, and press Enter to fold open the extra options.
  • Choose Legacy Support and press Enter to enable it. There will be a warning that it won’t boot, but we can ignore that as we’re about to completely remove the existing OS.
  • Go down to the Legacy Boot Order section and use F5 to move the “USB Diskette on Key/USB Hard Disk” to the top of the boot order, so that the laptop looks there first for something to boot from.
  • Finally move to the Exit option and choose “Save and Exit”.

When the Stream next restarts it will stop at a black screen, asking you to confirm that you want to change the boot options. Follow the instructions to enter a 4-digit number shown and press enter.

These changes are apparently kept in some kind of volatile memory; if the battery is completely emptied, the laptop will forget these BIOS changes and complain it can’t find an operating system on boot. If you leave it for a long time, even completely powered off, you may have to repeat the Esc on boot and BIOS settings steps. But once done, it should find the existing install and boot as usual.

Then you can insert the two USB sticks prepared earlier, reboot the laptop and follow the instructions from the Debian installer. For me this went pretty smoothly, not using the graphical installer. All the default options were OK and I also let it install the GRUB boot loader. With the extra firmware available on the second USB stick, all the critical devices worked - e.g. WiFi, keyboard, battery level, trackpad, screen and speakers. I’ve not tested the webcam, so I don’t know if that works.

Backlight

The one thing that didn’t work correctly were the function keys for the screen brightness, and the default was to set the screen very, very bright. Which isn’t good for the eyes, or the battery.

First install the xbacklight application with sudo apt-get install xbacklight.

Then create a xorg.conf file in /etc/X11 which contains:

Created xorg.conf with the following:
Section "Device"
Identifier "Card0"
Driver "intel"
Option "Backlight" "intel_backlight"
EndSection

You may need to restart the laptop at this point.

Now it should be possible to adjust the screen brightness with the command xbacklight -set 20 or similar.

While the command line is obviously cool, it’d be much better to use the function keys. For that we’ll use xbindkeys with sudo apt-get install xbindkeys.

Then if you create the file ~/.xbindkeysrc containing:

#BrightnessDown
"xbacklight -10"
m:0x0 + c:232
XF86MonBrightnessDown

#BrightnessUp
"xbacklight +10"
m:0x0 + c:233
XF86MonBrightnessUp

Of course you could map the keys to any of your choosing, but I’m sticking with F2 and F3 as they have the brightness symbols on them on my Stream’s keyboard. For this to start working you need to log out and in again.

This binding only works for one user, so if you have multiple users on your Stream you will have to add this configuration file for each user, or find a better multi-user option.

Result

In the end the laptop is surprisingly usable for light web browsing and text editing (or command line use).

Chromium does seem to use more memory and perform less well than Firefox, but even then you’re limited to about 5 tabs, assuming you’re not browsing a website that is filled with video adverts and other junk.

YouTube videos are possible, but only at lower resolutions, otherwise it stutters.

Other than that most things I need it for happen via the command line, or editing text in Emacs, neither of which are too taxing.

External Display

For fun I did manage to get to work with a 4K external monitor via the HDMI port. It only runs at a maximum of 30Hz, and it didn’t automatically detect it in the GUI screen settings provided with Raspbian. Once connected you can run xrandr to see if anything appears next to HDMI1, if so then you can run xrandr -d :0 --output HDMI1 --auto and then the external screen should show something and you can adjust it using the Preferences > Screen Configuration options.

Initially I got a weird semi-tiled version of my background on the second screen, which was fixed by restarting X (logging out and logging in again is probably the easiest way of forcing that).

It’s not very smart about detecting that a new screen has been attached, and once you’ve set it up, detached. If you unplug the external monitor again and just use the built-in screen, I found it still thought there was a second display, and you could loose your mouse or windows on it. Again logging in/out to restart X did the trick.