Introduction

The Purism Librem5 one of the first phones specifically designed to run Linux based operating systems without Android (along with the Pinephone).

Purism Librem5 Phone from an side angle Stylistic render of the Purism Librem5 - CC-by-SA https://puri.sm

As with any early concepts, designs and platforms this device has numerous small grievances which might complicate its daily use. This guides provides an overview of all my personal grievances and resolutions grouped by several topics.

Let’s start with describing several of the problems that might hinder daily use. First and foremost is battery life, expect no more than 8 hours on a single charge. Second, is connectivity you will find that both cellular and Wi-Fi become inactive frequently even though the phone suggests it is still connected. Moreover, out of the box GPS and Bluetooth do not even work at all at the moment (2023-09-06). Third is the compatability of apps, primarily social media apps are not supported or very difficult to use. And last there are no screen protectors or cases made specifically for the Librem5.

Good things about the Librem5

While it relatively simply to list all problems with a particular device we have to recognize several outstanding features. Firstly is the dedicated hardware buttons to disable functionality such as camera, Wi-Fi or cellular. Speaking about cellular, this device uses a separate cellular modem with its own dedicated memory, contrarily to most phones which have one memory region being both accessed by the CPU and cellular modem. From a security perspective both the modem having dedicated memory and being able to physically unpower it is a tremendous improvement.

Topics

App Compatability

While for most mobile applications you can find a decent replacement there are a few categories that proof problematic. Primary social media applications like snapchat or whatsapp are cumbersome to get working. Nevertheless, through Waydroid most android applications can be run on the Librem5.

Apart from using Waydroid several applications available from the store are noteworthy and work natively on mobile.

  1. authenticator, uses argoni to encrypt the database and supports most 2fa features (qrcode, totp, backup)
  2. secrets, open, use and modify keepass databases
  3. amberol, play music with lockscreen widget

Some apps do not work natively on mobile displays but can be made to work by forcing them to be scaled down. This is done in the mobile settings app under the compositor tab.

  1. nextcloud, synchronise files
  2. telegram, telegram social network client
  3. flatseal, manage flatpak permissions
  4. tuba, mastodon client

Broken apps that do not start, are unusable due to scaling or otherwise are difficult to use on the phone currently

  1. tubefeed, does not launch
  2. giara, crashes during launch
  3. navit, blank screen

Setting up waydroid

Several write ups have been made by Sebastian Krzyszkowiak (dos) about how to install waydroid on the Librem5. Unfortunately these excellent guides are very difficult to find on the internet. Instead searches are covered in unhelpful forum posts complaining about how this (supposedly) is not possible.

Dos has made several guides the most recent one being available here https://source.puri.sm/-/snippets/1198

The instructions boil down to the following commands

sudo apt update
sudo apt full-upgrade
wget https://source.puri.sm/Librem5/debs/waydroid/-/jobs/401129/artifacts/file/debian/output/waydroid_1.3.3-0pureos0+librem5ci79377.0353512_all.deb
sudo apt install ./waydroid_1.3.3-0pureos0+librem5ci79377.0353512_all.deb

That is all, you will now have waydroid launcher on the screen. Booting the first time will take a while and requires an internet connection. Be sure to minimize the keyboard when you launch the app otherwise waydroid will only occupy part of the screen.

The guide by dos contains additional information about how to access logs, use adb to debug or install apks and much more. However, there are a few limitations mostly related to sensors, WiFi, GPS and cellular. Additionally, the clipboard is not copied between waydroid and the host so instead something like the Nextcloud client can be used to copy data back and forth.

Waydroid running on the Purism Librem5 Waydroid running on the Purism Librem5

Given that the waydroid image does not contain Google play services an alternative app store like fdroid can be installed. For applications only available from the play store apkpure or aptoide can be used (with caution). Personally, I recommend uploading each apk to virustotal.com prior to installing.

Synchronising files & settings

Using the Nextcloud client

The Nextcloud client allows to synchronise files for offline use, without an active internet connection. This is ideal for files such as keepass databases especially because any local changes to this file will also be uploaded back to Nextcloud.

The Nextcloud client can be found in the regular app store but the option to show incompatible apps has to be enabled in order to see it. Simply press the burger menu in the top right followed by preferences -> Show Incompatible Applications.

Once installed, launch the Nextcloud client and press the downward arrow to open the settings menu. These windows will be scaled down so the text might not look very crisp. In the legacy settings menu you will find it is much easier to configure which folders to sync between Nextcloud and the device.

If you close the Nextcloud window the only way to reopen it again is by first typing killall nextcloud in a terminal prior to relaunching.

Using Nextcloud through gnome settings

Alternatively the Nextcloud files, contacts and calendar can be synced through gnome settings. When using this for files it will appear in the file explorer as a network mounted fileystem. To add an Nextcloud account in settings simply go to gnome settings -> Online Accounts -> Nextcloud. When added the option to sync calendar, contact and files can be individually enabled or disabled.

