feat: FAST looking glass! TONS of time on this jesus christ
This commit is contained in:
parent
d094ec0247
commit
ff4eccfb99
8 changed files with 331 additions and 72 deletions
66
nixos/vm.nix
66
nixos/vm.nix
|
@ -6,8 +6,8 @@
|
|||
}:
|
||||
let
|
||||
gpuIDs = [
|
||||
"1002:7480" # Graphics
|
||||
"1002:ab30" # Audio
|
||||
"1002:7480" # Graphics - IOMMU Group 15 / 03:00.0
|
||||
"1002:ab30" # Audio - IOMMU Group 16 / 03:00.1
|
||||
];
|
||||
in {
|
||||
# https://astrid.tech/2022/09/22/0/nixos-gpu-vfio/ Was a huge gem to find with regard to getting this setup working.
|
||||
|
@ -68,8 +68,12 @@ in {
|
|||
|
||||
# These are needed, since I'm not currently trying to
|
||||
# reserve a static IP for the bridge interface
|
||||
networking.interfaces.eth0.useDHCP = true;
|
||||
networking.interfaces.winvm0.useDHCP = true;
|
||||
networking.interfaces.winvm0 = {
|
||||
useDHCP = false;
|
||||
ipv4.addresses = [
|
||||
{ address = "10.0.5.1"; prefixLength = 16; }
|
||||
];
|
||||
};
|
||||
|
||||
# Trying to ensure the bridge network doesn't cause us to wait
|
||||
# on boot
|
||||
|
@ -101,22 +105,22 @@ in {
|
|||
|
||||
# note that the VM needs 64 MB for the shmem in side the
|
||||
# xml for the full res of the FW laptop
|
||||
systemd.tmpfiles.rules = [
|
||||
"f /dev/shm/scream 0660 evar qemu-libvirtd -"
|
||||
"f /dev/shm/looking-glass 0660 evar qemu-libvirtd -"
|
||||
];
|
||||
# systemd.tmpfiles.rules = [
|
||||
# "f /dev/shm/scream 0660 evar qemu-libvirtd -"
|
||||
# "f /dev/shm/looking-glass 0660 evar qemu-libvirtd -"
|
||||
# ];
|
||||
|
||||
# service for hooking up scream for audio
|
||||
systemd.user.services.scream-ivshmem = {
|
||||
enable = true;
|
||||
description = "Scream IVSHMEM";
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.scream}/bin/scream-ivshmem-pulse /dev/shm/scream";
|
||||
Restart = "always";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
requires = [ "pulseaudio.service" ];
|
||||
};
|
||||
# systemd.user.services.scream-ivshmem = {
|
||||
# enable = true;
|
||||
# description = "Scream IVSHMEM";
|
||||
# serviceConfig = {
|
||||
# ExecStart = "${pkgs.scream}/bin/scream-ivshmem-pulse /dev/shm/scream";
|
||||
# Restart = "always";
|
||||
# };
|
||||
# wantedBy = [ "multi-user.target" ];
|
||||
# requires = [ "pulseaudio.service" ];
|
||||
# };
|
||||
|
||||
boot = {
|
||||
initrd.kernelModules = [
|
||||
|
@ -166,9 +170,10 @@ in {
|
|||
"use sendfile" = "yes";
|
||||
#"max protocol" = "smb2";
|
||||
|
||||
"interfaces" = "virbr0";
|
||||
# note: localhost is the ipv6 localhost ::1
|
||||
"hosts allow" = "10. 127.0.0.1 localhost";
|
||||
"hosts deny" = "0.0.0.0/0";
|
||||
"hosts allow" = "192.168.122.";
|
||||
# "hosts deny" = "0.0.0.0/0";
|
||||
"guest account" = "nobody";
|
||||
"map to guest" = "bad user";
|
||||
};
|
||||
|
@ -194,5 +199,26 @@ in {
|
|||
|
||||
networking.firewall.enable = true;
|
||||
networking.firewall.allowPing = true;
|
||||
|
||||
# I got into a stuck state and couldn't start any vm's, whenever I did I got the following:a
|
||||
# $ sudo cat /var/log/libvirt/qemu/win10.log
|
||||
# 2025-01-26T04:41:57.245640Z qemu-system-x86_64: -chardev pty,id=charserial0: Failed to create PTY: Operation not permitted
|
||||
# 2025-01-26 04:41:57.284+0000: shutting down, reason=failed
|
||||
#
|
||||
# After some searching, several sources stated that this is something with OVH
|
||||
# and the workaround is as below.
|
||||
#
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1668713
|
||||
# https://www.linuxglobal.com/fixed-libvirtd-qemu-kvm-monitor-unexpectedly-closed-failed-create-chardev-live-migration-virsh-start/
|
||||
fileSystems."devpts" = {
|
||||
device = "devpts";
|
||||
mountPoint = "/dev/pts";
|
||||
fsType = "devpts";
|
||||
noCheck = true;
|
||||
options = [
|
||||
"gid=5"
|
||||
"mode=620"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue