If you have a Librem 5 phone and are like me, you are eagerly anticipating the release of Crimson, because you're stuck on Byzantium which has a super old version of just about every package, but most notably, phosh and chatty.
A few weeks ago, I finally decided to try Crimson as a daily driver, and that caused me some great headache a couple of times. I am still using it as a daily driver however, but there are still some pretty sizeable issues which I have accepted for the tie being. The issues:
Pretty self explanatory here. I imagine this has something to do with the libcamera api that is being worked on.
...so if you use your SD card for your home directory, you'll have to rsync to internal storage and use that. In my case, I have too much on my card, so I had to be selective about what I put on internal storage.
Essentially, the current config for pulseaudio doesn't work with bluetooth,
but audio generally works fine everywhere else. If you try switching to
pipewire, bluetooth audio works mostly well (switching audio outputs has to
be done manually from the settings), but you won't have any audio, microphone
or earpiece, on phone calls. This is because of a
bug in callaudiod. This
issue is fixed in version 1.1.10
, but Crimson currently releases with
0.1.9
, so pipewire support is broken as of 2024.10.22.
This actually isn't strictly true for me anymore. You just have to be diligent
when installing updates. Currently, the package libgl1-mesa-dri
wants to
upgrade 24.2.4-1
, which breaks phosh
, causing a crash loop. The only way to
fix it is to plug in a keyboard, ctrl + alt + f2
, then sudo apt install -y libgl1-mesa-dri=22.3.6-1+deb12u1
to downgrade to 22.3.6-1
. Of course, while
you're doing this, phosh is continuing to launch and crash every 5 seconds, so
you have to keep doing the ctrl + alt + f2
sequence as systemd takes you back
to tty1
. <sarcasm>Isn't systemd great?</sarcasm>
To avoid the above shenanigans, every time you run sudo apt upgrade
, be
absolutely sure to also run sudo apt install libgl1-mesa-dri=22.3.6-1+deb12u1
before you reboot the phone, or you'll end up
in a crash loop of phosh.
In rather frustrating timing, an important phone call came in today while I
wasn't home and the phone completely crashed and boot looped. When I got home
and could troubleshoot, I discovered an update of libseat1 to 0.9.0 had broken
the phone, and it needs to stay at version libseat1=0.7.0-6
for now.
Here's an all-in-one command to keep your crimson phone working.
sudo apt install libgl1-mesa-dri=22.3.6-1+deb12u1 libseat1=0.7.0-6
And a couple of pieces of related advice:
I'll update this post with other caveats as they come to me. If you're fine with the above issues though,
I removed the alsa-ucm-conf
piece of the below script, as that version of the
package is now available in the crimson repos. Woo!
Additionally, still no SDcard support and the libseat and libgl1-mesa-dri downgrades is still required, despite many updates having come in from upstream. It's moving right along! At this point, we're seeing somewhere between 2 and 30 package updates per day.
Well, it's been a little over a month, I figure it's time for another update.
This is gonna be a big one because, get this, I ran sudo apt full-upgrade
.
Brace yourselves. :)
A few weeks ago, I saw a huge list of package upgrades come in through the
landing
and crimson
repos this past month - over 500. I assume this is
related to what Purism wrote in the October 2024 Crimson Development
report
about package synchronization. Almost all of the package upgrades were blocked
for various reasons, so I very hesitantly tried upgrading with sudo apt full-upgrade
(the replacement for the old school deprecated sudo apt dist-upgrade
). I got most of the package upgrades, and I now routinely have
blocked upgrades for about 40 packages, all of which I want: upgrades to phosh,
phoc, gnome-*, etc.
Now, what did that full-upgrade
do exactly?
It broke mostly everything. I now have the latest mmsd-tng, which is nice, except a bug was introduced in the most recent 2.6.2 release which breaks MMS attachment receiving (group texts still work, just not images).
It also seems to have broken the audio stack. To be clear, it all still works, it's just fully manual to switch between outputs. I tried the full upgrade, hoping the updates to callaudiod and pipewire would allow me to switch over to pipewire fully, but pulseaudio barely works and I now have to manually switch between headset, speaker, and headphones audio whenever I want to use the phone, have an alarm clock in the morning, or listen to music, respectively. I haven't even tried bluetooth audio yet.
Some apps now scale much worse than before the full upgrade. I suspect that's because we've gone from the purism modified versions of things like gnome-calendar to the official gnome-calendar, which is waiting on the libadwaita and gtk4 changes to bake in UI mobile scaling support. I could be wrong though, as I haven't taken the time to investigate if this is actually the case or not.
The full-upgrade also removed some packages, like phosh-mobile-settings
, so
you'll want to manually reinstall that each time if you want to be able to use
the calendar. The upgrades also (like above) pulls in non-purism-modified app
updates, like with Documents Viewer. It is more up-to-date, but no longer has
the purism mobile modifications, so it shows up as a non-mobile form-factor
app, so you have to press "show all apps" on the app tray to see it, and it
lacks mobile UI scaling. There are also some odd pinch-to-zoom glitches that
cause it to jitter all over and highlight random text. I assume hope
further libadwaita and GTK 4 updates will resolve many of these issues.
Battery life is marginally better from after the initial upgrade, and still is worse than before. I get about 7-8 hours out of the phone right now before it dies. Turning off the wifi card seems to add a few hours to that.
Regardless though, phone functionality still works. Strictly SMS text messaging still works, along with matrix (though that has been a little anemic since byzantium anyways).
I might give a try later today if I have time, to remove the landing repo and see what another full-upgrade does, since I expect that to do a number of downgrades, since landing is the development repo and should be notably further ahead than crimson. I will of course post back on how that goes if I get to it, but it's Saturday and I've got errands to run, coffee to brew, and birds to watch!
I know that list is a lot of negatives. To be clear, I'm not saying devs working on this are bad or anything remotely like that. I'm just providing status updates. Crimson isn't even recommended for alpha testing right now, so let's give Purism time and patience and politeness to work on this and keep in mind, this is the first real linux phone we've ever seen. The first Apple iPhone and Google G1 also had terrible battery life and stability issues for a long time. We've just gotta catch up with an industry that has an 18 year head start and billions of dollars of funding. Let's be sure in our discourse that we are patient and respectful, and moreover, helpful! Keeping perspective is essential.
Enjoy the weekend folks!
Since the last update, I tried removing the landing
repo from my phone and
the updates started rolling in much slower. By much slower, I mean none at all
in 4 days. However on a positive note, it seems the libseatd
and
libgl1-mesa-dri
updates that broke the phosh boot process don't come down
now, so it seems those are coming from landing
. That said, I re-enabled
landing
today and got over 100 updates again. Feels good to be on the
bleeding edge.
At this point, I still have 37 updates that are always pending (blocked due to
conflicts), most of which are things I really want, like an update to
gir1.2-adw-1
which should fix Gnome Secrets, and update to gnome weather,
nautilus which I hope will fix the scaling issues, and of course phosh-core,
since phosh still hasn't been updated for quite some time. Regardless, I'm
still seeing around 5-30 packages get updated per day.
I'm still running Crimson without any new issues really. All of the previously mentioned issues have not yet been fixed sadly. I assume we're just waiting on all of the base packages to be upgraded before the fixes start rolling in. Also we still require the reverts to libseatd and libgl1-mesa-dri.
Until next time.
Because I want to easily rebuild this phone if I need to, without following a long checklist of shell commands, I put all this in a clean shell script which handles everything for me/you.
I do recommend putting this in its own directory, as it has to download and extract some of its own artifacts (alsa-ucm-conf) to complete.
In short, the following script:
Overrides the system alsa-ucm-conf ucm2 directories with those from upstream latest.
Adds a few additional apt repos to bring in "unstable" packages so the phone can actually be updated.
~/crimson/fixup.sh
#!/usr/bin/env bash
set -euo pipefail
export IFS=$'\n\t'
# By default Crimson comes with the crimson repos, which is very broken last I
# checked.
# This adds landing, crimson-security, crimson-updates, and
# crimson-updates-proposed repos. These might make things unstable in the long
# run, but for now this is required to get things up and running.
#
apt_set_repos() {
sudo tee /etc/apt/sources.list <<EOF
deb http://repo.pureos.net/pureos landing main
deb http://repo.pureos.net/pureos crimson main
deb http://repo.pureos.net/pureos crimson-security main
deb http://repo.pureos.net/pureos crimson-updates main
deb http://repo.pureos.net/pureos crimson-updates-proposed main
EOF
}
apt_set_repos
Run that and most of the issues should be resolved.
Written on: 2024-10-22 20:36:07 -0600
Last edited: 2025-02-25 19:18:47 UTC