linux-libre 4.20+ fails to mount ext4 on aarch64

  • Done
  • quality assurance status badge
Details
4 participants
  • Efraim Flashner
  • Ludovic Courtès
  • Mark H Weaver
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
normal

Debbugs page

Vagrant Cascadian wrote 6 years ago
(address . bug-guix@gnu.org)
87a7jtyeow.fsf@ponder
After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
aarch64 system failed to boot (using 4.19.10 worked fine):

[ 3.692351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/sda6 is mounted.
/dev/sda6: clean, 596262/6553600 files, 7663147/26214400 blocks
[ 3.948786] EXT4-fs (sda6): Cannot load crc32c driver.
ERROR: In procedure mount:
In procedure mount: No such file or directory

Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 2.2.4
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)>

Workaround or fix was to add to config.scm:

(initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))


4.19.10 and earlier worked fine without this addition; as far as I can
see the relevent kernel configurations are all present; but some
behavior changed with the ext4 driver; Is the initrd no longer including
soft module dependencies? (e.g. for optional ext4 features)


This seems similar to Debian bug:



live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXEYiIAAKCRDcUY/If5cW
qqQtAP0c/lgwd8j/zhgaMkQ7R5Noc+fi2bcDb1pEduD5J1rcuAEAgpNcIHsGgGG2
cemM2Qs7Ab/DO/saqz3VHw42QUlbxgY=
=LG55
-----END PGP SIGNATURE-----

Ludovic Courtès wrote 6 years ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 34162@debbugs.gnu.org)
874l9zhcew.fsf@gnu.org
Hi Vagrant,

Vagrant Cascadian <vagrant@debian.org> skribis:

Toggle quote (25 lines)
> After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
> aarch64 system failed to boot (using 4.19.10 worked fine):
>
> [ 3.692351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/sda6 is mounted.
> /dev/sda6: clean, 596262/6553600 files, 7663147/26214400 blocks
> [ 3.948786] EXT4-fs (sda6): Cannot load crc32c driver.
> ERROR: In procedure mount:
> In procedure mount: No such file or directory
>
> Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
> GNU Guile 2.2.4
> Copyright (C) 1995-2017 Free Software Foundation, Inc.
>
> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> This program is free software, and you are welcome to redistribute it
> under certain conditions; type `,show c' for details.
>
> Enter `,help' for help.
> scheme@(guile-user)>
>
> Workaround or fix was to add to config.scm:
>
> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))

There are potentially two issues here:

1. Why wasn’t crc32c_generic.ko automatically pulled in by the initrd
build code? Isn’t it a dependency of ext4.ko?

2. Is crc32c_generic built-in in our x86_64 kernel config?

Thanks,
Ludo’.
Vagrant Cascadian wrote 6 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 34162@debbugs.gnu.org)
87h8dzw9i9.fsf@ponder
On 2019-01-23, Ludovic Courtès wrote:
Toggle quote (10 lines)
> Vagrant Cascadian <vagrant@debian.org> skribis:
>> After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
>> aarch64 system failed to boot (using 4.19.10 worked fine):
>>
>> [ 3.692351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
>> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/sda6 is mounted.
>> /dev/sda6: clean, 596262/6553600 files, 7663147/26214400 blocks
>> [ 3.948786] EXT4-fs (sda6): Cannot load crc32c driver.
>> ERROR: In procedure mount:
>> In procedure mount: No such file or directory
...
Toggle quote (9 lines)
>> Workaround or fix was to add to config.scm:
>>
>> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))
>
> There are potentially two issues here:
>
> 1. Why wasn’t crc32c_generic.ko automatically pulled in by the initrd
> build code? Isn’t it a dependency of ext4.ko?

It is not a hard dependency, no. It's an optional feature only needed if
certain ext4 features are enabled on the filesystem (maybe metadata_csum
in this case?). So it's listed as a MODULE_SOFTDEP of ext4:

fs/ext4/super.c:MODULE_SOFTDEP("pre: crc32c");


Toggle quote (2 lines)
> 2. Is crc32c_generic built-in in our x86_64 kernel config?

On x86_64:

$ grep CRC32 /gnu/store/*linux-libre*4.20.4*/.config
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32C_INTEL=y
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
CONFIG_LIBCRC32C=m

On aarch64:

$ grep CRC32 /gnu/store/*linux-libre*4.20.3*/.config
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
CONFIG_LIBCRC32C=m

on aarch64 4.19.10 also contained:

CONFIG_CRYPTO_CRC32_ARM64_CE=y

Which is no longer available in 4.20.x upstream in commit
598b7d41e544322c8c4f3737ee8ddf905a44175e.

