diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 161 |
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") |