Sxmo on the poco f1

Published 2022-04-19 on Anjan's Homepage

Recently, I tried to upgrade the modem firmware on my pinephone and failed. As far as I know, the modem on my pinephone is broken. I have a developer edition of the pinephone pro but the mainline kernel doesnt even have reliable charging working 1.

On the look out for a replacement device, I saw the poco f1 and oneplus 6 have gained support for calling in postmarketOS. Since I am tired of dealing with pine64 hardware and the Librem 5 is too expensive, I decided to pick up a poco f1 for 150 Canadian dollars. So how is the experience? Overall very good and I have been using it as my daily driver for 2 weeks.

Here are the details:

Unlocking the bootloader

Going through the process of unlocking the bootloader, I am reminded why I was so excited for the pinephone and Librem 5. To unlock the bootloader: you must insert your sim card into your poco f1, make a Xiaomi account with your phone number, and beg Xiaomi to unlock your device via the proprietary windows only application 2. Xiaomi’s unlocking application did not detect that my poco f1 was connected and I had to install the “Mi PC Suite”. I downloaed Mi PC Suite from here but be advised that the website is not served over https and overall kind of suspect. I used this program because I could not find a reliable source for the USB drivers for this device after searching for hours. Unlocking the bootloader took me 4 hours in total and it was a painful experience. I will probably have to reinstall windows on my burner laptop.

I was told that Xiaomi sometimes makes people wait a couple of weeks to unlock their phone and during that time, they must use the phone with the simcard installed. In other words, an even bigger privacy nightmare than what I went through. Luckily, I didn’t have to deal with Xiaomi denying my unlock request.

Consulting the postmarketOS wiki for the Oneplus 6/6T, Im not sure if the bootloader unlocking experience is better on the Oneplus 6.

Flashing TWRP to my phone via adb was trivial.

Installing PostmarketOS

PostmarketOS gained support for calling in the stable branch after I got my poco f1 and the distro has prebuilt images for the poco f1. However, I like customizing my install via pmbootstrap and followed the wiki to find out which panel my device had and made sure pmbootstrap installed the right image. Overall, installing postmarketOS+Sxmo with full disk encryption was no issue.

Initial Setup

I used rsync to copy my $HOME directory and /etc/apk/world from my pinephone to the poco f1. The notch was a bit annoying but Vitali64 told me I can add bar { gaps 42 0 } to my sway config to make sure the notch doesnt cover up UI elements. Ideally, we will have gap support preconfigured for users in Sxmo via our deviceprofiles 3.

sxmopoco.jpg

Figure 1: Sxmo on the poco f1. Note the notch does not obstruct the UI.

Calling support for devices other than the pinephone is supported in the git head of sxmo-utils when callaudiod and pipewire is installed. I installed the git head of sxmo-utils and ran apk add callaudiod pipewire.

What do I do on my phone

I use my phone for the following things:

  1. Calling and texting
  2. Firefox: reading rss via miniflux, watching videos via invidious/sxmo’s youtube script, and reading fediverse posts
  3. Dino: messaging friends and family on XMPP
  4. Neomutt: reading emails
  5. mpv: listening to music with my bluetooth headphones

The Experience

Calling/Texting

Calling does work with a caveat - sending DTMF tones doesnt work. As such, you cannot interact with robocall systems. This has been reported to upstream 4 and someone in the SDM845 mainlining postmarketOS chat said they will eventually fix it.

Sometimes received texts appear multiple times in the text log but this might be a bug in Sxmo.

Suspend

Closely related to calling and texting is how the phone behaves when suspended. The phone will not wake from suspend when you receive a call or a text. As far as I can tell, the phone will not silently drop received calls or texts while it’s in suspend. Overall, the battery life on the poco f1 with Sxmo lasts me all day and the phone works well in suspend. The phone connects to wifi very quickly when coming out of suspend. In contrast, on the pinephone, I would wait forever for the radio to connect to wifi.

Web Browsing

The web browsing experience on the poco f1 with Sxmo is very smooth. On the pinephone, the performance was so bad that I stopped using my phone. This was very healthy for me but when I was out at a restaurant, I would often have to use my friend’s phone to read the menu. No more with the poco f1! I can use firefox with all the privacy friendly addons I love and still have a very smooth experience. No matter the benefits of the pinephone, I cannot give up the superior web browsing experience on the poco f1.

Bluetooth

The Bluetooth devices connect quicker and the audio quality is better on the poco f1.

Audio Speakers

Aside from the slight echo the caller on the other side will hear, call audio is perfect on the poco f1 and much better than the pinephone. However, the audio on the speakers is too low when playing media from firefox/mpv. I am not sure whether this is cause of a bad configuration on my part and I will have to try out phosh to test.

Dino/Neomutt/Everything Else

I would often run out of ram and cpu on the pinephone. It’s nice that postmarketOS uses musl which aims to have safety under resource exhaustion 5. However, I had to close firefox/dino on the pinephone if I wanted to play gnome-chess or open some other app even on a lightweight UI like Sxmo. With the poco f1’s octacore cpu and 6 gb of ram, I no longer have issues with opening heavy webpages or opening multiple apps 6.

Video playback

I can finally watch 1080p videos in mpv smoothly without issues.

Conclusion

I will be daily driving my poco f1 while I wait for the pinephone pro to gain mainline support in postmarketOS 7. Other than the robocall issue, I don’t find any of the issues to be “show stoppers”. It would be nice to have the camera working and gps working on the poco f1 but the experience is impressive so far. The main issue I face day to day is the DTMF tones. Sxmo users can expect better support for poco f1 and other devices as a result of me having a non pinephone device to test.

If you want to help support the SDM845 mainlining effort, see the postmarketOS wiki page https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_845_(SDM845). We are very close to the days when we can buy cheap phones like we do cheap Thinkpads off ebay and install a privacy respecting OS.

Footnotes:

1

The whole point of having a “Linux phone” is to have a mainline kernel that can be support forever. I really don’t want to use a heavily patched kernel.

6

According to the postmarketOS wiki, some versions of the poco f1 have 8 gb of ram. I have the 6 gb version and it works great for me.

7

And probably after pinephone pro has mainline support in postmarketOS since the poco f1 is faster than the pinephone pro.

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~anjan/public-inbox@lists.sr.ht [mailing list etiquette]

Articles from blogs I follow around the net

These articles/blogs do not represent my own opinions or views.

Text processing on the Command Line - sharing my tools

Text processing on the command line - sharing my tools Introduction I'm quite fond of the command-line and spend a larger chunk of my life in a terminal emulator than I dare admit. I try to embrace the unix philosophy of using tools that "do one thing…

via Proycon's website July 7, 2024

Linux phones are not automatically secure

A common point in the Linux community is that escaping the walled garden of ecosystems like Android or iOS is already a means to higher security. Having no contact with Google or Apple servers ever again, nor cloud providers ever snooping on your private …

via TuxPhones - Linux phones, tablets and portable devices January 25, 2023

Generated by openring