News - 2022/06/04 - Librem to Freedom
Author: Kevin Day
Description: News post on 2022/06/04.
Keywords: Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, News, 2022, Librem, Librem5, Phone

# 2022 / 06 / 04 - Librem to Freedom

## Forward

I have always thought a phone is a computer and should be seen as a common computer. A common computer, very simply, is a machine that runs software. Software itself is essentially an extension of thought. Thought is yours and yours alone. Thoughts may be shared or withheld as one sees fit. Thoughts are communicated via language, such as a programming language. These thoughts, as represented by a given language through some software, are manifested into reality though the hardware that is a computer. What goes in a computer or comes out of a computer is and should be yours alone at your discretion for computers that belong to you, such as a personal phone. Like how ones mind may contain many thoughts, some that belong to others that have been communicated via some language and others ones own, a computer may contain different software from many different minds than oneself. Regardless of what is or is not on a phone, only the individual whom the phone belongs to should decide what comes in and goes out that phone regardless of whose thoughts they may have originated from. From software programs to text files and voice recordings, this is yours and yours alone.

## The Dream for an Open Source Phone

I am a hacker, a tinkerer, one who likes to modify things into what I desire. I don't want somebody to do anything for me. I want to do anything for myself. While this does not mean I want to do everything, this does mean that want I want to do, I am the one to do it. In this case, I want to tweak and configure and use my phone as I see fit. Open-source gives me the opportunity to review, vet, and configure my computers as I see fit. Liberty such as this is the air that fills my lungs as I sleep at night, dreaming.

When I first discovered I could have a phone that respects my freedom, my privacy, and my liberty, I was ecstatic. I don't have to be weigh down by horrible interfaces, horrible software, and horrible flexibility that other people like or otherwise think is a good idea. I would have the opportunity to tweak and adjust the ideas as I see fit within my own personal tolerances and willingness to put the effort in.

I supported several phones over years, such as the OpenMoko Freerunner, an embarrassing failure in the community to the leap forward pioneered by the Unbuntu Aquaris. Many of these phones ultimately failed or faded into the night due to a hostile industry, market, and regulations. The Librem5 from Purism has now stepped up to the plate, learned from the past mistakes, and delivered a phone that, while not complete or ideal, lives up to their standards and has thus far survived numerous, and blatant, hostile industry actions and economic disasters.

I finally have my Librem5. I have had to quite painfully, if not patiently, wait for my phone to actually be shipped years late (due to global economic situations). This is my review after having used the phone with respect to the other open-source phones I have used, namely the Pinephone from Pine64. I have discovered good things, bad things, horrible things, and great things about this phone.

The Pinephone that I have uses mostly the same software as the Librem5. This offers a great comparison. However, much of this software is actually by the Purism. The resulting differences are primarily, but not mostly, the hardware differences.

## The Experience

I received the Librem5 phone, charged it up, and then powered it on. The first thing I encountered was the disk encryption. The default password is easy to guess and I did not have to look up documentation to figure it out. I am already familiar with the interface thanks to having installed it onto the Pinephone. Most of the software looked the same, except for the camera. I will discuss more on the camera program later on in this document.

First things first, I need to change the user name and the encryption keys. I've never bothered with this on the Pinephone and I do not know how different doing this on the Pinephone will be. As for the Librem5 phone, I found changing the user name did not actually change the user name. The problem is that what I call the user name is the system account name. What the Librem5 calls the user name is the displayed account name. Fair enough.

I recommend backing up your `contacts.db` file. This file should appear after you first start and configure the Contacts program. The `contacts.db` file can be located by using the following command on the command line from your home directory: `# find -name contacts.db`

I open up the command line and I cannot login as root. Really? What a pain. The solution is to use `sudo -s passwd` to change the root password and then login. I then had to change several other files so that the normal user can use sudo properly as well. The appropriate credentials can now be established.

I rename the user, changing the home directory, updating the `/etc/passwd`, `/etc/group`, `/etc/shadow`, and several other account related files.

I rebooted the Librem5 phone and it failed to boot. Some part of the boot process is picky about the default name. I found that there is a Jumpdrive program that allows me to boot the phone and expose the disk to another computer. Purism actually provides their own special project, called Librem5 Flash Image for making this amazingly simple. These two tools when combined are amazing. I've never had an easier time accessing a phone over USB. I could access all files on a different machine as if it were a local disk drive.

The Librem5 Flash Image documentation could be improved because the default configuration installs without full disk encryption. I had to re-flash the Librem5 phone again once I discovered it to be unencrypted. The partition also had to be resized but thanks to the amazingly well designed software (the Jumpdrive program and the Librem5 Flash Image) I could just open up a graphical partition and easily fix this.