So my hunch is that crc32c-ce was used in 4.19.x, but 4.20.x needed the
generic crc32c implementation.


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXEio3wAKCRDcUY/If5cW
qr00AQD8a+iBvyWsPayY4AIivxNUbXADpb9JF0E7pV9ZcaYpYgD+Ii/6UOGKfu2T
X6HDAWg/7UOTG/2Xkp4T1NCPduB5/Qk=
=lAnf
-----END PGP SIGNATURE-----

Efraim Flashner wrote 6 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
20190123175424.GA11329@macbook41
On Wed, Jan 23, 2019 at 11:54:31AM +0100, Ludovic Courtès wrote:
Toggle quote (36 lines)
> Hi Vagrant,
>
> Vagrant Cascadian <vagrant@debian.org> skribis:
>
> > After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
> > aarch64 system failed to boot (using 4.19.10 worked fine):
> >
> > [ 3.692351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
> > ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/sda6 is mounted.
> > /dev/sda6: clean, 596262/6553600 files, 7663147/26214400 blocks
> > [ 3.948786] EXT4-fs (sda6): Cannot load crc32c driver.
> > ERROR: In procedure mount:
> > In procedure mount: No such file or directory
> >
> > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
> > GNU Guile 2.2.4
> > Copyright (C) 1995-2017 Free Software Foundation, Inc.
> >
> > Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> > This program is free software, and you are welcome to redistribute it
> > under certain conditions; type `,show c' for details.
> >
> > Enter `,help' for help.
> > scheme@(guile-user)>
> >
> > Workaround or fix was to add to config.scm:
> >
> > (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))
>
> There are potentially two issues here:
>
> 1. Why wasn’t crc32c_generic.ko automatically pulled in by the initrd
> build code? Isn’t it a dependency of ext4.ko?
>
> 2. Is crc32c_generic built-in in our x86_64 kernel config?
>
$ grep _CRC gnu/packages/aux-files/linux-libre/4.20-{x86_,arm}64.conf
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_W1_SLAVE_DS2433_CRC is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_PWM_CRC=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C_INTEL=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32_PCLMUL=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRCT10DIF=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_CCITT=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC16=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_T10DIF=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_ITU_T=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC32=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SELFTEST is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC32_SLICEBY8=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SLICEBY4 is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SARWATE is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_BIT is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC64=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC4 is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC7=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC8=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_W1_SLAVE_DS2433_CRC is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32C=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRCT10DIF=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_CCITT=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC16=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_T10DIF=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_ITU_T=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC32=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SELFTEST is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC32_SLICEBY8=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SLICEBY4 is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SARWATE is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_BIT is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC64=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC4 is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC7=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC8=m

It looks like the only one that they share that is different is
CONFIG_CRYPTO_CRC32C

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlxIqkUACgkQQarn3Mo9
g1HgxhAAvVsdUGvryR3iCKOZ0UqjVtSs30/ri84h/lypauTw+zh5kSZe/JsWZP3/
jM8rXolQ+vrrNwC2IdJ7GoWOm5SS4kbaiwCkxGquVEjZ977wizG5xhFMdIdecuvj
wzmPFI6QYotBMCwjj8s2iY5/tYeB/hqnygD5K386vTaRiml5Kbc7OnrcnVGtFZPP
f9qOwFV6C3bfp1AnTAxn4JQDRuBRsX2rgfL0MgSGVJ1HmzfV0xEwVHYD+xg8mUou
xiKjrR3/6ooe4TX13w9u0kc2oO+4+AkbrEgCBeqKI5z3Vp54Md+jcqUdyVaWQy4H
5HKAuXaiSvwboBTQp7Fpyiy9TK65cA8Q4MJXMHZJdcPMFgMiK2toPZQlfAJqbYF8
VtCQImNEEMkzM8d89QR6DDw7FLAs/EMyAMbqmOY0eGZEESEAlb8D0U9fKG9A8HPo
+l8yxACQsxKUFxKgYB+USDe27uocjEkzJYpNdLCqktyzbA+ejjZtJstqG8zeCtHs
AnJz3DL2p83qjsXDivVaLx3e/f+1t75k4JplTJw46exS6pxc9+KSDa+5fDavH2ug
MuYr0HeqCkPWMs1NpLsGKGH5wIbGxjahuMebD43f18IYVaWzgoG48Q8BlidF2E9Y
TsWnWFUJeX3GLkPUkY8HeuL5A8LcX+yGx98bUsLRrQ5ltNQn/JY=
=Skk5
-----END PGP SIGNATURE-----


