Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: gsp.bin firmware can be redistributed? What license do they have? #62

Closed
stalkerg opened this issue May 12, 2022 · 15 comments
Closed
Assignees
Labels
documentation Improvements or additions to documentation question Further information is requested

Comments

@stalkerg
Copy link

The question in the title. I believe currently it's not clear but at the same time a very important aspect.

Thanks.

@aritger
Copy link
Collaborator

aritger commented May 12, 2022

Hi stalkerg. Yes, this is an important question. gsp.bin contained in the driver .run file is governed by the license in the driver. run file (the file LICENSE in the top level directory when you extract the .run file).

I'm not a lawyer, but I think this section specifically allows redistribution of gsp.bin:

2.1.2  Linux/FreeBSD Exception.  Notwithstanding the foregoing terms
of Section 2.1.1, SOFTWARE designed exclusively for use on the Linux or
FreeBSD operating systems, or other operating systems derived from the
source code to these operating systems, may be copied and redistributed,
provided that the binary files thereof are not modified in any way
(except for unzipping of compressed files).

Certainly the intent is to allow gsp.bin to be redistributed.

That said, we hope to gsp.bin can ultimately be used by Nouveau, independently of the rest of the NVIDIA driver stack. We'll need to work with NVIDIA's lawyers to update this license file to allow that. There is a clause in section 2.1.3 that may technically prohibit that today:

No Separation of Components.  The SOFTWARE is licensed as a
single product.  Its component parts may not be separated for use
on more than one computer, nor otherwise used separately from the
other parts.

Does this answer your question? Were you specifically interested solely in redistribution? Or redistribution separately from the rest of the NVIDIA driver?

@stalkerg
Copy link
Author

stalkerg commented May 12, 2022

Yes, I am primarily interested in

Or redistribution separately from the rest of the NVIDIA driver?

without it, Nouveau can't be working out the box. I thought about redistribution alongside AMD and Intel firmware's as part of the Linux kernel ( https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/ )

Anyway, thanks! Looks like you have already answered:

We'll need to work with NVIDIA's lawyers to update this license file to allow that. There is a clause in section 2.1.3 that may technically prohibit that today

@stalkerg
Copy link
Author

@ValZapod yes it's an interesting but probably separate question.
Also, do we need current firmware as well or gsp.bin is enough for everything?

@mtijanic mtijanic added documentation Improvements or additions to documentation question Further information is requested labels May 12, 2022
@mtijanic
Copy link
Collaborator

Also, do we need current firmware as well or gsp.bin is enough for everything?

@stalkerg in addition to gsp.bin, a driver needs the relevant booter microcode from src/nvidia/generated/g_bindata_*.c.
I am even less of a lawyer than @aritger but my understanding is that distribution of these binaries is governed by the MIT license header in the file.

All other firmware, like the ones listed in the kernel commit just above, are not needed with gsp.bin.

@stalkerg
Copy link
Author

@mtijanic cool, it means for final happy we need wait nVidia lawyers about gsp.bin.

@TechnologyClassroom
Copy link

From an integration standpoint, the easiest way to solve this issue would be to release the code to compile gsp.bin under the same license as this repository.

@TechnologyClassroom
Copy link

TechnologyClassroom commented May 13, 2022

I read something about a signing key being leaked a few months back. Would that be related to this blob?

@throwaway1037
Copy link

As discussed in #35, the ethical and practical course of action is to liberate the firmware too.

@stalkerg
Copy link
Author

stalkerg commented Dec 5, 2022

@aritger do you have any updates for such work? As I can see the nouveau project is not so active without guarantees about such a blob.

@aritger
Copy link
Collaborator

aritger commented Dec 5, 2022

@stalkerg: Making the license more explicit about allowing separately redistributable gsp firmware is progressing through the byzantine path it needs to take. Thanks for your patience.

@stalkerg
Copy link
Author

stalkerg commented Dec 9, 2022

@aritger, thank you for the update! Seems like we have progressed just need to wait.

@Conan-Kudo
Copy link

@aritger Any progress on this? It'd be great if we could have this for Linux 6.2 / Fedora 38...

@aritger
Copy link
Collaborator

aritger commented May 30, 2023

For whatever it is worth, the EULA contained in the 535.43.02 proprietary driver package was overhauled. There is no longer any language to prohibit separation of components, so gsp.bin (well, now gsp_tu10x.bin and gsp_ga10x.bin) can be distributed separately from the rest of the driver.

(The www.nvidia.com driver download page still uses the old EULA language, but that is just a bug that it hasn't been updated to the new EULA, yet. The LICENSE file inside the .run file is the correct updated EULA language.)

I'm going to proactively close this as fixed. Thanks.

@aritger aritger closed this as completed May 30, 2023
@TechnologyClassroom
Copy link

What is the license of gsp.bin, gsp_tu10x.bin, and gsp_ga10x.bin? Will the source code for these files be published?

@ttabi
Copy link

ttabi commented May 31, 2023

Will the source code for these files be published?

No.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation question Further information is requested
Projects
None yet
Development

No branches or pull requests

8 participants
@Conan-Kudo @stalkerg @aritger @mtijanic @TechnologyClassroom @ttabi @throwaway1037 and others