full disclosure that I work for nvidia, but not on drivers. many driver devs internally do actually contribute to nouveau as well. please don't make baseless claims simply because you're angry.
Well, they're not doing a very good job then. I just upgraded to Ubuntu 18.10 on my machine with a Titan X Maxwell, and guess what? Booted to a black screen. Related to Nvidia's refusal to work with everyone else on Wayland support, no doubt.
The sad thing is that this experience is typical and expected for me by now. Nearly every time I install or upgrade Linux, I have to spend hours troubleshooting Nvidia driver issues. Cumulatively, several days of my life have been wasted on this. People are angry because Nvidia has made and continues to make bad decisions that result in a poor experience on Linux.
> Related to Nvidia's refusal to work with everyone else on Wayland support, no doubt.
this is more complicated than I can really comment on, but from my understanding it was not an issue of nvidia's refusal to work on it so much as it was an issue of nvidia not being allowed a seat at the table to discuss it. the wayland protocol was effectively demanding a ground up rewrite with no ability for compromise purely because nvidia being closed source meant they weren't entitled to an opinion. which is... wow
I'm sorry that's the typical experience you've had with the driver, though I'm a little surprised by that actually. I don't run x on ubuntu, but I know there were some issues in the past where they were attempting to "smartly" configure the driver for certain setups and instead end up causing headaches. Though that is really my main issue with ubuntu in general, that they try to "help" you because they know best, and also one of the reasons I don't run it. I just use the runfile installer and let it auto-generate the base xconfig.
And it's not baseless. Where is their documentation on reclocking for desktop GPUs? Once they hid it behind signed firmware, doing it from nouveau became a major pain, because it requires complete blind reverse engineering. All this effort could be spent on making the drivers better instead, if Nvidia would have provided documentation.
It's the reason you can't use nouveau for gaming today on anything recent.
you talk about enabling signed firmware like it was done for a proprietary reason and not a massive security one. take a look at the fake Pascal gpu's on ebay where people are flashing unsigned firmware to old Fermi cards to fake windows into thinking they're actual Pascal cards...
that said, youre right that it's not good that the nouveau driver is so far behind the proprietary one, and Im not trying to say that nvidia isn't at fault for that, just that it's a more complicated issue that people tend to portray it as.
The problem is not just in the signed nature of the firmware, but in the fact that there is no normal way to control it to achieve needed results like card reclocking, which is required to run it in anything but minimal performance mode. And there is no documentation on any of this for different boards. What stopped Nvidia from giving access to these features and documenting it for developers? I don't buy the security argument. Reclocking works just fine through open AMD drivers for instance.
As Nouveau developers put it:
> Reclocking must be done in firmware. NVIDIA now requires signed firmware to access a lot of useful functionality. They will never release the firmware in a nice redistributable manner, so the avenues for implementing it become much harder:
> (a) Figure out a way to extract the firmware from their released drivers (harder than it sounds) and how to operate it to do the things we need
> (b) Find a bug in their firmware to use to load our own code into the secure environment (any such exploit would be patched, but once we have a version of the firmware that's exploitable with signatures, we can just keep loading it instead of whatever's the latest)
> Of course all that gets us is ... firmware which can toggle stuff GPU-side. Then we have to develop the scripts to actually perform the reclocking to pass on to the firmware. This is the hard part -- due to the wide variety of hardware, ram chips, etc there can be a lot of variation in those scripts. A single developer might only have 1% of the boards out there, but by fuzzing the vbios and seeing how the blob driver reacts, we can get much more significant coverage.
> As part of the signed-everything logic, the blob driver now also verifies that the VBIOS hasn't been tampered with, which means that developing reclocking scripts will require different techniques.
> Moral of the story... just get an Intel or AMD board and move on with life. NVIDIA has no interest in supporting open-source, and so if you want to support open-source, pick a company that aligns with this.
In the end, crippling reclocking can easily be seen as an anti-competitive stance against nouveau, to prevent it from competing with the blob.
The sad thing is that this experience is typical and expected for me by now. Nearly every time I install or upgrade Linux, I have to spend hours troubleshooting Nvidia driver issues. Cumulatively, several days of my life have been wasted on this. People are angry because Nvidia has made and continues to make bad decisions that result in a poor experience on Linux.