unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#31714: Cannot use usb-storage initrd module.
@ 2018-06-04 19:57 pelzflorian (Florian Pelz)
  2018-07-10 11:39 ` Tonton
  0 siblings, 1 reply; 3+ messages in thread
From: pelzflorian (Florian Pelz) @ 2018-06-04 19:57 UTC (permalink / raw)
  To: 31714

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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#31714: Cannot use usb-storage initrd module.
  2018-06-04 19:57 bug#31714: Cannot use usb-storage initrd module pelzflorian (Florian Pelz)
@ 2018-07-10 11:39 ` Tonton
  2018-07-29 16:53   ` Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Tonton @ 2018-07-10 11:39 UTC (permalink / raw)
  To: 31714

[-- Attachment #1: Type: text/plain, Size: 3259 bytes --]

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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#31714: Cannot use usb-storage initrd module.
  2018-07-10 11:39 ` Tonton
@ 2018-07-29 16:53   ` Ludovic Courtès
  0 siblings, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2018-07-29 16:53 UTC (permalink / raw)
  To: Tonton; +Cc: 31714-done

Hello,

Tonton <tonton@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’.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-07-29 16:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-04 19:57 bug#31714: Cannot use usb-storage initrd module pelzflorian (Florian Pelz)
2018-07-10 11:39 ` Tonton
2018-07-29 16:53   ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).