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