Efraim Flashner wrote 6 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
20190123175707.GB11329@macbook41
Attachment: file
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlxIqvMACgkQQarn3Mo9
g1Hz+g//SwdFRqAvTO5JgjcCvh9WQNbuh42e2J7wbLVQjU306gyVtVtNXf4uuEr3
5UnIjXTBcUCZ2dSj8F+bHvP6EZdmKRnhNE78rmxXZx5OWOmCg2wjSsCP05OxcVTp
QFqHea3r6PeE+Nf2kLvTznEb3V9aIJh/Yj9Gsse2tqQvX1vGXsFX/lpYNcaH6+jc
OERlMXRZXiwn/Mn6KuB9KPfLWb6jblSD7wtstD8Uoi8JK4Ai6ZGsmnAcgGnrSEWn
aARvR6bcglIRJ6+Ot1O2rdSfcJGDWTH4P/fTgK8nKfJepKsmFGYd1zIP86THh3wx
4hPR4k38RwN1OSFp1i6hN5UFisKVZLlqJMDFQvp/+jdWfbhhwH+b6c+0i7C8D2qE
+daou2hcB3C0Wlhtjqv1X4U6/pDWSW7UCXHXP8yXi6J87MqEkzAwjdteFb/twcK6
e/4c9R3qAyJOgC6q0PKC/DIypvdvgew+urHWzYdrL+d9VHN1ShxXPeg24bEjWbob
Gp3plv8aR/KG5/Lah0ngs+gAdveUg23zJ4FF6Gzt8BDKXz1Lta2cEKYKCGp+5oYI
yYhkrcD+CK7ybgOFdSh28Ebr1y5nxZoz3w9GjAkvib5x/7LgiTu8VPCgz55m2Fee
XfDJVdI1CgNTpvzPyn0PZprko+hgqG0IRwwTWVwHCZs52EVLkz4=
=CkCc
-----END PGP SIGNATURE-----


Mark H Weaver wrote 6 years ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 34162@debbugs.gnu.org)
874l9zm6oy.fsf@netris.org
Hi,

Vagrant Cascadian <vagrant@debian.org> writes:

Toggle quote (3 lines)
> After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
> aarch64 system failed to boot (using 4.19.10 worked fine):

[...]

Toggle quote (4 lines)
> Workaround or fix was to add to config.scm:
>
> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))

Here's a proposed (untested) patch. Would you like to test it and see
if it eliminates the need for this workaround?

Mark
From 20a57e861cff4dce40c4eb6c7344f12d1f283cf8 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Wed, 23 Jan 2019 01:20:30 -0500
Subject: [PATCH] gnu: linux-libre: Make CRYPTO_CRC32C a built-in on arm64.

Reported by Vagrant Cascadian <vagrant@debian.org>

Note that CRYPTO_CRC32C was already a built-in in our default
configurations for other systems.

* gnu/packages/aux-files/linux-libre/4.20-arm64.conf,
gnu/packages/aux-files/linux-libre/4.19-arm64.conf
(CONFIG_CRYPTO_CRC32C): Change from 'm' to 'y'.
---
gnu/packages/aux-files/linux-libre/4.19-arm64.conf | 2 +-
gnu/packages/aux-files/linux-libre/4.20-arm64.conf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

Toggle diff (28 lines)
diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
index ba6fa177b..73cd300c1 100644
--- a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
@@ -7860,7 +7860,7 @@ CONFIG_CRYPTO_VMAC=m
#
# Digest
#
-CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_GHASH=m
diff --git a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
index 9e71cadf0..3833e3e36 100644
--- a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
@@ -7932,7 +7932,7 @@ CONFIG_CRYPTO_VMAC=m
#
# Digest
#
-CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_GHASH=m
--
2.20.1
Vagrant Cascadian wrote 6 years ago
(name . Mark H Weaver)(address . mhw@netris.org)(address . 34162@debbugs.gnu.org)
87ef92x4to.fsf@ponder
On 2019-01-23, Mark H Weaver wrote:
Toggle quote (14 lines)
> Vagrant Cascadian <vagrant@debian.org> writes:
>
>> After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
>> aarch64 system failed to boot (using 4.19.10 worked fine):
>
> [...]
>
>> Workaround or fix was to add to config.scm:
>>
>> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))
>
> Here's a proposed (untested) patch. Would you like to test it and see
> if it eliminates the need for this workaround?

It did, thanks!

live well,
vagrant

Toggle quote (47 lines)
> From 20a57e861cff4dce40c4eb6c7344f12d1f283cf8 Mon Sep 17 00:00:00 2001
> From: Mark H Weaver <mhw@netris.org>
> Date: Wed, 23 Jan 2019 01:20:30 -0500
> Subject: [PATCH] gnu: linux-libre: Make CRYPTO_CRC32C a built-in on arm64.
>
> Fixes <https://bugs.gnu.org/34162>
> Reported by Vagrant Cascadian <vagrant@debian.org>
>
> Note that CRYPTO_CRC32C was already a built-in in our default
> configurations for other systems.
>
> * gnu/packages/aux-files/linux-libre/4.20-arm64.conf,
> gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> (CONFIG_CRYPTO_CRC32C): Change from 'm' to 'y'.
> ---
> gnu/packages/aux-files/linux-libre/4.19-arm64.conf | 2 +-
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> index ba6fa177b..73cd300c1 100644
> --- a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> +++ b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> @@ -7860,7 +7860,7 @@ CONFIG_CRYPTO_VMAC=m
> #
> # Digest
> #
> -CONFIG_CRYPTO_CRC32C=m
> +CONFIG_CRYPTO_CRC32C=y
> CONFIG_CRYPTO_CRC32=m
> CONFIG_CRYPTO_CRCT10DIF=y
> CONFIG_CRYPTO_GHASH=m
> diff --git a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
> index 9e71cadf0..3833e3e36 100644
> --- a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
> +++ b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
> @@ -7932,7 +7932,7 @@ CONFIG_CRYPTO_VMAC=m
> #
> # Digest
> #
> -CONFIG_CRYPTO_CRC32C=m
> +CONFIG_CRYPTO_CRC32C=y
> CONFIG_CRYPTO_CRC32=m
> CONFIG_CRYPTO_CRCT10DIF=y
> CONFIG_CRYPTO_GHASH=m
> --
> 2.20.1
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXEkKVAAKCRDcUY/If5cW
qnoJAQDrWO0qQHaSzTP3vqH4Km7PYafJuuqCO1R28M1B56ZzawEA7UK6YoSIatXV
u9gNzYvYNC+P2OSjPm3OXGQcslIYxgI=
=iN2P
-----END PGP SIGNATURE-----

Mark H Weaver wrote 6 years ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 34162-done@debbugs.gnu.org)
87imyeln2l.fsf@netris.org
Vagrant Cascadian <vagrant@debian.org> writes:

Toggle quote (6 lines)
> On 2019-01-23, Mark H Weaver wrote:
>> Here's a proposed (untested) patch. Would you like to test it and see
>> if it eliminates the need for this workaround?
>
> It did, thanks!

Okay, I pushed it to master, commit
ff0b73028c0bbbcbf352989ed3863947357c3bce.

I'm closing this bug report.

Thanks!
Mark
Closed
Ludovic Courtès wrote 6 years ago
(name . Efraim Flashner)(address . efraim@flashner.co.il)
87munprujf.fsf@gnu.org
Hello!

Efraim Flashner <efraim@flashner.co.il> skribis:

Toggle quote (9 lines)
> Checked the others right after I sent the previous email:
> $ grep _CRC32C gnu/packages/aux-files/linux-libre/4.20-*.conf
> gnu/packages/aux-files/linux-libre/4.20-arm.conf:CONFIG_CRYPTO_CRC32C=y
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32C=m
> gnu/packages/aux-files/linux-libre/4.20-i686.conf:CONFIG_CRYPTO_CRC32C=y
> gnu/packages/aux-files/linux-libre/4.20-i686.conf:CONFIG_CRYPTO_CRC32C_INTEL=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C_INTEL=y

Oh, could this one be the culprit, Vagrant?

Ludo’.
Ludovic Courtès wrote 6 years ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 34162@debbugs.gnu.org)
87h8dxru3m.fsf@gnu.org
Hi,

Vagrant Cascadian <vagrant@debian.org> skribis:

Toggle quote (27 lines)
> On 2019-01-23, Ludovic Courtès wrote:
>> Vagrant Cascadian <vagrant@debian.org> skribis:
>>> After upgrading to linux-libre 4.20, and again tested with 4.20.3, an
>>> aarch64 system failed to boot (using 4.19.10 worked fine):
>>>
>>> [ 3.692351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
>>> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/sda6 is mounted.
>>> /dev/sda6: clean, 596262/6553600 files, 7663147/26214400 blocks
>>> [ 3.948786] EXT4-fs (sda6): Cannot load crc32c driver.
>>> ERROR: In procedure mount:
>>> In procedure mount: No such file or directory
> ...
>>> Workaround or fix was to add to config.scm:
>>>
>>> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))
>>
>> There are potentially two issues here:
>>
>> 1. Why wasn’t crc32c_generic.ko automatically pulled in by the initrd
>> build code? Isn’t it a dependency of ext4.ko?
>
> It is not a hard dependency, no. It's an optional feature only needed if
> certain ext4 features are enabled on the filesystem (maybe metadata_csum
> in this case?). So it's listed as a MODULE_SOFTDEP of ext4:
>
> fs/ext4/super.c:MODULE_SOFTDEP("pre: crc32c");

Interesting. Should we add support for soft dependencies in (gnu build
linux-modules), and pull in soft dependencies in the initrd? Currently
we only do that for hard dependencies.

That wouldn’t help in this case since ext4 is built-in. So my guess is
that for this particular case we should probably just change the AArch64
kernel config so it matches the x86 ones.

Thoughts?

Thanks,
Ludo’.
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 34162
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