Add qemu and qemu-nc NixOS configurations
This commit is contained in:
parent
d3f97dac58
commit
5b8a51fb19
@ -5,6 +5,10 @@
|
|||||||
"${modulesPath}/profiles/base.nix"
|
"${modulesPath}/profiles/base.nix"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.crossSystem = {
|
||||||
|
system = "riscv64-linux";
|
||||||
|
};
|
||||||
|
|
||||||
networking.hostName = "nixos-riscv";
|
networking.hostName = "nixos-riscv";
|
||||||
|
|
||||||
nixpkgs.overlays = [ (import ./overlay.nix) ];
|
nixpkgs.overlays = [ (import ./overlay.nix) ];
|
||||||
|
40
flake.nix
40
flake.nix
@ -12,43 +12,35 @@
|
|||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
overlay = import ./overlay.nix;
|
overlay = import ./overlay.nix;
|
||||||
pkgs = import nixpkgs { inherit system; };
|
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 {
|
in {
|
||||||
overlay = import ./overlay.nix;
|
overlay = import ./overlay.nix;
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
# The cross configuration defines a system that runs in the RISC-V
|
# The qemu configuration defines a system that runs in the RISC-V
|
||||||
# architecture, but is build from an x86 host machine.
|
# architecture, but is build from an x86 host machine.
|
||||||
cross = nixpkgs.lib.nixosSystem {
|
qemu = nixpkgs.lib.nixosSystem {
|
||||||
system = "${system}";
|
system = "${system}";
|
||||||
modules = modules ++ [
|
modules = [
|
||||||
{
|
./configuration.nix
|
||||||
nixpkgs.crossSystem = {
|
./vm.nix
|
||||||
gcc.arch = "rv64g";
|
];
|
||||||
gcc.tune = "rv64g";
|
};
|
||||||
system = "riscv64-linux";
|
|
||||||
};
|
# Same, but disable compressed instructions
|
||||||
}
|
qemu-nc = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "${system}";
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
./vm.nix
|
||||||
|
./no-compressed.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# 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
|
# A development shell with QEMU ready to boot the RISC-V system in an x86
|
||||||
# machine.
|
# machine.
|
||||||
devShells.x86_64-linux.default =
|
devShells.x86_64-linux.default =
|
||||||
let
|
let
|
||||||
nixosconf = self.nixosConfigurations.cross;
|
nixosconf = self.nixosConfigurations.qemu-nc;
|
||||||
syspkgs = nixosconf.pkgs;
|
syspkgs = nixosconf.pkgs;
|
||||||
toplevel = nixosconf.config.system.build.toplevel;
|
toplevel = nixosconf.config.system.build.toplevel;
|
||||||
#toplevel = "${nixosconf.config.system.build.vm}/system";
|
#toplevel = "${nixosconf.config.system.build.vm}/system";
|
||||||
|
9
no-compressed.nix
Normal file
9
no-compressed.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nixpkgs.crossSystem = {
|
||||||
|
system = "riscv64-linux";
|
||||||
|
gcc.arch = "rv64g";
|
||||||
|
gcc.tune = "rv64g";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user