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.scm161
1 files changed, 119 insertions, 42 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ed8789be0e..ba90175513 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,22 @@ 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.16-version "6.16.4")
+(define-public linux-libre-6.16-gnu-revision "gnu")
+(define deblob-scripts-6.16
+ (linux-libre-deblob-scripts
+ linux-libre-6.16-version
+ linux-libre-6.16-gnu-revision
+ (base32 "1s44yaxib45834mjmvqkl70s2lazbzvpxhp4z7qwxkrkpw94mdxx")
+ (base32 "1i4kba2wpkc7jmj7b2qjkrgqsl0g0s1h7j9pfvc7zqyyn9v3kkqr")))
+(define-public linux-libre-6.16-pristine-source
+ (let ((version linux-libre-6.16-version)
+ (hash (base32 "08mnd8qir2vxjmgblhnqfrfbv2zlig68f4r5askk7d8h3b3y79fn")))
+ (make-linux-libre-source version
+ (%upstream-linux-source version hash)
+ deblob-scripts-6.16)))
+
+(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 +551,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 +560,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.44")
(define-public linux-libre-6.12-gnu-revision "gnu")
(define deblob-scripts-6.12
(linux-libre-deblob-scripts
@@ -543,12 +570,12 @@ 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 "1bmx2vpxy6nkxnmm2a3zmv9smaajfhvslj6id54j4yq2sc722l5n")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.12)))
-(define-public linux-libre-6.6-version "6.6.102")
+(define-public linux-libre-6.6-version "6.6.103")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
@@ -558,12 +585,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "11i7pvm5n31rvp05msbm3ciclr84cz9c94f5r5aa6mmzhslwpbxk")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
- (hash (base32 "0p6yjifwyrqlppn40isgxb0b5vqmljggmnp7w75vlc2c6fvzxll0")))
+ (hash (base32 "13mi8blsw0gps586qbvh7ga5r9pv9jld4fkbp9vaaaz6qcwdv26j")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
-(define-public linux-libre-6.1-version "6.1.148")
+(define-public linux-libre-6.1-version "6.1.149")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -573,12 +600,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0f3jgbfd2j7sz7h1hb30s1r9147g1cbb3ia09k9834fvbiz1ihaa")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "18c024bqqc3srzv2gva55p95yghjc6x3p3f54v3hziki4wx3v86r")))
+ (hash (base32 "0fdyfxw80zhkwh29m5v7xfmbyks5wi6isdq6bv96cn4ssfw0dsf4")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
-(define-public linux-libre-5.15-version "5.15.189")
+(define-public linux-libre-5.15-version "5.15.190")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@@ -588,12 +615,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0rg65s6kd9gxxa3wl6180pr39rb6zbcicwjik4kygs2ns0247y56")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "1hshd26ahn6dbw6jnqi0v5afpk672w7p09mk7iri93i7hxdh5l73")))
+ (hash (base32 "0146lslj0my0mhcx7wfp984f270zr8iiyq9899v6f7cflkqi9f32")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
-(define-public linux-libre-5.10-version "5.10.240")
+(define-public linux-libre-5.10-version "5.10.241")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -603,12 +630,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0r1whrfhhhjyvppiidhihcvyzcab6dva6g9a4div8jkxm62s2cq3")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "04sdcf4aqsqchii38anzmk9f9x65wv8q1x3m9dandmi6fabw724d")))
+ (hash (base32 "1mnqjvb1hmr7p035c66k3z0idirhsj9j5zwgb92gi0ac0s1fkh88")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.296")
+(define-public linux-libre-5.4-version "5.4.297")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@@ -618,7 +645,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0l7pwhgw9laxfypcpqlz411x3hybcw2269abh3lpcw96bgv5m1k2")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "0fm73yqzbzclh2achcj8arpg428d412k2wgmlfmyy6xzb1762qrx")))
+ (hash (base32 "0hd8x32xgvj4qnc6cls0q21zfgvxxfz7xhbwgl48hxfggbmgq37i")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
@@ -651,6 +678,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(patches (append (origin-patches source)
patches))))
+(define-public linux-libre-6.16-source
+ (source-with-patches linux-libre-6.16-pristine-source
+ (list %boot-logo-patch
+ %linux-libre-arm-export-__sync_icache_dcache-patch)))
+
(define-public linux-libre-6.15-source
(source-with-patches linux-libre-6.15-pristine-source
(list %boot-logo-patch
@@ -777,6 +809,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(description "Headers of the Linux-Libre kernel.")
(license license:gpl2)))
+(define-public linux-libre-headers-6.16
+ (make-linux-libre-headers* linux-libre-6.16-version
+ linux-libre-6.16-gnu-revision
+ linux-libre-6.16-source))
+
(define-public linux-libre-headers-6.15
(make-linux-libre-headers* linux-libre-6.15-version
linux-libre-6.15-gnu-revision
@@ -822,7 +859,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; linux-libre-headers-latest points to the latest headers package
;; and should be used as a dependency for packages that depend on
;; the headers.
-(define-public linux-libre-headers-latest linux-libre-headers-6.15)
+(define-public linux-libre-headers-latest linux-libre-headers-6.16)
;;;
@@ -1149,6 +1186,14 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
;;; Generic kernel packages.
;;;
+(define-public linux-libre-6.16
+ (make-linux-libre* linux-libre-6.16-version
+ linux-libre-6.16-gnu-revision
+ linux-libre-6.16-source
+ '("x86_64-linux" "i686-linux" "aarch64-linux"
+ "powerpc64le-linux" "riscv64-linux")
+ #:configuration-file kernel-config))
+
(define-public linux-libre-6.15
(make-linux-libre* linux-libre-6.15-version
linux-libre-6.15-gnu-revision
@@ -2348,7 +2393,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 +2402,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 +3110,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 +3425,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 +3447,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 +12241,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")