When using the Nextcloud file synchronisation through gnome settings be sure to unmount the network filesystem whenever it is not used to prevent excessive battery drain. Alternatively the files synchronisation can be enabled and disabled on the fly in gnome settings whenever it is needed. The network filesystem will automatically remount during boot or when a new network connection becomes available.

Firefox bookmarks

The use of Nextcloud file synchronisation also allows to easily export and import Firefox bookmarks. You can find this menu under the hamburger icon in the top right Bookmarks -> Manage Bookmarks -> Import and Backup.

Phone contacts

Phone Contacts can be automatically synced through the Nextcloud online account in gnome settings allowing to access the same set of contacts anywhere.

However, in the absence of a Nextcloud installation altnernative methods can be used to keep contacts synchronised between devices or Waydroid. First the native contacts app has the ability to import contacts from Vcard files as well as export them.

The import button can be found under the right top burger menu labelled import while exporting is done by selecting one or more contacts using press and hold and selecting export in the lower left corner.

Inside waydroid the Android contacts app will have the same ability to import and export contacts. On android the options are found under the left top burger menu followed by settings and labelled import and export respectively.

Connectivity

Unfortunately you will find that the Purism Librem5 regularly loses both WiFi and cellular connectivity among other issues. Other issues such as that Bluetooth does not work at all out of the box. For most of these I have developed tips and guidelines that can elleviate most problems.

Losing WiFi or cellular connectivity

First you will find that WiFi will refuse to connect or that it says it is connected but you can’t actually transfer any data. The solution is to simply toggle the physical hardware button disabling Bluetooth and WiFi temporarally.

In some rare occurances this will not fix the issue at which point you will need to reboot the phone.

For cellular the behavior is mostly identical to WiFi but instead you often manually have to register to the APN in order to get network service. It is easily visible when this happens by the exclamation mark in the top left corner of the device. For this navigate to gnome settings and go to Mobile -> Access Point Names and take note of the name of the selected access point. Next open a terminal and use it to toggle the APN network:

nmcli connection down "APN Name"; nmcli connection up "APN Name"

This should have the exclamation mark dissapear. It is best to routinely check if you actually still have a working network service by pinging a server of choice ping meter.met in a terminal. In particular when travelling at high speed having to switch cell towers regularly.

GPS connectivity

GPS can be enabled from gnome settings -> privacy -> location services this will allow phosh to provide geoclues which are used by both gnome-maps and pure-maps. However, other maps apps such as foxtrotgps require the use of gpsd which requires more configuration. In addition you might notice that the location in gnome-maps never updates because it silently crashes after receiving the first geoclue.

