You are not logged in.

#1 2025-04-09 09:26:50

probackup-nl
Member
From: Delft
Registered: 2017-11-15
Posts: 87
Website

[Solved] 6.14.1-arch1-1: module crc32c_intel error

I see:

==> Starting build: '6.14.1-arch1-1'
...
==> ERROR: module not found: 'crc32c_intel'

Thought the module was renamed from crc32c_intel renamed to crc32c-intel, or "crc32c_x86".

Modifying the module name in /etc/mkinitcpio.conf, doesn't remove the error:
depmod && mkinitcpio still results in:

==> ERROR: module not found: 'crc32c_intel'

How to remove/fix this error/?
What is the new module name for crc32c_intel in kernel 6.14?

Or is this module no longer needed to be set explicitly (for btrfs)?

# cat /sys/fs/btrfs/UUID/checksum
crc32c (crc32c-x86)

Last edited by probackup-nl (2025-04-14 08:19:46)

Offline

#2 2025-04-09 10:06:01

GeBo
Member
Registered: 2022-11-09
Posts: 3

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

On a github page I've read that crc32c-intel has been deprecated and that the new name is: crc32c.

Thanks for the depmod etc line. After editing mkinitcpio.conf, rebooting my machine and executing that line, I got no errors anymore.

Offline

#3 2025-04-09 12:00:08

Scimmia
Fellow
Registered: 2012-09-01
Posts: 12,587

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

You cut out so much, I'm not sure what's even throwing the error. Post full output and post your mkinitcpio.conf.

Offline

#4 2025-04-09 15:04:55

bezirg
Member
Registered: 2014-04-08
Posts: 5

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

Reading through the commit https://git.kernel.org/pub/scm/linux/ke … 54eb3001b7  , I think it is now automatically accelerated if the underlying cpu can accelerate crc32c  (x86 or arm or riscv).

AFAIU, starting from linux 6.14 , no explicit module load is required, and will yield a mkinitcpio error otherwise.

Last edited by bezirg (2025-04-09 15:07:00)

Offline

#5 2025-04-12 05:34:04

gwhiz
Member
Registered: 2025-04-12
Posts: 2

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

After investigating the absence of crc32c_intel and crc32c_generic modules in lsmod, I realized the behavior has changed starting from Linux kernel 6.14, as mentioned by bezirg above. The new kernel approach consolidates CRC32C implementations and automatically selects the best available one based on the underlying CPU capabilities.

Here's what I checked:

1. Confirmed SSE4.2 support in CPU:

 # lscpu | grep sse4_2
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l2 cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid movdiri movdir64b fsrm avx512_vp2intersect md_clear ibt flush_l1d arch_capabilities 

This confirmed that my CPU supports hardware acceleration instructions.

2. No CRC32C-related modules in lsmod:

# lsmod| grep crc32c
FAIL

Returned nothing, which initially raised concerns.

3. Verified active implementation via /proc/crypto:

# grep -A2 crc32c /proc/crypto
name         : crc32c
driver       : crc32c-x86
module       : kernel
priority     : 150
--
name         : crc32c
driver       : crc32c-generic
module       : kernel
priority     : 100

This shows the kernel is automatically using the higher priority driver — in this case, crc32c-x86, the hardware-accelerated one.

4. Verified the driver is built-in, not a module:

# zgrep CRC32C /proc/config.gz
CONFIG_CRYPTO_CRC32C=y
CONFIG_LIBCRC32C=y

This explains why it doesn't show up in lsmod.

5. Runtime confirmation via dmesg:

# dmesg | grep -i crc32c
[    1.757220] BTRFS info (device nvme0n1p2): using crc32c (crc32c-x86) checksum algorithm

This confirms the actual usage of the optimized driver by the filesystem.

As of Linux kernel 6.14, it's no longer necessary (nor recommended) to list crc32c_intel or crc32c_generic in mkinitcpio.conf. The kernel now detects hardware support and automatically uses the most efficient CRC32C implementation — typically crc32c-x86 on CPUs with SSE4.2 or similar.

This also prevents errors like:

 ==> ERROR: module not found: 'crc32c_intel' 

and greatly simplifies initramfs setup. If your CPU supports CRC32C acceleration, the kernel will now take advantage of it seamlessly.

Hope this helps others who run into the same observation or error after recent kernel upgrades!

Last edited by gwhiz (2025-04-12 06:08:18)

Offline

#6 2025-04-12 13:17:46

tekstryder
Member
Registered: 2013-02-14
Posts: 272

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

gwhiz wrote:

After investigating

Welcome to the forums and nice write-up.

This kind of post is refreshing to see.

Offline

#7 2025-04-14 08:10:55

probackup-nl
Member
From: Delft
Registered: 2017-11-15
Posts: 87
Website

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

Scimmia wrote:

You cut out so much, I'm not sure what's even throwing the error. Post full output ...

==> Building image from preset: /etc/mkinitcpio.d/linux-tiny.preset: 'tiny'
==> Using configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-tiny.img -A without-udev -S udev,block,mdadm_udev,filesystems,keyboard,fsck,consolefont
==> Starting build: '6.14.2-arch1-1'
  -> Running build hook: [base]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [strip]
  -> Running build hook: [without-udev]
