Skip to main content
Topic: Failed to load Nouveau modules (Read 863 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Failed to load Nouveau modules

Hi everyone! I come from Arch but I want to switch to Artix so as a first step I installed (following the console installation procedure here: https://wiki.artixlinux.org/Main/Installation) it on my secondary laptop choosing dinit as the init system. However, I am having problems loading the nouveau modules. I believe this is the problem that prevents some applications from displaying correct graphics. For example qutebrowser and pavucontrol start in a white window with some very small gray dots.
I'm so sorry, it's a very fresh install and I don't know how to explain better this problem.
This is my
Code: [Select]
inxi -F
Code: [Select]
System:
  Host: ronzinante Kernel: 6.9.7-artix1-1 arch: x86_64 bits: 64
  Desktop: dwm v: 6.5 Distro: Artix Linux
Machine:
  Type: Laptop System: LENOVO product: 20191 v: Lenovo IdeaPad U510
    serial: <superuser required>
  Mobo: LENOVO model: INVALID v: 31900003WIN8 STD MLT
    serial: <superuser required> UEFI: LENOVO v: 6FCN32WW(V2.00)
    date: 02/18/2013
Battery:
  ID-1: BAT1 charge: 20.6 Wh (100.0%) condition: 20.6/40.6 Wh (50.7%)
CPU:
  Info: dual core model: Intel Core i5-3337U bits: 64 type: MT MCP cache:
    L2: 512 KiB
  Speed (MHz): avg: 834 min/max: 800/2700 cores: 1: 798 2: 846 3: 798 4: 895
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics driver: i915 v: kernel
  Device-2: NVIDIA GF117M [GeForce 610M/710M/810M/820M / GT
    620M/625M/630M/720M] driver: nouveau v: kernel
  Device-3: Vimicro Lenovo EasyCamera driver: uvcvideo type: USB
  Display: server: X.Org v: 21.1.13 with: Xwayland v: 24.1.0 driver: X:
     loaded: intel,modesetting failed: nouveau,vesa dri: i965,nouveau gpu: i915
    resolution: 1366x768~60Hz
  API: EGL v: 1.5 drivers: crocus,nouveau,swrast
    platforms: x11,surfaceless,device
  API: OpenGL v: 4.5 compat-v: 4.2 vendor: mesa v: 24.1.2-arch1.1
    renderer: NVD7
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio
    driver: snd_hda_intel
  API: ALSA v: k6.9.7-artix1-1 status: kernel-api
  Server-1: PipeWire v: 1.2.0 status: active
Network:
  Device-1: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169
  IF: eth0 state: down mac: 20:89:84:e6:4f:a6
  Device-2: Qualcomm Atheros AR9485 Wireless Network Adapter driver: ath9k
  IF: wlan0 state: up mac: 24:fd:52:d2:f4:39
Bluetooth:
  Device-1: Atheros Bluetooth USB Host Controller driver: btusb type: USB
  Report: rfkill ID: hci0 rfk-id: 2 state: down bt-service: N/A rfk-block:
    hardware: no software: yes address: see --recommends
Drives:
  Local Storage: total: 447.13 GiB used: 6.09 GiB (1.4%)
  ID-1: /dev/sda vendor: Baititon model: BT58SSD11S size: 447.13 GiB
Partition:
  ID-1: / size: 438.06 GiB used: 6.09 GiB (1.4%) fs: ext4 dev: /dev/sda2
  ID-2: /boot/efi size: 1022 MiB used: 152 KiB (0.0%) fs: vfat
    dev: /dev/sda1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 58.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 8 GiB available: 7.63 GiB used: 1.24 GiB (16.3%)
  Processes: 140 Uptime: 3h 15m Shell: Bash inxi: 3.3.35

I also loaded Xorg.0.log file.

I really appreciate any kind oh help.

Thank you in advance.

Re: Failed to load Nouveau modules

Reply #1
Hello and welcome !

I'm not a great specialist and especially not in "nvidialogy".
I assume you only have artix repositories enabled to start with, which is fine.
Maybe try the lts kernel, sometimes it handles nvidia chips better.

I leave room to the specialists.

Re: Failed to load Nouveau modules

Reply #2
Unfortunately, I'm not a specialist either, in general. In fact, I'm basically just a noob who discovered the world of free software about a year ago and fell in love with it. But I'm a humanist with no computer science background. However, Linux has changed my view of this world and I am grateful to the whole community.
Anyway, before installing Artix, this laptop was running Arch, again with linux kernel and nouveau opensource drivers for the Nvidia card, but I'll also try with the lts kernel if I don't find other solutions and I'll let you know here. Thank you so much for the advice.

Re: Failed to load Nouveau modules

Reply #3
This seems to be the relevant error for nouveau
Quote
[    23.224] (EE) Failed to load /usr/lib/xorg/modules/drivers/nouveau_drv.so: /usr/lib/xorg/modules/drivers/nouveau_drv.so: undefined symbol: exaDriverAlloc
Searching "nouveau_drv.so: undefined symbol: exaDriverAlloc"  shows two threads which reference each other from quite a long time ago.
https://bugs.archlinux.org/task/54845
https://forums.gentoo.org/viewtopic-t-1085644-view-next.html

Both suggest building the driver without -fno-plt.
So that's an option, The oldness of the posts make me doubt somewhat the 'fix' is still a fix but it would be worth a try.
If you want to try that and need instruction how to, let me know and I'll give more detail.

The integrated GPU i915 driver is getting loaded so I'm not sure why it's working incorrectly ?
https://wiki.archlinux.org/title/Intel_graphics has information about trying mesa-amber for older hardware.
Have a read of that and figure out which 'gen' your Intel gpu is and act accordingly.

Finally unless you have a reason to not want to use the proprietary Nvidia driver consider trying that as well.
But you might have to go with a legacy driver again depending on the age of your Nvidia gpu
https://wiki.archlinux.org/title/NVIDIA#Unsupported_drivers

Re: Failed to load Nouveau modules

Reply #4
This suggests that the order of module loading can result in these errors, perhaps it is related to the presence of 2 GPU's or an Xorg.conf file you might have modified to get one or another of those used in preference to the other:
https://forums.gentoo.org/viewtopic-t-1084396-start-0.html
You could also try installing xf86-video-fbdev as there is an error message about that not being found in your Xorg log, although it probably won't help it's easy to try, and check you have any other xf86-video-? things you might need like xf86-video-nouveau, I think probably you might not need xf86-video-intel for the Intel GPU of that age as it is Gen 7 and would only need mesa installed which is the recommended approach, but you could try with and without, on my Gen 9 Intel GPU it works either way with no config and no obvious problems, but that has just the one GPU.

Also in general symbol missing errors can be caused by mismatched package versions, make sure you are fully updated too.

Re: Failed to load Nouveau modules

Reply #5
Thank you all!

The problem with qutebrowser windows opening "without graphics" (totally white windows) was caused by using xf86-video-intel, just delete it.

However "nuoveau" is still not loaded. I tried deleting xf86-video-nouveau and installing the proprietary nvidia driver requires for my nvidia card nvidia-390xx-dkms but it still doesn't load. I have never used the proprietary nvidia drivers, even on my most recent main laptop where arch runs I use the nouveau drivers and everything works fine.

I also installed xf86-video-fbdev.

The strange thing is that even on this old PC, before installing Artix, arch was also installed with the "normal" kernel and nouveau drivers and everything worked fine.

I also noticed that the audio has problems: 3 times out of 5 it doesn't work and I have to restart.

Another difference noticed with my Arch system on my main PC is that by launching inxi -G, the 'Display' item indicates: 'x11' while on this machine the space is empty.

Code: [Select]
 inxi -G
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics driver: i915 v: kernel
  Device-2: NVIDIA GF117M [GeForce 610M/710M/810M/820M / GT
    620M/625M/630M/720M] driver: N/A
  Device-3: Vimicro Lenovo EasyCamera driver: uvcvideo type: USB
  Display: server: X.Org v: 21.1.13 with: Xwayland v: 24.1.0 driver: X:
    loaded: modesetting failed: fbdev,vesa dri: crocus gpu: i915
    resolution: 1366x768~60Hz
  API: EGL v: 1.5 drivers: crocus,swrast platforms: x11,surfaceless,device
  API: OpenGL v: 4.5 compat-v: 4.2 vendor: intel mesa v: 24.1.2-arch1.1
    renderer: Mesa Intel HD Graphics 4000 (IVB GT2)
Code: [Select]
 lspci -k | grep -A 2 -E "(VGA|3D)"
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
        Subsystem: Lenovo Device 3904
        Kernel driver in use: i915
--
01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev a1)
        Subsystem: Lenovo GeForce GT 620M/625M
        Kernel modules: nouveau
Code: [Select]
 inxi -A
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio
    driver: snd_hda_intel
  API: ALSA v: k6.9.7-artix1-1 status: kernel-api
  Server-1: PipeWire v: 1.2.0 status: active

This also is the HOOK line on my mkinicpio.conf:
Code: [Select]
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap block filesystems fsck)

