GNU bug report logs - #31714
Cannot use usb-storage initrd module.

Previous Next

Package: guix;

Reported by: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>

Date: Mon, 4 Jun 2018 19:58:02 UTC

Severity: normal

Merged with 31598

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31714 in the body.
You can then email your comments to 31714 AT debbugs.gnu.org in the normal way.

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#31714; Package guix. (Mon, 04 Jun 2018 19:58:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 04 Jun 2018 19:58:02 GMT) Full text and rfc822 format available.

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

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.




Merged 31598 31714. Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Thu, 07 Jun 2018 16:12:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#31714; Package guix. (Tue, 10 Jul 2018 11:40:02 GMT) Full text and rfc822 format available.

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

From: Tonton <tonton <at> riseup.net>
To: 31714 <at> debbugs.gnu.org
Subject: Cannot use usb-storage initrd module.
Date: Tue, 10 Jul 2018 13:39:05 +0200
[Message part 1 (text/plain, inline)]
Today it seems I hit this bug.

The last days I've been upgrading this machine with guix pull, and have been
booting and reconfiguring fine until a few hours ago.

Also, sorry about formatting.

My config contained:

 (initrd (lambda (file-systems . rest)
	   ;; Add a kernel module for RAID-0 (aka. "stripe")
           ;; and RAID-1 (aka. "mirror").
	   (apply base-initrd file-systems
		  #:extra-modules '("raid0" "raid1")
		  rest)))

And I got an error from guix system reconfigure/build:

<unknown location>: error: you may need these modules in the initrd
for /dev/sdg2: uas usb_storage
hint: Try adding them to the `initrd-modules' field of your
`operating-system' declaration, (initrd-modules (append (list "uas"
"usb_storage")

The machine has the OS on a usb stick because all the internal SATA drives
are RAID and I prefer to separate them. This machine has been configured like
this for a long time.


After following the recommendation (and finding the module in store is
actually named usb-storage.ko) I end up with the following config snippet:

 (initrd-modules (append (list "uas" "usb-storage" "raid0" "raid1")
                         %base-initrd-modules))

 (initrd (lambda (file-systems . rest)
	   ;; Add a kernel module for RAID-0 (aka. "stripe")
           ;; and RAID-1 (aka. "mirror").
	   (apply base-initrd file-systems
		  #:extra-modules '("raid0" "raid1"); "uas" "usb-storage")
		  rest)))

This works if I use --skip-checks. But with checks it gives me the same error
as above, changing the initrd-modules line to:

 (initrd-modules (append (list "uas" "usb_storage" "raid0" "raid1")

Gives the following error:

The following derivations will be built:
   /gnu/store/p5sash3cqywp5kmb9dwh8kbxy0rrdmc0-system.drv
   /gnu/store/g7pfwc7386x1bxf5pdv5nh1xz6ywxgxm-grub.cfg.drv
   /gnu/store/w57aw36wpc0388aa1frkj7h7qh8xac6z-parameters.drv
   /gnu/store/kh9v5z295kz4p79q3kancdv8d86n3cxr-linux-modules.drv
   /gnu/store/pbrj245mgv9zcy3shid348n8qdpv468v-init.drv
   /gnu/store/mvl7lb92g39d0qw08r2l2qiysvdf0sgs-raw-initrd.drv
Backtrace:
           6 (primitive-load "/gnu/store/hj17134gdpixdpif8nljwyh31k1?")
In ice-9/eval.scm:
    619:8  5 (_ #f)
   626:19  4 (_ #<directory (guile-user) 7cc140>)
   293:34  3 (_ #<directory (guile-user) 7cc140>)
In srfi/srfi-1.scm:
   592:29  2 (map1 _)
   592:17  1 (map1 ("usb_storage" "raid0" "raid1" "ahci" "usb-sto?" ?))
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/khxmq6p1470171537z8agikiqmi469jr-linux-libre-4.17/lib/modules"
builder for `/gnu/store/kh9v5z295kz4p79q3kancdv8d86n3cxr-linux-modules.drv'
failed with exit code 1 cannot build derivation
`/gnu/store/pbrj245mgv9zcy3shid348n8qdpv468v-init.drv': 1 dependencies
couldn't be built cannot build derivation
`/gnu/store/mvl7lb92g39d0qw08r2l2qiysvdf0sgs-raw-initrd.drv': 1 dependencies
couldn't be built cannot build derivation
`/gnu/store/g7pfwc7386x1bxf5pdv5nh1xz6ywxgxm-grub.cfg.drv': 1 dependencies
couldn't be built guix system: error: build failed: build of
`/gnu/store/g7pfwc7386x1bxf5pdv5nh1xz6ywxgxm-grub.cfg.drv' failed

[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#31714; Package guix. (Sun, 29 Jul 2018 16:54:01 GMT) Full text and rfc822 format available.

Message #13 received at 31714-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Tonton <tonton <at> riseup.net>
Cc: 31714-done <at> debbugs.gnu.org
Subject: Re: bug#31714: Cannot use usb-storage initrd module.
Date: Sun, 29 Jul 2018 18:53:21 +0200
Hello,

Tonton <tonton <at> riseup.net> skribis:

> My config contained:
>
>  (initrd (lambda (file-systems . rest)
> 	   ;; Add a kernel module for RAID-0 (aka. "stripe")
>            ;; and RAID-1 (aka. "mirror").
> 	   (apply base-initrd file-systems
> 		  #:extra-modules '("raid0" "raid1")
> 		  rest)))
>
> And I got an error from guix system reconfigure/build:
>
> <unknown location>: error: you may need these modules in the initrd
> for /dev/sdg2: uas usb_storage
> hint: Try adding them to the `initrd-modules' field of your
> `operating-system' declaration, (initrd-modules (append (list "uas"
> "usb_storage")

[...]

> This works if I use --skip-checks. But with checks it gives me the same error
> as above, changing the initrd-modules line to:
>
>  (initrd-modules (append (list "uas" "usb_storage" "raid0" "raid1")
>
> Gives the following error:
>
> The following derivations will be built:
>    /gnu/store/p5sash3cqywp5kmb9dwh8kbxy0rrdmc0-system.drv
>    /gnu/store/g7pfwc7386x1bxf5pdv5nh1xz6ywxgxm-grub.cfg.drv
>    /gnu/store/w57aw36wpc0388aa1frkj7h7qh8xac6z-parameters.drv
>    /gnu/store/kh9v5z295kz4p79q3kancdv8d86n3cxr-linux-modules.drv
>    /gnu/store/pbrj245mgv9zcy3shid348n8qdpv468v-init.drv
>    /gnu/store/mvl7lb92g39d0qw08r2l2qiysvdf0sgs-raw-initrd.drv
> Backtrace:
>            6 (primitive-load "/gnu/store/hj17134gdpixdpif8nljwyh31k1?")
> In ice-9/eval.scm:
>     619:8  5 (_ #f)
>    626:19  4 (_ #<directory (guile-user) 7cc140>)
>    293:34  3 (_ #<directory (guile-user) 7cc140>)
> In srfi/srfi-1.scm:
>    592:29  2 (map1 _)
>    592:17  1 (map1 ("usb_storage" "raid0" "raid1" "ahci" "usb-sto?" ?))
> 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/khxmq6p1470171537z8agikiqmi469jr-linux-libre-4.17/lib/modules"
> builder for `/gnu/store/kh9v5z295kz4p79q3kancdv8d86n3cxr-linux-modules.drv'

The problem was that the hint would specify “usb_storage”, which is the
correct module name but not the right *file* name (it’s “usb-storage”,
notice the hyphen.)

This is fixed in commit fcd068e984078ab74c6842af2525bf88096cd262, which
takes a sledgehammer approach: it tries hyphen and underscore file
names, such that ‘initrd-modules’ can contain either “usb_storage” or
“usb-storage”.

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 27 Aug 2018 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 215 days ago.

Previous Next


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