Luis Chamberlain sent out the modules changes today for the Linux 6.6 merge window. Most notable with the modules update is a change that better builds up the defenses against NVIDIA’s proprietary kernel driver from using GPL-only symbols. Or in other words, bits that only true open-source drivers should be utilizing and not proprietary kernel drivers like NVIDIA’s default Linux driver in respecting the original kernel code author’s intent.
Back in 2020 when the original defense was added, NVIDIA recommended avoiding the Linux 5.9 for the time being. They ended up having a supported driver several weeks later. It will be interesting to see this time how long Linux 6.6+ thwarts their kernel driver.
Riddle me this, why is there such a thing as proprietary drivers for anything? Especially consumer facing products like this?
Don’t you want anyone and anything using your product in any situation? Help me understand NVIDIA’s bit with this?
Driver code might expose some underlying secret sauce they’re using in the hardware. That’s the justification they always used to give, at any rate. At this point, though, it’s probably some code they’ve inherited from an acquisition that has a bunch of legal encumbrance stopping it from being open sources.
If they have to rely on obscuring stuff on their user side to keep their secret sauce, I’d say they’re bad at it.
This is coming from someone who deals with APIs for living.
deleted by creator
AMD isn’t, and they used to be significantly worse than Nvidia about proprietary drivers.
deleted by creator
People held the same opinion about them though. How is that not relevant?
deleted by creator
Whatever, dude.
👍
Likely a combination of 4 things:
They have third party firmware in their blobs that they are under NDA regarding the source code.
They believe in the source code is a large part of their success and don’t want to reveal it.
They believe giving out the source code will allow many inferior variants of the software, impacting their brand.
Control; the more source code they have in mesa the more of their code can be rejected by mesa. Keeping their stuff as blobs allows them to put in whatever hacks they want.
They can open their code without merging into mesa
They don’t want you to use “old” GPUs
Sure but why open their code without getting the integration benefits?
And again we are talling about code not being rejected as main goal.
They don’t want you to see the “if benchmark_xyz { do less work }” blocks of code.
I assume nVidia have licensed other code that they don’t have the rights to distribute the source code for.
I get what the GPL fans want here, but it’s just going to lead to a gimped driver, no driver, or an even larger shim between the open and closed source bits. The Linux market is too small for nVidia to care.
With GPUs being used for AI stuff and all sane people using Linux for servers, no, Linux market isn’t small at all for Nvidia.
The Linux community is literally Nvidia’s biggest market. The current Linux market share in data centers is currently estimated to be 77%.
And how many of those plans use GPU rendering?
Come on…
There’s obviously use cases for Nvidia on Linux but Linux desktop gamers aren’t even a blip on the radar. The reason Nvidia bothers to release free Linux drivers is for public beta testing not for the revenue.
Sure but they don’t play 3d video games do they?
The Linux gaming market is too small for Nvidia to care, but the GPU computing market isn’t.
So we can add “use an older kernel” and “use a modified kernel with that protection removed” to the list of options.
Using an older kernel isn’t a long-term solution. And according to the kernel devs, either using and older kernel in that way or modifying the kernel to remove these protections still violates the license even if it bypasses the technical protections.
(I’m guessing Nvidia will keep shimming and rely on either not being sued or winning the lawsuit.)
deleted by creator
The Linux market is massive for Nvidia. Nobody is using Windows for ML and everybody is using Nvidia for ML.
And the relation between graphical drivers and ML is?..
GPUs are the primary hardware used for ML workloads…
Yes, but you don’t need graphical drivers to do ML on a GPU, you just need the part of the drivers that lets you do ML. Accelerated graphics are almost completely unrelated. Nvidia can stop offering graphics drivers while still ofering ML drivers and still make a very good living.
Even if they continue offering graphics drivers they don’t have to offer them for free. Their main clients are people who do professional graphical and video editing, who can drop hefty sums on driver licensing because they already pay a lot for the hardware and support. Gamers are a tiny amount of their revenue, and over 90% of that tiny revenue is Windows anyway.
At this point Nvidia can snap their fingers and discontinue all their support for the consumer market just like that and won’t even feel it. The only reason they bother with free Windows graphics is that Windows gamers still generate a non-negligible amount of revenue by buying the overpriced desktop cards, and the only reason they bother with Linux graphics drivers is because it’s free beta testing. The Linux desktop market is a ridiculously tiny population in terms of gamers, but it’s a sizable population in terms of QA.
Yes but this article is talking about the entire nvidia kernel driver… Why are you assuming this doesn’t apply to the parts necessary for ML?
The top level comment in this thread is talking about “consumer facing products”. ML is not a mainstream consumer use of Nvidia drivers. Most of the people who got a bee in their bonnet about Nvidia drivers not being open source are desktop users interested in the graphics drivers.
Either way, I don’t understand the issue. If people don’t like the fact Nvidia has proprietary drivers they can choose not to buy their hardware. To buy their hardware and then be upset about it makes no sense.
Same for the kernel developers, they either want proprietary drivers to work with Linux or not. If they don’t they can give Nvidia the finger outright instead of pussyfooting around – but Nvidia is not the only one with proprietary drivers and I think we all know how quickly Linux would go the way of the dodo if it didn’t support proprietary stuff.
This whole topic has always been rife with posturing, entitlement and hypocrisy. People love to enjoy all the benefits from Nvidia hardware while bitching about the drivers. You can’t force a company to use open source. Take it or leave it.
It also a red herring. People love to point to AMD as a counter-example, but are AMD drivers so much better? They’re open source but you can’t write AMD’s drivers for them, and AMD’s people are slow to release them and to fix bugs so at the end of the day it’s the exact same thing as far as I am concerned as a user.
Consumer facing products still includes products being sold to companies, who are the consumers in this case. Of course the average user isn’t using the cards for ML, but Nvidia makes the most profit from datacenters, not gamers. Most of this comment is not relevant to my comment at all, which was simply refuting the statement that the Linux market is not large for Nvidia.
Also, what do you mean you can’t write AMDs drivers? You certainly could write and submit code for the AMD kernel or mesa drivers.
There are a lot of people who are not amd employees who contribute to the Radeon drivers in mesa
Cheap vector operations.
Life’s too short to do ML on a CPU. In some cases literally. You can’t do any reasonable ML without a GPU. And you need drivers for that.
I’ll fix it for you: “The Linux gaming market”
Linux AI market is their bread, butter and red caviar. Shim itself is enough proof they care.