NixOS Mobile - Asus-Flo - Need help please

I still have an old tablet. More precisely, an Asus Flo. So I wanted to install NixOS on it. The instructions on the homepage say the following:

  • Source Code [1]
    • Getting the sources
      git clone
      Nothing else! Everything required is self-contained.
  • Compiling and Running
    • Fear not, look for your particular device on the devices list page, will likely contain the necessary instructions.
  • Building [2]
    nix-build --argstr device asus-flo -A build.default


trace: *******************************
trace: * Evaluating device: asus-flo *
trace: *******************************
trace: Building with crossSystem?: armv7l-linux != x86_64-linux → we are.
trace:     crossSystem: config: armv7l-unknown-linux-gnueabihf
error: The option `boot.initrd.enable' defined in `/home/dr3b/tmp/mobile-nixos/modules/_nixos-disintegration/initrd.nix' does not exist.
(use '--show-trace' to show detailed location information)


My system:

 - system: `"x86_64-linux"`
 - host os: `Linux 5.4.42, NixOS, 20.03.1950.48723f48ab9 (Markhor)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.4`
 - channels(root): `"nixos-20.03.1950.48723f48ab9, home-manager, nixos-hardware, nixpkgs-unstable-20.09pre226586.571212eb839"`
 - channels(dr3b): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

[1] Getting Started — Mobile NixOS
[2] Getting Started — Mobile NixOS

Hi, :wave:

Thanks for the interest!

Oof, I don’t have a support table setup yet for the documentation, but asus-flo is not a in a good state. It’s a two-part problem.

First, the OEM kernel is way too old, and it won’t be able to run the system as it is. I need to circle back to the device and use a mainline-based kernel instead.

Then, there’s the issue of there being no real binary cache for native armv7l, and sometimes-breaking cross-compilation for armv7l.

In addition to this, development for Mobile NixOS is done on top of nixos-unstable. Cross-compilation issues don’t get fixed in stable releases, and it’s a bit in flux; trying to stay compatible with both unstable and stable right now would be quite hard.

As for your particular issue, it’s coming from using the stable branch of Nixpkgs. The project currently tracks Nixpkgs unstable. This is not a cross-compilation issue, but simply that a new option was added in unstable that is extremely useful for Mobile NixOS.

You can use a revision of Nixpkgs known to compile the stage-1 for asus-flo, by going to its job page on the organization’s Hydra instance, following the link to a successful build (with a green checkmark!) and then opening up the Inputs tab. Alternatively this link should do that for you. You can use NIX_PATH to point to a git checkout of that revision, or any other way you can affect NIX_PATH.

I have just now verified and the tip of master for asus-flo does build with a Nixpkgs revision that once built. Though I haven’t validated what currently fails. You’ll probably need a serial cable for nexus devices to troubleshoot.

Briefly stated: this device’s status is “not good right now”. Sorry, though I’m hopeful it can only get better from that point :).