GNU bug report logs - #55909
linux-libre-arm64-generic with %base-initrd-module => kernel module not found "ahci"

Previous Next

Package: guix;

Reported by: Tom Fitzhenry <tom <at> tom-fitzhenry.me.uk>

Date: Sat, 11 Jun 2022 14:15:02 UTC

Severity: normal

To reply to this bug, email your comments to 55909 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#55909; Package guix. (Sat, 11 Jun 2022 14:15:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Tom Fitzhenry <tom <at> tom-fitzhenry.me.uk>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sat, 11 Jun 2022 14:15:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tom Fitzhenry <tom <at> tom-fitzhenry.me.uk>
To: bug-guix <at> gnu.org
Subject: linux-libre-arm64-generic with %base-initrd-module => kernel module
 not found "ahci"
Date: Sun, 12 Jun 2022 00:13:52 +1000
When building linux-libre-arm64-generic with %base-initrd-modules, the
linux-modules derivation fails with `kernel module not found "ahci"'.

Here's the steps to reproduce:

--8<---------------cut here---------------start------------->8---
$ cat minimal.scm
(use-modules
 (gnu packages linux)
 (gnu bootloader)
 (gnu bootloader grub)
 (gnu system file-systems))

(operating-system
  (host-name "foobar")
  (timezone "Australia/Sydney")
  (locale "en_AU.utf8")
  (bootloader (bootloader-configuration
               (bootloader grub-efi-removable-bootloader)
               (targets '("/boot/efi"))))
  (kernel linux-libre-arm64-generic)
  (file-systems (cons* (file-system
                         (device (file-system-label "my-root"))
                         (mount-point "/")
                         (type "ext4"))
                       (file-system
                         (device (file-system-label "boot"))
                         (mount-point "/boot/efi")
                         (type "vfat"))
                       %base-file-systems)))
$ guix time-machine --commit=a99015c8783eb5281618173779a0550b15a79617 --
  system reconfigure minimal.scm
$ zcat /var/log/guix/drvs/f3/2ljaayhsdlza6napn6d62ra1x5cm5f-linux-modules.drv.gz
Backtrace:
           5 (primitive-load "/gnu/store/bpaj7mfbws69b7pfwrdl7dw5pzs?")
In ice-9/eval.scm:
    619:8  4 (_ #f)
   626:19  3 (_ #<directory (guile-user) 5ebc80>)
   293:34  2 (_ #(#<directory (guile-user) 5ebc80> #<procedure loo?>))
In srfi/srfi-1.scm:
   586:17  1 (map1 ("ahci" "usb-storage" "uas" "usbhid" "hid-gene?" ?))
In gnu/build/linux-modules.scm:
    257:5  0 (_)

gnu/build/linux-modules.scm:257:5: kernel module not found "ahci" "/gnu/store/lvdihzd96kwqf31gs37n2b8ykdv1jp07-linux-libre-arm64-generic-5.17.14/lib/modules"
--8<---------------cut here---------------end--------------->8---

This fails beacuse %base-initrd-modules expects the "ahci" module, but
linux-libre-arm64-generic has that built in[0].

Workarounds for users include:

* use linux-libre-5.17, which has the disadvantage that
  linux-libre-5.17 is built from aux-files/linux-libre/*.conf rather
  than defconfig, thus making it less clear how much linux-libre-5.17
  has deviated from mainline's defconfig.
* don't use %base-initrd-modules, which has the disadvantage that users
  have to figure out which modules should be in their initrd
* disabling the check (?), which has the disadvantage that the check can be useful

Ideally users could use linux-libre-arm64-generic with
%base-initrd-modules. To do this, we could:

* replace "CONFIG_SATA_AHCI=m" with "CONFIG_SATA_AHCI=y" in
  gnu/packages/aux-files/linux-libre/*.conf .
* remove "ahci" from %base-initrd-modules

This amounts to converging aux-files/linux-libre/* towards the mainline
defconfigs. Is this a goal?

Thoughts?

0. CONFIG_SATA_AHCI=y, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch/arm64/configs/defconfig?h=v5.17.14#n291




Information forwarded to bug-guix <at> gnu.org:
bug#55909; Package guix. (Thu, 23 May 2024 19:05:02 GMT) Full text and rfc822 format available.

Message #8 received at 55909 <at> debbugs.gnu.org (full text, mbox):

From: Richard Sent <richard <at> freakingpenguin.com>
To: 55909 <at> debbugs.gnu.org
Subject: Re: Converging aux-files/linux-libre/* towards mainline defconfigs
Date: Thu, 23 May 2024 15:03:44 -0400
I would be in favor of building more initrd modules into the kernel when
done so upstream. To my understanding the distinction between
linux-libre and linux-libre-*-generic is to have both:

a) A kernel with options that support the various Guix services OOTB,
such as CONFIG_BINFMT_MISC and qemu-binfmt-service-type.

b) A kernel that matches upstream defconfigs as much as possible, with
the exception of a subset of flags considered essential. See
%default-extra-linux-options or linux-libre-riscv64-generic.

With this model, linux-libre should avoid diverging from upstream
defconfigs whenever possible, particularly when toggling a module from y
to m. linux-libre would become a superset of *-generic kernels.

Obviously I'm not packaging linux-libre myself. I might misunderstand
the purpose of these variants. :)

On a related note, the *-generic kernels seem to also have encapsulated
"add support for a specific board on this platform", which to me feels a
bit like a hacky solution. See linux-libre-arm64-generic and the
Pinebook Pro comments. I'd think that would belong in a
linux-libre-pinebook-pro or similar.

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.




This bug report was last modified 294 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.