├── .gitignore
├── website
├── _support
│ └── website.inc
├── news
│ ├── 2020-03-03-boot-gui.png
│ ├── 2019-11-15-nixcon-wrap-up.jpeg
│ ├── 2020-11-03-october-round-up.jpeg
│ ├── 2020-04-07-march-2020-round-up.jpeg
│ ├── 2020-05-06-april-2020-round-up.jpeg
│ ├── 2020-07-07-june-2020-round-up.jpeg
│ ├── 2020-08-04-july-2020-round-up.jpeg
│ ├── 2021-08-03-july-2021-round-up.jpeg
│ ├── 2020-02-04-january-2020-round-up.jpeg
│ ├── 2021-02-02-january-2021-round-up.jpeg
│ ├── 2019-12-03-november-2019-round-up.jpeg
│ ├── 2020-01-08-december-2019-round-up.jpeg
│ ├── 2020-03-03-february-2020-round-up.jpeg
│ ├── 2020-12-01-november-2020-round-up.jpeg
│ ├── 2021-03-02-february-2021-round-up.jpeg
│ ├── 2020-10-06-august-september-round-up.jpeg
│ ├── 2019-11-15-nixcon-wrap-up.adoc
│ ├── 2020-07-07-june-2020-round-up.adoc
│ ├── 2021-08-03-july-2021-round-up.adoc
│ ├── 2020-03-03-february-2020-round-up.adoc
│ ├── 2020-01-08-december-2019-round-up.adoc
│ ├── 2021-05-04-march-april-2021-round-up.adoc
│ ├── 2020-02-04-january-2020-round-up.adoc
│ ├── 2021-07-06-may-june-2021-round-up.adoc
│ ├── 2019-12-03-november-2019-round-up.adoc
│ ├── 2020-11-03-october-round-up.adoc
│ ├── 2020-08-04-july-2020-round-up.adoc
│ ├── 2020-12-01-november-2020-round-up.adoc
│ ├── 2021-01-05-december-2020-round-up.adoc
│ ├── 2020-05-06-april-2020-round-up.adoc
│ ├── 2020-06-02-may-2020-round-up.adoc
│ ├── 2020-04-07-march-2020-round-up.adoc
│ ├── 2020-10-06-august-september-round-up.adoc
│ ├── 2021-03-02-february-2021-round-up.adoc
│ ├── 2021-10-05-august-september-round-up.adoc
│ ├── 2021-02-02-january-2021-round-up.adoc
│ └── 2021-01-11-2020-in-the-rear-view-mirror.adoc
├── news.adoc
└── index.adoc
├── README.md
├── release.nix
└── LICENSES
├── MIT.txt
└── CC-BY-SA-4.0.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | result
2 |
--------------------------------------------------------------------------------
/website/_support/website.inc:
--------------------------------------------------------------------------------
1 | :repo: NixOS/mobile-nixos-website
2 | :relative_prefix: website
3 |
--------------------------------------------------------------------------------
/website/news/2020-03-03-boot-gui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-03-03-boot-gui.png
--------------------------------------------------------------------------------
/website/news/2019-11-15-nixcon-wrap-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2019-11-15-nixcon-wrap-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-11-03-october-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-11-03-october-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-04-07-march-2020-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-04-07-march-2020-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-05-06-april-2020-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-05-06-april-2020-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-07-07-june-2020-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-07-07-june-2020-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-08-04-july-2020-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-08-04-july-2020-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2021-08-03-july-2021-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2021-08-03-july-2021-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-02-04-january-2020-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-02-04-january-2020-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2021-02-02-january-2021-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2021-02-02-january-2021-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2019-12-03-november-2019-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2019-12-03-november-2019-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-01-08-december-2019-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-01-08-december-2019-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-03-03-february-2020-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-03-03-february-2020-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-12-01-november-2020-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-12-01-november-2020-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2021-03-02-february-2021-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2021-03-02-february-2021-round-up.jpeg
--------------------------------------------------------------------------------
/website/news/2020-10-06-august-september-round-up.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NixOS/mobile-nixos-website/HEAD/website/news/2020-10-06-august-september-round-up.jpeg
--------------------------------------------------------------------------------
/website/news.adoc:
--------------------------------------------------------------------------------
1 | = News archive
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: all_news
5 |
6 | ++++
7 |
8 | ++++
9 | // Note: This is replaced by the website build pipeline.
10 | ++++
11 |
12 |
13 |
14 |
15 | ++++
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Mobile NixOS Website
2 |
3 | This repository is used to serve the website.
4 |
5 | The [main repository](https://github.com/NixOS/mobile-nixos) is where you may want to go.
6 |
7 | ### Building the website
8 |
9 | ```
10 | $ nix-build release.nix
11 | ```
12 |
13 | Though if you're working on it, you might want to edit `release.nix` to point to
14 | your work-in-progress `mobile-nixos` repository.
15 |
16 | ## License
17 |
18 | The content of the website is licensed under the [Creative Commons Attribution Share Alike 4.0 International](LICENSES/CC-BY-SA-4.0.txt) license.
19 |
20 | The software (including sample code) is licensed under the [MIT](LICENSES/MIT.txt) license.
21 |
--------------------------------------------------------------------------------
/website/index.adoc:
--------------------------------------------------------------------------------
1 | = Main Page
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | // Required since common.inc appends Mobile NixOS to all files.
5 | :title: Mobile NixOS
6 | :special: homepage
7 | :noheader: true
8 |
9 | ++++
10 |
11 | ++++
12 |
13 | NixOS on *my* phone?
14 |
15 | It's quickly becoming a reality! Look at the <
>
16 | to see if your device is already supported. Otherwise, read about
17 | <> to understand if *you* can get NixOS
18 | on your phone.
19 |
20 | ++++
21 |
22 |
23 |
24 | ++++
25 |
26 | [discrete]
27 | == News Items
28 |
29 | // Note: This is replaced by the website build pipeline.
30 | ++++
31 |
32 |
33 |
34 |
35 |
36 |
37 | ++++
38 | Continue to the _<>_ page to read older articles.
39 | ++++
40 |
41 | ++++
42 |
--------------------------------------------------------------------------------
/release.nix:
--------------------------------------------------------------------------------
1 | let
2 | # "Nixpkgs-free" fetchFromGitHub... we use that repo's pin on nixpkgs instead.
3 | # This is expected to be run in a CI/CD context.
4 | gh = {branch, repo, owner}:
5 | builtins.fetchTarball "https://github.com/${owner}/${repo}/archive/${branch}.tar.gz"
6 | ;
7 | mobile-nixos = gh {
8 | branch = "development";
9 | owner = "NixOS";
10 | repo = "mobile-nixos";
11 | };
12 | pkgs = import "${mobile-nixos}/pkgs.nix" { };
13 | site = import "${mobile-nixos}/doc" { inherit pkgs; };
14 | inherit (pkgs.lib) optionalString;
15 |
16 | inherit (pkgs) rsync;
17 |
18 | CNAME = "mobile.nixos.org";
19 | in
20 |
21 | # Here we patch over the docs to insert the website contents.
22 | site.overrideAttrs(old: {
23 | buildInputs = old.buildInputs ++ [
24 | rsync
25 | ];
26 |
27 | postPatch = ''
28 | echo " :: Adding the website data to the docs source."
29 | rsync --recursive --verbose ${./.}/website/ ./
30 | '';
31 |
32 | postFixup = optionalString (CNAME != null) ''
33 | echo '${CNAME}' >> $out/CNAME
34 | '';
35 | })
36 |
--------------------------------------------------------------------------------
/LICENSES/MIT.txt:
--------------------------------------------------------------------------------
1 | Valid-License-Identifier: MIT
2 | License-Text:
3 |
4 | MIT License
5 |
6 | Copyright (c) 2019 The Mobile NixOS Contributors
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy
9 | of this software and associated documentation files (the "Software"), to deal
10 | in the Software without restriction, including without limitation the rights
11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | copies of the Software, and to permit persons to whom the Software is
13 | furnished to do so, subject to the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be included in all
16 | copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 | SOFTWARE.
25 |
--------------------------------------------------------------------------------
/website/news/2019-11-15-nixcon-wrap-up.adoc:
--------------------------------------------------------------------------------
1 | = NixCon Wrap-Up and Website
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2019-11-15
6 | :image: {rootrel}news/2019-11-15-nixcon-wrap-up.jpeg
7 | :header_prefers: left
8 | Samuel Dionne-Riel
9 | November 15th 2019
10 |
11 | This past October, on the 25th, a talk about Mobile NixOS was held at NixCon
12 | 2019, in Brno, Czechia. The talk was recorded and is
13 | link:https://www.youtube.com/watch?v=229PpjZZouw[on the NixCon YouTube page].
14 |
15 | Bringing us to the next point: this new and shiny website. This is was described
16 | as the next step for the project. This website is built by blurring the
17 | difference between the documentation of the project and the website. This means
18 | that, hopefully, neither the website or the documentation will lag behind in
19 | relevance. Additionally, building the site and contributing should be as simple
20 | as contributing to the documentation. Hopefully simple enough.
21 |
22 | Last, but not least, a few notes about the Hackday at the 2019 NixCon. I was
23 | left with approximately no time to work on things myself, but instead was found
24 | surrounded by bright individuals contributing neat stuff to the project.
25 | link:https://github.com/NixOS/mobile-nixos/pulls?utf8=%E2%9C%93&q=is%3Apr+created%3A2019-10-28+created%3A2019-10-27++created%3A2019-10-26+[Those pull requests] are a good sample of what was done,
26 | though early work on the OnePlus 5 was not advanced enough to be contributed back.
27 |
28 | Wrapping this all nicely, I found that the main issue contributors around me had
29 | was the lack of documentation about the porting process. I knew it was an issue,
30 | hopefully this new website and progressing documentation helps.
31 |
--------------------------------------------------------------------------------
/website/news/2020-07-07-june-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = June 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2020-07-07-june-2020-round-up.jpeg
5 | :header_prefers: right
6 | :special: news
7 | :docdate: 2020-07-07
8 | Samuel Dionne-Riel
9 | July 7th 2020
10 |
11 | This update is the eighth in a series of regular updates on the state of the
12 | project.
13 |
14 | Only changes that have been accepted and merged in Mobile NixOS are
15 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
16 | currently in-progress.
17 |
18 |
19 | === Notable changes
20 |
21 | Most of the link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-06+sort%3Acreated-asc[
22 | 9 pull requests merged] were trivial or minor changes. Though there's
23 | still some notable changes.
24 |
25 | ==== Pinephone bluetooth support
26 |
27 | It turns out all it needed was a trivial fix. link:https://github.com/NixOS/mobile-nixos/pull/163[
28 | Giving it the firmware it wanted] adds proper support for bluetooth on the
29 | Pinephone.
30 |
31 | If you are using the `examples/demo` rootfs, its configuration does not
32 | currently configure the system for audio with bluetooth. The instructions to
33 | configure audio for bluetooth link:https://wiki.nixos.org/wiki/Bluetooth#Using_Bluetooth_headsets_with_PulseAudio[
34 | are the same as usual], as Mobile NixOS is composed on top of NixOS.
35 |
36 | ==== Redmi Note 8 Pro
37 |
38 | The port for link:https://github.com/NixOS/mobile-nixos/pull/171[xiaomi-begonia]
39 | is mainly notable for being the first port for a Mediatek SoC.
40 |
41 | I am singling out this port as a proof that the link:https://samuel.dionne-riel.com/blog/2020/04/24/mobile-nixos-breadth-first-development.html[
42 | breadth-first development] style is working well. Since Mobile NixOS had many
43 | abstractions needed for the existing different platforms, this new platform,
44 | and device, was ported without a sweat.
45 |
46 | This also paves the way for other Mediatek ports by providing a working
47 | example. Coupled with link:https://github.com/NixOS/mobile-nixos/pull/175[#175],
48 | another, older, Mediatek device (merged in early July), there is enough
49 | material to give clues for future ports by community members.
50 |
51 |
52 | === New ports
53 |
54 | One new device was merged this month.
55 |
56 | * link:https://mobile.nixos.org/devices/xiaomi-begonia.html[Xiaomi Redmi Note 8 Pro (xiaomi-begonia)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/171[#171])
57 |
58 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 12].
59 |
--------------------------------------------------------------------------------
/website/news/2021-08-03-july-2021-round-up.adoc:
--------------------------------------------------------------------------------
1 | = July 2021 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2021-08-03-july-2021-round-up.jpeg
5 | :header_prefers: center
6 | :special: news
7 | :docdate: 2021-08-03
8 | Samuel Dionne-Riel
9 | August 3rd 2021
10 |
11 | This update is the eighteenth in a series of regular updates on the state of
12 | the project.
13 |
14 | Only changes that have been accepted and merged in Mobile NixOS are
15 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
16 | currently in-progress.
17 |
18 |
19 | === Notable changes
20 |
21 | During the two months link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2021-07+sort%3Acreated-asc[
22 | 12 pull requests were merged].
23 |
24 |
25 | ==== Stage-1 apps re-design
26 |
27 | link:https://github.com/NixOS/mobile-nixos/pull/364[The applications for
28 | stage-1 were redesigned in #364]. Though it is an understatement to imply that
29 | they only were redesigned. While, yes, this follows the design language of the
30 | redesigned website, some work was needed to achieve the result.
31 |
32 | First, support for truetype fonts needed to be added to the GUI toolkit. While
33 | it may seem like it's not required for this limited use case, in reality this
34 | not only allows using more fonts than the hardcoded ones, it allows _scalable_
35 | fonts. With these changes, text should be big and readable on all devices.
36 |
37 | Truetype fonts support also gives us the ability to fall back to other fonts.
38 | This initial implementation falls back to FontAwesome, giving us access to the
39 | full library of glyphs, rather than a selected subset.
40 |
41 | In addition to these user-facing changes, a lot of work was done to rework some
42 | parts of the implementation and packaging of these applications. This should
43 | reduce the burden on packaging new features or applications made with this
44 | toolkit.
45 |
46 | In another pull request, large images link:https://github.com/NixOS/mobile-nixos/pull/390[
47 | were fixed]. This fixes corruption with images with higher resolution devices.
48 |
49 |
50 | ==== Notable changes
51 |
52 | ==== Device-specific changes
53 |
54 | ===== Pinephone improvements
55 |
56 | A flurry of changes for the Pinephone, most authored by link:https://github.com/tomfitzhenry[@tomfitzhenry].
57 |
58 | Succinctly, updates to the latest revisions for the different *mainline
59 | components*, and other fixes and feature enablement.
60 |
61 | * link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2021-07+sort%3Acreated-asc%5B+label%3A%22device%3A+pinephone%22[Pinephone pull requests merged in July (7)]
62 |
63 | === Ports
64 |
65 | No new port were made in April. There is still a
66 | link:https://mobile.nixos.org/devices/index.html[total of 21 devices] you can
67 | build for.
68 |
--------------------------------------------------------------------------------
/website/news/2020-03-03-february-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = February 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2020-03-03
6 | :image: {rootrel}news/2020-03-03-february-2020-round-up.jpeg
7 | Samuel Dionne-Riel
8 | March 3rd 2020
9 |
10 | This update is the fourth in a series of regular updates on the state of the
11 | project.
12 |
13 | Only changes that have been accepted and merged in Mobile NixOS are
14 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
15 | currently in-progress.
16 |
17 | === Notable changes
18 |
19 | link:https://github.com/NixOS/mobile-nixos/pulls?utf8=%E2%9C%93&q=is%3Apr+merged%3A2020-02+merged%3A2020-03-01[3 PRs were merged]
20 | during the month. This is not cheating, the last merged PR was merged late on
21 | the 29th.
22 |
23 | This is not development slowing down. Far from it. link:https://github.com/mobile-nixos/[Four new projects]
24 | were added to the Mobile NixOS GitHub organization related to this month's
25 | work. Keep on reading.
26 |
27 | ==== Graphical boot selection
28 |
29 | Hot on the heels of the link:https://mobile.nixos.org/news/2020-02-04-january-2020-round-up.html[re-written init],
30 | and as teased, a working graphical boot selection is now available for Mobile
31 | NixOS platforms.
32 |
33 | There is more than meets the eye in link:https://github.com/NixOS/mobile-nixos/pull/80[pull request #80].
34 |
35 | To make this possible, a GUI toolkit of relatively small weight has to be
36 | found. After some research, it was found in the link:https://littlevgl.com/[LittlevGL]
37 | library. While it is geared more towards _actual_ embedded development, it does
38 | have a Linux framebuffer backend, support for evdev input. This is all standard
39 | stuff that is well supported on all targets. What is really nice with that
40 | library is it also supports a “simulator” target, which is basically an SDL
41 | window.
42 |
43 | With that said, I personally don't want to write C, especially in complex use
44 | cases. I already worked on mruby integration for the Mobile NixOS stage-1. It
45 | was only natural to write link:https://github.com/mobile-nixos/mruby-lvgui[mruby bindings for LittleVGL].
46 |
47 | With all the exposition done. What does this look like? The header image of
48 | this news post is composed of four devices running the GUI. An actual
49 | screenshot of the GUI follows, for better clarity.
50 |
51 | image::{rootrel}news/2020-03-03-boot-gui.png[alt=Screenshot of generation selection,width=600]
52 |
53 | This is not a feature complete generic replacement for a bootloader. Though, it
54 | can become one when kexec support is added in the future.
55 |
56 | Additionally, as touched upon in the pull request, these bindings will allow us
57 | to improve the graphical boot process. In a future improvement we'll be able to
58 | add information about the current running step, and better failure state
59 | reporting.
60 |
61 |
62 | === Ports
63 |
64 | No new port were made in February. There is still a
65 | link:https://mobile.nixos.org/devices/index.html[total of 10 devices] you can
66 | build for.
67 |
--------------------------------------------------------------------------------
/website/news/2020-01-08-december-2019-round-up.adoc:
--------------------------------------------------------------------------------
1 | = December 2019 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2020-01-08
6 | :image: {rootrel}news/2020-01-08-december-2019-round-up.jpeg
7 | Samuel Dionne-Riel
8 | January 8th 2020
9 |
10 | This update is the second in a series of regular updates on the state of the
11 | project.
12 |
13 | Only changes that have been accepted and merged in Mobile NixOS are
14 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
15 | currently in-progress.
16 |
17 | === Notable changes
18 |
19 | Among the changes, and the link:https://github.com/NixOS/mobile-nixos/pulls?utf8=%E2%9C%93&q=is%3Apr+merged%3A2019-12[10 PRs merged],
20 | these changes are highlighted.
21 |
22 |
23 | ==== Make the demo more useful on a touch device
24 |
25 | These are changes to the "example" system. This is a finalized version of the
26 | demo system that was running on the devices during NixCon 2019.
27 |
28 | The main difference is that this is not a raw XFCE desktop, but a
29 | pre-configured system that is more accessible on touch devices. The onboard
30 | on-screen keyboard is configured to be of a useful height. Additionally, XFWM
31 | has been replaced with Awesome WM configured to maximize all windows.
32 |
33 | This is still not an appropriate mobile environment, only a collection of
34 | configuration that makes it work well enough to test things up.
35 |
36 | Read more in link:https://github.com/NixOS/mobile-nixos/pull/63[pull request #63].
37 |
38 |
39 | ==== Enhance QEMU Device
40 |
41 | The `x86_64` based QEMU VM has seen fixes to, first, make it actually work
42 | right.
43 |
44 | What's more interesting in this PR is the patched VGA BIOS that rotates the
45 | expected resolutions (720p, 1080p) on their side in portrait mode. This is
46 | especially helpful when working on purely software things like improving the
47 | example system.
48 |
49 | These changes are part of
50 | link:https://github.com/NixOS/mobile-nixos/pull/59[pull request #59].
51 |
52 |
53 | ==== Different stage-1 fixes
54 |
55 | The root filesystem is configured to expand to the size of its backing
56 | partition during boot.
57 | Part of link:https://github.com/NixOS/mobile-nixos/pull/61[pull request #61].
58 |
59 | Critical failure states link:https://mobile.nixos.org/in-depth/stage-1.html#_about_sad_phone_screens[are graphically reported].
60 | As documented, a full-screen color-coded "sad phone" gives a general idea of
61 | the error encountered.
62 | Part of link:https://github.com/NixOS/mobile-nixos/pull/58[pull request #58].
63 |
64 |
65 | ==== Other notable changes
66 |
67 | * link:https://github.com/NixOS/mobile-nixos/pull/41[#41 fixing adb for stage-2.]
68 | * link:https://github.com/NixOS/mobile-nixos/pull/67[#67 which fixes spurious framebuffer failures on Google Pixel 2.]
69 |
70 |
71 | === Ports
72 |
73 | One new device has been merged during December.
74 |
75 | * Xiaomi Redmi Note 7 (xiaomi-lavender) [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/28[#28])
76 |
77 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 10].
78 |
--------------------------------------------------------------------------------
/website/news/2021-05-04-march-april-2021-round-up.adoc:
--------------------------------------------------------------------------------
1 | = March and April 2021 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2021-05-04
6 | Samuel Dionne-Riel
7 | May 4th 2021
8 |
9 | This update is the sixteenth in a series of regular updates on the state of the
10 | project.
11 |
12 | Only changes that have been accepted and merged in Mobile NixOS are
13 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
14 | currently in-progress.
15 |
16 |
17 | === Notable changes
18 |
19 | During the two months link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2021-03+merged%3A2021-04+sort%3Acreated-asc[
20 | 11 pull requests were merged].
21 |
22 | This sounds like there's not much that has been happening, but this is only
23 | half of the story.
24 |
25 |
26 | ==== Plasma Mobile support in NixOS
27 |
28 | A good portion of my time has been spent working on link:https://github.com/NixOS/nixpkgs/pull/121345[
29 | adding support for Plasma Mobile in NixOS]. The pull request needs some work
30 | still, as there are issues, mainly dealing with Wayland and Plasma integration
31 | with NixOS.
32 |
33 | With that said, a draft for link:https://github.com/NixOS/mobile-nixos/pull/351[
34 | a Mobile NixOS demo image using Plasma Mobile] was also made. It relies on the
35 | NixOS changes. After all, Mobile NixOS is a superset composed on top of NixOS.
36 |
37 | I wouldn't recommend anyone to use it at the moment, but it's not a disaster.
38 | It's the final paper cuts, the final 10% that needs 90% of the work. It's
39 | close to being done, yet far from being over.
40 |
41 |
42 | ==== Phosh support in NixOS
43 |
44 | Some community members, starting link:https://github.com/NixOS/nixpkgs/pull/88767[
45 | way back in May 2020], and link:https://github.com/NixOS/nixpkgs/issues/72715[even]
46 | link:https://github.com/NixOS/nixpkgs/pull/57614[before], were working on their
47 | side on adding Phosh support in NixOS
48 |
49 | link:https://github.com/zhaofengli[@zhaofengli] ran the last mile in link:https://github.com/NixOS/nixpkgs/pull/121226[
50 | #121226, with the initial support for Phosh] in NixOS. There is also an
51 | link:https://github.com/NixOS/mobile-nixos/pull/352[example configuration
52 | demo system for Phosh] for Mobile NixOS.
53 |
54 | Since Phosh is already being built in Nixpkgs, you can take inspiration from
55 | that example configuration and start using it at this moment.
56 |
57 | I invite you to follow through to the different pull requests, and thank the
58 | involved individuals.
59 |
60 |
61 | ==== Device-specific changes
62 |
63 | ===== Pinephone improvements
64 |
65 | * link:https://github.com/NixOS/mobile-nixos/pull/321[The kernel was updated (#321)]
66 | * link:https://github.com/NixOS/mobile-nixos/pull/337[Sound support was fixed (#337)]
67 | * link:https://github.com/NixOS/mobile-nixos/pull/340[Gadget mode was fixed (#340)]
68 |
69 | === Ports
70 |
71 | Support for one new device was merged in this period.
72 |
73 | * link:https://mobile.nixos.org/devices/pine64-pinetab.html[Pine64 PineTab (pine64-pinetab)] [link:https://github.com/zhaofengli[@zhaofengli]] (link:https://github.com/NixOS/mobile-nixos/pull/331[#331])
74 |
75 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 18].
76 |
--------------------------------------------------------------------------------
/website/news/2020-02-04-january-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = January 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2020-02-04
6 | :image: {rootrel}news/2020-02-04-january-2020-round-up.jpeg
7 | Samuel Dionne-Riel
8 | February 4th 2020
9 |
10 | This update is the third in a series of regular updates on the state of the
11 | project.
12 |
13 | Usually, only changes that have been accepted and merged in Mobile NixOS in the
14 | given month are chronicled here. There's always
15 | link:https://github.com/NixOS/mobile-nixos/pulls[more work] currently in-progress.
16 |
17 | === Notable changes
18 |
19 | Only link:https://github.com/NixOS/mobile-nixos/pulls?utf8=%E2%9C%93&q=is%3Apr+merged%3A2020-01[1 PR was merged]
20 | during the month. Though, keep on reading, as one of the biggest PR, started in
21 | mid-December, was the main focus of the month.
22 |
23 | ==== New Stage-1 init
24 |
25 | This is quite the misnomer, while true, that the PR mainly introduced a
26 | completely re-done init, it brought much more.
27 |
28 | * "New-style" USB gadget (gadgetfs) handling.
29 | * USB Networking for newer devices.
30 | * Vendor partition firmware loading.
31 | * Logs multiplexing and saving in stage-1.
32 | * Proper reboot and poweroff in stage-1.
33 | * Actual handling of NixOS-configured `specialFileSystems`.
34 |
35 | This new init is built using a dependencies-based system, reducing the
36 | complexities from the inflexible "big script" approach of the previous init.
37 | With this new approach, we can simply dump all of the things we need to happen
38 | in the init, tell them how they're linked, and boot. The current implementation
39 | is naïve, but even with a naïve approach, the benefits are apparent. First, the
40 | developer does not need to care about the ordering of things, only describing
41 | what has to be, and what to do. Then, the relatively surprising part: this made
42 | things a bit quicker to boot.
43 |
44 | This reduced reliance on sleep and wait times during the boot to provide
45 | assurance that things were ready, meaning that steps happen much quicker in
46 | succession. To the annoyance of the author, this means that the
47 | well-choreographed boot images whizz by too quickly, reducing their
48 | meaningfulness.
49 |
50 | In the end, this is a hidden change, that serves mainly to ensure a rock-solid
51 | foundation for what's coming soon.
52 |
53 | See link:https://github.com/NixOS/mobile-nixos/pull/66[the PR] for more details.
54 |
55 | === Upcoming changes
56 |
57 | Speaking of coming soon, As previewed link:https://twitter.com/samueldr/status/1223139451196661760[in a tweet],
58 | work is in progress to provide a graphical interface that can be used in early
59 | boot. This can be used to make a "recovery" system tailored to the project's
60 | need, and more importantly, allow interaction in the boot process.
61 |
62 | The main focus of early interaction is to allow selecting a generation to boot
63 | into. This is part of the NixOS experience, and is currently missing. Another
64 | benefit to an early UI is that it will give us the opportunity to enter a
65 | passphrase to unlock an eventually coming encrypted system.
66 |
67 | Keep your eyes peeled for the coming PR!
68 |
69 | === Ports
70 |
71 | No new port were made in January. There is still a
72 | link:https://mobile.nixos.org/devices/index.html[total of 10 devices] you can
73 | build for.
74 |
--------------------------------------------------------------------------------
/website/news/2021-07-06-may-june-2021-round-up.adoc:
--------------------------------------------------------------------------------
1 | = May and June 2021 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2021-07-06
6 | Samuel Dionne-Riel
7 | July 6th 2021
8 |
9 | This update is the seventeenth in a series of regular updates on the state of
10 | the project.
11 |
12 | Only changes that have been accepted and merged in Mobile NixOS are
13 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
14 | currently in-progress.
15 |
16 |
17 | === Notable changes
18 |
19 | During the two months link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2021-05+merged%3A2021-06+sort%3Acreated-asc[
20 | 10 pull requests were merged].
21 |
22 | Not too different from last update, work has happened, but not present as
23 | merged pull requests in the Mobile NixOS repository.
24 |
25 | In addition, some time was spent by the main author working on a side-project,
26 | unrelated to Mobile NixOS, but related to NixOS on ARM. Fear not, work is not
27 | really expected to slow down.
28 |
29 |
30 | ==== What's been done elsewhere
31 |
32 | Let's not forget the still in-progress Plasma Mobile work. The link:https://github.com/NixOS/nixpkgs/pull/121345[
33 | initial pull request now includes only Plasma Mobile itself], while a new pull
34 | request was opened link:https://github.com/NixOS/nixpkgs/pull/125156[for the
35 | Plasma Mobile applications (#125156)]. Doing so should make it easier to finish
36 | up and land the changes, as it's simply too big otherwise.
37 |
38 | Work upstream on Nixpkgs has been started to link:https://github.com/NixOS/nixpkgs/pull/125600[
39 | refresh the Anbox module (#125600)].
40 |
41 |
42 | ==== Preview of what's coming
43 |
44 | While a more in-depth write-up will come with the next update, link:https://github.com/NixOS/mobile-nixos/pull/364[
45 | pull request #364 refreshes the recovery and boot menu appearance]. While
46 | working on this refresh, time was spent tracking down a rare, but reproducible
47 | crash.
48 |
49 |
50 | ==== Notable changes
51 |
52 | * link:https://github.com/NixOS/mobile-nixos/pull/354[Allow using `specialArgs` for use with Nix flakes (#354)] [link:https://github.com/Pacman99[@Pacman99]]
53 | * link:https://github.com/NixOS/mobile-nixos/pull/356[When building custom images, BTRFS can be used for the filesystem (#256)] [link:https://github.com/lheckemann[@lheckemann]]
54 |
55 |
56 | ==== Device-specific changes
57 |
58 | ===== Pinephone improvements
59 |
60 | * link:https://github.com/NixOS/mobile-nixos/pull/355[Enable camera (#355)] [link:https://github.com/zhaofengli[@zhaofengli]] (See also link:https://github.com/NixOS/nixpkgs/pull/121722[Nixpkgs#121722])
61 |
62 |
63 | === Ports
64 |
65 | Support for three new devices was merged in this period.
66 |
67 | * link:https://mobile.nixos.org/devices/amazon-austin.html[Amazon Fire 7 (7th generation) (2017)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/311[#311])
68 | * link:https://mobile.nixos.org/devices/motorola-potter.html[Motorola Moto G5 Plus] [link:https://github.com/telent[@telent]] (link:https://github.com/NixOS/mobile-nixos/pull/359[#359])
69 | * link:https://mobile.nixos.org/devices/motorola-rav.html[motorola moto g(8)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/369[#369])
70 |
71 |
72 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 21].
73 |
--------------------------------------------------------------------------------
/website/news/2019-12-03-november-2019-round-up.adoc:
--------------------------------------------------------------------------------
1 | = November 2019 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2019-12-03
6 | :image: {rootrel}news/2019-12-03-november-2019-round-up.jpeg
7 | Samuel Dionne-Riel
8 | December 3rd 2019
9 |
10 | This update is the first of a series of regular updates on the state of the
11 | project.
12 |
13 | Only changes that have been accepted and merged in Mobile NixOS are
14 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
15 | currently in-progress.
16 |
17 | === Notable changes
18 |
19 | Among the changes, and the link:https://github.com/NixOS/mobile-nixos/pulls?utf8=%E2%9C%93&q=is%3Apr+merged%3A2019-11[10 PRs merged],
20 | these changes are highlighted.
21 |
22 |
23 | ==== initrd: add fbterm modules
24 |
25 | When the new `mobile.boot.stage-1.fbterm` options are enabled, a userspace
26 | implementation of a console is started, attached to the output of tty1.
27 | As of right now, this is a read-only view of the console.
28 |
29 | This is still extremely useful on targets where the kernel-based virtual
30 | consoles will not work. As long as the framebuffer is setup, you can use the
31 | console to observe what is going on.
32 |
33 | Added in link:https://github.com/NixOS/mobile-nixos/pull/46[pull request #46] by
34 | link:https://github.com/lheckemann[@lheckemann]
35 |
36 |
37 | ==== Documentation and website framework
38 |
39 | This was briefly highlighted in the last news item, though let's describe how
40 | the documentation and website generation ticks.
41 |
42 | The generated documentation in the repository is always built
43 | using the link:https://github.com/NixOS/mobile-nixos/tree/master/doc[same exact tooling]
44 | as the website. In fact, the website is only adding files to the documentation
45 | directory to build itself.
46 |
47 | This gives us the advantage of the documentation being trivial to build locally.
48 |
49 | ```
50 | ~/.../mobile-nixos $ nix-build ./doc/
51 | these derivations will be built:
52 | /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mobile-nixos-docs.drv
53 | [...]
54 | /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mobile-nixos-docs
55 |
56 | ~/.../mobile-nixos $ ls -l result/index.html
57 | -r--r--r-- 4 root root 1541 Dec 31 1969 result/index.html
58 |
59 | ~/.../mobile-nixos/mobile-nixos-website $ xdg-open result/index.html
60 | [...]
61 | ```
62 |
63 | The documentation, minus the news items, will open in your web browser, and work
64 | just like this website. The styles, the site map, everything is generated 1:1
65 | compared to the website.
66 |
67 | The link:https://github.com/NixOS/mobile-nixos-website[mobile-nixos-website]
68 | repository holds the link:https://github.com/NixOS/mobile-nixos-website/blob/master/.github/workflows/website.yml[
69 | machinery] that updates the site, in addition to the link:https://github.com/NixOS/mobile-nixos-website/tree/master/website[news items].
70 | This is where content specific for the website is written.
71 |
72 | You may also want to subscribe to the new link:https://mobile.nixos.org/index.xml[RSS feed].
73 |
74 |
75 | ==== New ports
76 |
77 | Three new devices were merged this month.
78 |
79 | * Google Pixel XL (google-marlin) [link:https://github.com/danielfullmer[@danielfullmer]] (link:https://github.com/NixOS/mobile-nixos/pull/51[#51])
80 | * Google Pixel 2 (google-walleye) [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/50[#50])
81 | * Xiaomi A1 (xiaomi-tissot) [link:https://github.com/lheckemann[@lheckemann]] (link:https://github.com/NixOS/mobile-nixos/pull/47[#47])
82 |
83 | The Pixel devices should be trivial to adapt to their respective non-XL and XL
84 | variants.
85 |
86 |
--------------------------------------------------------------------------------
/website/news/2020-11-03-october-round-up.adoc:
--------------------------------------------------------------------------------
1 | = October 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2020-11-03-october-round-up.jpeg
5 | :header_prefers: right
6 | :special: news
7 | :docdate: 2020-11-03
8 | Samuel Dionne-Riel
9 | November 3rd 2020
10 |
11 | This update is the eleventh in a series of regular updates on the state of the
12 | project.
13 |
14 | Only changes that have been accepted and merged in Mobile NixOS are
15 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
16 | currently in-progress.
17 |
18 |
19 | === Notable changes
20 |
21 | During the month link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-10+sort%3Acreated-asc[
22 | 14 pull requests were merged].
23 |
24 | Some interesting changes were made during the month, let's look at some of
25 | them.
26 |
27 |
28 | ==== Re-done kernel builder ergonomics
29 |
30 | The goal of this change is to link:https://github.com/NixOS/mobile-nixos/pull/212[
31 | make the kernel derivations as lean as possible], relying on the builder,
32 | rather than relying on copy-pasting common patterns around.
33 |
34 | This is a change that was needed since the project was started. Though, it
35 | could not have happened much earlier than this late in the project. This is
36 | because multiple different quirky kernels needed to exist to properly show what
37 | needed to be abstracted.
38 |
39 | With this, all common patterns for quirks have been identified and put behind
40 | flags. Those flags are described in link:https://mobile.nixos.org/in-depth/kernel-builder.html[
41 | Notes about the kernel builder].
42 |
43 | End-users shouldn't see any difference, this will help people who make ports.
44 |
45 | ===== Compile kernels only once
46 |
47 | While testing the previous change, it was observed by link:https://github.com/danielfullmer[
48 | @danielfullmer] that kernel compilation happened twice for some devices.
49 |
50 | This was not a regression. Though looking at things trying to find problems you
51 | are bound to see the existing flaws!
52 |
53 | This was worked around by link:https://github.com/NixOS/mobile-nixos/pull/217[
54 | doing everything in one `make` invocation]. The end-result is that some kernel
55 | builds will finish twice as quickly!
56 |
57 |
58 | ==== Pinephone Modem support improvements
59 |
60 | Simply put, link:https://github.com/NixOS/mobile-nixos/pull/231[the modem has
61 | been verified to work with LTE data].
62 |
63 | With that said, there's more to it. End-users shouldn't have to care about a
64 | deeply-rooted `/sys` fs path to turn the modem off or on. This is why the
65 | `modem-control` service has been added. It mirrors the modem's state using
66 | `bindsTo` and `wantedBy`.
67 |
68 | With this service, the modem is better integrated with systemd, but more
69 | importantly the user can stop and start it using `systemctl`, rather than to
70 | dig for a particular less user-friendly path.
71 |
72 | Calls and SMS will be tested at a later point in time. Though it is expected
73 | that calls will require some work for the audio to work properly (a known
74 | upstream issue).
75 |
76 |
77 | ==== Other notable changes
78 |
79 | * link:https://github.com/NixOS/mobile-nixos/pull/228[#228 Boot GUI: only show relevant reboot options]
80 | * link:https://github.com/NixOS/mobile-nixos/pull/215[#215 Provide autoport in the default shell]
81 |
82 | === New ports
83 |
84 | One new device was merged this time.
85 |
86 | * link:https://mobile.nixos.org/devices/razer-cheryl2.html[Razer Phone 2 (razer-cheryl2)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/223[#223])
87 |
88 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 15].
89 |
--------------------------------------------------------------------------------
/website/news/2020-08-04-july-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = July 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2020-08-04-july-2020-round-up.jpeg
5 | :special: news
6 | :docdate: 2020-08-04
7 | Samuel Dionne-Riel
8 | August 4th 2020
9 |
10 | This update is the ninth in a series of regular updates on the state of the
11 | project.
12 |
13 | Only changes that have been accepted and merged in Mobile NixOS are
14 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
15 | currently in-progress.
16 |
17 |
18 | === Notable changes
19 |
20 | As with last month, a big part of the link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-07+sort%3Acreated-asc[
21 | 10 pull requests merged] were bug fixes or minor changes. Though some valuable
22 | work was also finished.
23 |
24 | ==== Asus Zenfone Max Plus (M1)
25 |
26 | The port for link:https://github.com/NixOS/mobile-nixos/pull/175[asus-x018d]
27 | is mainly notable for being the only alternative system to the OEM-provided
28 | Android system, with the exception to a TWRP that is using the OEM-built kernel.
29 |
30 | This means that, for the first time, Mobile NixOS this is the only alternative
31 | system for a device, including other Android-based systems.
32 |
33 | Finishing with a last note, this device has an older Mediatek SoC, compared to
34 | the other ported Mediatek device. There is not much to say, except that it was
35 | found that older Mediatek devices may exhibit a similar quirk to Qualcomm
36 | devices, where the framebuffer has to be refreshed explicitly for the display
37 | to be updated.
38 |
39 |
40 | ==== External device definitions
41 |
42 | I hesitate to openly discuss about this pull request, as it might make
43 | contributors think they should not contribute their devices back. link:https://github.com/NixOS/mobile-nixos/pull/162[#162]
44 | adds a mechanism to maintain and build external device definitions.
45 |
46 | These external definitions should only be used for devices that are not welcome
47 | to the main project. The main reason a device would not be welcome is if it is
48 | not a “Mobile device”. An example of such a device is the link:https://github.com/samueldr/mobile-nixos-extra-devices/tree/master/devices/pine64-pinebookpro[Pinebook Pro],
49 | which is a laptop. Another example would be porting to SBCs like a Raspberry Pi.
50 |
51 |
52 | ==== Updates for the boot GUI
53 |
54 | This change, link:https://github.com/NixOS/mobile-nixos/pull/189[#189], is
55 | where most if this month's development time was spent. The toolkit used for the
56 | boot GUI has been forked and adapted to serve the goal of providing a GUI for
57 | mobile devices better.
58 |
59 | As part of the changes, some minor UX (User eXperience) changes have been made,
60 | but more importantly, major changes like properly supporting mouse and touch
61 | screens in an independent manner, and providing keyboard-driven input. This
62 | also adds support to navigate the GUI with the volume keys and the power
63 | button, which is a common scheme used to provide a fall-back navigation when
64 | touchscreen support is possible.
65 |
66 | Except for the new way added to interact with the GUI, there are no major
67 | changes to how the GUI is used. Though the work is a first step to provide more
68 | in-depth options during the boot process, like tracking progress, and required
69 | user input for actions during boot like passphrase input.
70 |
71 |
72 | === New ports
73 |
74 | One new device was merged this month.
75 |
76 | * link:https://mobile.nixos.org/devices/asus-x018d.html[Asus Zenfone Max Plus (M1) (asus-x018d)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/175[#175])
77 |
78 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 13].
79 |
--------------------------------------------------------------------------------
/website/news/2020-12-01-november-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = November 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2020-12-01-november-2020-round-up.jpeg
5 | :header_prefers: left
6 | :special: news
7 | :docdate: 2020-12-01
8 | Samuel Dionne-Riel
9 | December 1st 2020
10 |
11 | This update is the twelfth in a series of regular updates on the state of the
12 | project.
13 |
14 | Only changes that have been accepted and merged in Mobile NixOS are
15 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
16 | currently in-progress.
17 |
18 |
19 | === Notable changes
20 |
21 | During the month link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-11+sort%3Acreated-asc[
22 | 13 pull requests were merged].
23 |
24 | Some major improvements landed, let's take a peek.
25 |
26 |
27 | ==== Progress in stage-1
28 |
29 | The boot splash utility link:https://github.com/NixOS/mobile-nixos/pull/233[
30 | now shows the progress of the boot]. This is done with a simple progress bar
31 | shows how much of the tasks have been handled. Long-running tasks can provide
32 | a message to show so the user knows things aren't necessarily hung.
33 |
34 | Speaking of hung tasks. Our `init` link:https://github.com/NixOS/mobile-nixos/pull/236[
35 | now detects when no tasks resolved in a given amount of time]. When this
36 | happens, the boot is being failed with, hopefully enough context in the error
37 | message to help the user.
38 |
39 | Speaking of error messages. link:https://github.com/NixOS/mobile-nixos/pull/239[
40 | Error messages are now less of a dead-end for our users]. The interface has
41 | been reviewed to put the text message front and center. Previously we were
42 | showing a big image because we didn't even have text rendering at this state.
43 | Now that we do, let's use it.
44 |
45 | In addition to that, the error applet is now somewhat interactive. There is
46 | now a cancellable countdown; when the time is elapsed the kernel is crashed,
47 | which allows the platform to do its default action (generally reboot). When
48 | canceled, the user can select different options, either through the touch
49 | screen, using a mouse, a keyboard or using volume-keys navigation.
50 |
51 | The user can select to power off their device, which default action (so mashing
52 | the power key will power off the device). Depending on whether the platform
53 | supports it, the usual different reboot options are given.
54 |
55 |
56 | ==== Encrypted root filesystem support
57 |
58 | Thought we were done with _stage-1_ updates? No! What if it link:https://github.com/NixOS/mobile-nixos/pull/234[
59 | was now able to decrypt LUKS encrypted filesystems]? Well it can! For now,
60 | this is mainly the _plumbing_ to make it all work. Getting a LUKS encrypted
61 | filesystem on your device is left as an exercise to the reader.
62 |
63 | Our _stage-1_ can now ask for a passphrase during the early boot process phases.
64 | This is done through an on-screen keyboard. For the time being the keyboard is
65 | hard-coded to be the US QWERTY layout, and this is bad. Further improvements
66 | are planned, but out of scope for releasing the feature. The on-screen keyboard
67 | will be necessary for other upcoming planned features.
68 |
69 | While using an on-screen keyboard is useful when you don't have a physical
70 | keyboard, link:https://github.com/NixOS/mobile-nixos/pull/242[physical
71 | keyboards also can be used with that interface]. Similarly to the previous
72 | note, it is hardcoded to be the US QWERTY keyboard, but the tooling chosen to
73 | drive the keyboard mapping (libxkbcommon) will give us the ability to configure
74 | *both* the on-screen and physical keyboard.
75 |
76 |
77 | === Ports
78 |
79 | No new ports were made in November. There is still a link:https://mobile.nixos.org/devices/index.html[total of 15 devices] you can build for.
80 |
--------------------------------------------------------------------------------
/website/news/2021-01-05-december-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = December 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2021-01-05
6 | Samuel Dionne-Riel
7 | January 5th 2021
8 |
9 | This update is the thirteenth in a series of regular updates on the state of the
10 | project.
11 |
12 | Only changes that have been accepted and merged in Mobile NixOS are
13 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
14 | currently in-progress.
15 |
16 |
17 | === Notable changes
18 |
19 | During the month link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-12+sort%3Acreated-asc[
20 | 12 pull requests were merged].
21 |
22 | Some _interesting_ improvements landed, let's dive in.
23 |
24 |
25 | ==== stage-0: boot in generation kernel+initrd
26 |
27 | One of the biggest flaw with the approach Mobile NixOS takes with the boot flow
28 | is that it completely ignores the system generation's kernel and stage-1 image.
29 | In turn, this reduces some of the benefits from NixOS, by reducing the coherency
30 | of the running system; the kernel and stage-1 are managed out of band.
31 |
32 | With link:https://github.com/NixOS/mobile-nixos/pull/262[the changes from #262],
33 | devices can opt-in to a _stage-0_ scheme. A _stage-0_ image is the same as a
34 | stage-1 image, except that it will use `kexec` to boot into the generation's
35 | kernel and stage-1 image.
36 |
37 | Devices, and their kernels, need to support `kexec`. This is not a given for
38 | vendor kernels. At the time being, none of the Android-based devices (all using
39 | the vendor kernels) can use this feature. On the bright side, the Pinephone has
40 | been verified to work well. Additionally, UEFI x86_64 based devices, too, can
41 | use the stage-0 scheme.
42 |
43 |
44 | ==== Device-specific changes
45 |
46 | ===== pine64-pinephone: Crust firmware support
47 |
48 | With the link:https://github.com/NixOS/nixpkgs/pull/93368[addition of the or1k
49 | toolchain to Nixpkgs], link:https://github.com/noneucat[@noneucat] was able to
50 | finish the link:https://github.com/NixOS/mobile-nixos/pull/188[pull request
51 | adding _Crust_ support to the Pinephone]. Details about _Crust_ can be found
52 | link:https://github.com/crust-firmware/crust[on their project page].
53 |
54 | To use U-Boot with _Crust_, you will need to build it, then install it manually
55 | on your boot media. (A helper to upgrade the firmware is planned for the
56 | future.)
57 |
58 | Not related to _Crust_, link:https://github.com/NixOS/mobile-nixos/pull/258[the
59 | usual kernel upgrade for the Pinephone] has been made.
60 |
61 | ===== Introduction of uefi-x86_64
62 |
63 | link:https://github.com/NixOS/mobile-nixos/pull/253[The introduction of the
64 | Generic UEFI build (x86_64)] "device" may seem odd. It is meant to be used on a
65 | standard computer. But a standard computer is not a mobile device.
66 |
67 | Really, this is a _dogfooding_ measure. With this change, it is now possible
68 | for me to replace the usual NixOS stage-1 from my personal machines, ensuring I
69 | take the stability of Mobile NixOS seriously!
70 |
71 | Additionally, this should allow supporting some x86_64 Windows-based tablets
72 | with the Mobile NixOS toolchain. While not required, the touchscreen-first boot
73 | flow will be helpful for those without a keyboard.
74 |
75 | These changes also help exercising the foundations, by creating a new system
76 | type.
77 |
78 | ===== Removal of qemu-x86_64
79 |
80 | As part of the changes for link:https://github.com/NixOS/mobile-nixos/pull/253[
81 | #253], the `qemu-x86_64` device has been removed. Instead, a more generic
82 | device has been added, which by default builds images that can boot on standard
83 | UEFI, and which in turn provide the `build.vm` output to boot _that_ generic
84 | UEFI image with QEMU, using Tianocore.
85 |
86 |
87 | === Ports
88 |
89 | Two new devices were merged in December, one was removed.
90 |
91 | * link:https://mobile.nixos.org/devices/uefi-x86_64.html[Generic UEFI build (x86_64) (uefi-x86_64)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/253[#253])
92 | * link:https://mobile.nixos.org/devices/motorola-surfna.html[Motorola Moto E6 (motorola-surfna)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/263[#263])
93 |
94 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 16].
95 |
--------------------------------------------------------------------------------
/website/news/2020-05-06-april-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = April 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2020-05-06
6 | :image: {rootrel}news/2020-05-06-april-2020-round-up.jpeg
7 | :header_prefers: right
8 | Samuel Dionne-Riel
9 | May 6th 2020
10 |
11 | This update is the sixth in a series of regular updates on the state of the
12 | project.
13 |
14 | Only changes that have been accepted and merged in Mobile NixOS are
15 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
16 | currently in-progress.
17 |
18 | === Notable changes
19 |
20 | link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-04+sort%3Acreated-asc[11 PRs were merged]
21 | during the month. Not an exciting month with fun and visible progress, but
22 | let's point out interesting changes
23 |
24 | ==== Device specific website pages
25 |
26 | The _link:https://mobile.nixos.org/devices/[Devices List]_ section is now
27 | formatted as a table, and links to one page per device.
28 |
29 | This page can contain device-specific notes, and generally contains generic
30 | instructions depending on the device type. The side-bar uses generated
31 | content, but the page will use the `README.adoc` file when found in the device
32 | directory.
33 |
34 | All of this is part of link:https://github.com/NixOS/mobile-nixos/pull/120[PR #120].
35 |
36 | ==== Supported way to include from system configuration
37 |
38 | In link:https://github.com/NixOS/mobile-nixos/pull/123[PR #123] a supported way
39 | to include a device configuration to the system configuration was added. The
40 | link:https://mobile.nixos.org/getting-started.html[Getting Started] page
41 | explains the details.
42 |
43 | This is useful when combined with the next higlighted changes. The device
44 | specific configuration doesn't have to be handled by the end-user, the Mobile
45 | NixOS configuration handles it.
46 |
47 | ==== WCNSS WLAN _quirk_
48 |
49 | link:https://github.com/NixOS/mobile-nixos/pull/126[PR #126] adds support for
50 | WCNSS WLAN in Mobile NixOS, while enabling it for the only device that supports
51 | it.
52 |
53 | This is the simplest Wi-Fi setup for Qualcomm-based hardware. Sadly, for other
54 | devices it's much more involved.
55 |
56 | Though, this does mean that we now have Wi-Fi support for one more device!
57 |
58 | *Bonus change*: Buried in that same PR, we now use `boot.initrd.enable = false`
59 | rather than using `isContainer`. This fixes a couple of weird and annoying
60 | issues with the running system.
61 |
62 | ==== Device-specific polishing
63 |
64 | * link:https://github.com/NixOS/mobile-nixos/pull/126[PR #126]
65 | * link:https://github.com/NixOS/mobile-nixos/pull/128[PR #128]
66 |
67 | These start implementing some _polishing_, in what I hope becomes the gold
68 | standard for device ports.
69 |
70 | First, we configure the LEDs so the Linux kernel controls it during
71 | boot (link:https://github.com/NixOS/mobile-nixos/blob/6be1a3bf0ca7d4f956b7dab4bab932071c402026/devices/asus-z00t/kernel/0002-ze550kl-Green-LED-now-defaults-to-on.patch#L21-L30[z00t],
72 | link:https://github.com/NixOS/mobile-nixos/blob/6be1a3bf0ca7d4f956b7dab4bab932071c402026/devices/oneplus-oneplus3/kernel/0001-oneplus3-Configure-LEDs-using-kernel-triggers.patch#L38-L41[oneplus3]).
73 | This provides a tangible proof to the end-user that the kernel is
74 | currently in control and running.
75 |
76 | Then, for `asus-z00t`, some kernel cleanup patches have been added. The first
77 | kind of change is to remove _idiotic_ behaviour from the OEM kernel, like
78 | link:https://github.com/samueldr-wip/mobile-nixos-wip/blob/640f2d4c794c2066797a31157c324c437b200250/devices/asus-z00t/kernel/0001-firmware-class-Remove-rude-firmware-path-trampling.patch[
79 | trampling over the kernel module load path]. The second is more subtle, but
80 | welcomed when reading `dmesg`: reduce the useless logging present in some
81 | modules. The amount of logging is useless.
82 |
83 | Finally, for `oneplus-oneplus3`, there's a link:https://github.com/NixOS/mobile-nixos/commit/c7a121fbaeedfd8e493127355588b7a511ad393d[
84 | _quirk_ to fix USB OTG support] during boot. I don't think any other device
85 | will need it, from a quick glance, but it's still a good example of how to
86 | implement a _quirk_.
87 |
88 | === Ports
89 |
90 | No new port were made in April. There is still a
91 | link:https://mobile.nixos.org/devices/index.html[total of 11 devices] you can
92 | build for.
93 |
--------------------------------------------------------------------------------
/website/news/2020-06-02-may-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = May 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2020-05-06
6 | Samuel Dionne-Riel
7 | June 2nd 2020
8 |
9 | This update is the seventh in a series of regular updates on the state of the
10 | project.
11 |
12 | Only changes that have been accepted and merged in Mobile NixOS are
13 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
14 | currently in-progress.
15 |
16 | === Notable changes
17 |
18 | link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-05+sort%3Acreated-asc[11 PRs were merged]
19 | during the month. Changes are mostly cleanup and documentation related.
20 |
21 | ==== Documentation changes
22 |
23 | The biggest change is the addition of link:https://mobile.nixos.org/in-depth/devices.html[
24 | an overview of the terms used to define a device] (link:https://github.com/NixOS/mobile-nixos/pull/148[#148]).
25 | This documentation section should help better understand how devices are composed.
26 |
27 | The link:https://github.com/NixOS/mobile-nixos/blob/master/README.adoc[README] (link:https://github.com/NixOS/mobile-nixos/pull/138[#138]) as
28 | shown on GitHub has been reviewed to better guide users and contributors around
29 | the ecosystem, borrowing the organization of the main Nixpkgs README. Though the
30 | main reason for this change is that the README started to diverge with the
31 | documentation. Removing all examples and referring to the actual documentation
32 | files reduces the burden of maintaining multiple documentation fragments.
33 |
34 |
35 | ==== Code and architecture cleanup
36 |
37 | Through some of the pull requests, a bunch of either dead, or ossified code was
38 | found and removed. The main user-facing change is the link:https://github.com/NixOS/mobile-nixos/pull/152[removal of `device.info`].
39 |
40 | The `device.info` option was a mixed bag of misshapen, undefined options that were
41 | at the foundation of all device definitions. The replacement are discrete well-defined
42 | options that are defined in understandable categories. Systems define options that
43 | they use, making it easier to understand why an option is defined.
44 |
45 | The main consequence of that change is that the current work-in-progress ports
46 | will need to be reviewed to use the new options.
47 |
48 | As part of link:https://github.com/NixOS/mobile-nixos/pull/155[#155], additional
49 | cleanup was made in
50 | link:https://github.com/NixOS/mobile-nixos/pull/155/commits/09fed68bcf88a28081e90cd3f593cb182e11f814[the]
51 | link:https://github.com/NixOS/mobile-nixos/pull/155/commits/7ee81a9cadcc6f476332e4b656078654db2e24c5[first]
52 | link:https://github.com/NixOS/mobile-nixos/pull/155/commits/22eddafd91f6ba6f6b92f3ae429b8f1f0aaa3137[few]
53 | link:https://github.com/NixOS/mobile-nixos/pull/155/commits/30ff772fbd7fa5d0ff2b0e38299d802a285b46f9[commits].
54 |
55 |
56 | ==== New `examples/hello` system
57 |
58 | While technically a new feature, link:https://github.com/NixOS/mobile-nixos/pull/155[
59 | the new examples/hello system (#155)] is more of a first-user-experience "bugfix"
60 | than a useful new feature.
61 |
62 | This introduces a new example system that can be cross-compiled entirely, *and
63 | shows an interface to the end-user*. This helps fix the biggest complaint about
64 | the project: the default build looks as if the system has stopped responding.
65 |
66 | Though this is not actually fixing that complaint, it does not replace the default
67 | build output. Users making a new port, or testing an existing port, will rather
68 | link:https://github.com/NixOS/mobile-nixos/blob/c0c93961cfe6c373d200103f1df4911f20fa55a8/default.nix#L99-L102[be encouraged]
69 | to first try building and using this example to confirm the port works.
70 |
71 | ```
72 | $ nix-build examples/hello --argstr device DEVICE-NAME -A build.default
73 | ```
74 |
75 | A planned addition to this feature will be more features to test and validate support
76 | for different subsystems of the device. Currently this only tests the touchscreen
77 | (through requiring it for navigation) and validates the display shows the colours
78 | appropriately.
79 |
80 |
81 | ==== Additional highlights
82 |
83 | * link:https://github.com/NixOS/mobile-nixos/pull/141[#141 initrd-usb: provide modules required for gadgets in initrd],
84 | which handles modules in modular mainline-based kernels and stage-1.
85 |
86 |
87 | === Ports
88 |
89 | No new port were made in May. There is still a
90 | link:https://mobile.nixos.org/devices/index.html[total of 11 devices] you can
91 | build for.
92 |
--------------------------------------------------------------------------------
/website/news/2020-04-07-march-2020-round-up.adoc:
--------------------------------------------------------------------------------
1 | = March 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2020-04-07
6 | :image: {rootrel}news/2020-04-07-march-2020-round-up.jpeg
7 | Samuel Dionne-Riel
8 | April 7th 2020
9 |
10 | This update is the fifth in a series of regular updates on the state of the
11 | project.
12 |
13 | Only changes that have been accepted and merged in Mobile NixOS are
14 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
15 | currently in-progress.
16 |
17 | === Notable changes
18 |
19 | link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-03+sort%3Acreated-asc[17 PRs were merged]
20 | during the month. (The link says 18, but one of them was, to me, late in
21 | February, read the previous news item).
22 |
23 | Let's look at some of these.
24 |
25 | ==== Pine64 Pinephone “Braveheart”
26 |
27 | This was teased about on the link:https://twitter.com/samueldr/status/1237478576443854848[
28 | author's twitter account]. link:https://www.pine64.org/pinephone/[The inexpensive
29 | Pinephone] is the latest new device added to Mobile NixOS.
30 |
31 | This brings a bit more than only a new device. This is the fourth system type
32 | added to Mobile NixOS. The added system type (U-Boot) in theory will give us
33 | the ability to support any U-Boot-based system in a common way. In practice the
34 | still unmerged and WIP link:https://github.com/NixOS/mobile-nixos/pull/94[#94]
35 | shows how this is true by using U-Boot with another Pine64 device, the
36 | _Pinebook Pro_.
37 |
38 | A nice thing that was verified again with this new device port is that the
39 | stage-2 image (the rootfs, the system.img) is indeed universal. It is using the
40 | same AArch64 build of the system image as Android-based devices, and
41 | Depthcharge-based devices.
42 |
43 | Our build for the Pinephone relies on the link:https://gitlab.com/pine64-org/linux[
44 | downstream kernel from the Pine64 community], with only one added patch.
45 | The same is done for the U-Boot build.
46 |
47 | The added patches are user-experience-focused patches that are using the RGB
48 | LED of the phone to show the boot status.
49 |
50 | Other than that, the hardware support is not complete, but it is supported at
51 | the same level as other devices, plus Wi-Fi working.
52 |
53 | See link:https://github.com/NixOS/mobile-nixos/pull/96[PR #96] for all the details.
54 |
55 | ==== Hydra builds
56 |
57 | This is not entirely an in-repository change. There's link:https://github.com/NixOS/mobile-nixos/pull/97[#97]
58 | and link:https://github.com/NixOS/mobile-nixos/pull/113[#133] that are relevant
59 | to this. The link:https://hydra.nixos.org/jobset/mobile-nixos/unstable[mobile-nixos:unstable jobset]
60 | on Hydra is the other part of the puzzle.
61 |
62 | What this gives us is automatic continuous builds of Mobile NixOS against the
63 | `nixos-unstable` NixOS channel. From this, we can track changes that break the
64 | Mobile NixOS builds, and track internal breakage to some parts of Mobile NixOS.
65 |
66 | This is not even the best part. As can be seen in link:https://github.com/NixOS/mobile-nixos/pull/113[#133],
67 | we are now delivering up-to-date stage-2 rootfs, which allows end-users without
68 | the required hardware to link:https://mobile.nixos.org/getting-started.html#_using_a_pre_built_system_img[
69 | bootstrap themselves using a pre-built image]. The requirement to have a native
70 | AArch64 machine to build the system image is no more. While not ideal, users
71 | could make use of their phone to build a customized image, or simply, do a
72 | `nixos-rebuild` on it.
73 |
74 | It already paid its worth in gold, as by the time this was developed, two
75 | regressions were spotted and quickly fixed. And furthermore, I hope that the
76 | exercising of the cross-compilation framework will help the NixOS developers
77 | working on making cross-compilation better in NixOS.
78 |
79 | ==== Other mentions
80 |
81 | * Using GitHub Actions, link:https://github.com/NixOS/mobile-nixos/pull/112[#112]
82 | checks new PRs for some simple breakage.
83 |
84 | * Developers can now use `nconfig` to configure their kernel using the “porcelain”
85 | `bin/menuconfig`, as added in link:https://github.com/NixOS/mobile-nixos/pull/109[#109].
86 |
87 | === Ports
88 |
89 | One new device has been merged during March.
90 |
91 | * Pine64 Pinephone “Braveheart” (pine64-pinephone-braveheart) [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/96[#96])
92 |
93 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 11].
94 |
--------------------------------------------------------------------------------
/website/news/2020-10-06-august-september-round-up.adoc:
--------------------------------------------------------------------------------
1 | = August and September 2020 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2020-10-06-august-september-round-up.jpeg
5 | :special: news
6 | :docdate: 2020-10-06
7 | Samuel Dionne-Riel
8 | October 6th 2020
9 |
10 | This update is the tenth in a series of regular updates on the state of the
11 | project.
12 |
13 | Only changes that have been accepted and merged in Mobile NixOS are
14 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
15 | currently in-progress.
16 |
17 |
18 | === Notable changes
19 |
20 | As with the last update, a big part of the link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020-08+merged%3A2020-09+sort%3Acreated-asc[
21 | 10 pull requests merged] were bug fixes or minor changes.
22 |
23 | Here's a quick look at some of the nicer things achieved.
24 |
25 |
26 | ==== Forced kernel configuration normalization
27 |
28 | The `kernel-builder` infrastructure now link:https://github.com/NixOS/mobile-nixos/pull/204[
29 | forces the configuration file used in its build] to be normalized.
30 |
31 | What is normalization? Simply put, it's about updating the kernel configuration
32 | file so all of the options represent the values set in the current kernel build.
33 |
34 | This is a somewhat breaking change, as it forces kernel configurations to be
35 | kept up to date even if no changes were made by the maintainer. Though this
36 | makes the final build somewhat more declarative, as options removed and new
37 | options will be reflected in the kernel configuration in the repository.
38 |
39 |
40 | ==== Autoporter
41 |
42 | The new link:https://github.com/mobile-nixos/autoport[Mobile NixOS Autoporter]
43 | project is an experimental tooling intended to expedite the first step in
44 | porting to a new device.
45 |
46 | In a few words, it finds as many facts about a given device as it can. The
47 | current implementation uses pre-expanded factory images from OEM, but link:https://github.com/mobile-nixos/autoport/issues/4[
48 | plans are] link:https://github.com/mobile-nixos/autoport/issues/5[in the work]
49 | to work from files the user provide instead or in addition of.
50 |
51 | This enables the porter-developer to start from known true values for the
52 | device, rather than needing them to find out those values. The more valuable
53 | ones are the subtle ones, like the USB gadget modes, or system as root.
54 |
55 | It does not provide a complete skeleton yet. Mainly for now it's missing the
56 | kernel derivation. Though we might be able to provide link:https://github.com/mobile-nixos/autoport/issues/7[
57 | likely source locations] depending on some factors.
58 |
59 | All of this is not theoretical. We already have one port done through following
60 | this process! Look at the pull request link:https://github.com/NixOS/mobile-nixos/pull/205[#205]
61 | where the commits also tries to show the work that was needed to go from the
62 | skeleton files to a working port.
63 |
64 | Note that this port was made easier by the presence of another Snapdragon 660
65 | port existing. Many quirks end up working similarly between devices on the same
66 | base platform.
67 |
68 | Hopefully this will help some of you take the plunge into trying to make a new
69 | port! Though note that this does not replace the still non-existent
70 | documentation about porting guidelines. It might still not be trivial.
71 |
72 |
73 | ==== Other notable changes
74 |
75 | * link:https://github.com/NixOS/mobile-nixos/pull/193[#193 pine64-pinephone-braveheart: August 2020 updates]
76 |
77 | Making `motorola-addison` much more usable:
78 |
79 | * link:https://github.com/NixOS/mobile-nixos/pull/195[#195 initrd: Make compression method an option]
80 | * link:https://github.com/NixOS/mobile-nixos/pull/196[#196 motorola-addison: Build firmware and enable wcnss]
81 |
82 |
83 | === New ports
84 |
85 | One new device was merged this time.
86 |
87 | * link:https://mobile.nixos.org/devices/sony-pioneer.html[Sony Xperia XA2 (sony-pioneer)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/205[#205])
88 |
89 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 14].
90 |
91 |
92 | === Closing words
93 |
94 | The last month's update was skipped due to the lower amount of work being
95 | complete, the main contributor (me, samueldr) was tied-up working on
96 | implementing the link:https://nixos.org/[NixOS.org redesign]. Fear not, it's
97 | not lack of motivation, but temporary engagements that slowed things down. For
98 | the time being this project is still my main focus, and I hope it can stay for
99 | longer.
100 |
--------------------------------------------------------------------------------
/website/news/2021-03-02-february-2021-round-up.adoc:
--------------------------------------------------------------------------------
1 | = February 2021 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2021-03-02-february-2021-round-up.jpeg
5 | :header_prefers: center
6 | :special: news
7 | :docdate: 2021-03-02
8 | Samuel Dionne-Riel
9 | March 2nd 2021
10 |
11 | This update is the fifteenth in a series of regular updates on the state of the
12 | project.
13 |
14 | Only changes that have been accepted and merged in Mobile NixOS are
15 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
16 | currently in-progress.
17 |
18 |
19 | === Notable changes
20 |
21 | During the month link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2021-02+sort%3Acreated-asc[
22 | 18 pull requests were merged].
23 |
24 | Compared to the last month, they're more subtle changes.
25 |
26 |
27 | ==== More hermetic evaluation
28 |
29 | This started off the work from link:https://github.com/eamsden[@eamsden], where
30 | uses of `` were removed almost everywhere in link:https://github.com/NixOS/mobile-nixos/pull/238[#238].
31 |
32 | With the changes, the value `` is now used only at one location, at
33 | the start of the evaluation, in a way that can be overridden easily if needed.
34 |
35 | This means that evaluation now works fine without a `NIX_PATH`. This is useful
36 | to allow users of Nix flakes to use the project.
37 |
38 | Similar changes were made in link:https://github.com/NixOS/mobile-nixos/pull/310[#310]
39 | to rely on a single `` value for `release.nix` and example
40 | configuration evaluations.
41 |
42 |
43 | ==== Finalize stage-0
44 |
45 | When link:https://github.com/NixOS/mobile-nixos/pull/262[#262] was merged in
46 | December, it was done so with two main features missing.
47 |
48 | Time was taken to link:https://github.com/NixOS/mobile-nixos/pull/300[finish
49 | the boot features for stage-0 in #300].
50 |
51 | When a device supports _stage-0_ boot, a new toggle is shown in the generations
52 | list allowing the user to skip rebooting into the generation's kernel.
53 |
54 | When booting a generation, the _device tree_ built from the same kernel source
55 | tree is now used. The pull request itself contains technical details. This was
56 | less trivial than expected.
57 |
58 |
59 | ==== armv7 works again
60 |
61 | Using armv7 with Nixpkgs or NixOS is not always easy. There is no binary cache,
62 | and cross-compilation is as YMMV as it is for AArch64.
63 |
64 | This is the reason why armv7 Mobile NixOS devices haven't seen much work done
65 | and things slowly started not working.
66 |
67 | With link:https://github.com/NixOS/mobile-nixos/pull/306[#306] time was taken
68 | to ensure contributors with armv7 devices wouldn't be left with hard to debug
69 | issues from Mobile NixOS itself.
70 |
71 | With this work finally taken care of, there is a recent known good starting
72 | point to use for armv7 devices.
73 |
74 | A few recent WIP device ports were made on top of these changes. Stay tuned as
75 | they may become supported devices at some point in the future.
76 |
77 | * link:https://github.com/NixOS/mobile-nixos/pull/307[#307 asus-sparrow: init]
78 | * link:https://github.com/NixOS/mobile-nixos/pull/311[#311 amazon-austin: init]
79 |
80 |
81 | ==== Android Flashable Zips
82 |
83 | With link:https://github.com/NixOS/mobile-nixos/pull/320[#320, Android flashable
84 | zip support] was added to Mobile NixOS. This is used to produce `.zip` files
85 | that can be installed to the devices using the mechanism commonly used to apply
86 | OTA updates in Android.
87 |
88 | Why would this new flashing method be needed or desired?
89 |
90 | First, it is more universal than `fastboot`, as some OEMs implement alternative
91 | flashing modes in their devices (e.g. Odin for Samsung).
92 |
93 | Then, some devices (e.g. `oneplus-oneplus3`) have problematic fastboot flash
94 | behaviours when flashing to the `userdata` partition. Some devices (e.g.
95 | `amazon-austin`) need to apply some out-of-band "fixes" to the boot images,
96 | which happens for free when using a flashable zip.
97 |
98 | With that said, all methods to flash the system to the device should produce
99 | the same outcome in most cases. As long as your device boots fine, there is no
100 | reason to prefer one or the other flashing method.
101 |
102 |
103 | ==== Device-specific changes
104 |
105 | ===== Wi-Fi support for Pixel XL
106 |
107 | Following last month's updates, link:https://github.com/danielfullmer[
108 | @danielfullmer] made the required changes to
109 | link:https://github.com/NixOS/mobile-nixos/pull/295[enable Wi-Fi for
110 | `google-marlin` (#295)].
111 |
112 |
113 | === Ports
114 |
115 | No new port were made in February. There is still a
116 | link:https://mobile.nixos.org/devices/index.html[total of 17 devices] you can
117 | build for.
118 |
--------------------------------------------------------------------------------
/website/news/2021-10-05-august-september-round-up.adoc:
--------------------------------------------------------------------------------
1 | = August and September 2021 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2021-10-05
6 | Samuel Dionne-Riel
7 | October 5th 2021
8 |
9 | This update is the nineteenth in a series of regular updates on the state of
10 | the project.
11 |
12 | Only changes that have been accepted and merged in Mobile NixOS are
13 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
14 | currently in-progress.
15 |
16 |
17 | === Notable changes
18 |
19 | During the two months link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2021-08+merged%3A2021-09+sort%3Acreated-asc+[
20 | 11 pull requests were merged].
21 |
22 | This report is not a report of flashy new features. Foundational work to make
23 | it possible to finish work on flashy new features had to be made.
24 |
25 | ==== Validated kernel configurations
26 |
27 | One of the hardest tasks with doing a port, whether it's your first or your
28 | tenth, is figuring out the kernel configuration options that needs to be set,
29 | and those that should not be set.
30 |
31 | With the link:https://github.com/NixOS/mobile-nixos/pull/410[changes in #410],
32 | it is now entirely automated and part of both the _normalization_ step, and the
33 | usual build steps.
34 |
35 | It means that when you _normalize_ a kernel configuration with the tooling, the
36 | options that are required to be set or unset are set or unset accordingly
37 | automatically for the developer. Since it is also validated at build time, it
38 | means that any changes in the configurations that has not been handled by the
39 | maintainer will cause an obvious build failure with appropriate error messages.
40 |
41 | Hopefully this means that future ports are this much more trivial.
42 |
43 |
44 | ==== Rewritten early user interface bindings
45 |
46 | While working on an upcoming feature requiring further use of the early user
47 | interface for Mobile NixOS, it was found that the FFI bindings for them were
48 | a dead-end.
49 |
50 | These bindings worked seemingly well enough, but had issues. The more easily
51 | observable issue was the lack of proper ownership tracking for the FFI object,
52 | which meant that anything made through the mruby bindings needed to be tracked
53 | manually or else garbage collection would free up resources it shouldn't have
54 | freed.
55 |
56 | The workarounds seemed enough. They were not, when tested against more and
57 | more complex applications. Further causing issues, the FFI bindings were
58 | basically not debuggable. Whenever a crash happened, it crashed way too late to
59 | allow debugging the root cause of the issues.
60 |
61 | With these issues in mind, link:https://github.com/NixOS/mobile-nixos/pull/417[
62 | I circled back to the approach tentatively used initially, and generated native
63 | code bindings for the library]. But this time, with a slight twist. I already
64 | had a list of desired bindings with the FFI bindings. So I used the same API as
65 | the FFI bindings used. In the end, this rewrite needed some light correctness
66 | fixes outside of the bindings, but was almost entirely a drop-in replacement.
67 |
68 | And this time, it can be debugged. I had to do so to figure out a few teething
69 | issues. Additionally, the untraceable segfaults I had with the new usage has
70 | simply vanished. It wasn't as trivial as a garbage collection issue, as
71 | disabling the garbage collection didn't solve any of the issues.
72 |
73 | With these exhausting changes, I can finally put my efforts towards actually
74 | authoring the new feature!
75 |
76 | ==== Developer experience updates
77 |
78 | A somewhat major change is that link:https://github.com/NixOS/mobile-nixos/pull/405[
79 | the default in-repository builds now use a pinned Nixpkgs revision]. This
80 | should help providing a known working starting point for end-users. The pin
81 | will be manually moved as time goes on to known good revisions with good Hydra
82 | coverage.
83 |
84 | Mobile NixOS outputs link:https://github.com/NixOS/mobile-nixos/pull/406[are
85 | now presented in the `outputs` attribute]. There is a backward compatibility
86 | layer added to ensure previous incantations still work, but it will be removed
87 | at some point in the future.
88 |
89 | Image builds link:https://github.com/NixOS/mobile-nixos/pull/375[are now faster
90 | under some conditions].
91 |
92 |
93 | === Nixpkgs work
94 |
95 | With link:https://github.com/NixOS/nixpkgs/pull/125156[Plasma Mobile Gear]
96 | approved, and soon merged, link:https://github.com/NixOS/nixpkgs/pull/130151[its
97 | upgrade a shoe-in], Plasma Mobile support in Nixpkgs is shaping up.
98 |
99 | As for the desktop environment, link:https://github.com/NixOS/nixpkgs/pull/121345[
100 | the additin of Plasma Mobile proper] is soon good to go. The link:https://github.com/NixOS/nixpkgs/issues/118650[
101 | main issues] regarding Plasma with Wayland support fixed the last blocker
102 | issues for its inclusion.
103 |
104 |
105 | === Ports
106 |
107 | No new port were made in during this span. There is still a
108 | link:https://mobile.nixos.org/devices/index.html[total of 21 devices] you can
109 | build for.
110 |
--------------------------------------------------------------------------------
/website/news/2021-02-02-january-2021-round-up.adoc:
--------------------------------------------------------------------------------
1 | = January 2021 round-up
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :image: {rootrel}news/2021-02-02-january-2021-round-up.jpeg
5 | :header_prefers: left
6 | :special: news
7 | :docdate: 2021-02-02
8 | Samuel Dionne-Riel
9 | February 2nd 2021
10 |
11 | This update is the fourteenth in a series of regular updates on the state of the
12 | project.
13 |
14 | Only changes that have been accepted and merged in Mobile NixOS are
15 | chronicled here. There's always link:https://github.com/NixOS/mobile-nixos/pulls[more work]
16 | currently in-progress.
17 |
18 |
19 | === Notable changes
20 |
21 | During the month link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2021-01+sort%3Acreated-asc[
22 | 18 pull requests were merged].
23 |
24 | Buckle-up, this month there's a lot to say.
25 |
26 | ==== Go go all USB gadget modes
27 |
28 | A couple changes this month are related to USB gadget mode. This is the name of
29 | the feature allowing a device (your cellphone) to be used as a USB device
30 | on your computer.
31 |
32 | ===== Target disk mode
33 |
34 | This is not a fresh feature, the link:https://github.com/NixOS/mobile-nixos/pull/110[
35 | implementation pull request] was opened in March 2020.
36 |
37 | Once a device is booted with this example system, the device's internal storage
38 | is made available over USB, as if it was a USB mass storage device.
39 |
40 | The feature is limited to select devices, as it can be easily misused. The
41 | `pine64-pinephone` and `asus-dumo` devices are configured for this feature.
42 | It is limited as the block device to export has to be configured on a
43 | per-device basis. A further reason is the following:
44 |
45 | [WARNING]
46 | ====
47 | Target disk mode *should not* be used to export the full drive of Android-based
48 | devices as it _becomes trivial to brick a device_. Some of their partitions
49 | should not be touched.
50 |
51 | This is because for most Android-based devices, part of their basic firmware
52 | needed for booting is found on the main block device. Erasing or modifying the
53 | wrong partition would be like erasing the BIOS from your computer.
54 | ====
55 |
56 | ===== Broader ADB support
57 |
58 | Time was taken to understand why _ADB_ didn't work on newer Android-based
59 | devices. It was initially suspected that the ADB daemon was incompatible with
60 | GadgetFS and FunctionFS.
61 |
62 | It was much more trivial. link:https://www.kernel.org/doc/html/latest/usb/functionfs.html[
63 | The _FunctionFS_ feature of the kernel] needed the daemon to be started at a
64 | specific moment during the configuration, rather than at any time after.
65 |
66 | With link:https://github.com/NixOS/mobile-nixos/pull/290[the fixes in #290] any
67 | device with GadgetFS can use ADB.
68 |
69 | This means inspecting newer Android-based devices is easier, as it will most
70 | likely work if the device boots with a vendor kernel.
71 |
72 | Using ADB is not limited to Android-based devices. The `asus-dumo` device is
73 | confirmed to be able to also use ADB. It is now the recommended basic method
74 | for getting a shell into a Mobile NixOS device, as it is easier to use than
75 | `rndis`.
76 |
77 |
78 | ==== LVGUI updates
79 |
80 | A few updates were link:https://github.com/NixOS/mobile-nixos/pull/285[
81 | bundled together in #285]. A few improvements to the early boot toolkit.
82 |
83 | ===== DRM support
84 |
85 | Our toolkit used for user interfaces during early boot can now use DRM for
86 | rendering, in addition to fbdev.
87 |
88 | The old framebuffer support is still present. In fact, compiling with DRM
89 | support implicitly also builds with fbdev support, as it will fall back to
90 | fbdev if DRM cannot be used. This allows one unique build to be used across
91 | devices with and without DRM support.
92 |
93 | Adding support for DRM gives us an additional method of rendering. Some vendor
94 | kernels have broken fbdev implementations, like the SDM845 found in the
95 | `razer-cheryl2` phone. With this change, early boot can be used on this device.
96 |
97 | DRM is also the "future" of rendering on Linux. Well, it is the present of
98 | rendering on Linux. This is why it is now the preferred method to render the
99 | interface, when possible.
100 |
101 | ===== Libinput support
102 |
103 | The evdev-based input driver has been replaced with a libinput driver. Libinput
104 | is the current recommended method for handling input with Linux. Evdev being
105 | one of the primitive constructs it uses.
106 |
107 | Compared to the previous evdev driver used, there should be no differences
108 | with basic behaviour. Mainly, this was a clean-up, allowing us to remove some
109 | hacks that were used to identify device types with evdev. Libinput
110 | intrinsically knows more about the device than evdev did.
111 |
112 |
113 | ==== Device-specific changes
114 |
115 | ===== Wi-Fi support for qcacld-2.0 devices
116 |
117 | The requirements for devices with `qcacld-2.0` Wi-Fi hardware have been
118 | identified.
119 |
120 | Support has been added in the following pull requests for the following devices:
121 |
122 | * link:https://github.com/NixOS/mobile-nixos/pull/280[#280 samsung-a5y17lte]
123 | * link:https://github.com/NixOS/mobile-nixos/pull/289[#289 oneplus-oneplus3]
124 |
125 | The following device also uses `qcacld-2.0` Wi-Fi. Support has not been added
126 | yet.
127 |
128 | * google-marlin
129 |
130 | ===== Initial support for Samsung Galaxy A5 (2017)
131 |
132 | Support for the link:https://github.com/NixOS/mobile-nixos/pull/278[
133 | Samsung Galaxy A5 (2017)] has been added.
134 |
135 | It is the first Exynos device in Mobile NixOS, with an Exynos 7880. The device
136 | is otherwise unremarkable, it turns out that Mobile NixOS mostly just worked
137 | with Samsung's initial boot flow. It required some minor adjustments, which
138 | are likely to help with their other phones and tablets.
139 |
140 | ===== Pinephone U-Boot update
141 |
142 | January saw the release of U-Boot 2021.01. Mobile NixOS was already one version
143 | late, as 2020.10 was never packaged.
144 |
145 | As with the previous update, upstream U-Boot is used, preferring to import
146 | well-identified patches for the remaining features desired.
147 |
148 | This change should change nothing for many users. Users with a 3GB variant of
149 | the Pinephone will be relieved to know that they can now boot Mobile NixOS
150 | without additional work.
151 |
152 |
153 | ==== Other notable changes
154 |
155 | * link:https://github.com/NixOS/mobile-nixos/pull/287[#287] Fixes job control in the initrd shell
156 | * link:https://github.com/NixOS/mobile-nixos/pull/292[#292] `asus-dumo` gadget mode
157 |
158 |
159 | === Ports
160 |
161 | One new device was merged in January.
162 |
163 | * link:https://mobile.nixos.org/devices/samsung-a5y17lte.html[Galaxy A5 (2017) (samsung-a5y17lte)] [link:https://github.com/samueldr[@samueldr]] (link:https://github.com/NixOS/mobile-nixos/pull/278[#278])
164 |
165 | Bringing the link:https://mobile.nixos.org/devices/index.html[total of devices to 17].
166 |
--------------------------------------------------------------------------------
/website/news/2021-01-11-2020-in-the-rear-view-mirror.adoc:
--------------------------------------------------------------------------------
1 | = 2020 in the rear-view mirror
2 | include::_support/common.inc[]
3 | include::_support/website.inc[]
4 | :special: news
5 | :docdate: 2021-01-11
6 | Samuel Dionne-Riel
7 | January 11th 2021
8 |
9 | The year 2020 was my first full calendar year dedicated to working on the
10 | Mobile NixOS project. Let's look at the progress, from the state of the project
11 | _before_ January 2020, up to the state after December 2020.
12 |
13 | Comparisons will start from the last commit of 2019, link:https://github.com/NixOS/mobile-nixos/commit/7803d9ec0e35fe602f75d08e6bcb6db720ad897c[
14 | `7803d9ec0e35fe602f75d08e6bcb6db720ad897c`]. They are compared against the last
15 | commit for 2020, link:https://github.com/NixOS/mobile-nixos/commit/d5869523869eb029b712a3f2b7b1c3199874f221[
16 | `d5869523869eb029b712a3f2b7b1c3199874f221`].
17 |
18 | You might also be interested in looking at link:https://github.com/NixOS/mobile-nixos/pulls?q=is%3Apr+merged%3A2020+sort%3Acreated-asc[
19 | all the merged pull requests for 2020].
20 |
21 | === Some numbers
22 |
23 | They're quite arbitrary. I don't know what other relevant stats could be used
24 | here.
25 |
26 | * 111 merged pull requests
27 | * 805 commits (skipping merge commits)
28 | * 10 commit authors (filtering duplicates)
29 | * Devices: 10 → 16
30 | * Modules: 39 → 56 (Nix files in `modules/`)
31 |
32 | And here's what `cloc` reveals:
33 |
34 | ```
35 | [nix-shell:~/.../mobile-nixos/2019]$ cloc .
36 | 274 text files.
37 | 263 unique files.
38 | 36 files ignored.
39 |
40 | --------------------------------------------------------------------------------
41 | Language files blank comment code
42 | --------------------------------------------------------------------------------
43 | diff 55 741 2623 16308
44 | Nix 108 719 772 4311
45 | SVG 7 4 4 2950
46 | LESS 24 263 333 1257
47 | Ruby 16 147 85 706
48 | AsciiDoc 7 130 3 243
49 | XML 5 19 12 160
50 | ERB 8 4 0 89
51 | Markdown 4 43 0 85
52 | Lua 1 15 41 58
53 | Bourne Again Shell 2 9 10 21
54 | C/C++ Header 1 13 35 21
55 | C 1 1 0 17
56 | --------------------------------------------------------------------------------
57 | SUM: 239 2108 3918 26226
58 | --------------------------------------------------------------------------------
59 |
60 | [nix-shell:~/.../mobile-nixos/2020]$ cloc .
61 | 482 text files.
62 | 463 unique files.
63 | 54 files ignored.
64 |
65 | --------------------------------------------------------------------------------
66 | Language files blank comment code
67 | --------------------------------------------------------------------------------
68 | diff 89 1429 5081 22047
69 | Nix 170 1266 1149 7576
70 | Ruby 76 690 575 4132
71 | SVG 10 4 4 3538
72 | LESS 25 291 334 1413
73 | JSON 6 0 0 959
74 | AsciiDoc 25 396 3 844
75 | XML 5 19 12 160
76 | Markdown 8 88 0 159
77 | ERB 10 23 0 130
78 | Lua 1 15 41 58
79 | YAML 1 1 0 40
80 | C 1 11 5 37
81 | C/C++ Header 1 13 35 21
82 | Bourne Again Shell 1 2 0 4
83 | --------------------------------------------------------------------------------
84 | SUM: 429 4248 7239 41118
85 | --------------------------------------------------------------------------------
86 | ```
87 |
88 | === Stage-1 improvements
89 |
90 | This is where almost all of the work time this year was spent. Work started link:https://mobile.nixos.org/news/2020-02-04-january-2020-round-up.html[
91 | in January]. Continuing link:https://mobile.nixos.org/news/2020-03-03-february-2020-round-up.html[
92 | through February], with the graphical interface. Further work punctuated the
93 | year. Neither words, screen captures or video can properly convey the amount of
94 | work spent on producing the best stage-1 experience that works across this wide
95 | range of devices.
96 |
97 | We went from a rigid shell-script based approach, to a list of tasks handled
98 | through dependency resolution.
99 |
100 | Additionally, before February, there was no way to select a previous generation.
101 | With the added GUI, generation selection is possible, error reporting in early
102 | boot is verbose, and link:https://mobile.nixos.org/news/2020-12-01-november-2020-round-up.html[
103 | boot progress] is shown graphically.
104 |
105 | === Builds on Hydra
106 |
107 | Before link:https://mobile.nixos.org/news/2020-04-07-march-2020-round-up.html[
108 | March 2020], no pre-built artifacts were produced. This is quite obvious when
109 | you try to build artifacts from the January checkout.
110 |
111 | More important than build artifacts, this gave us continuous delivery of builds.
112 | With this we can track regressions, both in Mobile NixOS proper, or from changes
113 | in Nixpkgs.
114 |
115 | === Device support
116 |
117 | Introduced link:https://mobile.nixos.org/news/2020-04-07-march-2020-round-up.html[
118 | in March 2020] the Pinephone is one of those devices with the biggest mind share
119 | in the community. Though, I personally don't think it is the most interesting.
120 | After all, it is a somewhat boring device (in all the right ways!). Things with
121 | the Pinephone are expected to _just work_, and they mostly do, once the time is
122 | invested in implementing them.
123 |
124 | Personally, at the top of the list of surprises are the _Asus Zenfone Max Plus
125 | (M1)_ and the _Moto E6_. While less of the hardware is working, they are
126 | personally notable for me because they both do not have any alternative
127 | operating available. They were acquired as a challenge for me, to work strictly
128 | with sources from the vendor. This proved to myself that, yes, it is possible to
129 | work with devices that does not have a strong community behind them.
130 |
131 | === Closing word
132 |
133 | I'm excited to continue working on this project. Let's see what we can make out
134 | of 2021.
135 |
136 | Don't forget you can keep tabs on the project either by coming to the website
137 | regularly, or better yet, link:https://mobile.nixos.org/index.xml[subscribe to
138 | the RSS feed]!
139 |
--------------------------------------------------------------------------------
/LICENSES/CC-BY-SA-4.0.txt:
--------------------------------------------------------------------------------
1 | Valid-License-Identifier: CC-BY-SA-4.0
2 | License-Text:
3 |
4 | Attribution-ShareAlike 4.0 International
5 |
6 | =======================================================================
7 |
8 | Creative Commons Corporation ("Creative Commons") is not a law firm and
9 | does not provide legal services or legal advice. Distribution of
10 | Creative Commons public licenses does not create a lawyer-client or
11 | other relationship. Creative Commons makes its licenses and related
12 | information available on an "as-is" basis. Creative Commons gives no
13 | warranties regarding its licenses, any material licensed under their
14 | terms and conditions, or any related information. Creative Commons
15 | disclaims all liability for damages resulting from their use to the
16 | fullest extent possible.
17 |
18 | Using Creative Commons Public Licenses
19 |
20 | Creative Commons public licenses provide a standard set of terms and
21 | conditions that creators and other rights holders may use to share
22 | original works of authorship and other material subject to copyright
23 | and certain other rights specified in the public license below. The
24 | following considerations are for informational purposes only, are not
25 | exhaustive, and do not form part of our licenses.
26 |
27 | Considerations for licensors: Our public licenses are
28 | intended for use by those authorized to give the public
29 | permission to use material in ways otherwise restricted by
30 | copyright and certain other rights. Our licenses are
31 | irrevocable. Licensors should read and understand the terms
32 | and conditions of the license they choose before applying it.
33 | Licensors should also secure all rights necessary before
34 | applying our licenses so that the public can reuse the
35 | material as expected. Licensors should clearly mark any
36 | material not subject to the license. This includes other CC-
37 | licensed material, or material used under an exception or
38 | limitation to copyright. More considerations for licensors:
39 | wiki.creativecommons.org/Considerations_for_licensors
40 |
41 | Considerations for the public: By using one of our public
42 | licenses, a licensor grants the public permission to use the
43 | licensed material under specified terms and conditions. If
44 | the licensor's permission is not necessary for any reason--for
45 | example, because of any applicable exception or limitation to
46 | copyright--then that use is not regulated by the license. Our
47 | licenses grant only permissions under copyright and certain
48 | other rights that a licensor has authority to grant. Use of
49 | the licensed material may still be restricted for other
50 | reasons, including because others have copyright or other
51 | rights in the material. A licensor may make special requests,
52 | such as asking that all changes be marked or described.
53 | Although not required by our licenses, you are encouraged to
54 | respect those requests where reasonable. More_considerations
55 | for the public:
56 | wiki.creativecommons.org/Considerations_for_licensees
57 |
58 | =======================================================================
59 |
60 | Creative Commons Attribution-ShareAlike 4.0 International Public
61 | License
62 |
63 | By exercising the Licensed Rights (defined below), You accept and agree
64 | to be bound by the terms and conditions of this Creative Commons
65 | Attribution-ShareAlike 4.0 International Public License ("Public
66 | License"). To the extent this Public License may be interpreted as a
67 | contract, You are granted the Licensed Rights in consideration of Your
68 | acceptance of these terms and conditions, and the Licensor grants You
69 | such rights in consideration of benefits the Licensor receives from
70 | making the Licensed Material available under these terms and
71 | conditions.
72 |
73 |
74 | Section 1 -- Definitions.
75 |
76 | a. Adapted Material means material subject to Copyright and Similar
77 | Rights that is derived from or based upon the Licensed Material
78 | and in which the Licensed Material is translated, altered,
79 | arranged, transformed, or otherwise modified in a manner requiring
80 | permission under the Copyright and Similar Rights held by the
81 | Licensor. For purposes of this Public License, where the Licensed
82 | Material is a musical work, performance, or sound recording,
83 | Adapted Material is always produced where the Licensed Material is
84 | synched in timed relation with a moving image.
85 |
86 | b. Adapter's License means the license You apply to Your Copyright
87 | and Similar Rights in Your contributions to Adapted Material in
88 | accordance with the terms and conditions of this Public License.
89 |
90 | c. BY-SA Compatible License means a license listed at
91 | creativecommons.org/compatiblelicenses, approved by Creative
92 | Commons as essentially the equivalent of this Public License.
93 |
94 | d. Copyright and Similar Rights means copyright and/or similar rights
95 | closely related to copyright including, without limitation,
96 | performance, broadcast, sound recording, and Sui Generis Database
97 | Rights, without regard to how the rights are labeled or
98 | categorized. For purposes of this Public License, the rights
99 | specified in Section 2(b)(1)-(2) are not Copyright and Similar
100 | Rights.
101 |
102 | e. Effective Technological Measures means those measures that, in the
103 | absence of proper authority, may not be circumvented under laws
104 | fulfilling obligations under Article 11 of the WIPO Copyright
105 | Treaty adopted on December 20, 1996, and/or similar international
106 | agreements.
107 |
108 | f. Exceptions and Limitations means fair use, fair dealing, and/or
109 | any other exception or limitation to Copyright and Similar Rights
110 | that applies to Your use of the Licensed Material.
111 |
112 | g. License Elements means the license attributes listed in the name
113 | of a Creative Commons Public License. The License Elements of this
114 | Public License are Attribution and ShareAlike.
115 |
116 | h. Licensed Material means the artistic or literary work, database,
117 | or other material to which the Licensor applied this Public
118 | License.
119 |
120 | i. Licensed Rights means the rights granted to You subject to the
121 | terms and conditions of this Public License, which are limited to
122 | all Copyright and Similar Rights that apply to Your use of the
123 | Licensed Material and that the Licensor has authority to license.
124 |
125 | j. Licensor means the individual(s) or entity(ies) granting rights
126 | under this Public License.
127 |
128 | k. Share means to provide material to the public by any means or
129 | process that requires permission under the Licensed Rights, such
130 | as reproduction, public display, public performance, distribution,
131 | dissemination, communication, or importation, and to make material
132 | available to the public including in ways that members of the
133 | public may access the material from a place and at a time
134 | individually chosen by them.
135 |
136 | l. Sui Generis Database Rights means rights other than copyright
137 | resulting from Directive 96/9/EC of the European Parliament and of
138 | the Council of 11 March 1996 on the legal protection of databases,
139 | as amended and/or succeeded, as well as other essentially
140 | equivalent rights anywhere in the world.
141 |
142 | m. You means the individual or entity exercising the Licensed Rights
143 | under this Public License. Your has a corresponding meaning.
144 |
145 |
146 | Section 2 -- Scope.
147 |
148 | a. License grant.
149 |
150 | 1. Subject to the terms and conditions of this Public License,
151 | the Licensor hereby grants You a worldwide, royalty-free,
152 | non-sublicensable, non-exclusive, irrevocable license to
153 | exercise the Licensed Rights in the Licensed Material to:
154 |
155 | a. reproduce and Share the Licensed Material, in whole or
156 | in part; and
157 |
158 | b. produce, reproduce, and Share Adapted Material.
159 |
160 | 2. Exceptions and Limitations. For the avoidance of doubt, where
161 | Exceptions and Limitations apply to Your use, this Public
162 | License does not apply, and You do not need to comply with
163 | its terms and conditions.
164 |
165 | 3. Term. The term of this Public License is specified in Section
166 | 6(a).
167 |
168 | 4. Media and formats; technical modifications allowed. The
169 | Licensor authorizes You to exercise the Licensed Rights in
170 | all media and formats whether now known or hereafter created,
171 | and to make technical modifications necessary to do so. The
172 | Licensor waives and/or agrees not to assert any right or
173 | authority to forbid You from making technical modifications
174 | necessary to exercise the Licensed Rights, including
175 | technical modifications necessary to circumvent Effective
176 | Technological Measures. For purposes of this Public License,
177 | simply making modifications authorized by this Section 2(a)
178 | (4) never produces Adapted Material.
179 |
180 | 5. Downstream recipients.
181 |
182 | a. Offer from the Licensor -- Licensed Material. Every
183 | recipient of the Licensed Material automatically
184 | receives an offer from the Licensor to exercise the
185 | Licensed Rights under the terms and conditions of this
186 | Public License.
187 |
188 | b. Additional offer from the Licensor -- Adapted Material.
189 | Every recipient of Adapted Material from You
190 | automatically receives an offer from the Licensor to
191 | exercise the Licensed Rights in the Adapted Material
192 | under the conditions of the Adapter's License You apply.
193 |
194 | c. No downstream restrictions. You may not offer or impose
195 | any additional or different terms or conditions on, or
196 | apply any Effective Technological Measures to, the
197 | Licensed Material if doing so restricts exercise of the
198 | Licensed Rights by any recipient of the Licensed
199 | Material.
200 |
201 | 6. No endorsement. Nothing in this Public License constitutes or
202 | may be construed as permission to assert or imply that You
203 | are, or that Your use of the Licensed Material is, connected
204 | with, or sponsored, endorsed, or granted official status by,
205 | the Licensor or others designated to receive attribution as
206 | provided in Section 3(a)(1)(A)(i).
207 |
208 | b. Other rights.
209 |
210 | 1. Moral rights, such as the right of integrity, are not
211 | licensed under this Public License, nor are publicity,
212 | privacy, and/or other similar personality rights; however, to
213 | the extent possible, the Licensor waives and/or agrees not to
214 | assert any such rights held by the Licensor to the limited
215 | extent necessary to allow You to exercise the Licensed
216 | Rights, but not otherwise.
217 |
218 | 2. Patent and trademark rights are not licensed under this
219 | Public License.
220 |
221 | 3. To the extent possible, the Licensor waives any right to
222 | collect royalties from You for the exercise of the Licensed
223 | Rights, whether directly or through a collecting society
224 | under any voluntary or waivable statutory or compulsory
225 | licensing scheme. In all other cases the Licensor expressly
226 | reserves any right to collect such royalties.
227 |
228 |
229 | Section 3 -- License Conditions.
230 |
231 | Your exercise of the Licensed Rights is expressly made subject to the
232 | following conditions.
233 |
234 | a. Attribution.
235 |
236 | 1. If You Share the Licensed Material (including in modified
237 | form), You must:
238 |
239 | a. retain the following if it is supplied by the Licensor
240 | with the Licensed Material:
241 |
242 | i. identification of the creator(s) of the Licensed
243 | Material and any others designated to receive
244 | attribution, in any reasonable manner requested by
245 | the Licensor (including by pseudonym if
246 | designated);
247 |
248 | ii. a copyright notice;
249 |
250 | iii. a notice that refers to this Public License;
251 |
252 | iv. a notice that refers to the disclaimer of
253 | warranties;
254 |
255 | v. a URI or hyperlink to the Licensed Material to the
256 | extent reasonably practicable;
257 |
258 | b. indicate if You modified the Licensed Material and
259 | retain an indication of any previous modifications; and
260 |
261 | c. indicate the Licensed Material is licensed under this
262 | Public License, and include the text of, or the URI or
263 | hyperlink to, this Public License.
264 |
265 | 2. You may satisfy the conditions in Section 3(a)(1) in any
266 | reasonable manner based on the medium, means, and context in
267 | which You Share the Licensed Material. For example, it may be
268 | reasonable to satisfy the conditions by providing a URI or
269 | hyperlink to a resource that includes the required
270 | information.
271 |
272 | 3. If requested by the Licensor, You must remove any of the
273 | information required by Section 3(a)(1)(A) to the extent
274 | reasonably practicable.
275 |
276 | b. ShareAlike.
277 |
278 | In addition to the conditions in Section 3(a), if You Share
279 | Adapted Material You produce, the following conditions also apply.
280 |
281 | 1. The Adapter's License You apply must be a Creative Commons
282 | license with the same License Elements, this version or
283 | later, or a BY-SA Compatible License.
284 |
285 | 2. You must include the text of, or the URI or hyperlink to, the
286 | Adapter's License You apply. You may satisfy this condition
287 | in any reasonable manner based on the medium, means, and
288 | context in which You Share Adapted Material.
289 |
290 | 3. You may not offer or impose any additional or different terms
291 | or conditions on, or apply any Effective Technological
292 | Measures to, Adapted Material that restrict exercise of the
293 | rights granted under the Adapter's License You apply.
294 |
295 |
296 | Section 4 -- Sui Generis Database Rights.
297 |
298 | Where the Licensed Rights include Sui Generis Database Rights that
299 | apply to Your use of the Licensed Material:
300 |
301 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
302 | to extract, reuse, reproduce, and Share all or a substantial
303 | portion of the contents of the database;
304 |
305 | b. if You include all or a substantial portion of the database
306 | contents in a database in which You have Sui Generis Database
307 | Rights, then the database in which You have Sui Generis Database
308 | Rights (but not its individual contents) is Adapted Material,
309 |
310 | including for purposes of Section 3(b); and
311 | c. You must comply with the conditions in Section 3(a) if You Share
312 | all or a substantial portion of the contents of the database.
313 |
314 | For the avoidance of doubt, this Section 4 supplements and does not
315 | replace Your obligations under this Public License where the Licensed
316 | Rights include other Copyright and Similar Rights.
317 |
318 |
319 | Section 5 -- Disclaimer of Warranties and Limitation of Liability.
320 |
321 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
322 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
323 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
324 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
325 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
326 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
327 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
328 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
329 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
330 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
331 |
332 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
333 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
334 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
335 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
336 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
337 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
338 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
339 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
340 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
341 |
342 | c. The disclaimer of warranties and limitation of liability provided
343 | above shall be interpreted in a manner that, to the extent
344 | possible, most closely approximates an absolute disclaimer and
345 | waiver of all liability.
346 |
347 |
348 | Section 6 -- Term and Termination.
349 |
350 | a. This Public License applies for the term of the Copyright and
351 | Similar Rights licensed here. However, if You fail to comply with
352 | this Public License, then Your rights under this Public License
353 | terminate automatically.
354 |
355 | b. Where Your right to use the Licensed Material has terminated under
356 | Section 6(a), it reinstates:
357 |
358 | 1. automatically as of the date the violation is cured, provided
359 | it is cured within 30 days of Your discovery of the
360 | violation; or
361 |
362 | 2. upon express reinstatement by the Licensor.
363 |
364 | For the avoidance of doubt, this Section 6(b) does not affect any
365 | right the Licensor may have to seek remedies for Your violations
366 | of this Public License.
367 |
368 | c. For the avoidance of doubt, the Licensor may also offer the
369 | Licensed Material under separate terms or conditions or stop
370 | distributing the Licensed Material at any time; however, doing so
371 | will not terminate this Public License.
372 |
373 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
374 | License.
375 |
376 |
377 | Section 7 -- Other Terms and Conditions.
378 |
379 | a. The Licensor shall not be bound by any additional or different
380 | terms or conditions communicated by You unless expressly agreed.
381 |
382 | b. Any arrangements, understandings, or agreements regarding the
383 | Licensed Material not stated herein are separate from and
384 | independent of the terms and conditions of this Public License.
385 |
386 |
387 | Section 8 -- Interpretation.
388 |
389 | a. For the avoidance of doubt, this Public License does not, and
390 | shall not be interpreted to, reduce, limit, restrict, or impose
391 | conditions on any use of the Licensed Material that could lawfully
392 | be made without permission under this Public License.
393 |
394 | b. To the extent possible, if any provision of this Public License is
395 | deemed unenforceable, it shall be automatically reformed to the
396 | minimum extent necessary to make it enforceable. If the provision
397 | cannot be reformed, it shall be severed from this Public License
398 | without affecting the enforceability of the remaining terms and
399 | conditions.
400 |
401 | c. No term or condition of this Public License will be waived and no
402 | failure to comply consented to unless expressly agreed to by the
403 | Licensor.
404 |
405 | d. Nothing in this Public License constitutes or may be interpreted
406 | as a limitation upon, or waiver of, any privileges and immunities
407 | that apply to the Licensor or You, including from the legal
408 | processes of any jurisdiction or authority.
409 |
410 |
411 | =======================================================================
412 |
413 | Creative Commons is not a party to its public
414 | licenses. Notwithstanding, Creative Commons may elect to apply one of
415 | its public licenses to material it publishes and in those instances
416 | will be considered the “Licensor.” The text of the Creative Commons
417 | public licenses is dedicated to the public domain under the CC0 Public
418 | Domain Dedication. Except for the limited purpose of indicating that
419 | material is shared under a Creative Commons public license or as
420 | otherwise permitted by the Creative Commons policies published at
421 | creativecommons.org/policies, Creative Commons does not authorize the
422 | use of the trademark "Creative Commons" or any other trademark or logo
423 | of Creative Commons without its prior written consent including,
424 | without limitation, in connection with any unauthorized modifications
425 | to any of its public licenses or any other arrangements,
426 | understandings, or agreements concerning use of licensed material. For
427 | the avoidance of doubt, this paragraph does not form part of the
428 | public licenses.
429 |
430 | Creative Commons may be contacted at creativecommons.org.
431 |
--------------------------------------------------------------------------------