From 4d94cdf69889043dd8d9b1305f5f3946ec0f8ff6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 15 Dec 2022 16:28:14 +0100 Subject: activation: Firmware activation handles missing support in kernel. * gnu/build/activation.scm (activate-firmware): Check if firmware loading is enabled before attempting to use it. --- gnu/build/activation.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'gnu/build') diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 10c9045740..eea2233563 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -363,9 +363,14 @@ second element is the name it should appear at, such as: "Tell the kernel to look for device firmware under DIRECTORY. This mechanism bypasses udev: it allows Linux to handle firmware loading directly by itself, without having to resort to a \"user helper\"." - (call-with-output-file "/sys/module/firmware_class/parameters/path" - (lambda (port) - (display directory port)))) + + ;; If the kernel was built without firmware loading support, this file + ;; does not exist. Do nothing in that case. + (let ((firmware-path "/sys/module/firmware_class/parameters/path")) + (when (file-exists? firmware-path) + (call-with-output-file firmware-path + (lambda (port) + (display directory port)))))) (define (activate-ptrace-attach) "Allow users to PTRACE_ATTACH their own processes. -- cgit v1.2.3