I am glad they didn't manage to acquire ARM. Worst company ever to be allowed such control over computing. Having to deal with their GPU drivers and CUDA blobs is bad enough already. Pure evil.
> Nvidia's TOS forbids doing that or publishing any software that does that for others.
IANAL, but just because TOS claims something doesn't mean it is enforcable in all jurisdictions, and could potentially fall against certain interoperability or other provisions.
I'll bite. Has anyone traced the initialization of the NVIDIA binary driver and figured out what is so special for reclocking and/or reproduced it without the binary driver? If you do not want to reply publicly email is in profile.
> Has anyone traced the initialization of the NVIDIA binary driver and figured out what is so special for reclocking and/or reproduced it without the binary driver?
From what I understand [1], the chip itself will check if the running firmware has been signed by NVIDIA and refuse to run at higher clock speeds if not.
Exactly. Maxwell and later Nvidia architectures contain internal CPU cores that manage parts of the GPU and I believe even job scheduling. They refuse to run anything not signed by Nvidia, so developing an open source high performance driver would require obtaining their root keys. If someone does that and can't prove they did it by brute force or some other vulnerability in Nvidia's software, they're going to be in a world of hurt.
Yeah but my point was to develop a tool to extract NVIDIAs proprietary signed firmware, make nouveau capable of interfacing with said firmware, and distribute the extractor tool as part of a Linux distribution.
That way you'd have both high-speed acceleration and an as-far-as-possible open source driver.
Why should I as an author of a piece of downloader/extractor software be liable for what others do with my software? As the author, I'm not bound for EULAs I never agreed to.
Alternatively to downloads, I could also make a software that asks the user to supply the NVIDIA installer binary and extracts the firmware out of it.
I imagine once they notice and decide to care, they sue you for copyright infringement or breaking a contract (I'm really not a lawyer; I know using a piece of software without a license is something you can sue over, but not details).
EULA; I know it's not a "sign on the dotted line" contract, but it still has some legal power, probably, in the USA at least. If you don't accept the EULA then you're "just" breaking copyright law, I think. (Again, IANAL, I know I'm not doing great at details, but I'm fairly sure it works roughly this way)
Were there any cases of a EULA being actually upheld in a court? I mean, a video card is something you buy to own. It's a device for highly parallelized number crunching. The manufacturer deliberately interferes with your ability to use the device you bought with your choice of operating system. It feels like such behavior should be illegal and NVidia would be at fault, not the person who has merely defeated their shitty lock-in tech.
Also you technically don't agree to a EULA when you download an installer via direct link and unpack it to extract the files required to initialize the thing you own. You never run the installer and never click the "agree" button.
Yes, particularly aggressive companies have had their EULAs upheld in court (in the US).
Circumventing the EULA prompt is considered agreement to the EULA terms in the US. If you fight that too much in court, it would then be considered software piracy.
The way things tend to be enforced is that while you own the physical piece of hardware, you do not own or necessarily have any rights to the software on it, or for it.
Thing is, you could usually reverse engineer a piece of hardware enough to write your own software for it, as described in the OP article. That's fully legal. But NVidia designed their hardware on purpose such that you're required to use their proprietary blob to initialize it and you can't substitute it with something open-source. So hardware is effectively useless unless you send it this particular Highly Proprietary™ sequence of bytes that NVidia won't let you have without way too many strings attached.
I guess one way would be to write a driver that does this exact thing this thread suggests, and release it under a license that forbids its distribution into and within the US. And of course never ever host any parts of it on any infrastructure located in the US or owned by a US company.
I mean, good luck. The internal CPU core you have to initialize will only execute signed code for the most part, so any open source high performance driver for the card would have to get a hold their root keys. And doing that is covered by quite a few international laws, so whoever did it would be pretty screwed.