├── .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 | 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 | --------------------------------------------------------------------------------