GNU bug report logs - #31598
Check for initrd-modules fails to detect when loaded module and on-disk module filename differ

Previous Next

Package: guix;

Reported by: Vagrant Cascadian <vagrant <at> debian.org>

Date: Fri, 25 May 2018 21:15:02 UTC

Severity: normal

Merged with 31714

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: tracker <at> debbugs.gnu.org
Subject: bug#31714: closed (Cannot use usb-storage initrd module.)
Date: Thu, 14 Jun 2018 21:39:03 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 14 Jun 2018 23:38:14 +0200
with message-id <87bmcdxd4p.fsf <at> gnu.org>
and subject line Re: bug#31598: Check for initrd-modules fails to detect when loaded module and on-disk module filename differ
has caused the debbugs.gnu.org bug report #31598,
regarding Cannot use usb-storage initrd module.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
31598: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31598
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
To: bug-guix <at> gnu.org
Subject: Cannot use usb-storage initrd module.
Date: Mon, 4 Jun 2018 21:57:32 +0200
My laptop broke and now I use my formerly internal hard disk as an
external hard disk in another laptop.  It booted fine but I could not
reconfigure maybe because Guix checks for a wrong spelling of the
usb-storage module.


When I pulled
1458f768c1049812166228b8526128b199518e50
and reconfigured I was told to use

(operating-system
  ...
  (initrd-modules (append (list "uas" "usb_storage")
                          %base-initrd-modules))

However the module is apparently called usb-storage with a hyphen, the
path is
/gnu/store/9idmpc60bgah6cy6s0k739kpj9qz50qc-linux-libre-4.16.13/lib/modules/4.16.13-gnu/kernel/drivers/usb/storage/usb-storage.ko


Possibly for this reason I got an error

/home/florian/keep/guixsd/guixsd-mac.scm:85:22: warning: 'title' field is deprecated
The following derivations will be built:
   /gnu/store/3rk9b4k6797h0yg7m7fbm8jv920cy2cq-system.drv
   /gnu/store/bkhkin2lils3jb3g6j8v14yn50d97xxh-grub.cfg.drv
   [...]
   /gnu/store/l5bglmivni7211gi52gh3z7wvxlhn0b7-module-import-compiled.drv
   /gnu/store/ys5drlyhchjzvdbib2wc46xp2ybx1w52-linux-modules.drv
   /gnu/store/1xjispr77v2q6d8xxlygvg89ls2w79cv-init.drv
   /gnu/store/05knsd3pq0xjd8lw86rz8a7w5dl181c0-raw-initrd.drv
Backtrace:
           6 (primitive-load "/gnu/store/09v5nd445bk4qkcy2ya84swhbri?")
In ice-9/eval.scm:
    619:8  5 (_ #f)
   626:19  4 (_ #<directory (guile-user) 7ce140>)
   293:34  3 (_ #<directory (guile-user) 7ce140>)
In srfi/srfi-1.scm:
   592:29  2 (map1 _)
   592:17  1 (map1 ("usb_storage" "ahci" "usb-storage" "uas" "usb?" ?))
In unknown file:
           0 (scm-error misc-error #f "~A ~S ~S" ("module not fo?" ?) ?)

ERROR: In procedure scm-error:
module not found "usb_storage.ko" "/gnu/store/9idmpc60bgah6cy6s0k739kpj9qz50qc-linux-libre-4.16.13/lib/modules"
builder for `/gnu/store/ys5drlyhchjzvdbib2wc46xp2ybx1w52-linux-modules.drv' failed with exit code 1
cannot build derivation `/gnu/store/1xjispr77v2q6d8xxlygvg89ls2w79cv-init.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/05knsd3pq0xjd8lw86rz8a7w5dl181c0-raw-initrd.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/bkhkin2lils3jb3g6j8v14yn50d97xxh-grub.cfg.drv': 1 dependencies couldn't be built
guix system: error: build failed: build of `/gnu/store/bkhkin2lils3jb3g6j8v14yn50d97xxh-grub.cfg.drv' failed


But when I use


(operating-system
  ...
  (initrd-modules (append (list "uas" "usb-storage")
                          %base-initrd-modules))

then I get an error because I should spell it usb_storage.


/home/florian/keep/guixsd/guixsd-mac.scm:85:22: warning: 'title' field is deprecated
/home/florian/keep/guixsd/guixsd-mac.scm:80:9: error: you may need these modules in the initrd for /dev/sdc2: uas usb_storage
hint: Try adding them to the `initrd-modules' field of your `operating-system'
declaration, along these lines:

      (operating-system
        ;; ...
        (initrd-modules (append (list "uas" "usb_storage")
                                %base-initrd-modules)))



Eventually I changed gnu/system/mapped-devices.scm to  replace

  (when aliases
    (let ((modules (delete-duplicates
                    (append-map (cut matching-modules <> aliases)
                                (device-module-aliases device)))))
      (unless (every (cute member <> linux-modules) modules)
        (raise (condition
                (&message
                 (message (format #f (G_ "you may need these modules \
in the initrd for ~a:~{ ~a~}")
                                  device modules)))
                (&fix-hint
                 (hint (format #f (G_ "Try adding them to the
...

by #t.  Then it successfully reconfigured.

I tested again Guix commit 19b662ea7c53a28270a783f10ca033d8c9d2a954
today and it is still broken.


[Message part 3 (message/rfc822, inline)]
From: ludo <at> gnu.org (Ludovic Courtès)
To: Vagrant Cascadian <vagrant <at> debian.org>, <pelzflorian <at> pelzflorian.de>
Cc: 31598-done <at> debbugs.gnu.org
Subject: Re: bug#31598: Check for initrd-modules fails to detect when loaded
 module and on-disk module filename differ
Date: Thu, 14 Jun 2018 23:38:14 +0200
Hello Vagrant & Florian,

Vagrant Cascadian <vagrant <at> debian.org> skribis:

> In my config:
>
>   (initrd-modules (append (list ... "sdhci-of-arasan" ... ) %base-initrd-modules))
>
>
> When I run:
>
>   $ sudo -E guix system reconfigure /etc/config.scm
>
>   <unknown location>: error: you may need these modules in the initrd for /dev/mmcblk1p1: sdhci_of_arasan
>   hint: Try adding them to the `initrd-modules' field of your `operating-system' declaration, along these
>   lines:
>
>         (operating-system
>           ;; ...
>           (initrd-modules (append (list "sdhci_of_arasan")
>                                   %base-initrd-modules)))
>
> Since the on-disk module name uses "-" instead of underscores:
>
>   $ find /gnu/store/*linux-libre* -name '*'arasan.ko
>   /gnu/store/nilzipm6fpicvlzfv1w8yj1j8mm1xlan-linux-libre-4.16.11/lib/modules/4.16.11-gnu/kernel/drivers/mmc/host/sdhci-of-arasan.ko
>
>
> But the loaded module uses "_" in the name:
>
>   $ lsmod | grep arasan
>   sdhci_of_arasan        20480  1
>   cqhci                  24576  1 sdhci_of_arasan
>   sdhci_pltfm            16384  1 sdhci_of_arasan
>   sdhci                  61440  2 sdhci_pltfm,sdhci_of_arasan

I believe this is fixed by 411959bef30b488928ab2418a064c8a9b0347c41.
Let me know if it’s not!

Thanks,
Ludo’.


This bug report was last modified 6 years and 353 days ago.

Previous Next


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