Anyway, thanks everyone for the help!

Re: Failed to load Nouveau modules

Reply #6
This would ensure the nouveau module was loaded at boot, if it failed there might also be helpful error messages in syslog (you might need to install a syslog provider if you haven't already done so):
Edit the file named /etc/modules or put a new config file (name.conf) in /etc/modules-load.d/ directory. Add the name of the module (without the .ko extension, e.g. nouveau) on its own line. On boot, the kernel will try to load all the modules named in this file.

The fallback kernel image should contain all the available modules by default, you could also try booting with that, selecting it from the Grub menu, and try the LTS kernel and perhaps the Zen kernel too, for example.

Re: Failed to load Nouveau modules

Reply #7
Quote
Edit the file named /etc/modules or put a new config file (name.conf) in /etc/modules-load.d/ directory. Add the name of the module (without the .ko extension, e.g. nouveau) on its own line. On boot, the kernel will try to load all the modules named in this file.
I created the file
Code: [Select]
/etc/X11/xorg.conf.d/20-nouveau.conf
with this content:
Code: [Select]
Section "Device"
    Identifier "Nvidia card"
    Driver "nouveau"
EndSection
But with this file startx can't start Xorg. This is the Xorg.0.log after this attempt:
Code: [Select]
  1 [  1409.307]
  2 X.Org X Server 1.21.1.13
  3 X Protocol Version 11, Revision 0
  4 [  1409.308] Current Operating System: Linux ronzinante 6.9.7-artix1-1 #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 18:11:28 +0000 x86_64
  5 [  1409.308] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=8de9c40a-2cba-4af1-854b-0916ae90dee5 rw loglevel=3 quiet splash
  6 [  1409.308]
  7 [  1409.309] Current version of pixman: 0.43.4
  8 [  1409.309]    Before reporting problems, check http://wiki.x.org
  9         to make sure that you have the latest version.
 10 [  1409.309] Markers: (--) probed, (**) from config file, (==) default setting,
 11         (++) from command line, (!!) notice, (II) informational,
 12         (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
 13 [  1409.311] (==) Log file: "/home/ronzinante/.local/share/xorg/Xorg.0.log", Time: Thu Jul  4 01:45:32 2024
 14 [  1409.311] (==) Using config directory: "/etc/X11/xorg.conf.d"
 15 [  1409.311] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
 16 [  1409.312] (==) No Layout section.  Using the first Screen section.
 17 [  1409.312] (==) No screen section available. Using defaults.
 18 [  1409.312] (**) |-->Screen "Default Screen Section" (0)
 19 [  1409.312] (**) |   |-->Monitor "<default monitor>"
 20 [  1409.312] (==) No device specified for screen "Default Screen Section".
 21         Using the first device section listed.
 22 [  1409.312] (**) |   |-->Device "Nvidia card"
 23 [  1409.312] (==) No monitor specified for screen "Default Screen Section".
 24         Using a default monitor configuration.
 25 [  1409.312] (**) Allowing byte-swapped clients
 26 [  1409.312] (==) Automatically adding devices
 27 [  1409.312] (==) Automatically enabling devices
 28 [  1409.312] (==) Automatically adding GPU devices
 29 [  1409.312] (==) Automatically binding GPU devices
 30 [  1409.312] (==) Max clients allowed: 256, resource mask: 0x1fffff
 31 [  1409.312] (WW) The directory "/usr/share/fonts/misc" does not exist.
 32 [  1409.312]    Entry deleted from font path.
 33 [  1409.312] (WW) The directory "/usr/share/fonts/OTF" does not exist.
 34 [  1409.312]    Entry deleted from font path.
 35 [  1409.312] (WW) The directory "/usr/share/fonts/Type1" does not exist.
 36 [  1409.312]    Entry deleted from font path.
 37 [  1409.312] (==) FontPath set to:
 38         /usr/share/fonts/TTF,
 39         /usr/share/fonts/100dpi,
 40         /usr/share/fonts/75dpi
 41 [  1409.312] (==) ModulePath set to "/usr/lib/xorg/modules"
 42 [  1409.312] (II) The server relies on udev to provide the list of input devices.
 43         If no devices become available, reconfigure udev or disable AutoAddDevices.
 44 [  1409.312] (II) Module ABI versions:
 45 [  1409.312]    X.Org ANSI C Emulation: 0.4
 46 [  1409.312]    X.Org Video Driver: 25.2
 47 [  1409.312]    X.Org XInput driver : 24.4
 48 [  1409.312]    X.Org Server Extension : 10.0
 49 [  1409.312] (++) using VT number 1
 50
 51 [  1409.315] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
 52 [  1409.316] (II) xfree86: Adding drm device (/dev/dri/card0)
 53 [  1409.316] (II) Platform probe for /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0
 54 [  1409.317] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 13 paused 0
 55 [  1409.317] (II) xfree86: Adding drm device (/dev/dri/card1)
 56 [  1409.317] (II) Platform probe for /sys/devices/pci0000:00/0000:00:02.0/drm/card1
 57 [  1409.318] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 14 paused 0
 58 [  1409.320] (--) PCI:*(0@0:2:0) 8086:0166:17aa:3904 rev 9, Mem @ 0xd3000000/4194304, 0xe0000000/268435456, I/O @ 0x00004000/64, BIOS @ 0x????????/131072
 59 [  1409.320] (--) PCI: (1@0:0:0) 10de:1140:17aa:3904 rev 161, Mem @ 0xd2000000/16777216, 0xc0000000/268435456, 0xd0000000/33554432, I/O @ 0x00003000/128
 60 [  1409.320] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
 61 [  1409.320] (II) LoadModule: "glx"
 62 [  1409.321] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
 63 [  1409.322] (II) Module glx: vendor="X.Org Foundation"
 64 [  1409.322]    compiled for 1.21.1.13, module version = 1.0.0
 65 [  1409.322]    ABI class: X.Org Server Extension, version 10.0
 66 [  1409.322] (II) LoadModule: "nouveau"
 67 [  1409.322] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
 68 [  1409.322] (EE) Failed to load /usr/lib/xorg/modules/drivers/nouveau_drv.so: /usr/lib/xorg/modules/drivers/nouveau_drv.so: undefined symbol: exaDriverAlloc
 69 [  1409.322] (EE) Failed to load module "nouveau" (loader failed, 0)
 70 [  1409.322] (EE) No drivers available.
 71 [  1409.322] (EE)
 72 Fatal server error:
 73 [  1409.322] (EE) no screens found(EE)
 74 [  1409.322] (EE)
 75 Please consult the The X.Org Foundation support
 76          at http://wiki.x.org
 77  for help.
 78 [  1409.322] (EE) Please also check the log file at "/home/ronzinante/.local/share/xorg/Xorg.0.log" for additional information.
 79 [  1409.322] (EE)
 80 [  1409.371] (EE) Server terminated with error (1). Closing log file.
Quote
Searching "nouveau_drv.so: undefined symbol: exaDriverAlloc"  shows two threads which reference each other from quite a long time ago.
yes @gripped , this is the only relevant thing that I found on internet about this problem.
Quote
If you want to try that and need instruction how to, let me know and I'll give more detail.
@gripped I would greatly appreciate some additional details, because I didn't understand well, but I doubt that it is enough to simply edit the makepkg.conf file by eliminating the values ​​​​indicated in the link that are actually present in my makepkg.conf.

I then noticed this error in the boot logs:
Code: [Select]
...
[ OK ] udev-trigger
dinit: Service modules command failed with exit code 123
[ FAILED ] modules
[ FAILED ] early-modules.target
[ OK ] udev-settle
...

Thank you all!

Re: Failed to load Nouveau modules

Reply #8
I only now notice these lines in the log file:
Code: [Select]
 51 [  1409.315] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
 52 [  1409.316] (II) xfree86: Adding drm device (/dev/dri/card0)
 53 [  1409.316] (II) Platform probe for /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0
 54 [  1409.317] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 13 paused 0
 55 [  1409.317] (II) xfree86: Adding drm device (/dev/dri/card1)
 56 [  1409.317] (II) Platform probe for /sys/devices/pci0000:00/0000:00:02.0/drm/card1
 57 [  1409.318] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 14 paused 0

systemd-logind? Is it correct that systemd is present in Artix?

Re: Failed to load Nouveau modules

Reply #9
Creating an xorg.conf file is different  to ensuring the nouveau module is modprobe'd at boot in /etc/modules btw, although that prpbably isn't the problem either, lsmod would tell you what modules are loaded. At one time there used to be lots of posts on here about bumblebee which seemed quite popular, this is something to allow the use of Nvidia / Intel dual GPU setups, there are other approaches too, although it looks like nouveau should handle this if everything was working properly:
https://wiki.archlinux.org/title/NVIDIA_Optimus

 elogind   : The systemd project's logind, extracted to a standalone package   ;D

Re: Failed to load Nouveau modules

Reply #10
I would greatly appreciate some additional details, because I didn't understand well, but I doubt that it is enough to simply edit the makepkg.conf file by eliminating the values ​​​​indicated in the link that are actually present in my makepkg.conf.
It would normally be exactly that simple. Although personally I copy the original makepkg.conf to the build dir and edit that for a one time use
Code: [Select]
cp /etc/makepkg.conf temp.conf
sed -i 's/-fno-plt//g' temp.conf
makepkg -sr -C temp.conf

But in this case it's not simple. xf86-video-nouveau fails to build.
Quote
nv_driver.c:1451:23: error: implicit declaration of function ‘wfbScreenInit’; did you mean ‘fbScreenInit’? [-Wimplicit-function-declaration]
 1451 |                 ret = wfbScreenInit(pScreen, FBStart, pScrn->virtualX,
      |                       ^~~~~~~~~~~~~
      |                       fbScreenInit
It seems this is an issue with GCC 14 being stricter with implicit function declarations
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=702ab503b10f6fe6719564dbc310bd4422f58014

So it would be much more work to build it with the the changed flag(s) and no guarantee of success anyway.
(Either use GCC 13 to build or patch the source)

I can't help any more with that as I don't use nouveau.
I'd still be interested to see the xorg log (+ dmesg) where the proprietary driver fails.

Re: Failed to load Nouveau modules

Reply #11
Hi everyone!
I apologize if I disappeared for a while but I have little time to do tests.
I have tried in every way to load both modules (modesetting and nouveau) but to no avail.
So I reinstalled Arch (with 'archinstall' to make things quicker) to see if I remembered correctly that both modules were loaded when Arch was running. That's actually the case. So I thought that by migrating to Artix this feature would remain unchanged. But no. Once the migration was complete I sadly found that X started to fail again when trying to load the nouveau module in addition to the modesetting module. I don't know what to say anymore.
Anyway thanks for everyone that tried to help me :)