mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-01-11 20:40:24 +01:00
fix: evaluation warning - 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system' Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
89 lines
2.9 KiB
Nix
89 lines
2.9 KiB
Nix
{
|
|
pkgs,
|
|
# nur-ataraxiasjel,
|
|
...
|
|
}:
|
|
{
|
|
###################################################################################
|
|
#
|
|
# Virtualisation - Libvirt(QEMU/KVM) / Docker / LXD / WayDroid
|
|
#
|
|
###################################################################################
|
|
|
|
# Enable nested virtualization, required by security containers and nested vm.
|
|
# This should be set per host in /hosts, not here.
|
|
#
|
|
## For AMD CPU, add "kvm-amd" to kernelModules.
|
|
# boot.kernelModules = ["kvm-amd"];
|
|
# boot.extraModprobeConfig = "options kvm_amd nested=1"; # for amd cpu
|
|
#
|
|
## For Intel CPU, add "kvm-intel" to kernelModules.
|
|
# boot.kernelModules = ["kvm-intel"];
|
|
# boot.extraModprobeConfig = "options kvm_intel nested=1"; # for intel cpu
|
|
|
|
boot.kernelModules = [ "vfio-pci" ];
|
|
|
|
services.flatpak.enable = true;
|
|
|
|
virtualisation = {
|
|
docker.enable = false;
|
|
podman = {
|
|
enable = true;
|
|
# Create a `docker` alias for podman, to use it as a drop-in replacement
|
|
dockerCompat = true;
|
|
# Required for containers under podman-compose to be able to talk to each other.
|
|
defaultNetwork.settings.dns_enabled = true;
|
|
# Periodically prune Podman resources
|
|
autoPrune = {
|
|
enable = true;
|
|
dates = "weekly";
|
|
flags = [ "--all" ];
|
|
};
|
|
};
|
|
|
|
oci-containers = {
|
|
backend = "podman";
|
|
};
|
|
|
|
# Usage: https://wiki.nixos.org/wiki/Waydroid
|
|
# waydroid.enable = true;
|
|
|
|
# libvirtd = {
|
|
# enable = true;
|
|
# # hanging this option to false may cause file permission issues for existing guests.
|
|
# # To fix these, manually change ownership of affected files in /var/lib/libvirt/qemu to qemu-libvirtd.
|
|
# qemu.runAsRoot = true;
|
|
# };
|
|
|
|
# lxd.enable = true;
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
# This script is used to install the arm translation layer for waydroid
|
|
# so that we can install arm apks on x86_64 waydroid
|
|
#
|
|
# https://github.com/casualsnek/waydroid_script
|
|
# https://github.com/AtaraxiaSjel/nur/tree/master/pkgs/waydroid-script
|
|
# https://wiki.archlinux.org/title/Waydroid#ARM_Apps_Incompatible
|
|
# nur-ataraxiasjel.packages.${pkgs.stdenv.hostPlatform.system}.waydroid-script
|
|
|
|
# Need to add [File (in the menu bar) -> Add connection] when start for the first time
|
|
# virt-manager
|
|
|
|
# QEMU/KVM(HostCpuOnly), provides:
|
|
# qemu-storage-daemon qemu-edid qemu-ga
|
|
# qemu-pr-helper qemu-nbd elf2dmp qemu-img qemu-io
|
|
# qemu-kvm qemu-system-x86_64 qemu-system-aarch64 qemu-system-i386
|
|
qemu_kvm
|
|
|
|
# Install QEMU(other architectures), provides:
|
|
# ......
|
|
# qemu-loongarch64 qemu-system-loongarch64
|
|
# qemu-riscv64 qemu-system-riscv64 qemu-riscv32 qemu-system-riscv32
|
|
# qemu-system-arm qemu-arm qemu-armeb qemu-system-aarch64 qemu-aarch64 qemu-aarch64_be
|
|
# qemu-system-xtensa qemu-xtensa qemu-system-xtensaeb qemu-xtensaeb
|
|
# ......
|
|
qemu
|
|
];
|
|
}
|