==> ERROR: module not found: 'crc32c_intel'
==> Generating module dependencies
==> Creating lz4-compressed initcpio image: '/boot/initramfs-linux-tiny.img'
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'tiny'
==> Using configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-tiny.img -A without-udev -S udev,block,mdadm_udev,filesystems,keyboard,fsck,consolefont
==> Starting build: '6.14.2-arch1-1'
  -> Running build hook: [base]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [strip]
  -> Running build hook: [without-udev]
==> ERROR: module not found: 'crc32c_intel'
==> Generating module dependencies
==> Creating lz4-compressed initcpio image: '/boot/initramfs-linux-tiny.img'
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
==> Using configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: '6.14.2-arch1-1'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
  -> Running build hook: [strip]
==> ERROR: module not found: 'crc32c_intel'
==> Generating module dependencies
==> Creating lz4-compressed initcpio image: '/boot/initramfs-linux.img'
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
==> Using configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: '6.14.2-arch1-1'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'advansys'
==> WARNING: Possibly missing firmware for module: 'aic94xx'
==> WARNING: Possibly missing firmware for module: 'bfa'
==> WARNING: Possibly missing firmware for module: 'cxgb4'
==> WARNING: Possibly missing firmware for module: 'csiostor'
==> WARNING: Possibly missing firmware for module: 'cxgb3'
==> WARNING: Possibly missing firmware for module: 'isci'
==> WARNING: Possibly missing firmware for module: 'qed'
==> WARNING: Possibly missing firmware for module: 'qla1280'
==> WARNING: Possibly missing firmware for module: 'qla2xxx'
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'xhci_pci_renesas'
==> WARNING: Possibly missing firmware for module: 'ums_eneub6250'
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
  -> Running build hook: [strip]
==> ERROR: module not found: 'crc32c_intel'
==> Generating module dependencies
==> Creating lz4-compressed initcpio image: '/boot/initramfs-linux-fallback.img'
==> WARNING: errors were encountered during the build. The image may not be complete.
error: command failed to execute correctly
(14/14) Reloading system bus configuration...
Scimmia wrote:

... and post your mkinitcpio.conf.

MODULES=(btrfs crc32c_intel)   # filesystems
MODULES+=(sd_mod uas)  # storage
MODULES+=(nvme)
MODULES+=(hid_generic usbhid serio_raw atkbd i8042)  # keyboard
MODULES+=(xhci_pci)  # USB 3.1, 3.0, 2.0, 1.1
MODULES+=(ehci_pci)  # USB 2.0
MODULES+=(vfat) # for EFI systems to mount ESP in emergencies

BINARIES=(fsck fsck.vfat dosfsck fsck.btrfs btrfsck /usr/bin/btrfs)

FILES=()

HOOKS=(base udev autodetect modconf block filesystems keyboard fsck strip)

COMPRESSION="lz4"

Offline

#8 2025-04-14 11:30:52

gwhiz
Member
Registered: 2025-04-12
Posts: 2

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

In your mkinitcpio.conf file, remove the references to crc32c_intel, and then run

mkinitcpio -P

again.

Offline

#9 2025-04-16 02:49:34

bloff
Member
From: Poland
Registered: 2017-01-05
Posts: 2

Re: [Solved] 6.14.1-arch1-1: module crc32c_intel error

gwhiz wrote:

In your mkinitcpio.conf file, remove the references to crc32c_intel, and then run

mkinitcpio -P

again.

Hi everyone,

I wanted to share a quick tip in case anyone else runs into this issue. I changed the module from crc32c_intel to crc32c and after that, the mkinitcpio -P command completed without any errors.

Hope this helps someone!

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=(crc32c)

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=()

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No RAID, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect modconf block filesystems fsck)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev modconf block filesystems fsck)
#
##   This setup assembles a mdadm array with an encrypted root file system.
##   Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
#    HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
##   This setup loads an lvm2 volume group.
#    HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr and fsck hooks.
HOOKS=(base udev autodetect microcode kms modconf block keyboard keymap consolefont plymouth resume filesystems)

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"
❯ sudo mkinitcpio -P
==> Building image from preset: /etc/mkinitcpio.d/linux-cachyos.preset: 'default'
==> Using default configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-linux-cachyos -g /boot/initramfs-linux-cachyos.img
==> Starting build: '6.14.0-4-cachyos'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [microcode]
  -> Running build hook: [kms]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
  -> Running build hook: [plymouth]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-linux-cachyos.img'
  -> Early uncompressed CPIO image generation successful
==> Initcpio image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
==> Using default configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-linux -g /boot/initramfs-linux.img
==> Starting build: '6.14.2-arch1-1'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [microcode]
  -> Running build hook: [kms]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
  -> Running build hook: [plymouth]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-linux.img'
  -> Early uncompressed CPIO image generation successful
==> Initcpio image generation successful

Offline

Board footer

Powered by FluxBB