nVidia Nouveau Driver

  • NB: It's modetest not testmode

    You're right. It is available, but the output cannot be used (as root) under an X-server:
    trying to open device 'radeon'...failed
    trying to open device 'nouveau'...failed
    trying to open device 'vmwgfx'...failed
    .
    .
    trying to open device 'mxsfb-drm'...failed
    no device found

    Running modetest in a tty gives proper output, see https://paste.kodi.tv/uzidafiyeb

    The videocard is a Geforce 7300LE (same family as the Geforce 6100).

    Edited 2 times, last by Johpin (January 28, 2025 at 3:46 PM).

  • To streamline the testing I made two partitions for LE on my hard disk:
    -partition 1 contains KERNEL and SYSTEM from Nouveau_gbm and the storage from Nouveau_x11
    -partition 2 contains KERNEL and SYSTEM from Nouveau_x11 and the storage from Nouveau_gbm
    It seems not to be possible for LE to have its storage on the same partition as the KERNEL and SYSTEM files reside.

    After installing the contents of the latest tar files, during running I saw the directories for storage have been made on both
    partitions. For Nouveau_x11 the X-server started, but Kodi didn't. I added an xorg.conf file to .config/xorg.conf, but the result was similar.

    The previous image for Nouveau_x11 started Kodi, but now it doesn't and the .kodi directory has been renamed to .kodi_FAILED. Before adding advancedsettings .xml to .kodi/userdata/ I think the renaming of the directory should be fixed.

    I added the debugging files to Nouveau_gbm's storage.

    LibreELEC-Nouveau.x86_64-12.80.1.tar 258 MiB1/29/2025, 7:51:04 AM

    pastekodi: https://paste.libreelec.tv/concise-panther.log

    Edited once, last by Johpin (January 29, 2025 at 10:09 AM).

  • I remembered that I have an Xstreamer Ultra2 board in my collection. It's an Atom/ION board with a GT520 (Fermi) card which is a little more recent than the 9400GT you have. It boots both images (GBM and Legacy) to the Kodi home screen without needing an xorg.conf or kodi.conf file creating. It does require some nVidia firmware blobs extracted from the vendor driver to silence a couple of system log messages and provide firmware for decoding. I created https://github.com/LibreELEC/nouveau-firmware earlier to address that, and the commits in my nouveau branch are revised to use it and remove VAAPI support.

    The GBM image detects libva support and tries to use it during playback, and fails. Rebuilding without VAAPI support allows software decode playback to work. There is no VDPAU support because mesa reports ERROR: Feature gallium-vdpau cannot be enabled: VDPAU state tracker requires X11 support. during compile. I'll have a chat about VDPAU with mesa devs, but GBM without hardware decode makes no sense, so for now, further effort on GBM (Nouveau) stops.

    The X11 image is also now built without VAAPI support and VDPAU is detected and attempted. All 1080p and H264 media I've tried currently fails with VDPAU::Open: requested picture dimensions (1920, 1088) exceed hardware capabilities ( 0, 0) but some 720p/SD resolution MPEG4 media is being hardware decoded properly. I'll have to query the error with Kodi folks.

    LE requires two partitions to run from and /flash and /storage must be separate. As you can now drop the 'Nouveau' image that should make things easier for testing. Please remove any config that's been added to boot params or /storage or make a clean install so you are using a default image. Also focus only on the 9400GT card for now. I appreciate the old cards work on Slackware, but your Slackware install is using significantly older software versions and bisecting to find the breaking changes will be a major effort, so that's deferred to a future date.

    NB: I've pushed an image that matches GitHub commits a few seconds ago. Please check all is okay with the Legacy image after the cleanup or fresh start.

  • I appreciate the old cards work on Slackware, but your Slackware install is using significantly older software versions

    The X-server runs fine on Slackware current (the development version). It has:
    kernel-generic-6.12.11-x86_64-1.txz
    mesa-24.3.4-x86_64-2.txz
    xorg-server-21.1.15-x86_64-1.txz

    Unfortunately I could not compile Kodi due to FFmpeg error (internal and system).

    Geforce 9400GT shows Kodi, pastekodi: https://paste.libreelec.tv/modest-dassie.log

    Two version back Kodi had started with a Geforce 6100 (it was usable).

    The values in Kodi for a Geforce 7300LE under Slackware (from the same family as the Geforce 6100):

  • Please check one of the older cards (6100 or 7300) on:

    Slackware development image, working?

    Current LE image, working?

    Please pastebin a Kodi debug log from the Slackware install (9400GT card) to confirm the VDPAU error/issue is the same.

  • Slackware64-current with Geforce 9400GT for x11 is working, kodi.log: https://paste.kodi.tv/boqivuyude.kodi =>
    2025-01-30 08:11:57.260 T:2029 info <general>: VDPAU Decoder capabilities:
    2025-01-30 08:11:57.260 T:2029 info <general>: name level macbs width height

    Slackware64-current with Geforce 9400GT for gbm:
    terminate called after throwing an instance of 'std::runtime_error'
    what(): eglSwapBuffers failed
    /usr/local/bin/kodi: line 215: 2610 Aborted (core dumped) ${KODI_BINARY} ${ENV_ARGS} $SAVED_ARGS
    Crash report available at /home/john/kodi_crashlog-20250130_082503.log

    crashlog: https://paste.kodi.tv/bebupisido.kodi =>
    2025-01-30 08:24:55.825 T:2610 error <general>: eglSwapBuffers failed (EGL_BAD_ALLOC)

    On Slackware64-current I have compiled Kodi 21.2 successfully after patching xbmc for the system FFmpeg, see the link of the patch in https://linux.debian.bugs.rc.narkive.com/Hx1j6suC/proce…pending-in-kodi It is from six months back, but not yet included in xbmc's 21.1 source code. The error was:
    ffmpeg 7.0: DVDDemuxFFmpeg.cpp:424:37: error: ‘const AVInputFormat’ {aka ‘const struct AVInputFormat’} has no member named ‘read_probe’

    Geforce 7300LE and x11: for Slackware64-current Kodi starts and can be used and for your LE image Kodi didn't start.
    The kodi.log from Slackware64-current, see https://paste.kodi.tv/joqepiciso.kodi , contains:
    2025-01-30 07:54:19.203 T:1828    error <general>: (VDPAU) unable to init VDPAU - vdp_st = 0x17.  Falling back.

    For Slackware64-current and Kodi 21.2 I see libva error: /usr/lib64/dri/nouveau_drv_video.so init failed after closing Kodi and the CPU load for Kodi idle was already 2x90% (while no audio or video playing)??

    Edited 9 times, last by Johpin (January 30, 2025 at 8:50 AM).

  • I'm not interested in compile issues and testing with newer Kodi because there are Kodi GitHub indications of VDPAU issues with nouveau being present for a long time. Patching FFMpeg just complicates the issue (and you have invalid/incomplete patches). Kodi GBM is not compatible with X11 so failure is probably correct/expected, and we know GBM without VDPAU is a dead-end so no need to test - the info just adds noise/confusion.


    Please remove any xorg.conf and kodi.conf files from /storage/.config or /run locations and create /storage/.kodi/userdata/advancedsettings.xml to enable debug logging (even if Kodi does not start) and then reboot to capture a clean and more useful failure log. Please provide full debug logs (not snippets, which are not informative) showing 1080p/H264 media playback for:

    a) Slackware-current on 7300LE

    b) Slackware-current on 9400GT

    c) Latest LE 'Legacy' image on 7300LE

    d) Latest LE 'Legacy' image on 9400GT

    Apologies for the rework. And I appreciate you are trying to be creative, but it's just confusing the task. Four full debug logs on standard Slackware and the latest LE image will be helpful.

  • From https://www.h264info.com/clips.html I downloaded a H264 FHD 120 MB file,
    simpsons_movie_1080p_trailer.zip - Download The Simpsons Movie - High Definition (1080p, High Profile) Theatrical Trailer - dvdloc8.com

    a) Slackware-current on 7300LE, see https://paste.kodi.tv/vaqitupasi.kodi

    b) Slackware-current on 9400GT, see https://paste.kodi.tv/utifefegic.kodi CPU load 95%

    c) Latest LE 'Legacy' image on 7300LE, see https://paste.kodi.tv/pucebetiji.kodi

    d) Latest LE 'Legacy' image on 9400GT, see https://paste.kodi.tv/axukekuyez.kodi CPU load 75 %

    MPlayer required only 35% CPU load on Slackware with 7300LE. For 9400GT the load is higher (more system) 75%

  • Code
    info <general>: GL_VENDOR = Mesa
    info <general>: GL_RENDERER = llvmpipe (LLVM 19.1.7, 128 bits)
    info <general>: GL_VERSION = 4.5 (Compatibility Profile) Mesa 24.3.4

    ^ The 7300 log shows it fails to evaluate VDPAU (because https://nouveau.freedesktop.org/VideoAcceleration.html shows 7-series is not currently supported) then falls back to llvmpipe, so it's not using nouveau. LE only builds mesa with nouveau, not with swrast or llvmpipe (although that could be changed) so this explains why you see the GUI.

    Code
    info <general>: GL_VENDOR = Mesa
    info <general>: GL_RENDERER = NV96
    info <general>: GL_VERSION = 3.3 (Compatibility Profile) Mesa 24.3.4

    ^ The 9400 inits VDPAU and uses nouveau, but:

    Code
    2025-01-30 11:48:08.789 T:1589  warning <general>: VDPAU::Open: requested picture dimensions (1920, 800) exceed hardware capabilities ( 0, 0).
    2025-01-30 11:48:08.789 T:1589     info <general>:  (VDPAU) Close
    2025-01-30 11:48:08.791 T:1589     info <general>: VDPAU::Close - closing decoder context

    ^ The 9400 fails with the same error that I see on the LE image (which proves it's not LE related).

    MPlayer required only 35% CPU load on Slackware with 7300LE. For 9400GT the load is higher (more system) 75%

    ^ The interesting thing here is that llvmpipe appears to be more efficient at software decode than nouveau.

    In summary: the Slackware image support and behaviour with nouveau/VDPAU is exactly the same as the LE image. Thanks for sharing the full logs, it really helped to un-confuse things :)


    The firmware files required for newer nVidia cards are distributed as part of the vendor driver package which ships with a license that prevents separate redistribution of component parts of the driver. The approach taken by most distros is to package a script that downloads, extracts, and installs the firmware files where they need to be on first bood; so I've reworked the package to do the same. It does require a reboot to setup the firmware overlay from /storage/.config/firmware/nouveuu, but that's not too bad.

    I'll have a look at building llvmpipe into the image as a fallback.

  • Please update to the Legacy image in my test share which should now have LLVM support. Please see if that runs on the 6100 or 7300LE cards? If yes, share a Kodi debug log.

    NB: Firmware will download on the first boot of the image. Please also check it's present in /storage/.config/firmware/nouveau?

    EDIT: I'm also interested to know if you have working audio output on the LE image?

  • .update/xxs.tar failed: I saw during the attempt of updating the name of the label from my lilo.conf appear. I have copied the files manually.

    With 9400 card, booted, small pause for downloading firmware, Kodi started, rebooted, Kodi started and sound is present. The firmware can be found in .config/firmware/nouveau/ (about 110 files).

    For 7300LE card I see an X-server and Kodi doesn't start, see kodi.log: https://paste.kodi.tv/lotizoliqu.kodi

  • The VDPAU::Open: requested picture dimensions (1920, 800) exceed hardware capabilities ( 0, 0) is the result of building mesa without support for patent codecs (VC1, H264, H265) hence only the free codecs (MPEG1/2/4) work. Configuring mesa build options with -Dvideo-codecs=all gives working hardware decode. Please validate that with the 9400GT card and the latest image posted to my test share.

    I'm not sure what mesa juju is required for fallback to LLVM on the older 6100/7300 cards. I need to find the Slackware mesa and Kodi build configs to see if I can spot the difference(s).

  • On the screen I see:
    Loading "name of label in lilo.conf" .........................
    BIOS data check successful

    A reboot follows immediately.

    You can find the source code with SlackBuild files in source/ for example on https://ftp.nluug.nl/os/Linux/distr…ware64-current/ The file PACKAGES.TXT is your friend.
    For example mesa: https://ftp.nluug.nl/os/Linux/distr…/source/x/mesa/

    For Kodi you can have a look at http://slackbuilds.org/repository/15.0/multimedia/kodi/
    I didn't use it. For Slackware64-current I build the missing depencendies from slackbuilds.org and build Kodi with:
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCORE_PLATFORM_NAME="x11 gbm" -DAPP_RENDER_SYSTEM=gl -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_INTERNAL_FSTRCMP=ON -DENABLE_INTERNAL_FFMPEG=OFF


    MPlayer has several video outputs. I checked its CPU load for (open)GL while playing full HD H264 video: it is about 70%. The video output xv (for X11) uses only about half of it. I have the impression GL is very inefficient. Could xv be added or does it conflict with Kodi's interface?

    The interesting thing here is that llvmpipe appears to be more efficient at software decode than nouveau.

    According to https://docs.mesa3d.org/drivers/llvmpipe.html LLVMpipe is the fastest software rasterizer for Mesa

    Edited once, last by Johpin (January 31, 2025 at 8:06 AM).

  • Not sure what the reboot issue is about (no issues here). Flakey bootloader?

    The more reading I do on nouveau, the more obvious it is that anything before GeForce 8-series is uncharted territory. As the LE12 release used the nVidia 340.108 driver which also didn't support anything below 8-series, the obvious design decision is to simply not-support anything older than 8-series cards. That also removes the need to build with LLVM support (saves build time), and that avoids the runtime complexity of picking the right mesa back-end based on PCI card ID's.

    I'll continue to look at the no-audio problem on my Xtreamer Ultra2 board, but that's probably an isolated issue.