The apparmor definition of gpsd will have to be modified given the gps serial device will be on /dev/gnss0 for which apparmor is not configured. For this, use a text editor with elevated permissions to open /etc/apparmor/usb.sbin.gpsd and navigate to the line starting with /dev/tty{ and add the following as shown below:

/dev/gnss[0-9]*  rw,

After this restart apparmor and gpsd.

sudo systemctl restart apparmor gpsd

You can check how well your gps is working by using the cpgs tool in a terminal. You might need to make the font a bit smaller for it to fit the Librem5 screen.

Output of CGPS in terminal Output of CGPS in terminal

Getting Bluetooth to work

Bluetooth is currently unsupported unless the Bluetooth module firmware is manually downloaded and installed. Simply execute the following:

wget https://source.puri.sm/angus.ainslie/firmware-rs9116-nonfree/-/raw/debian/master/Firmware/RS9116_NLINK_WLAN_BT_IMAGE.rps
sudo mv ./RS9116_NLINK_WLAN_BT_IMAGE.rps /lib/firmware RS9116_NLINK_WLAN_BT_IMAGE.rps

Afterwards modify /etc/modprobe.d/librem5-devkit.conf and change dev_oper_mode=_ to dev_oper_mode=13. Now reboot.

Unfortunately, whenever the device now boots you will be discoverable on Bluetooth. Turning off Bluetooth will only engage rfkill and thus you will still be discoverable on Bluetooth!

The only way to prevent Bluetooth discoverability is by executing the following anytime the phone reboots or the WiFI / Bluetooth hardware button is toggled:

bluetoothctl discoverable off
bluetoothctl pairable off
bluetoothctl advertise off

These commands must be executed before turning off Bluetooth in gnome settings!

Some wireless audio systems or car systems will refuse to pair with the device. One solution is to use hciconfig to change the device class such that it better reflects being a phone: sudo hciconfig hci0 class 0x5a020c

Bluetooth audio

One of the nice things about low level Bluetooth access is that you can now configure the device however you like. This allows to either source audio from the phone to a connected device like Bluetooth speaker but also allows to sink audio from a device and play that through the phone speakers or headphones.

I recommend to install both pavucontrol and blueman to make configuring Bluetooth easier. From the blueman-manager you can select to configure any device as source or sink under audio-profiles. Similarly this can be in pavucontrol under the control plane.

For sourcing audio using either pavucontrol or blueman is sufficient but for sinking you require to use pactl. Simply use pactl list to show the audio sink when connected. Next create a loopback device to play the sinked audio out of the speakers or headphones:

pactl load-module module-loopback source=bluez_source.xx_xx_xx_xx_xx_xx.a2dp_source

Be sure to replace the xx_xx_... with the bluetooth address as listed by pactl before. With this the audio can now be played.

Without the loopback device the sinking can still be done but the sinked audio is only available as microphone input in that case.

In order to be able to launch blueman-manager you might need to start the bluetooth service systemctl start bluetooth.target

Battery life

The phone can operate about 8 hours on a single charge which is pretty low for a phone. Now an experimental suspend feature is available that significantly extends this operation time. However, networking is not available while the phone is suspended, and it will only wake up for phone calls and text messages at the moment (2023-09-07). Now you could keep your phone connected to the charger for most of the day or charge it multiple times. However, both those conditions have downsides as I’ll explain.

Constantly keeping your battery at 100% with trickle charging is pretty bad for Lithium batteries their health and expected lifetime. The same type of degradation is experienced from rapid charge and discharge cycles, particularly when the battery gets hot / warm.

I have found this to be the case with the Librem5. Through sensors we can see that the battery is being supplied with roughly 20/30 mA of current continuously when the battery is 100% charge. This means that keeping the phone plugged in with the battery connected will accelerate the degradation of the battery.

More so, charging and discharging the battery multiple times a day does not only ad to the limited number of charge cycles of a Lithium battery but the battery also gets relatively hot (around 45 degrees Celsius) which further accelerates degradation.

Especially in Europe this is problematic as Purism refuses to ship batteries due to export surcharges. So unless you bought multiple batteries with the phone, which was not even an option with the crowdfunding campaign, you are stuck with this single battery for the entire phones life (yikes). In my opinion this situation is unacceptable export charges or not, especially for a 1000$ + phone.

Using a USB-PD power bank or charger (aka the bareback method)

To prevent rapid battery degradation I recommend removing the battery and powering it directly from a 18W capable USB-PD power bank or charger. This works, but it decreases ease of use and mobility. Keep in mind, depending on the power bank the phone might have problems booting, so it might be best to retain the battery until its fully booted only removing it after.

If you keep the back cover removed you will find it is quick and reliable to insert and remove the battery while the phone is operating (hence the bareback method). Should you need to run of with your phone simple connect the battery and start walking.

The only downside of this approach is that the phone will get confused about the total capacity of the battery after the first insertion / removal. You can check the actual state of charge through a command line utility called inxi by executing inxi -B.

Using a short USB-C capable with two right angle connectors you might be able to construct a power bank and Librem5 sandwich that increases mobility drastically.

Endurance & protection

There are no purpose made screen protectors or phone cases available for the Librem5. However, several screen protectors should fit fairly well including

  • ZTE Blade V9
  • Huawei Honor 7c
  • Moto x pure
  • Google nexus 6p
  • LG v10

I personally use a ZTE Blade V9 screen protector and am satisfied with the fit although its a bit short around the edges and does not fully cover the screen.

For phone cases several 3D STl files are available online that can be 3D printed. However, this must be done in a material like TPU otherwise it will be impossible to stretch the case over the phone. 3D printing TPU requires a direct drive extruder and full metal hotend without PTFE feed tube. In the absence of the necessary 3D printing equipment an online 3D printing service capable of TPU printing can be used. Expect the cost to be around 50 euro.

You can find up to date 3D models for cases on the gitlab repository of purism.

Example STL case file rendererd Example STL case file rendererd

I have not been able to fully test fit any of the online available phone case models. But have matched the location of buttons and phones by printing several cases in PLA instead of TPU.

EU Legislation and conformance

According to the (terms and conditions) policy page of the purism store a 1 year limited warranty is offered including on the Librem5 phone. This a violation of European legislation that requires at least a 2 year legal guarantee or even longer in select countries. The warranty of Purism also explicitly does not apply to select goods such batteries while offering warranty to defective products even consumbles is also required. Purism also charges the shipping for defective products to the customer which is not allowed.

I would highly encourage Purism to follow the free training courses on European consumer law through the Consumer Law Ready portal.

Following the simple deductions from the policy and consumer law page we can conclude that Purism is in non conformance with European legislation.

For highly detailed and in depth information see the European Derictives:

  1. https://eur-lex.europa.eu/legal-content/EN/TXT/?qid=1415266727957&uri=CELEX:31985L0374
  2. https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011L0083
  3. https://eur-lex.europa.eu/legal-content/EN/TXT/?qid=1413904356529&uri=CELEX:31999L0034
  4. https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex:31999L0044

Conclusion

There is a lot to be said about this phone, it serves a niche market with many of the features that the community values but clearly is not a very polished experience yet. This guide provides some of the steps to make the device more useable but it still a lot more cumbersome to use than a flagship Android or IOS phone. The focus of Purism on the US market and neglect towards European customers is worrysome and should be taken into consideration before purchase.

References

  1. Legacy wayland install guide
  2. New wayland install guide
  3. Librem5 case STL files
  4. Purism store policy 2023-08-27
  5. European consumer guarantees