mobile-nixos icon indicating copy to clipboard operation
mobile-nixos copied to clipboard

Installer roadmap

Open samueldr opened this issue 2 years ago • 4 comments

TODO: better furnish those notes


An installer for Mobile NixOS would implement a limited choice of scenarios.

  • partitioning:
    • unencrypted
    • LUKS
  • "PE" (phone environment, like desktop environment)
    • Phosh
    • Plasma Mobile

With a few "open ended" questions.

  • Full Name
  • username
  • password
  • passphrase (when LUKS is selected)
  • Timezone
  • Language
  • Keymap (maybe not, since wayland makes this impossible to support)

The partitioning options would apply an opinionated partition layout, each basically the same.

The phone environment options would basically enable either phosh/plasma mobile, and maybe a few useful not-too-opinionated options.


All options here would assume usage of Tow-Boot to dedicated storage (mmcboot, spi), in other words that the main storage (eMMC, SD) can be wiped in full.


Starting with #474 is likely a good option for getting started quickly.

Though I would not implement it "into" another phone environment, but would look into using e.g. cage to run only the calamares installer.

This means that the calamares installer should make it possible for the user to select the network connection (wireless, wired, etc) in any way it can.

I guess that would mean using Network Manager?


Things to explore before starting

  • [ ] Can the network selection be handled through calamares?
  • [ ] Would using cage allow an on-screen keyboard to work?
  • [ ] What are the features / limitations of the NixOS module for calamares?

Things to implement tangentially

  • [ ] "Installing" the boot stage things to the boot partition

samueldr avatar Jul 29 '22 18:07 samueldr

About networking

It looks like indeed Calamares has some form of knowledge about networking using Network Manager:

  • https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/modules/networkcfg/main.py
  • https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/libcalamares/network/Manager.cpp

I don't know still/yet if it allows having a step to select a connection.

samueldr avatar Jul 29 '22 18:07 samueldr

About cage

It looks like cage can't do OSKs.

This would make things awkward to type things in.

In this case, alternatives needs to be explored.

samueldr avatar Jul 29 '22 19:07 samueldr

About networking

It looks like indeed Calamares has some form of knowledge about networking using Network Manager:

* https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/modules/networkcfg/main.py

* https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/libcalamares/network/Manager.cpp

I don't know still/yet if it allows having a step to select a connection.

Not sure if you saw this but it seems like the developers are quite against this idea. Although this is quite an old issue. https://github.com/calamares/calamares/issues/946

collinarnett avatar Aug 04 '22 13:08 collinarnett

There is also a mobile specific calamares extension that got upstreamed from postmarket os. https://github.com/calamares/calamares-extensions/pull/3 It seems to tick a lot of the boxes outlined in the OP for this issue.

collinarnett avatar Aug 04 '22 14:08 collinarnett

This is now solved in #522.

With two caveats:

Timezone support was attempted, but limitations in the toolkit made this hard to support trivially. Similarly, language selection would be as hard if not harder for the time being.

samueldr avatar Oct 25 '22 17:10 samueldr