1

I'm using Debian 11 on a fairly decent hardware setup. Unfortunately I'm seeing some really bad performance - browsing the web feels clunky, opening the Activities menu there are no animations and scrolling is extremely choppy, all signs of poor graphics processing.

I dug around and found that I'm (supposedly) not using my graphics card:

$ glxinfo | grep -i opengl
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 11.0.1, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.3.5

I have previously disabled Intel integrated graphics from my bios, so out of curiosity I went ahead and enabled it:

$ glxinfo | grep -i opengl
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.3.5

After enabling, now everything feels much smoother, animations work and all, but still I don't really want to use integrated graphics if I have a graphics card..

I'd like to stay away from Nvidia proprietary software, but I can't seem to understand how I can install the FOSS nouveau driver without building it from source? I'm not very familiar with the subject so please excuse me if I'm being ignorant, but surely if nvidia drivers can be installed without building so should nouveau be. I found the official nouveau website which shows how to install it by downloading nouveau-build-deps but it wants to install linux-headers-2-.. and right now I'm using version 5 so I'm really afraid to not f something up..

Additionally, checking for nouveau packages revealed that I have what's suggested, on the nouveau website, installed:

# apt search nouveau
Sorting... Done
Full Text Search... Done
bumblebee/stable 3.2.1-27 amd64
  NVIDIA Optimus support for Linux

libdrm-nouveau2/stable,now 2.4.104-1 amd64 [installed,automatic]
  Userspace interface to nouveau-specific kernel DRM services -- runtime

xfonts-jmk/stable 3.0-23 all
  Jim Knoble's character-cell fonts for X

xserver-xorg-video-nouveau/stable,now 1:1.0.17-1 amd64 [installed]
  X.Org X server -- Nouveau display driver

I suspect that maybe somewhere along the way I deleted something or changed some configuration and have forgotten..

How can I get nouveau running?

EDIT:

$ lspci -nnk | grep -iA2 vga 
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050] [10de:1c81] (rev a1)
    Subsystem: Micro-Star International Co., Ltd. [MSI] GP107 [GeForce GTX 1050] [1462:8c97]
    Kernel driver in use: nouveau

$ glxinfo | grep -i device
    Device: llvmpipe (LLVM 11.0.1, 256 bits) (0xffffffff)

$ glxinfo | grep -i memory
    Video memory: 15974MB
    Unified memory: no

$ glxinfo | grep -i opengl
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 11.0.1, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.3.5
...

$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

nouveau

$ 

AFAIK OpenGL vendor string should say Nouveau if it's in use?

2 Answers 2

4

The nouveau driver is a free software driver, GPL-licensed, and included with the kernel - same as the Intel and AMD (Radeon) open source GPU drivers.

nouveau is compiled as a module and included with the Debian linux-image packages. The hardware should be auto-detected at boot time and the module loaded automatically (unless you have the module blacklisted, which is normally only done when you want to use the proprietary nvidia driver instead of nouveau).

If it isn't auto-detected, add nouveau to /etc/modules and run update-initramfs -u -k all, then reboot. To run X, you'll also need both xserver-xorg-video-nouveau and libdrm-nouveau2 packages installed.

Note that the nouveau driver isn't very good, mostly because Nvidia (the corporation) refuses to make programming documentation available and goes out of their way to make it hard for free software devs to write good drivers. The best you can say about it is that it partially supports some features on some cards.

If you want good GPU performance with an Nvidia GPU, the only real choice is to use the proprietary nvidia driver. Yes, this is very far from optimal. It is what it is and is unlikely to change in the foreseeable future, Nvidia is not a friend to Free Software or Open Source. I'd say more about that, but I prefer not to swear on U&L.

If you decide to install the proprietary driver, install the packaged version from Debian's non-free repository - ignore any blog posts or web sites (including Nvidia's own web sites) that tell you how to compile it yourself. They will lead you astray and give you an unmaintainable mess. Instead, run sudo apt-get install nvidia-detect - this will identify and recommend the appropriate nvidia driver packages for your particular GPU model, including the correct nvidia-*-kernel-dkms driver module, and any required library and X server packages.

If you want a high-performance GPU with open source drivers, then your best option at the moment is to get a Radeon card. Intel's ARC cards will be released sometime this year which should greatly out-perform their integrated GPUs, and rival the performance of Nvidia and Radeon cards...and, like Radeon, will have open-source drivers.

One could hope that competition from both Intel and AMD might encourage Nvidia to dump their hostile attitude towards FOSS drivers. I doubt if that will be the case.


BTW, if you have a laptop with Nvidia "Optimus", you'll also need to use bumblebee and primus. Both of these are packaged for Debian.

3
  • Thank you for taking the time! I'm assuming it is not autodetected, so I added it to /etc/modules as you suggested. After rebooting I see that Intel ... is still the device being used. I now went ahead and disabled integrated graphics from bios again and it's back to the old choppy behaviour. I'll add the output of some commands to the question, which is kinda confusing. It says that nouveau driver is in use, but at the same time graphics processing is really bad and for example running glxgears makes my CPU usage go to 100%, which should be an indicator that the GPU is not working?
    – php_nub_qq
    Jan 8, 2022 at 11:29
  • I'm not running any GPU intensive tasks, so it should be alright that the nouveau driver isn't perfect, as long as I can get it to run properly - I expect to be able to at least surf the web without feeling like I'm on 90s hardware.
    – php_nub_qq
    Jan 8, 2022 at 11:35
  • Not to bash on the noveau writers, they do what they can, but yes, proprietary is the way IMO as well if one want to actually utilize what one have paid for. Which can be quite a good chunk of $$ when it comes to GPUs. Exception would be if one have limitless time and interest in hacking ones system on this issue. Personally I use the drivers directly from NVIDIA or GFORCE DRIVERS – mainly because of bug-fixes and custom software that require newer versions then what is in repos.
    – ibuprofen
    Jan 8, 2022 at 16:09
1

Turned out that in order for nouveau to function properly it needs some firmware from nvidia (?) which can be obtained via installing firmware-misc-nonfree. It is a little disappointing that you still have to add a non-free package to your system but I guess it's a small sacrifice you have to make.

Huge thanks to hell__ and karolherbst from #nouveau at OFTC IRC for looking into the issue and helping out.

2
  • You are indeed correct. This firmware consists in a set of Nvidia codecs. And OP with his GeForce GTX 1050 could indeed benefit from this. Unfortunately, my much older Geforce 9800 GT does not support > 340 nvidia-drivers when the codecs are taken from >= 347 drivers. :-(
    – MC68020
    Jan 9, 2022 at 10:43
  • @MC68020 well graphics cards like mine are quite cheap, right now it goes for around $100 new, could easily find it at half the price used. I'm pretty sure you can get a more recent card even cheaper from china or something?
    – php_nub_qq
    Jan 9, 2022 at 12:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .