Cannot use usb-storage initrd module.

  • Done
  • quality assurance status badge
Details
3 participants
  • Ludovic Courtès
  • pelzflorian (Florian Pelz)
  • Tonton
Owner
unassigned
Submitted by
pelzflorian (Florian Pelz)
Severity
normal
Merged with

Debbugs page

pelzflorian (Florian Pelz) wrote 7 years ago
(address . bug-guix@gnu.org)
20180604195732.tbt5uwhzouzxoyxk@floriannotebook
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.
Ludovic Courtès wrote 7 years ago
control message for bug #31598
(address . control@debbugs.gnu.org)
87efhibmqe.fsf@gnu.org
merge 31598 31714
Tonton wrote 7 years ago
Cannot use usb-storage initrd module.
(address . 31714@debbugs.gnu.org)
20180710133732.492d5388@merlin.browniehive.net
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
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEJpQ8ER/dPhCuYhy5z+UMpbuBoZAFAltEmtkACgkQz+UMpbuB
oZCkVA//ZZ/Y72Jp/eMsch/+L5yW+GwvM5I30RcAuU0yBRnuP9D/cVZu/tjK+fTw
Q6hyLhUSlXYZYMp0QqDls5Q8vGPI90LPnR72nrGG6ZiNqFqHBl7L0VEcFczKG5XX
MME6jU38rxle9J+TMmJRM+pnvZvwUreFDCSVQBAelJchty5hMKWeo6dBNrWHyOdu
6vrrrsl/wL7Zj0+W5YFnhVvXIkqL2vjEoM7I8LDYNAfCoNX6dGiERxMaRB/m85oP
n7qlWC10ZI8bDdjeH+344ocmPbes8woISXS6U8QNRzPLe901v4ANGI7ZZT+UpTKO
gE5ku4UAA//KVsBi5mRvlFbktwV1iTIqAos8cYZF1irD91gOIwyAPyHVq3R3ZahR
His4Dboe4fFUR17/m+kO8fgTSypXvfsVnyziIO4RLbV4nUPXPEE9x5DyJOOj5/9a
GpcP4m4JxsU22ozRlCnQOrutAdOCiz/CW9GsuZ+Z/Fwtv7JKhF5Xn12Yt3WsKH8a
xmkzv5GSVghsaugRiTofejUL4yQSvR4cQ1nOVQHh0um7zgB+wAw1XAG8kWwrg5GY
QhxA0UkgliUN8sKL//QNNmPtioe4GREa7aad2NI616ErwJS88/Z+l0yrBuvig0Ha
6vAEYEOx6eavWaS8fVBSp4vACP/OF54dGJftCIT6LXRiipZst7k=
=IlhH
-----END PGP SIGNATURE-----


Ludovic Courtès wrote 7 years ago
(name . Tonton)(address . tonton@riseup.net)(address . 31714-done@debbugs.gnu.org)
87sh42c7b2.fsf@gnu.org
Hello,

Tonton <tonton@riseup.net> skribis:

Toggle quote (17 lines)
> 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")

[...]

Toggle quote (31 lines)
> 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’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 31714@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 31714
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help