Mobile NixOS [progress thread]

An update on the Mobile NixOS project:

I figure most of the people watching this thread will be interested in that update.

16 Likes

Fantastic news ! How long can you work fulltime on this ? There has been some efforts to port nixos for the librem phone. Exciting times.

1 Like

If everything goes well, more than a year, maybe two full years. Though by “the end” I’ll look into ways to continue working. At least for now I can focus on producing results.

Yes, hopefully some of the work (especially the software) will allow more choice to end-users, “for free” :slight_smile:

4 Likes

Fantastic! I would love a NixOS phone!

You could talk to the Purism people and see if they give you a devkit of the Librem5.

It worked well enough for the last post, I’ll continue sharing them here, unless you are not interested in updates :wink:.

In which I answer some general questions I’ve been asked, online and in real life.

10 Likes

Actually, systemd does work fine on mobile phones: Sailfish OS uses systemd as its init system. Hardware that depends on Android-specific drivers first initialises hardware with the Android init system, before handing over control to systemd.
The rpm packaging for systemd in Sailfish can be found here.

3 Likes

Yes, systemd does work fine on mobile phones! I was writing defensively, since I hadn’t done it yet, though I was 99.99% sure it was fine.

Why do I say it’s fine? Because it’s fine! Read more here:

Maybe watch it happen here if you do not want to read anything, but note that there’s no narration. It’s only a piece to accompany the write-up.

17 Likes

Oh, I should have been updating this thread, too.

Now that we have a website, I’ve been doing the updates over there.

4 Likes

Love the website, its lightweight, adaptive and beautiful! And it has rss!

4 Likes

Is it February already? Yes it is! Look at what happened in January.

4 Likes

And another monthly update

In which the boot gets graphic[al]!

10 Likes

Hi, any plans to write the Porting guide (step by step guide)?
The more idiot-proof, the lower the bar for others to help you out!
So writing a really comprehensive porting guide is probably of the best investments of time (given the possible high return)

Due to lockdown I have time left, and I want to port my old Samsung Galaxy S5 (for which a LineageOS port exists).

If the step by step porting guide assumes the phone is already supported by Lineage (thus has kernel) then great!

2 Likes

Hi!

I intend to write a more detailed guide, but I can’t promise any kind of deadlines.

It is quite hard to write an idiot-proof guide, considering I kinda know the steps by heart, and assume so much knowledge already. I’ll try and re-do a port as if it wasn’t done, and write the steps.

1 Like

don’t be a perfectionist :wink: it is not all-or-nothing.
Writing such a guide is an iterative process, and by writing it you will receive feedback to improve it (and make it more idiot proof) in later cycles

3 Likes

Hi samueldr, I’m sure you’ll recognize me from the #nixos-aarch64 irc

If you want I can write a porting guide somewhat from what I’ve done with porting to op5/5t. Overall it might be better for someone that knows the commands but not by heart to help write it.

4 Likes

I know some of you follow the project only from this thread. This one’s for you!

The march update:

13 Likes

Holy cow, that is impressive.

It really shows the huge productivity leverage that a programmable package infrastructure gives you, making a major undertaking possible with just 1 developer.

Keep up the great work, @samueldr!

6 Likes

Indeed, the strong guarantees coming from Nix are extremely invaluable, without Nix there would be place for so much mistakes to happen, or accidental re-use of old builds.

I can’t see any project with such a scale (an operating system) without a system similar to Nix with regards to dependency management. I will say, anything not exhibiting the same strong guarantees is a legacy system :).

5 Likes

Hi, question: which version of nixpkgs (git revision?) should I use to be able to use a cached armv7l+gcc6 tool chain?
I’m trying to port something based to mentioned platform, but I don’t have the computing power/disk space to rebuild the whole tool chain

2 Likes

(Sorry, I missed your question)

I would suggest using a revision where the mobile-nixos:unstable:tested job succeeded.

You can follow a build that has succeded and click on the Inputs tab. That one used 22a3bf9fb9edad917fb6cd1066d58b5e426ee975.

It’s not a guarantee for armv7l, but the chances are greater.

Though, you could also do the same with mobile-nixos:unstable:device.asus-flo.x86_64-linux, which when it succeeds, must mean that the dependencies are available :).

1 Like