Fairphone 6 + PostmarketOS working audio calls!!!
At first, man thinks he controls the modem.
But after the 20th reboot, man learns the modem controls him.
— Epictetus
So here it is! working VoLTE calls with audio on linux!
What a rollercoaster it has been i'll tell you that.
The frequency between my previous posts was only a few days, as you can see from the time since my last post this has been a far harder project.
But a successful one!
Now fully powered trough my new imsd project:
https://forgejo.catcrafts.net/Catcrafts/imsd
As i said in a my previous comment no matter what i did the regular modem route wasn't working, so i had to come up with my own.
This has several advantages however, call audio is now just routed trough wireplumber & pipewire, so its integrated much better.
Both inbound and outbound calls work.
How do i get this???
The patient route is waiting until my patches get accepted upstream, a few already have and are coming in 7.3 probably (pmos runs 7.0 currently still oof), a few will probably take longer, 7.4 or beyond.
but for the ones that want to jump right on ive published everything on my forgejo:
https://forgejo.catcrafts.net/Catcrafts
I will soon be publishing a shell script that does the entire installation soon for easy installation.
Sadly there is no way to just plug in an android and do it, so there are still a few manual steps needed, but i believe the path to adoption is reducing friction as much as possible, so ill do my best to make it as easy as possible to use.
imsd
So what is an "imsd"?
its a full userspace implementation of the IMS protocol, which drives VoLTE (4G) calls.
Normally the modem firmware drives this, but this is quite difficult to work with, now it runs fully via a standard daemon on linux!
Along with several d-bus helpers that integrate it with standard plasma-dialer.
if made a APKBUILD for pmos that is mutually exclusive with 81voltd, and loads imsd instead. so installation should be easy.
Now will this actually work?
That's where you come in!
I am just one guy with one phone with one carrier.
I can say it works on the Fairphone 6 with KPN. it might work with other carriers and other Qualcomm phones aswell, so potentially this could work for the entire linux phone ecosystem, but i have no way to test that.
If you end up trying it, no matter if it works or doesn't work, please send me a message or open a PR, then we can make sure it works for everyone!
donations
I really was surprised when people asked me this, i just see myself as a guy doing this in his free time, "why would people want to send donations to me?" i thought.
I still stand by my previous point, i have a job, and this project costs me nothing except for time, i don't have any costs. So i felt kinda guilty receiving money from people.
But i would much rather spend my time making software that benefits society instead of the B2B stuff i do at my job.
I really feel greedy for saying this, but if you want to send me a thank you then that is now possible at: https://bunq.me/catcrafts
Please don't feel any pressure to do this, doesn't matter what i get im still continuing with this bring-up. And if you don't want to donate to me there are many linux organizations that could really use the support! In my eyes we are all in the same boat with the same goal.
If you do decide to, and i cannot express my gratitude enough if you do, please write in the description that it's a donation, as this makes tax easier.
What's next?
Ive got a bunch more stuff coming soon, while i haven't posted here in quite a while i've been plenty busy on the mailing list:
So except some more posts soon.
Bonus round
Having fully working hardware is great, but a phone that has no apps is pointless for most people, so i would like to start a discussion in the comments.
What apps do you need that are preventing you from switching to mobile linux?
90 replies
Great fuckin work. 👏
People like you are why the open source community exists, bro.
This sounds bonkers! Good work.
Holy Smokes..... All during the Mercury Retrograde no less.... This is all nothing short of genuinely amazing!! First it was GPS, then NFC, then Audio (with Microphone) and now Calls? Please do correct me but, by the PMOS Graph, that'd just leave the Camera and the IMU left??
All jokes aside, my fp4 suddenly started dying on me and ended up ordering a fp6, so I'll gladly run some tests! If you have any particular place you'd like us to send feedback or bug reports, please do let me know!
EDIT: Also the lack of Emergency Calls (or at least that's what it says on the imsd repo) is a bit unfortunate, but, iirc, Emergency Calls work on a different band or system, regardless of SIM. So in a way, it's also not too surprising, at least for me.
Thank you! "Cat'd" really made me laugh
For imsd the best place would be my forgejo, but im not sure how federation works yet on forgejo or if its even enabled on my instance, ive pretty much used it as my technically public but in practice private instance, so i need to figure that out.
In the meantime here on lemmy will also work fine.
https://lore.kernel.org/all/[email protected]/
;)
I apologize if this is ignorant of me, but I guess a follow up question could be, if your patches would be in pmOS Edge soon (here's hoping they're properly in for v26.12), or if they need to install it manually.
I know that for some of your work, you've mentioned they could be easy to install.
i think it's going to take a while, pmOS Edge as time of writing is still at 7.0.8, the first of my kernel patches will arrive in 7.3. the rest will probably take longer.
when imsd will land i have no idea as its not a patch but a new package.
i'm making a shell script that will make the installation as easy as possible.
Absolute legend! My wallet is itching to get an FP6 with all this news...
Any plans on tackling the camera?
It seemed like Luca was already working on the camera and I didn't want to race him so I prioritized the other stuff.
But now that the camera is the only thing left I was planning on sending him an email to ask if I could help.
Looks like there's been recent news on that front! https://nondescriptpointer.com/articles/fairphone-6-wide-camera-linux/
They're putting mercury in gatorade‽‽‽
They spotted Hercules at the gay parade‽‽‽
Someone else seems to work on camera support https://nondescriptpointer.com/articles/fairphone-6-wide-camera-linux/
Incredible work! I honestly have not been as pumped about technology in such a long time, and it's mostly due to Linux/Linux phones. I finally got around to fixing a PMOS install on my old phone and been itching to tinker with it.
With that said, how has the battery life been for you? Mines not great, but it could also be there fact that the battery is like 8 years old. And that's only using WiFi. I'm curious how it does on modern hardware and using cell towers.
It's less then android, but im sure there are more gains to be made there.
The battery works fine for a day, but if i don't plug it in overnight its drained.
KURWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA now my meme is (slightly) outdated :/
Holy based. You're a legend!
About the apps: OrganicMaps and Immich would be the ones i am still missing on mobile linux. Apart from that, most if not all of the other apps I need are already present (Finamp, Signal, Firefox, Thunderbird,...)
CoMaps (Organic Maps fork) has a desktop version on Flathub, but it is still not as feature-complete as the mobile version
Yeah, I'm afraid those desktop versions don't really do the job just yet. But i've recently seen someone trying to port the android version of Comaps to Linux, so mayyybe we're up to something there?
I believe CoMaps is working on a Linux mobile client (you can install the desktop Flatpak, but it won't fit well)
There's s third-party client called Mimick that works really well on both mobile and desktop Linux!
Thanks for the tip! Haven't heard of the immich client yet 👀 will try it out when I have some time
Edit: Looks really good! From first looks, it's to Immich like what flare is to signal, a pretty usable client but still a bit rough around the edges and not fully feature complete.
That is true, I don't think it has full feature parity with the official Immich client. The library view seems to be disabled by default because it's a little buggy: on desktop it works fine, but it crashes on my OnePlus 6 running postmarketOS (this makes me think it's a graphics issue?)
I also have an OP6! I'll try it out there as well (have only installed it on desktop for now) and let you know if I manage to get it to work
Thank you!
Why specifically OrganicMaps if i may ask?
I do a lot of routing by bike and in my experience, the alternatives just aren't as good as Organic. Organic has those cool overlays of all bike and hiking routes which Gnome Maps or Comaps don't. I've come to really love and depend on this feature and don't want to miss it. Additionally, it also shows public transport departures which is pretty handy if you don't know which exact bus stop you have to wait at to get the bus in the right direction. And their routing got really good in the last years, but I haven't compared that with Comaps/Gnome Maps yet.
The only alternative would be Osmand, but that app is laggy as hell and eats battery like nothing else. And I don't like its Ui so much, i find it very cramped. But thats my opinion.
Have you looked at pure maps?
Briefly, and the routing was ass. Routed me onto a Bundesstraße despite bike paths all around. Also seems to miss some features that I really want (GPX import, Bike path overlays, offline maps). Gnome maps actually seems to perform better. But it looks promising and I might test it further.
There is probably no way, but something that works in the car like Android Auto? I guess the protocol is proprietary but it will be one of my hardest things to miss if I had to go back to the car navigation and entertainment. So if it can't be compatible, then something that does the same with an external screen or so, so it can be added to a car.
I'm not sure how android auto works but that indeed would be cool.
The closest thing now would probably be a linux sbc with an aftermarket display, using KDE connect.
What is the point of android auto? Every time I've gotten in a car that prompts it I trun that shit off asap. Never understood WHY people want their phone and car as one.
Those are the main points I can think of right now.
Before android auto, people used to have a phone holder, usually with a charger. Navigation and voice commands were still a thing.
Car protocols are so fucked that an extra linux media display would probably be the right way to go.
Not a 'prevents me from switching' but more of a nice to have: Does anyone know of a Gadgetbridge equivalent or port for Linux? I know of some clients dedicated to some specific hardware such as the Galaxy buds client, Amazfish and Watchmate for the Pinetime and that the Bangle.js should work using Webbluetooth directly(probably, I've lost mine long time ago, can't test this).
There seems to be a Pebble client called stoandl in the works and whilst checking flathub for this comment, I also read of Budslink, which should handle multiple brands of bluetooth headsets.
Do you know of more such clients?
I want to start by saying this is amazing and I'm grateful for you, and people like you who work hard to make Linux mobile a thing.
But at the same time, seeing working phone calls be big news really highlights how much further we have to go.
I've recently been wanting to ditch Android and I've been exploring options but haven't found anything that suits my needs yet, but people like you working hard has me hopeful for the future
For everyone that donated thank you so much!!!
I would really to add a "thank you" section, if you would like your name here, please reply with the time of your donation so I can find it on my bank. If you want the amount shown please also say that.
And if you want to stay anonymous then that's ofcourse also perfectly fine!
Thank everyone very much again! truly!
Thank you so much for your hard work! I can't wait to be able to run Linux on my Fairphone 6.
Thank you!
I'll soon publish that script here that will do the automatic installation, so hopefully you shouldn't have to wait for long.
Incredible work, as an FP6 owner, I'm watching all this progress with great interest :)
Can't wait for this to be avail in Canada...am burning to get rid of Android.
Man, you're making me want to try and get one shipped to Canada. This is exciting.
ETA: I'd need a matrix.org chat app working with notifications to switch.
Well if that is the requirement then you're in luck as fluffychat and nheko are both on flathub!
I'll admit it's been over a year since I've tried to daily drive my PinePhone. I bridge everything into a self hosted matrix chat and notifications didn't really work outside of SMS/MMS and calls.
Fractal is an excellent Matrix client that works well if you are using something like Phosh or GNOME Mobile (GTK based), and FluffyChat is good too (Material You aesthetic).
I hear you. I only wish the Fairphone had a headphone jack and microSD at the very least, but I would be so nice to have something faster than the Librem 5 despite me appreciating the blob free/jailed chipsets
It does have a microsd slot
Another Canadian here, I also am starting to wonder about getting one somehow - a buddy of mine shipped it to a friend in the Netherlands, then they brought it home.
If you're serious and trust me enough I could do it, pre flashed with pmos if you want.
Otherwise if you don't which I would find very understandable, I assume there are services that also do this?
There is one thing you should look at before getting one, I'm not sure if it supports the bands canadian carriers work at. It's a thing worths checking beforehand.
Are you using it as your main phone yet?
Battery life is okay? Calls/SMS/MMS are dependable with your changes?
Not yet, for development I have to completely wipe it regularly which makes having all my data on there a bit inconvenient.
Once I'm done with the hardware development I do plan on using it as my main phone, cause why go trough all this trouble otherwise?
Battery life is fine enough, lasts about a day with my current, for example I turn wifi power saving and suspend off cause otherwise my ssh drops if i turn off the screen for long time, I made a somewhat detailed power analysis in my first post here.
Calls are dependable, haven't tested SMS yet.
The only thing about calls is that imsd currently doesn't support emergency calls which I do plan on adding in the future, but testing it is a crime, so I need to figure that out.
@TheMightyCat @ArchEngel @skankhunt42 I got mine from Clove UK. No warranty that I know of but it works with Freedom and Telus, so likely the other Canadian telco monopolies.
How much was shipping and import fees? Canada post?$829 for the phone, $70 DHL shipping, ~$100 import fees. I'm probably going to buy itI have a buddy in the UK who is willing to take ETH/BTC from me and stash it in a box with a bunch of candy for me. Lol.
Honestly if there is demand, which judging from the comments here there is. I might start selling them with pmos and prepatched so they work out of the box.
I can buy the phones here in the Netherlands for €395 currently, tax and shipping and stuff does still need to be added to that.
Would that be interesting for you?
I would rather not want to charge a markup as that goes against my values but I would like to have some compensation for my time doing these as this is a per unit time cost instead of a one time cost as with software.
As a potential customer would you agree more with a small markup (think like €15 maybe) or an optional donation?
I don't have a problem with paying you a markup. I've done work like that for free before and it's not fun. However, €400 is C$640 + markup + shipping + your tax + my import tax + any conversion fees. I'm not sure it'll be worth it. How do you suggest I send you money?
It seems all in, just for the phone to my door is $1000 CAD from clove UK.
If it's cheaper to get it via clove UK then you should do that.
I was thinking of selling them on my website, since you were planning to pay with crypto anyway I wanted to support that on my website as a payment method.
Same, but XMPP and Dino. Matrix? Eh.
Yeah, I never got into XMPP back in the day and IIRC when I did look into it having multiple devices use the same account was a bit of trouble. Matrix was just a web API I could hit with python super easily and I never looked back.
Why XMPP? Are there bridges for signal, WhatsApp, SMS/MMS?
JMP.chat and resource usage. I run mine on a $5 Vultr VPS and it's far from the only thing on it.
Also if you can bridge to Matrix, then that means... yep, you can bridge to any bridge on Matrix. I don't ever need to, but I know a few who use XMPP's Signal, IRC and Matrix Bridges
Hell yeah this is awesome. I don't have a Fairphone (rocking a Pixel Fold with Graphene atm), but I have deeply enjoyed and appreciated your work on this. Keep on rockin'! 😄
Wow!! The phone is phoning!!
That is surprisingly a very high bar...
yeah i know lol
Such phony phone
@TheMightyCat Oh, this really sounds as a cool update.
It's a pity screen reader accessibility is not yet a thing on mobile linux at least I can't find someone making great progress with that.
Don't standard linux screen readers work?
I apologize as im not knowledgable about the screen reader space on Linux but thinking about it they should work? It's both wayland after all.
@TheMightyCat Oh yes, thanks for your interest and a nice comment.
A somewhat simplified explanation of linux accessibility stack from an advanced user (not developer) looks like this:
Standard linux screen reader running alongside graphical desktop environments such as gnome or KDE is called orca. It uses a dependency called at-spi2-core for delivering and interpreting accessibility events from different toolkits such as GTK4, QT6 and similar.
Thus at-spi2-core has clients on both the sides. Orca usually consumes events and GUI toolkits and other standalone apps generate them.
For the full picture there are apps that communicate to at-spi2-core directly to provide its accessibility for example web browsers (Firefox, Chromium and webkit-gtk) and libreoffice are doing this.
The fact screen reader is interpreting accessibility events delivered to it through at-spi2-core is a nice thing and it's a huge part of the puzzle however screen reader has more functionality than dealing with the stream of accessibility events.
For example screen reader needs to be able to review the content by words, by lines and provide different navigation actions.
For that it needs to react to user key presses.
On wayland reacting to keypresses without having a control focused is a security risk thus a protocol extension has been developed which allows screen reader to ask at-spi2-core to coordinate grabbing the keys with the compositor. I don't fully understand this part so it may be a very rough explanation. However it's key point to understand that for touch screen operated device it's not enough to read what has happened in response to some touch screen gestures. We need an ability to review the screen content before executing actions. On different platforms such as android, IOS or Windows it's implemented in a way so touch interaction model works a bit differently when screen reader is running. This is not yet implemented for linux no matter which form factor.
Technically speaking if I would have an USB keyboard connected to the phone I would certainly be able to use parts of its graphical interface but that would not be practical enough.
Please excuse me for commenting on your announcement thread even adding such a long attempt at explaining my situation. I do really appreciate all the work and advancements you are releasing to the public.
It's just that I am partially saddened by the fact I can't experience this linux mobile movement on my own.
No need to apologize! Thank you for the detailed explanation!.
I was planning on working for Fcitx5 support too, and this might be somewhat in the same neighborhood? I don't want to make false promises so take this with a grain of salt but I'll see if I can maybe get spi2 to work.
Super cool! Actually a month ago I made almost exactly the same thing as IMSd but for the purposes of VoWiFi from a laptop modem! I also wanted to attach to an IMS bearer on LTE but couldn't figure it out on my modem. My project was a pretty big hack and I never intended it to go anywhere other than for it to be a showcase, I knew I'd have to rewrite it from the ground up for it to actually be useful. Really cool to see this instesd
https://x.com/i/status/2066417720292163960 my original twitter post.
"What apps do you need..."
Not a request or suggestion, just a vent... Only the one, that pisses me off about any and every mobile OS equally. A web browser that can be used for maps/mail/whatever other stuff from whatever other service, so I don't have to use countless pointless apps. Sadly I doubt this would ever happen, the effort to create such a browser that would work perfectly fine and be secure and utilise the hardware features of any phone seems equivalent to just building the OS itself.
Note: I do think many basic apps are perfectly fine and super useful, even more so when they aren't just a shell for sending everything off to some server datacenter to process your queries.
This actually surprises me, on desktop I have the screen space to multitask with everything in my (multiple) browser windows, but on mobile I want cleanly separated apps that do one thing and do it well.
De machtige kat slaat weer toe!
Dank je!
Het is ook erg leuk dat fairphone een Nederlands bedrijf is, stiekem zo ik een keer willen langskomen bij ze.
Ooh TIL (VLI?)
(Will continue in English for other readers)
I think with what you've been doing they owe you a guided tour 😁
The thing stopping me from trying out Linux mobile is autofocus for the camera. I don't have fairphone 6 money iirc but a solution to that for some of the cheaper devices (e.g. op6) would definitely get me on board trying it. Wish I had the dev hours to commit to it but you know how it is
This is amazing and awesome and I'm just jumping in to say great job and keep it going! This is the kind of work that has got to get done to get the balm really rolling :D
As for apps on mobile Linux, I guess I don't know as I'm not sure which apps I already use on Linux work / work well on mobile Linux.
I'd second Immich, I guess I should look to see if there is a Home Assistant app, but mostly I would need to take a look for equivalents for mobile linux and I'm not sure where to start on that.
This is awesome, I have a fairphone 5 and hoping some of this work will help the finished development for the FP5!
Sort of related: is there any interest in looking at getting bluetooth support, or bluetooth passthrough to Waydroid? I have a few medical android apps that need bluetooth in the android container to be able to actually use them, and it seems to be stalled in the Waydroid development git discussions.
Thank you!
Bluetooth seems to already be fully working, atleast for audio and mouse and keyboard, i'm not sure how the bluetooth devices you need work but the bluetooth part doesn't seem to be the issue.
I am not planning to work on waydroid, while i think its a good project personally i would rather spend my development time on making the linux apps that people need then getting the android apps to work.
Understood! Like I said they're medical apps for diabetes, so its not a great thing to try to make a linux-port because you have to do testing and make sure there's no issues compared to the android version.
The way the apps work with waydroid is they need direct bluetooth access, or they need a pathway for the signals to get passed through to the container, via a fake bluetooth stack.
As far as I'm aware waydroid right now just routes supported things from the host device to the waydroid container, such as networking, audio, and I guess input from keyboards, gamepads, etc. Those devices don't have direct bluetooth support in the android container, the linux host is just passing things along to the container, there's just no supported path for a blood sugar monitor, or an insulin pump info to get to the waydroid container right now.
I do suggest making a thread/post about this. Not trying to silence here, but I do believe that,
Ah yeah i apologize, i kinda glossed over that, i assume there is probably alot of certifcation that needs to be done for these apps?
They're both open source, but you're dealing with possibly killing people if there's a bug with injecting insulin, or reporting blood sugar values wrong, haha so its a feat I've steered clear of, myself.
AndroidAPS
And
Xdrip+
Well them being open source does improve the situation significantly, but i agree with your statement.
I could probably get them to run on linux but with no way for me to test and there being such a high risk that is a bit too scary for me.
Banking and ride sharing apps are all I really need, Ideally I'd like to have a translator app.
well, those are the kind of apps unlikely to happen in any form other than Waydroid and such since nobody other than the corps providing the service can usually make one.
@TheMightyCat Keep up the good work.
@TheMightyCat, this is great and a good step moving FP6 to a daily-driveable state. Keep us updated :)
Does imsd rely on Plasma? It would be great if it also worked with GNOME/Phosh.
imsd itself doesn't, imsd-dialerd does as that is the integration with the plasma dialer d-bus, I'm not sure how gnome/phosh make calls but it shouldn't be hard to add.
@TheMightyCat About a Month too late. 😉
?