Rodrigo Arias Mallo
8df89867f3
There is a problem in the way pkgsStatic is constructed, causing our -march argument to be missed, leading to binaries that fail to run. This affects only security wrappers so far (mount, sudo, ...) but it will likely affect any pkgsStatic binary.
111 lines
3.5 KiB
Nix
111 lines
3.5 KiB
Nix
{
|
|
inputs.nixpkgs.url = "github:rodarima/nixpkgs/fix-pkgs-static-gcc-march";
|
|
inputs.nixos-hardware.url = "github:nixos/nixos-hardware";
|
|
|
|
# Some dependencies of this flake are not yet available on non linux systems
|
|
inputs.systems.url = "github:nix-systems/x86_64-linux";
|
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
|
inputs.flake-utils.inputs.systems.follows = "systems";
|
|
|
|
outputs = { self, nixpkgs, nixos-hardware, flake-utils, ... }:
|
|
let
|
|
system = "x86_64-linux";
|
|
overlay = import ./overlay.nix;
|
|
pkgs = import nixpkgs { inherit system; };
|
|
modules = [
|
|
# For now we only define a config for VM, later we will want to split
|
|
# this into different configs.
|
|
./vm.nix
|
|
|
|
./configuration.nix
|
|
];
|
|
in {
|
|
overlay = import ./overlay.nix;
|
|
nixosConfigurations = {
|
|
# The cross configuration defines a system that runs in the RISC-V
|
|
# architecture, but is build from an x86 host machine.
|
|
cross = nixpkgs.lib.nixosSystem {
|
|
system = "${system}";
|
|
modules = modules ++ [
|
|
{
|
|
nixpkgs.crossSystem = {
|
|
gcc.arch = "rv64g";
|
|
gcc.tune = "rv64g";
|
|
system = "riscv64-linux";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
# The native configuration defines the same system, but built from an
|
|
# RISC-V machine. Not needed for now.
|
|
#native = nixpkgs.lib.nixosSystem {
|
|
# system = "riscv64-linux";
|
|
# modules = modules;
|
|
#};
|
|
};
|
|
|
|
# A development shell with QEMU ready to boot the RISC-V system in an x86
|
|
# machine.
|
|
devShells.x86_64-linux.default =
|
|
let
|
|
nixosconf = self.nixosConfigurations.cross;
|
|
syspkgs = nixosconf.pkgs;
|
|
toplevel = nixosconf.config.system.build.toplevel;
|
|
#toplevel = "${nixosconf.config.system.build.vm}/system";
|
|
in
|
|
pkgs.mkShell {
|
|
pname = "qemu-shell";
|
|
buildInputs = with pkgs; [ qemu ];
|
|
# Here we tell the run script where to find the system
|
|
NIXOS_SYSTEM_TOPLEVEL = toplevel;
|
|
OPENSBI = syspkgs.opensbi-uboot;
|
|
#OPENSBI = syspkgs.opensbi;
|
|
};
|
|
};
|
|
}
|
|
|
|
|
|
|
|
|
|
# flake-utils.lib.eachDefaultSystem (system:
|
|
# rec {
|
|
#
|
|
# # .\#nixosConfigurations.visionfive-cross.config.system.build.toplevel
|
|
# packages.default = packages.sd-image;
|
|
# packages.sd-image = (import "${nixpkgs}/nixos" {
|
|
# configuration =
|
|
# { config, ... }: {
|
|
# imports = [
|
|
# "${nixos-hardware}/starfive/visionfive/v2/sd-image-installer.nix"
|
|
# ];
|
|
#
|
|
# # If you want to use ssh set a password
|
|
# users.users.nixos.password = "test123";
|
|
# # OR add your public ssh key
|
|
# # users.users.nixos.openssh.authorizedKeys.keys = [ "ssh-rsa ..." ];
|
|
#
|
|
# # AND configure networking
|
|
# networking.interfaces.end0.useDHCP = true;
|
|
# networking.interfaces.end1.useDHCP = true;
|
|
#
|
|
# # Additional configuration goes here
|
|
#
|
|
# #hardware.deviceTree.overlays = [{
|
|
# # name = "8GB-patch";
|
|
# # dtsFile = "${nixos-hardware}/starfive/visionfive/v2/8gb-patch.dts";
|
|
# #}];
|
|
#
|
|
# #sdImage.compressImage = false;
|
|
#
|
|
# nixpkgs.crossSystem = {
|
|
# config = "riscv64-unknown-linux-gnu";
|
|
# system = "riscv64-linux";
|
|
# };
|
|
#
|
|
# system.stateVersion = "24.05";
|
|
# };
|
|
# inherit system;
|
|
# }).config.system.build.toplevel;
|
|
# });
|
|
#}
|