I now had easy access to all files on the disk. I found and fixed several of the situations related to the user name change. I also edited the `/etc/fstab` file to ensure that the filesystem is mounted as `noatime`.

I recommend always using `noatime` on all mounted filesystems. The security offered by access times is weak. More importantly, access time increases the amount of input and output to the disk and wears down the drive faster. This is a bad idea for something like a phone that uses flash. These devices have a limited number of writes. Reducing writing to the disk on every read (even if it is a cached write) should also save battery life. This is an example of what an `/etc/fstab` might look like: `UUID=00000000-0000-0000-0000-000000000000 /boot ext2 errors=remount-ro,noatime 0 2 UUID=00000000-0000-0000-0000-000000000001 / ext4 errors=remount-ro,noatime 0 1`

I also edited the `/etc/fstab` file to ensure that the `/tmp` directory is mounted as a temporary file-system utilizing RAM.

I strongly recommend always using `tmpfs` for the `/tmp` directory. This reduces writes to the disk, further extending the life of both the phone's hard-disk and the phone's battery. Make sure to use the number zero at the far right to prevent avoid any potential boot or shutdown problems. An important parameter for `tmpfs` is the `size=` parameter. The `size=` allows specifying the upper limit to prevent it from utilizing too much RAM. If this is too low, then files cannot be written. If this is too large, then the possibility of using too much RAM exists. This is an example of what an `/etc/fstab` might look like: `UUID=00000000-0000-0000-0000-000000000000 /boot ext2 errors=remount-ro,noatime 0 2 UUID=00000000-0000-0000-0000-000000000001 / ext4 errors=remount-ro,noatime 0 1 tmpfs /tmp tmpfs noatime,size=1024M 0 0`

I was able to boot my system and install my desired software. I installed quite a bit of software. Updates were performed. The details of different programs or problems I encountered are described in the sections following this.

## The Battery, the Battery, the Battery

While waiting an excessively long time to get my phone I have been hearing things about the battery. In my personal experience the battery life is closely comparable to the Pinephone. Both the Librem5 and the Pinephone have had problems with the batter life being short. These have both been fixed from a state of horrible to a state of acceptable by the use of software driver improvements. When I first received my Librem5 phone, the batter life was short. This short life was solved by a simple software update and phone reboot.

In physical terms, the Librem5 is a lot easier to remove than the battery from the Pinephone. The batter in the Librem5 is significantly larger than the battery in the Pinephone. I suspect they may last about the same amount of time but I have not bothered to test this.

Both the Librem5 and the Pinephone support suspend and it works well on both. The user interface could use some significant improvement by allowing me to specify when to suspend rather than use some pre-configured set. In fact, I want a program to call just to automatically suspend when I say rather than on some schedule.

### 2022 / 06 / 11 Update

I have performed some additional testing and found that the battery life can last quite a long time in the right conditions. I set only the cellular radio on (and with all of the other switches toggled off). I enabled suspend mode. Leaving the phone on over night (the initial charge is around 90% for this test) and found the battery to be between 40% and 50%. I believe that when the phone is idle and the cellular radio is on the phone should be able to achieve between 12 to 24 hours of battery life. This is a very rough approximation but this does provide promising results.

## The Librem5 Charger

This deserves its own section separate from the battery. The provided charger seems cool. The charger looks cool. It is horrible, at least for American standard outlets. The flip switch is nice except that it wobbles and the connectors seem a little short. This results in sparks flying out of the socket. This charger is a fire hazard. The best position is with the part that collapsed opposite to gravity and it seems to work. If you accidentally touch or move the cable you can set off sparks and cause the connection to repeatedly disconnect and connect.

To make matters worse, the Librem5 documentation states that you must only use the charger provided by Librem5. You know, the fire hazard charger. Not going to happen. I went to a local store and got a 25 Watt power adapter that supports PPS (the Librem5 uses PPS).

Unlike the Pinephone, I have found the Librem5 requires more power to charge. A higher end power adapter like the ones marketed for high Wattage are recommended. I found that I can charge the Librem5 using a cheap low Amperage (low Wattage) adapter only when the phone is off.

The Librem5 only gets hot from charger when using one of these high powered chargers. I tested the Pinephone with the same adapter and found it also gets hot. I suspect the heating is more of a matter of the physics of the speed of the charge rather than a matter of the physics of the heat diffusion. I tested the Librem5 with a cheap low Amperage (low Wattage) adapter and found that the phone did not get significantly or otherwise noticeably hot.

