35 lines
950 B
Nix
35 lines
950 B
Nix
|
{ pkgs, pkgs-unstable, ... }:
|
||
|
|
||
|
# based on https://alexbakker.me/post/nixos-pci-passthrough-qemu-vfio.html
|
||
|
{
|
||
|
environment.systemPackages = [
|
||
|
pkgs-unstable.looking-glass-client
|
||
|
pkgs.scream
|
||
|
];
|
||
|
|
||
|
boot.initrd = {
|
||
|
availableKernelModules = [ "amdgpu" "vfio-pci" ];
|
||
|
preDeviceCommands = ''
|
||
|
echo vfio-pci > /sys/bus/pci/devices/0000:0b:00.0/driver_override
|
||
|
echo vfio-pci > /sys/bus/pci/devices/0000:0b:00.1/driver_override
|
||
|
modprobe -i vfio-pci
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
systemd.tmpfiles.rules = [
|
||
|
"f /dev/shm/scream 0660 artemis qemu-libvirtd -"
|
||
|
"f /dev/shm/looking-glass 0660 artemis qemu-libvirtd -"
|
||
|
];
|
||
|
|
||
|
systemd.user.services.scream-ivshmem = {
|
||
|
enable = true;
|
||
|
description = "Scream IVSHMEM";
|
||
|
serviceConfig = {
|
||
|
ExecStart = "${pkgs.scream}/bin/scream -m /dev/shm/scream -o pulse";
|
||
|
Restart = "always";
|
||
|
};
|
||
|
wantedBy = [ "multi-user.target" ];
|
||
|
requires = [ "pulseaudio.service" ];
|
||
|
};
|
||
|
}
|