From dbbd9fa1debe637e46b215e34c645ad59b099b7c Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Wed, 6 Sep 2023 12:02:40 -0400 Subject: [PATCH] OVMFFFFFFFF --- home-config/home-configuration.scm | 2 + modules/home-config/base-system.scm | 193 +++++++++++------------ modules/home-services/virtualization.scm | 38 +++++ 3 files changed, 136 insertions(+), 97 deletions(-) create mode 100644 modules/home-services/virtualization.scm diff --git a/home-config/home-configuration.scm b/home-config/home-configuration.scm index 0bd11f4..506a4bd 100644 --- a/home-config/home-configuration.scm +++ b/home-config/home-configuration.scm @@ -9,6 +9,7 @@ (gnu packages vim) (gnu packages gcc) (gnu packages gnupg) + (gnu packages virtualization) (gnu services) (guix packages) (guix gexp) @@ -71,6 +72,7 @@ "netcat" "ripgrep" "fd" + "nasm" "node" "tree-sitter-cli" "python-pynvim")) diff --git a/modules/home-config/base-system.scm b/modules/home-config/base-system.scm index 452ba55..f819d1a 100644 --- a/modules/home-config/base-system.scm +++ b/modules/home-config/base-system.scm @@ -1,36 +1,36 @@ (define-module (home-config base-system) - #:use-module (gnu) - #:use-module (nongnu packages linux) - #:use-module (gnu system setuid) - #:use-module (gnu packages admin) - #:use-module (gnu packages avahi) - #:use-module (gnu packages) - #:use-module (guix packages) - #:use-module (gnu packages shells) - #:use-module (guix build-system trivial) - #:use-module (guix licenses) - #:use-module (gnu packages tls) - #:use-module (srfi srfi-1) - #:use-module (home-packages wm) - #:use-module (gnu packages security-token) - #:use-module (gnu services security-token) - #:use-module (gnu services cups) - #:use-module (gnu services desktop) - #:use-module (gnu services networking) - #:use-module (gnu services xorg) - #:use-module (gnu services ssh) - #:use-module (gnu services nix) - #:use-module (gnu services sound) - #:use-module (gnu services docker) - #:use-module (gnu services avahi) + #:use-module (gnu) + #:use-module (nongnu packages linux) + #:use-module (gnu system setuid) + #:use-module (gnu packages admin) + #:use-module (gnu packages avahi) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (gnu packages shells) + #:use-module (gnu packages tls) + #:use-module (srfi srfi-1) + #:use-module (gnu packages security-token) + #:use-module (gnu services security-token) + #:use-module (gnu packages virtualization) + #:use-module (gnu services cups) + #:use-module (gnu services desktop) + #:use-module (gnu services networking) + #:use-module (gnu services xorg) + #:use-module (gnu services ssh) + #:use-module (gnu services nix) + #:use-module (gnu services sound) + #:use-module (gnu services docker) + #:use-module (gnu services avahi) #:use-module (gnu services authentication) - #:use-module (gnu services virtualization)) + #:use-module (gnu services virtualization) + #:use-module (home-packages wm) + #:use-module (home-services virtualization)) (define %my-base-packages (remove (lambda (package) - (member (package-name package) - (list "sudo" "nano"))) - %base-packages)) + (member (package-name package) + (list "sudo" "nano"))) + %base-packages)) (define %backlight-udev-rule (udev-rule @@ -44,95 +44,94 @@ (define-public base-operating-system (operating-system (kernel linux) - (firmware (list linux-firmware intel-microcode sof-firmware)) - (locale "en_US.utf8") - (timezone "America/New_York") - (keyboard-layout (keyboard-layout "us")) - (host-name "ThisWillChange") + (firmware (list linux-firmware intel-microcode sof-firmware)) + (locale "en_US.utf8") + (timezone "America/New_York") + (keyboard-layout (keyboard-layout "us")) + (host-name "ThisWillChange") - ;; The list of user accounts ('root' is implicit). - (users (cons* (user-account - (name "tylerm") - (comment "Tyler") - (group "users") - (home-directory "/home/tylerm") + ;; The list of user accounts ('root' is implicit). + (users (cons* (user-account + (name "tylerm") + (comment "Tyler") + (group "users") + (home-directory "/home/tylerm") (shell (file-append zsh "/bin/zsh")) - (supplementary-groups '("wheel" "audio" "lp" "docker" "plugdev" "libvirt" "kvm" "netdev" "video" "tty"))) - %base-user-accounts)) + (supplementary-groups '("wheel" "audio" "lp" "docker" "plugdev" "libvirt" "kvm" "netdev" "video" "tty"))) + %base-user-accounts)) - (packages (append (map specification->package (list "swayfx" - "swaybg" + (packages (append (map specification->package (list "swayfx" + "swaybg" "wlogout" "sof-firmware" "intel-microcode" "alsa-utils" - "swayidle" - ;"swaylock" - "alacritty" - "gnome-themes-extra" + "swayidle" + "dconf" + "alacritty" + "gnome-themes-extra" "adwaita-icon-theme" "hicolor-icon-theme" - "git" - "nss-certs" - "gnupg" - "light" - "waybar" - "avahi" - "mako" - "grim" - "slurp" - "wl-clipboard" - "bluez" - "blueman" - "opendoas" - "xdg-desktop-portal" - "xdg-desktop-portal-wlr" - "v4l2loopback-linux-module" - "docker" + "git" + "nss-certs" + "gvfs" + "gnupg" + "virt-manager" + "light" + "waybar" + "avahi" + "mako" + "grim" + "slurp" + "wl-clipboard" + "bluez" + "blueman" + "opendoas" + "xdg-desktop-portal" + "xdg-desktop-portal-wlr" + "v4l2loopback-linux-module" + "docker" "linux-pam" - "pulseaudio" + "pulseaudio" ;;"pipewire" "libx11" "xorg-server-xwayland" "fprintd" - "wireplumber" - "virt-manager" - "wireshark" - "zsh" + "wireplumber" + "wireshark" + "zsh" "neovim")) (list swaylock-effects-new) %my-base-packages)) - ;; Below is the list of system services. TO search for available - ;; services. run 'guix system search KEYWORD' in a terminal. - (services - (append (list + ;; Below is the list of system services. TO search for available + ;; services. run 'guix system search KEYWORD' in a terminal. + (services + (append (list - ;; To configure OpenSSH, pass an 'openssh-configuration' - ;; record as a second argument to 'service' below. - (service openssh-service-type) - (service pcscd-service-type) - (service cups-service-type - (cups-configuration - (web-interface? #t))) - ;; Avahi is only present for CUPS to support "automagic" printing - (service avahi-service-type - (avahi-configuration - (publish? #f) ;; do not advertise this machiene - (publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible - (service docker-service-type) - (service nix-service-type) - (service libvirt-service-type - (libvirt-configuration - (unix-sock-group "libvirt"))) - (service virtlog-service-type) - (service bluetooth-service-type) + ;; To configure OpenSSH, pass an 'openssh-configuration' + ;; record as a second argument to 'service' below. + (service openssh-service-type) + (service pcscd-service-type) + (service cups-service-type + (cups-configuration + (web-interface? #t))) + ;; Avahi is only present for CUPS to support "automagic" printing + (service avahi-service-type + (avahi-configuration + (publish? #f) ;; do not advertise this machiene + (publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible + (service docker-service-type) + (service nix-service-type) + (service my-libvirt-service-type) + (service virtlog-service-type) + (service bluetooth-service-type) (service pam-limits-service-type) (service fprintd-service-type) - (udev-rules-service 'fido2 libfido2 #:groups '("plugdev"))) + (udev-rules-service 'fido2 libfido2 #:groups '("plugdev"))) ;; This is the default list of services we - ;; are appending to. + ;; are appending to. (modify-services %desktop-services (guix-service-type config => (guix-configuration @@ -152,9 +151,9 @@ (udev-configuration (inherit config))) (delete pulseaudio-service-type) - (delete gdm-service-type) - (delete avahi-service-type) - (delete alsa-service-type)))) + (delete gdm-service-type) + (delete avahi-service-type) + (delete alsa-service-type)))) (name-service-switch %mdns-host-lookup-nss) diff --git a/modules/home-services/virtualization.scm b/modules/home-services/virtualization.scm new file mode 100644 index 0000000..abc1335 --- /dev/null +++ b/modules/home-services/virtualization.scm @@ -0,0 +1,38 @@ +(define-module (home-services virtualization) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages virtualization) + #:use-module (gnu packages firmware) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services virtualization) + #:use-module (gnu home services) + #:use-module (guix gexp)) + +(define my-libvirt + (package + (inherit libvirt) + (inputs + (modify-inputs (package-inputs libvirt) + (append ovmf))))) +(define (ovmf-special-files config) + `(("/usr/share/OVMF/OVMF_CODE.fd", + (file-append ovmf "/share/firmware/ovmf_x64.bin")))) + +(define-public my-libvirt-service-type + (service-type + (name 'my-libvirt) + (extensions + (list + (service-extension libvirt-service-type + (lambda (config) + (libvirt-configuration + (libvirt my-libvirt) + (unix-sock-group "libvirt"))) + ) + (service-extension special-files-service-type + ovmf-special-files) + )) + (default-value #f) + (description "Libvirt with OVMF"))) +