## The Librem5 Camera

I consider the camera embarrassing. The light sensitivity does not work properly. The camera program is clearly marked as developmental. I have to have a spotlight in on the target for the phone to get enough light to render anything on the screen. I believe the problem is a software problem. This is good news. Either a driver or a software update will fix the problem.

The Pinephone camera works reasonably well. Early on, the Pinephone had pathetic camera support as well and with software improvements the camera became usable. The Librem5 uses a modified version of the `megapixels` program. I attempted to install the original, unmodified version of `megapixels` and very quickly realized doing so is a bad idea. I did not go past the "Are you Sure?" part.

I recommend never attempting to install the original `megapixels` program on the Librem5. The entire set of Librem5 specific software is a knot of required dependencies. This would likely uninstall everything custom tailored to make the Librem5 work well. Most package managers lack the necessary logic to have real custom installs. I believe these package mangers should all abandon hard dependencies and instead use soft dependencies. If you still decide to go ahead with installing the `megapixels` program, then good luck and be prepared to completely re-install your phone.

Maybe in a few months from now an update will result in a fully working Librem5 camera. Until then, the Pinephone wins hands down when it comes to the camera.

### 2022 / 06 / 11 Update

I have discovered that the camera has buttons that simple do not appear as buttons to me. I am able to use these buttons to change the settings and make the camera picture usable. Changing these settings is not preserved. There is still some room for improvement but this is still great news. The camera is not as bad as I initially thought. Check out the "Shot on Librem" Librem Social board for pictures taken by numerous owners of the Librem5 phone. There is also a forum page about using Megapixels to make photographs.

## The Purism OpenPGP Card

This is a specialty of the Librem5 that I have not notice in other phones. The card works great, you just push it in and then go. Follow the instructions to install the correct software, and the card should work.

If you play with the card, like I do, however, you may run into some problems. I decided to change the admin PIN using the `gpg` program. I select the change PIN. As I was typing the old PIN it suddenly went to another prompt before I hit enter. I thought maybe I accidentally hit enter. I then entered in the new PIN. The program then asked for confirmation and I re-entered the PIN. This gave me the impression that the PIN was properly changed. The `gpg` did something wrong. I typed in the PIN and it had a problem. I again figured I hit a wrong key on this atrocious keyboard and tried again. Come to find out they have an insanely short permanent lock out after three tries. I bricked the card.

Not all is lost. There is a factory reset the destroys everything on the card. I found a way to perform the factory reset thanks to Florian Wolters. With this factory reset code, you can never truly brick your card. The worst is that you lose the encryption keys. There are ways to back up the keys by creating them outside of the card and importing them but this is not to be discussed in this document.

The commands to perform the factory reset (thereby unbricking your card) from the terminal on the phone: `# cat << EOF > reset.txt ====== /hex scd serialno scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40 scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40 scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40 scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40 scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40 scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40 scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40 scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40 scd apdu 00 e6 00 00 scd apdu 00 44 00 00 /echo card has been reset to factory defaults ===== EOF # gpg-connect-agent < reset.txt`

## Phone Calls

Phone calls work out of the box and I have had very few problems. In very rare occasions I have had the modem refuse to work. Rebooting the machine does not solve the problem where the modem refuses to work. I had to power off the mode and then power it back on to fix this problem. This is exceptionally easy thanks to the Librem5 design.

There appears to be built in VoIP support. I have not tried this but it should be interesting to see it work.

There is also built in encrypted call support. I have not tried this yet.

## Text messages

Normal text messages work fine out of the box. Sending a picture does not.

When I tried sending a picture as a test it appeared to work but the other end did not received the picture. The other end happens to be a Pinephone. The Pinephone has massive problems with sending and receiving pictures over text messages as well. That means that I do not have a reliable way to test this without bothering some third-party. And asking some less-tech savvy person to spend some time calling me back and forth to confirm or deny that they received or did not receive a text is not a good idea.

I didn't test further because of a big problem this exposed. Infinite messages! No matter how many times I delete the test messages they keep re-appearing. I checked the modem using the `mmcli` program. This program does not make it easy to use the modem but as far as I can tell the message is not there. I checked the file-system and found chatty file database (I feel the strong urge to rant on the stupidity of an SQL database for local file settings here). Deleting this database file deletes every text message except the one I want to get rid off.

The only thing I can think of is that it is still somewhere in the modem and I need to study more on how to use `mmcli` program. I find the interface horrendous and I am considering writing a replacement to this program.

## Screen Off Notification

