Module nouveau: unknown symbol in module

I did update today :frowning:
All my kernels do not boot into gui any more.

  • Lightdm fails
  • xorg fails
  • When i look with lsmodules, nouveau is not loaded !
    When i try to insmod nouveau, i get:
insmod: ERROR: could not insert module ./5.10.83-1-MANJARO/kernel/drivers/gpu/drm/nouveau/nouveau.ko.xz: Unknown symbol in module

an other module that i tried, did load without problems
This happens with all 4 installed kernels :thinking:

My temporary workarround was to replace kernel and modules from a snapshot:

I did copy the following files from a snapshot of this morning 11:00

ls -la /boot|egrep '5.?10'                                                                                                                  
-rw-r--r-- 1 root root 30809828 20. Nov 08:57 initramfs-5.10-x86_64-fallback.img
-rw-r--r-- 1 root root 11166802 20. Nov 08:57 initramfs-5.10-x86_64.img
-rw-r--r-- 1 root root       22 12. Nov 21:24 linux510-x86_64.kver
-rw-r--r-- 1 root root  9452544 20. Nov 08:57 vmlinuz-5.10-x86_64
 ls -la /lib/modules|egrep '5.?10'                                                                                                           
drwxr-xr-x 1 root root    514 20. Nov 08:56 5.10.70-1-MANJARO
drwxr-xr-x 1 root root    514 20. Nov 08:56 5.10.79-1-MANJARO
drwxr-xr-x 1 root root    104 20. Nov 08:53 extramodules-5.10-MANJARO

Afterwards this one kernel is able to boot into gui.

Is the kernel-image itself the problem ?
Is a module possibly broken on which nouveau depends ?
Is nouveau itself broken ?
Is the kompression broken ?
( I do use zstd in mkinitcpio.conf since more than a year)

I do use zstd:
cat /etc/mkinitcpio.conf                                                                                                                    
# 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=(piix ide_disk reiserfs)
#akf
# nouveau hier einzutragen aktiviert kms fr@hzeitig. aber das f@hrt zu problemen mit den seats
# Es startet dann nur noch ein seat anstatt zwei
MODULES=(btrfs nouveau)
#MODULES=(btrfs)

# 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 block filesystems)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev block filesystems)
#
##   This setup assembles a pata mdadm array with an encrypted root FS.
##   Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
#    HOOKS=(base udev block mdadm encrypt filesystems)
#
##   This setup loads an lvm2 volume group on a usb device.
#    HOOKS=(base udev block lvm2 filesystems)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr, fsck and shutdown hooks.
#
#akf
HOOKS=(base udev systemd autodetect modconf block keyboard sd-vconsole filesystems bootsplash-manjaro)
#HOOKS=(base systemd autodetect modconf block keyboard sd-vconsole filesystems bootsplash-manjaro)

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

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

I am able to reboot into the problem at any time to help debugging. And i do have btrfs and snapshots of every hour.

Just in case, on that you machine which package are you use to keep kernel modules on current run?
(I suspected the kernel-alive package as your investigation mentions it)
For a fast answer if you have only one package of them installed:

pacman -Qi kernel-alive kernel-modules-hook | grep "Version"
 pacman -Qi kernel-alive kernel-modules-hook | grep "Version"                                                                             [1]
Fehler: Paket »kernel-alive« wurde nicht gefunden
Version                  : 0.1.7-2

i only have kernel-modules-hook and i don´t think this is related. This time no module is missing.

  • nouveau module is present in /lib/modules/$kernelversion
  • nouveau module is present in initramfs of this kernel
  • the module seems to be the right one for this kernel
    I cross-tested this. When trying to load another module that is not for this kernel there is an other error message
  • Some of the modules in /lib/modules/$kernelversion do load without error