Though you might want to ask around for your particular use case. While basic support (it boots) is right around the corner, it's probably not yet at a point where it'll be nice to use.
NixOS is the perfect OS for embedded Linux use, and I'm surprised that it hasn't seen any commercial uptake. I hope that some company adopts it for an IoT product or something so that it gets some love. I've been messing around on a Raspberry Pi and Beaglebone today with Debian, and I'm constantly frustrated having to use an imperative OS. I'm not using NixOS because even though it officially supports Raspberry Pi 3, I have not found it to be stable on that platform.
I'm excited about Mobile NixOS though. I've found the NixOS community to be motivated and friendly, but there is only so much progress that a small group of volunteers can make.
I'd be interested to hear more about how you're using NixOS if it isn't something you've already written about. My guess is that you're mostly leveraging the declarative configuration and immutability for internal infrastructure use. What I'd love to see would be consumer devices using NixOS, allowing updates (especially security patches) to be deployed to endpoints without too much fear that it will brick something. I think that would allow companies to more inexpensively maintain their IoT devices throughout their lifetime. I imagine a device where it could automatically revert to the last working generation if a new config fails for some reason.
NixOS probably helps with this, but it isn't a requirement - some devices already have a dual-root-type setup where they update the inactive root, boot into it, and the boot sequence doesn't mark it permanently active until it boots properly, reverting to the original root if something goes wrong.
I think if more devices aren't doing this kind of thing then the cost might not make sense to them at all. Perhaps they aren't bricking devices often, or perhaps their support load is low.
But I'm only speculating. I'm all for more NixOS if it helps people.
>dual-root-type setup where they update the inactive root, boot into it,
Fedora-IoT effectively does this with rpm-ostree + greenboot.
Greenboot specifies a series of directories under /etc that organizes your custom scripts (scripts that must not fail, scripts that may fail, scripts to run on success, scripts to run after previous failed, etc) then it marks your current ostree as either being active or auto-rollsback into previous.
> I'm not using NixOS because even though it officially supports Raspberry Pi 3, I have not found it to be stable on that platform.
I'm curious to hear more details about issues you might have been facing.
You can hit me us/me up on the Matrix channel[0] for "NixOS on ARM", tag me (@samueldr) on the Discourse[1], open an issue[2] if there's something actionable (and you didn't already), or I guess a reply here could do too, if you want.
Thus far, https://postmarketos.org/ has seemed the most likely "real Linux" distro for smartphones and tablets.
If this Mobile NixOS can get solid support on as many or more devices (including using mainline Linux, with no closed drivers, but possibly closed blobs for now), that will be another option.
BTW, one thing I don't want to see happen to any of these distros is for PinePhone to be the only actually solid device. Tempting as that device may be. If the distro doesn't run well on many devices, that's not a good sign for long-term viability, and it's also potentially awkward.
> BTW, one thing I don't want to see happen to any of these distros is for PinePhone to be the only actually solid device.
I share the same concern. I've been elevating the different platforms about equally. This is why there's so many "unfinished" ports. They are approximatively at equal support, but the crucial thing is that I helps me validate assumptions. I wrote a bit about that on my personal blog[0].
In fact, it's caused some "concern" about the viability of Mobile NixOS as the Pinephone isn't any more "well supported" than other platforms, which means there's work to do still :).
I'd rather see a well developed OS that is built for a few good devices rather than a majority of devices. At least for the first stage of acceptance & adoption. After the user experience has been nailed, then expand devices it supports.
Similarly, I'd like to see a linux distro targeted strictly to apple silicon macs and nails the user experience, fully working drivers etc.
Device-specific distros don't tend to last very long, a better option is to add device support to bootloaders/Linux/mesa/etc so that every distro can run on every device.
Man, this would be my absolute dream. It would be so nice to have a totally declarative and identical environment across my desktop, laptop, and phone (maybe not totally identical given hardware differences, but almost). With Nix I can get close to that on my desktop and laptop, but my phone is still a 100% proprietary walled garden that's shoving upgrades and pre-installed bloatware down my throat whenever it feels the need.
I'd bet mobile Linux is still a few years away in the real world though. I got a PinePhone a couple weeks ago for tinkering and the user experience is nowhere near my Samsung Galaxy. Still hesitantly optimistic about the future of mobile though.
You're right. The website right now was written for existing NixOS users.
They're also the initial target demographics, if only because this is a limited amount of developers in what is a cross-section of two niches: Non-Android Mobile Linux and NixOS users.
But you're totally right. Once it's "ready enough" for any end-user, we'd want to make it clear "why Mobile NixOS rather than another Non-Android Mobile Linux?"
I think you should also consider it the top result for anyone searching the name 'mobile nixos' - which means that even people who aren't your current target demo are going to go there to try to figure out what it is, and the current website fails spectacularly to do that.
Again you're right. Though the problem is that NixOS itself still doesn't have the answer for this question. So it's less about "Why Mobile NixOS?" and more "Why NixOS?".
Mobile NixOS is intended to be strictly a supserset composed on top of NixOS. So the question should be answered the same, except you add "for your mobile devices" at the end.
Do you know more details how much the efforts are progressing regarding mainline support for those mobile devices?
I've only observed some of the discussions over at pmOS (and some at ArchLinuxARM for that matter), but to me it's very unclear what the "workflow" should look like if I would have, say, a patch ready for my pinephone's drivers.
A lot of different efforts seem to be somehow widespread across the interwebz, with varying degrees of stability, and seem to be very uncoordinated or isolated efforts.
I'm asking this, because I've seen that the nix file builds from megous' fork [1] so I'm a bit unsure on how "official" it is in regards to whether or not pull requests/patches submitted there will be integrated upstream.
(Sorry if I misunderstood it, but I'm a bit cautious having developed on dozens of abandoned forks of Linux kernels for Android/AOSP before - as most of them were a waste of development years due to no patron available or willing to merge fixes upstream)
I’ve dabbled in NixOS, I have it installed in a second desktop under my desk, and occasionally use it for Linux tasks...
Most of my Linux projects though have been doing stuff on raspberry pi or pine phone, or any of these sorts of little machines, where I’d really love to run Nix... the problem is every time I start digging, they seem to require already a lot of Nix experience, and expecting that I’m already on a nix machine to create and burn images, etc...
But where is like the image I can just download and burn from Windows to an sdcard, or at least really simple instructions to get that image from an nix machine?
But I (think I) know enough about nix to know this is an image generated by the build system, and in theory I should be able to browse hydra, to find other images that I could try to burn, I think some info about where that image came from would be super helpful in understanding nix's build system.
does this run android? or some other ui? Is that UI and underlying system tailored for mobile like android is? I feel like android probably has a ton of work put in to take constraints of phone into consideration
This is a "normal 'GNU/Linux' distro" (well if NixOS is normal for you).
Just like NixOS doesn't prescribe a user interface, it is left to the end-user to choose what they want to run.
As such, this is meant to allow you to run the "mobile first" desktop environments like Phosh and Plasma Mobile. As many other non-Android Mobile Linux distributions do.
So to answer more succintly: no, it doesn't run Android. Yes, some other UI, at the end-user's choice.
27 comments
[ 2.7 ms ] story [ 76.4 ms ] threadThough you might want to ask around for your particular use case. While basic support (it boots) is right around the corner, it's probably not yet at a point where it'll be nice to use.
I'm excited about Mobile NixOS though. I've found the NixOS community to be motivated and friendly, but there is only so much progress that a small group of volunteers can make.
I think if more devices aren't doing this kind of thing then the cost might not make sense to them at all. Perhaps they aren't bricking devices often, or perhaps their support load is low.
But I'm only speculating. I'm all for more NixOS if it helps people.
Fedora-IoT effectively does this with rpm-ostree + greenboot.
Greenboot specifies a series of directories under /etc that organizes your custom scripts (scripts that must not fail, scripts that may fail, scripts to run on success, scripts to run after previous failed, etc) then it marks your current ostree as either being active or auto-rollsback into previous.
I'm curious to hear more details about issues you might have been facing.
You can hit me us/me up on the Matrix channel[0] for "NixOS on ARM", tag me (@samueldr) on the Discourse[1], open an issue[2] if there's something actionable (and you didn't already), or I guess a reply here could do too, if you want.
0: https://matrix.to/#/#nixos-on-arm:nixos.org
1: https://discourse.nixos.org/
2: https://github.com/NixOS/Nixpkgs/issues
1. LumiGuide uses NixOS for their embedded systems, which track automatic bicycle rentals at little solar-powered stations IIRC: https://av.tib.eu/media/39625 (also some coverage here: https://www.worksonarm.com/blog/nixos/ )
2. Yakkertech uses NixOS for their embedded systems, which do baseball pitch tracking: https://av.tib.eu/media/50713
3. Swift Navigation uses NixOS for CI/CD for the embedded systems they use for GPS and navigation: https://blog.swiftnav.com/using-nixos-to-manage-hardware-tes...
I'd only heard of the first two, and discover the third just now.
There are also two downstream distros/related projects that target embedded systems, but idk how much commercial use they've yet seen, if any:
a. https://github.com/telent/nixwrt
b. https://github.com/cleverca22/not-os
If this Mobile NixOS can get solid support on as many or more devices (including using mainline Linux, with no closed drivers, but possibly closed blobs for now), that will be another option.
BTW, one thing I don't want to see happen to any of these distros is for PinePhone to be the only actually solid device. Tempting as that device may be. If the distro doesn't run well on many devices, that's not a good sign for long-term viability, and it's also potentially awkward.
I share the same concern. I've been elevating the different platforms about equally. This is why there's so many "unfinished" ports. They are approximatively at equal support, but the crucial thing is that I helps me validate assumptions. I wrote a bit about that on my personal blog[0].
In fact, it's caused some "concern" about the viability of Mobile NixOS as the Pinephone isn't any more "well supported" than other platforms, which means there's work to do still :).
0: https://samuel.dionne-riel.com/blog/2020/04/24/mobile-nixos-...
Similarly, I'd like to see a linux distro targeted strictly to apple silicon macs and nails the user experience, fully working drivers etc.
I'd bet mobile Linux is still a few years away in the real world though. I got a PinePhone a couple weeks ago for tinkering and the user experience is nowhere near my Samsung Galaxy. Still hesitantly optimistic about the future of mobile though.
They're also the initial target demographics, if only because this is a limited amount of developers in what is a cross-section of two niches: Non-Android Mobile Linux and NixOS users.
But you're totally right. Once it's "ready enough" for any end-user, we'd want to make it clear "why Mobile NixOS rather than another Non-Android Mobile Linux?"
First impressions really are important.
Mobile NixOS is intended to be strictly a supserset composed on top of NixOS. So the question should be answered the same, except you add "for your mobile devices" at the end.
Mobile NixOS: The Present and the Future - https://news.ycombinator.com/item?id=20780504 - Aug 2019 (47 comments)
I've only observed some of the discussions over at pmOS (and some at ArchLinuxARM for that matter), but to me it's very unclear what the "workflow" should look like if I would have, say, a patch ready for my pinephone's drivers.
A lot of different efforts seem to be somehow widespread across the interwebz, with varying degrees of stability, and seem to be very uncoordinated or isolated efforts.
I'm asking this, because I've seen that the nix file builds from megous' fork [1] so I'm a bit unsure on how "official" it is in regards to whether or not pull requests/patches submitted there will be integrated upstream.
(Sorry if I misunderstood it, but I'm a bit cautious having developed on dozens of abandoned forks of Linux kernels for Android/AOSP before - as most of them were a waste of development years due to no patron available or willing to merge fixes upstream)
[1] https://github.com/megous/linux
I’ve dabbled in NixOS, I have it installed in a second desktop under my desk, and occasionally use it for Linux tasks...
Most of my Linux projects though have been doing stuff on raspberry pi or pine phone, or any of these sorts of little machines, where I’d really love to run Nix... the problem is every time I start digging, they seem to require already a lot of Nix experience, and expecting that I’m already on a nix machine to create and burn images, etc...
But where is like the image I can just download and burn from Windows to an sdcard, or at least really simple instructions to get that image from an nix machine?
One thing I notice, is this url is just given, without much context: `https://hydra.nixos.org/build/142828023/download/1/nixos-sd-...`
But I (think I) know enough about nix to know this is an image generated by the build system, and in theory I should be able to browse hydra, to find other images that I could try to burn, I think some info about where that image came from would be super helpful in understanding nix's build system.
Just like NixOS doesn't prescribe a user interface, it is left to the end-user to choose what they want to run.
As such, this is meant to allow you to run the "mobile first" desktop environments like Phosh and Plasma Mobile. As many other non-Android Mobile Linux distributions do.
So to answer more succintly: no, it doesn't run Android. Yes, some other UI, at the end-user's choice.