The Librem5 phone properly handles call and text message notification when the screen is off. This appears to work when the phone is in suspend as well. This is about the same as with the Pinephone.

The power notification light on the Librem5 is superior to that on the Pinephone. The light better communicates the state of the power and even will turn off after fully charged.

## The Keyboard

The keyboard on the Librem5 is horrible. I get the impression that the programmers, owners, or managers behind the Librem5 are more akin to the new age phone scroll users rather than the more old school keyboard users. The Pinephone uses the same software and has the same horrible keyboard.

## The Pinephone Dock

I have the fancy version of the original Pinephone. This version comes with a dock. The dock works well on the Librem5 but only after I did a system update. I think there is more work to do because the Ethernet port is giving that special slow blink that indicates a hardware fault. More than likely a driver update is needed to fix this. If there is not some special souce code driver hack needed that the Pinephone uses then an eventual kernel update will get this working.

## Usability

The Librem5 is in a bit of an awkward position. The Purism company, from how things appear to me, are marketing towards a security towards an average person using software and tools from a highly technical field.

The current day less-technical person compared to the traditional more-technical person have very different use cases. I have never owned one of these proprietary Android or Apple phones. Having said that, I believe that the interface is focused towards such an audience. I find such an interface tolerable but not very user-friendly.

I believe what the Librem5 provides achieves this with the exception of pictures. This exception is so big, that I might better word this as calling it the rule rather than the exception. Taking, sending, and receiving pictures is the bread and butter of the average user out in the wild. The Librem5 (and also the Pinephone for that matter) drops the ball on this. This is a major downside and I would argue is a requirement that should be immediately addressed, two years ago.

## The Switches

The switches. The Librem5 has switches on the side of the phone to physically disconnect the modem, the wireless and Bluetooth, and the camera and microphone. This is a major selling point of this phone and the Librem5 fully achieves this. The Pinephone of the falls short like comparing dust devil to a category 5 hurricane.

The switches are easy. They are also not easy to accidentally press. This is the product that I expected to get and I got it.

## The Open-Source

The one biggest advantage of the Librem5 phone is the open-source design. I can install and I have installed numerous programs on the system. I have even installed my FLL project and related programs onto it. No special or unusual action is needed. This is where the Ubuntu Aquaris fell short.

I should not need a system with large amounts of RAM (Gigabytes) to compile a single Megabyte program. The whole software design behind Ubuntu Aquaris, Android, and the Apple phones is not just embarrassingly bad, it is pathetic. Both the Librem5 and the Pinephone don't suffer from the digital mental disorder.

The open-firmware provided by the Librem5 and the security it offers is truly a hidden gem. This is not something easily shown. Good security is often an unsung hero. Undoubtedly the Librem5 will never truly get the good credit it deserves for the work and effort put into getting an open-firmware design up and running. The way this world currently is, this is an amazing feat. Truly amazing.

## Bottom Line

There are bad things about the Librem5 phone. Things have fallen short. Some are the fault of the company. Some are the fault of the current state of the world. Others are the fault of an industry that does not want to sell to customers willing to pay.

I argue that Librem5 has successfully navigated this mess and has thus far survived where all others failed. The Ubuntu Aquaris was defeated by both their Android-like development stack and the industry refusing to sell what Ubuntu needed.

The choice Purism made to design their own hardware has been a gamble. I would argue that this gamble has been worth it. Yes, there are growing pains. I am not happy about some of these pains and I do fault them for their failures in this regard (especially in regards to pictures).

The Librem5 phone is not ready for a regular user. Of course, none of the Linux phones have ever been in my experience. The Librem5 is so close to being ready for a regular user that I can almost taste it (metaphorically of course). Give them a few months. Give them a year. By then I hope to see many of these problems I have described here to be resolved. Give them a few years and I expect they will be able to get a better hardware form factor to be more portable and sleek.

I can get just about any software on this phone. I can use this phone a desktop machine. I can use this phone as a portable radio or satellite communication device. I have only scratched the surface of what is already possible with the current design of this phone. No jails. No hacking. Just using.

I think Librem5 has a chance to win. So long as they do not drop the ball. We are heading into a crazy future where the manufacturing and chipset is in a dire and bleak situation. If Purism can withstand these trials then they will likely have the best phone on the market, despite these growing pains.

I have used several open-source phones. Phones like the OpenMoko Freerunner, I did not get want I wanted. Phones like the Aquaris Ubuntu, I almost got what I wanted and I accepted the situation. Phones like the Pinephone, I got a phone that provides no software and accepted that. With the Librem5, I got the phone that I wanted and expected.

Kevin Day