summaryrefslogtreecommitdiff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm106
1 files changed, 75 insertions, 31 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ed8789be0e..dbf019a0c4 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -83,6 +83,8 @@
;;; Copyright © 2024 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
+;;; Copyright © 2025 Mathieu Laparie <mlaparie@disr.it>
+;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -242,6 +244,7 @@
(linux linux-libre)
source
defconfig
+ modconfig
(configs "")
extra-version)
"Make a customized Linux package NAME derived from the LINUX package.
@@ -255,6 +258,10 @@ A DEFCONFIG file to be used can be given as an origin, as a file-like object
available in the Linux sources. If DEFCONFIG is not given, then a defconfig
file will be saved from the LINUX package configuration.
+MODCONFIG is an origin or file-like object used for make localmodconfig to
+disable unlisted modules. For instance, this can come from using modprobed-db
+periodically on a running machine to find all loaded modules.
+
Additional CONFIGS will be used to modify the given or saved defconfig, which
will finally be used to build Linux.
@@ -323,7 +330,12 @@ of 'uname -r' behind the Linux version numbers."
(chmod guix_defconfig #o644)
(modify-defconfig guix_defconfig '#$configs)
(invoke "make" "guix_defconfig")
- (verify-config ".config" guix_defconfig))))))))))
+ (verify-config ".config" guix_defconfig)
+ ;; Minimize module building if provided e.g. a modprobed-db
+ ;; database.
+ (if #$modconfig
+ (invoke "make" (string-append "LSMOD=" #$modconfig)
+ "localmodconfig")))))))))))
(define (make-defconfig uri sha256-as-base32)
(origin (method url-fetch)
@@ -514,7 +526,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-6.15-version "6.15.10")
+(define-public linux-libre-6.15-version "6.15.11")
(define-public linux-libre-6.15-gnu-revision "gnu")
(define deblob-scripts-6.15
(linux-libre-deblob-scripts
@@ -524,7 +536,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0301x3n5qbg8xm48pxq1dhrq0vkr61bqdcyaz0mbckrg20kw6m67")))
(define-public linux-libre-6.15-pristine-source
(let ((version linux-libre-6.15-version)
- (hash (base32 "01pxk3cnil1wbysp4s6ybh5djskxzf9llmk1qy7zfr2l4mwnbkd4")))
+ (hash (base32 "14sxwrvw9p4ybizb8ky1rgahc62q0aw5qkmzqp3cpnavqfgldaw9")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.15)))
@@ -533,7 +545,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-6.12-version "6.12.42")
+(define-public linux-libre-6.12-version "6.12.43")
(define-public linux-libre-6.12-gnu-revision "gnu")
(define deblob-scripts-6.12
(linux-libre-deblob-scripts
@@ -543,7 +555,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1yl447396g454116j8v17wsqg5i0gyb2rrxvaygw6xdkbwrrj28j")))
(define-public linux-libre-6.12-pristine-source
(let ((version linux-libre-6.12-version)
- (hash (base32 "1yy17c06sn6l0skz8n1kxqhzldgwxxd0xhs11fd3086d56554128")))
+ (hash (base32 "1vmxywg11z946i806sg7rk7jr9px87spmwwbzjxpps2nsjybpjqg")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.12)))
@@ -2348,7 +2360,7 @@ and the notification, WiFi, and Bluetooth LED.")
(define-public tuxedo-keyboard
(package
(name "tuxedo-keyboard")
- (version "4.14.2")
+ (version "4.15.4")
(source
(origin
(method git-fetch)
@@ -2357,21 +2369,23 @@ and the notification, WiFi, and Bluetooth LED.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0b7qivyd8r58cq84q11b2z919px5p9k5zbinm6ahj07w0lsq2j7b"))))
+ (base32 "0mimgcbp57gp3smd439g8040sl80qqnfzmh2vhs2qv1kwyxs75sq"))))
(build-system linux-module-build-system)
(arguments
(list #:tests? #f)) ; no test suite
+ ;; This package fails to build on aarch64, and the manufacturer only sells
+ ;; machines based on Intel-compatible processors. For more information, see
+ ;; <https://codeberg.org/guix/guix/pulls/1795>.
+ (supported-systems '("i686-linux" "x86_64-linux"))
(home-page "https://gitlab.com/tuxedocomputers/development/packages/tuxedo-drivers")
(synopsis "Linux kernel modules to control keyboard on most Tuxedo computers")
(description
"This package provides the @code{tuxedo_keyboard}, @code{tuxedo_io},
@code{clevo_wmi} @acronym{WMI, Windows Management Engine} and the
@code{clevo_acpi} @acronym{ACPI, Advanced Configuration and Power Interface}
-kernel modules to control the keyboard on most Tuxedo computers. Only white
-backlight only models are currently not supported. The @code{tuxedo_io}
-module is also needed for the @code{tuxedo-control-center} (short tcc)
-package.")
- (license license:gpl3+)))
+kernel modules to control the keyboard on most Tuxedo computers. The @code{tuxedo_io}
+module is also needed for the @code{tuxedo-control-center} (short tcc) package.")
+ (license license:gpl2+)))
(define-public evdi
(package
@@ -3063,7 +3077,7 @@ deviation, and minimum and maximum values. It can show a nice histogram too.")
;; FIXME: For now we cannot reliably run tests on GNU/Hurd:
;; <https://bugs.gnu.org/47791>.
#:tests? (and (not (%current-target-system))
- (not (string-suffix? "-gnu" (%current-system))))
+ (not (system-hurd?)))
#:phases
#~(modify-phases %standard-phases
@@ -3378,24 +3392,20 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
(define-public usbutils
(package
(name "usbutils")
- (version "017")
+ (version "018")
(source
(origin
- (method url-fetch)
- (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
- "usbutils-" version ".tar.xz"))
- (sha256
- (base32 "0nz008kshcajc9asxr4j5dh4wgq72z52lws4ga6y60wirzymz8m6"))))
- (build-system gnu-build-system)
+ (method url-fetch)
+ (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
+ "usbutils-" version ".tar.xz"))
+ (sha256
+ (base32 "14xd7j9fl3pm0z4dhqj3mf9paqk431kq4vi602f5hiw5nmcqpxl3"))))
+ (build-system meson-build-system)
(outputs (list "out" "python"))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
- (add-before 'bootstrap 'patch-bootstrap-scripts
- (lambda _
- (substitute* "usbhid-dump/bootstrap"
- (("/bin/sh") (which "sh")))))
(add-after 'install 'separate-python-output
;; Separating one Python script shaves more than 106 MiB from :out.
(lambda _
@@ -3404,17 +3414,21 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
(new (string-append #$output:python "/" file)))
(mkdir-p (dirname new))
(rename-file old new)))
- (list "bin/lsusb.py")))))))
- (inputs
- (list eudev libusb python))
- (native-inputs
- (list autoconf automake libtool pkg-config))
+ (list "bin/lsusb.py"))))
+ (add-after 'install 'install-usbreset
+ (lambda _
+ (install-file "usbreset"
+ (string-append #$output "/bin")))))))
+ (native-inputs (list pkg-config))
+ (inputs (list eudev libusb python))
(home-page "http://www.linux-usb.org/")
(synopsis
"Tools for working with USB devices")
(description
- "Collection of tools to query what type of USB devices are connected to the
-system, including @command{lsusb}.")
+ "Collection of tools to query what type of USB devices are connected to
+the system, including @command{lsusb}. The experimental @command{usbreset}
+command included in the package, but be aware that it may not work for all
+devices.")
(license license:gpl2+)))
(define-public usbip-utils
@@ -12194,6 +12208,36 @@ virtual server table in the Linux kernel. The Linux Virtual Server can be used
to build scalable network services based on a cluster of two or more nodes.")
(license license:gpl2+)))
+(define-public ryzenadj
+ (package
+ (name "ryzenadj")
+ (version "0.17.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/flygoat/ryzenadj/archive/refs/tags/"
+ "v" version ".tar.gz"))
+ (sha256
+ (base32 "0i2x6kbn2ix52vjz1mmh0c0g3w0k4sn0lq68wbsk0pgndzcck2l4"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin (delete-file-recursively "win32")
+ #t))))
+ (build-system cmake-build-system)
+ (inputs (list pciutils))
+ (arguments
+ (list #:tests? #f ; No test suite
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'install 'build
+ (lambda _
+ (invoke "cmake" "-DCMAKE_BUILD_TYPE=Release" "."))))))
+ (home-page "https://github.com/flygoat/ryzenadj")
+ (synopsis "Power management tool for AMD Ryzen APUs")
+ (description
+ "@command{ryzenadj} is an utility to adjust power management settings for
+AMD Ryzen mobile processors. You will need to ensure it can access /dev/mem,
+for instance by using the \"iomem=relaxed\" kernel argument.")
+ (license license:lgpl3)))
+
(define-public ryzen-smu
(package
(name "ryzen-smu")