From 9996cca17aeb63ed0d51d59d4572dced0b050aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Sun, 4 Dec 2022 21:39:25 +0100 Subject: install.sh: add ability to install non-native architecture The result is that it now requires to be run only on NixOS but that should be fine. --- nixos/modules/compile.nix | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'nixos/modules') diff --git a/nixos/modules/compile.nix b/nixos/modules/compile.nix index 6c42951..ffa339f 100644 --- a/nixos/modules/compile.nix +++ b/nixos/modules/compile.nix @@ -17,7 +17,25 @@ with lib; max-jobs = 32; cores = 0; }; - boot.binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ]; + boot.binfmt.registrations = { + aarch64-linux = { + fixBinary = true; + wrapInterpreterInShell = false; + interpreter = (lib.systems.elaborate { system = "aarch64-linux"; }).emulator pkgs; + magicOrExtension = "\\x7fELF\\x02\\x01\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\xb7\\x00"; + mask = "\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\xff\\xfe\\xff\\xff\\xff"; + }; + armv7l-linux = { + fixBinary = true; + wrapInterpreterInShell = false; + interpreter = (lib.systems.elaborate { system = "armv7l-linux"; }).emulator pkgs; + magicOrExtension = "\\x7fELF\\x01\\x01\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x28\\x00"; + mask = "\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\xff\\xfe\\xff\\xff\\xff"; + }; + }; + nix.settings.extra-platforms = [ + "aarch64-linux" "armv7l-linux" + ]; environment.systemPackages = with pkgs; [ # Tools -- cgit v1.2.3