Is nouveau completely free of non-free code, including dependency on non-free firmware?

This article makes it seem like nouveau depends on closed source firmware, but if I understand correctly, only requires it during development after which it creates its own firmware.

Here's a bit more context: I recently found out that radeon can or sometimes must use non-free firmware blobs and I was wondering if the same was true for nouveau.

  • 1
    Define "firmware". In most cases, it is some part of the hardware so you don't care if it is closed source. But NVIDIA is hostile to open source (and that is why I boycott their products) and don't publish the specs of its hardware (so nouveau guys have to reverse engineer, and that is a shame for NVIDIA) – Basile Starynkevitch Sep 20 '17 at 8:39
  • Hey @BasileStarynkevitch, By firmware in this case I believe I'm reffering to microcode. Like the non-free microcode required by the radeon driver for AMD/ATI cards. – Daniel Sep 20 '17 at 8:43
  • But is microcode a "software" for you ? This is an opinion-based question. Read RMS writings against Tivoization; you probably won't find any graphics card without proprietary firmware.... See en.wikipedia.org/wiki/Open_Graphics_Project – Basile Starynkevitch Sep 20 '17 at 8:44
  • 1
    I can't "prove" it. I don't own any NVIDIA card at home. If you use nouveau look at output of dmesg e.g. dmesg|grep -i firmware after booting and starting X11 – Basile Starynkevitch Sep 20 '17 at 8:54
  • 1
    phoronix.com/… Basile, while nvidia has not published most specs, your statement is incorrect, since for Tegra they have, and have contributed directly to the nouveau driver. I believe also though not certain that behind the scenes nvidia has actually contributed to nouveau over the years after nv became obsolete. nv was if I remember right a barebones free software nvidia sponsored driver, which nouveau basically replaced. It's risky using absolute statements about fluid software development. – Lizardx Sep 20 '17 at 17:31

The nouveau driver itself is entirely free software. On recent GPUs though it needs to load proprietary firmware into the GPU; see the list of NVIDIA blobs in the firmware-misc-nonfree package’s description in Debian. The “state of Nouveau” presentation from last year’s XDC covers some of the issues.

You can determine whether your own system uses firmware blobs by looking for firmware loading messages in the kernel logs (dmesg).

Unfortunately on x86 all recent GPUs require proprietary blobs, whether from AMD, NVIDIA or Intel.

| improve this answer | |
  • Thanks for the answer. Just to clarify, you're saying certain older GPUs didn't require any non-free firmware blobs at all? – Daniel Sep 20 '17 at 17:05
  • 1
    Yes, NVIDIA GPUs before GK20A/GM2xx/GP1xx didn’t need firmware for most functions (the exception being VDPAU on NV50 and later; see the feature matrix for details). Intel GPUs before Skylake didn’t need firmware blobs either. I’m not sure of the details for Radeon, but there are some Radeon GPUs in the same situation. – Stephen Kitt Sep 20 '17 at 18:51
  • 1
    Thanks for your answers, they are very useful. I am curious about the AMD/ATI GPUs too so I've posted a separate question about them: unix.stackexchange.com/questions/393504/… – Daniel Sep 20 '17 at 20:24
  • Just wanted to add an update to this. I was able to use a NVE0 family (Kepler) card (NVidia GTX 570) with nouveau without any non-free blobs. This leads me to think I'm running it in a mode which is incompatible with the "video decoding accel" feature, but watching and streaming videos via VLC and the web, as well as hosting videos via a DLNA server doesn't seem to require it. So it looks like NVE0/Kepler cards don't require firmware blobs. – Daniel Dec 16 '17 at 2:50
  • 1
    @Daniel, thanks, that confirms my previous comment, at least for Kepler cards before GK20A. – Stephen Kitt Dec 16 '17 at 7:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.