* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
@ 2019-01-21 19:48 Vagrant Cascadian
2019-01-23 10:54 ` Ludovic Courtès
2019-01-23 20:58 ` Mark H Weaver
0 siblings, 2 replies; 10+ messages in thread
From: Vagrant Cascadian @ 2019-01-21 19:48 UTC (permalink / raw)
To: 34162
[-- Attachment #1: Type: text/plain, Size: 1416 bytes --]
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:
https://bugs.debian.org/819725
live well,
vagrant
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-21 19:48 bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64 Vagrant Cascadian
@ 2019-01-23 10:54 ` Ludovic Courtès
2019-01-23 17:48 ` Vagrant Cascadian
2019-01-23 17:54 ` Efraim Flashner
2019-01-23 20:58 ` Mark H Weaver
1 sibling, 2 replies; 10+ messages in thread
From: Ludovic Courtès @ 2019-01-23 10:54 UTC (permalink / raw)
To: Vagrant Cascadian; +Cc: 34162
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?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-23 10:54 ` Ludovic Courtès
@ 2019-01-23 17:48 ` Vagrant Cascadian
2019-01-25 8:59 ` Ludovic Courtès
2019-01-23 17:54 ` Efraim Flashner
1 sibling, 1 reply; 10+ messages in thread
From: Vagrant Cascadian @ 2019-01-23 17:48 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 34162
[-- Attachment #1: Type: text/plain, Size: 2325 bytes --]
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");
> 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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-23 10:54 ` Ludovic Courtès
2019-01-23 17:48 ` Vagrant Cascadian
@ 2019-01-23 17:54 ` Efraim Flashner
2019-01-23 17:57 ` Efraim Flashner
1 sibling, 1 reply; 10+ messages in thread
From: Efraim Flashner @ 2019-01-23 17:54 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Vagrant Cascadian, 34162
[-- Attachment #1: Type: text/plain, Size: 5094 bytes --]
On Wed, Jan 23, 2019 at 11:54:31AM +0100, Ludovic Courtès wrote:
> 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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-23 17:54 ` Efraim Flashner
@ 2019-01-23 17:57 ` Efraim Flashner
2019-01-25 8:49 ` Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Efraim Flashner @ 2019-01-23 17:57 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Vagrant Cascadian, 34162
[-- Attachment #1: Type: text/plain, Size: 5912 bytes --]
On Wed, Jan 23, 2019 at 07:54:24PM +0200, Efraim Flashner wrote:
> On Wed, Jan 23, 2019 at 11:54:31AM +0100, Ludovic Courtès wrote:
> > 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
>
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
--
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-21 19:48 bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64 Vagrant Cascadian
2019-01-23 10:54 ` Ludovic Courtès
@ 2019-01-23 20:58 ` Mark H Weaver
2019-01-24 0:44 ` Vagrant Cascadian
1 sibling, 1 reply; 10+ messages in thread
From: Mark H Weaver @ 2019-01-23 20:58 UTC (permalink / raw)
To: Vagrant Cascadian; +Cc: 34162
[-- Attachment #1: Type: text/plain, Size: 446 bytes --]
Hi,
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?
Mark
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: [PATCH] gnu: linux-libre: Make CRYPTO_CRC32C a built-in on arm64 --]
[-- Type: text/x-patch, Size: 1634 bytes --]
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
^ permalink raw reply related [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-23 20:58 ` Mark H Weaver
@ 2019-01-24 0:44 ` Vagrant Cascadian
2019-01-24 4:02 ` Mark H Weaver
0 siblings, 1 reply; 10+ messages in thread
From: Vagrant Cascadian @ 2019-01-24 0:44 UTC (permalink / raw)
To: Mark H Weaver; +Cc: 34162
[-- Attachment #1: Type: text/plain, Size: 2309 bytes --]
On 2019-01-23, Mark H Weaver wrote:
> 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
> 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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-24 0:44 ` Vagrant Cascadian
@ 2019-01-24 4:02 ` Mark H Weaver
0 siblings, 0 replies; 10+ messages in thread
From: Mark H Weaver @ 2019-01-24 4:02 UTC (permalink / raw)
To: Vagrant Cascadian; +Cc: 34162-done
Vagrant Cascadian <vagrant@debian.org> writes:
> 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
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-23 17:57 ` Efraim Flashner
@ 2019-01-25 8:49 ` Ludovic Courtès
0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2019-01-25 8:49 UTC (permalink / raw)
To: Efraim Flashner; +Cc: Vagrant Cascadian, 34162
Hello!
Efraim Flashner <efraim@flashner.co.il> skribis:
> 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’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
2019-01-23 17:48 ` Vagrant Cascadian
@ 2019-01-25 8:59 ` Ludovic Courtès
0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2019-01-25 8:59 UTC (permalink / raw)
To: Vagrant Cascadian; +Cc: 34162
Hi,
Vagrant Cascadian <vagrant@debian.org> skribis:
> 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’.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-01-25 9:00 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-21 19:48 bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64 Vagrant Cascadian
2019-01-23 10:54 ` Ludovic Courtès
2019-01-23 17:48 ` Vagrant Cascadian
2019-01-25 8:59 ` Ludovic Courtès
2019-01-23 17:54 ` Efraim Flashner
2019-01-23 17:57 ` Efraim Flashner
2019-01-25 8:49 ` Ludovic Courtès
2019-01-23 20:58 ` Mark H Weaver
2019-01-24 0:44 ` Vagrant Cascadian
2019-01-24 4:02 ` Mark H Weaver
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).