From dad7b8d70da67be321d700719769f846411ecf4c Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 30 Sep 2025 03:12:08 +0300 Subject: [PATCH] services: libvirt: Make dmidecode available to fix SMBIOS error. The libvirt daemon requires 'dmidecode' to provide Host SMBIOS information to virtual machines. Without it in the PATH, it fails with the error: "Host SMBIOS information is not available". * gnu/services/virtualization.scm (libvirt-configuration): Add 'dmidecode' field to specify the dmidecode package. (libvirt-service-type): Add dmidecode to system profile to ensure it's available in PATH. * doc/guix.texi (Virtualization Services): Document the new 'dmidecode' option. Change-Id: I8e5e565e95149c5aeba2dc0c5c757046efa6de2d --- doc/guix.texi | 5 ++++- gnu/services/virtualization.scm | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7162a5f06b7..a83560b53f9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -56,7 +56,7 @@ Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2023, 2024, 2025 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* -Copyright @copyright{} 2018, 2021, 2023 Oleg Pykhalov@* +Copyright @copyright{} 2018, 2021, 2023, 2025 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* @@ -39640,6 +39640,9 @@ Libvirt package. @item @code{qemu} (default: @code{qemu}) (type: file-like) The QEMU package to use. +@item @code{dmidecode} (default: @code{dmidecode}) (type: file-like) +The Dmidecode package to use. + @item @code{firmwares} (default: @code{(ovmf-x86-64)}) (type: list-of-file-likes) List of UEFI/BIOS firmware packages to make available. Each firmware package should contain a @file{share/qemu/firmware/@var{NAME}.json} QEMU diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 122e2715dcb..f369c29c76d 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2018, 2020-2025 Ludovic Courtès ;;; Copyright © 2020, 2021, 2023, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2021 Timotej Lazar -;;; Copyright © 2022 Oleg Pykhalov +;;; Copyright © 2022, 2025 Oleg Pykhalov ;;; Copyright © 2022 Leo Nikkilä ;;; Copyright © 2023 Efraim Flashner ;;; Copyright © 2024 Raven Hallsby @@ -111,6 +111,7 @@ libvirt-configuration-ca-file libvirt-configuration-cert-file libvirt-configuration-crl-file + libvirt-configuration-dmidecode libvirt-configuration-firmwares libvirt-configuration-host-uuid libvirt-configuration-host-uuid-source @@ -220,6 +221,9 @@ (qemu (file-like qemu) "The QEMU package to use.") + (dmidecode + (file-like dmidecode) + "The Dmidecode package to use.") (firmwares (list-of-file-likes (list ovmf-x86-64)) "List of UEFI/BIOS firmware packages to make available. Each firmware @@ -529,7 +533,8 @@ avoid potential infinite waits blocking libvirt.")) (compose list libvirt-configuration-libvirt)) (service-extension profile-service-type (lambda (config) - (list (libvirt-configuration-libvirt config) + (list (libvirt-configuration-dmidecode config) + (libvirt-configuration-libvirt config) (libvirt-configuration-qemu config)))) ;; Libvirt only considers the $libvirt/share/qemu/firmware and ;; /etc/qemu/firmware directories to locate the QEMU firmware metadata