#6 document info about binary blobs on kepler series (nvidia graphics cards)

Open
opened 2 years ago by vimuser · 3 comments

kaliya[m] on freenode joined the channel to ask about it. it's an interesting topic that could do with some links on libreboot.org

i suggested to ask in #nouveau on OFTC, to which the person replied (on 22 July 2021):

03:37 <kaliya[m]> Nouveau is a great project but they unfortunately provide very little information on which GPUs ship with unsigned firmware. I have found information elsewhere stating Kepler up to GK20A but wanted to confirm elsewhere, ideally in their channels.

Later, that person linked these pages:

03:51 <kaliya[m]> https://unix.stackexchange.com/questions/393357/is-nouveau-completely-free-of-non-free-code -> Nvidia GPUs which can be run without non-free firmware blobs
03:51 <kaliya[m]> https://unix.stackexchange.com/questions/393504/which-amd-ati-cards-dont-require-nonfree-firmware-when-using-radeon -> AMD GPUs all require non-free firmware blobs
03:51 <kaliya[m]> https://nouveau.freedesktop.org/CodeNames.html -> Architecture code names
03:52 <kaliya[m]> Apologies for taking so long, I had issues finding the stackexchange posts again. That is the only information I have so far but I am hoping to learn far more than that in the future.

I then asked permission to share snippets from this IRC chat. Here is some more:

04:01 <kaliya[m]> If you would like to then feel free. There is more information available at https://linuxfromscratch.org/blfs/view/svc/postlfs/firmware.html which is linked in the AMD stackexchange comments.
04:01 <kaliya[m]> It seems to provide some good information which may be useful. The reason it says Keplar and everything afterwards requires non-free blobs is because the video decoder requires non-free blobs. If you do not need the video decoder then it can be used without blobs via nouveau.
04:05 <kaliya[m]> Graphics cards have a video decoding accelerator where the GPU does the work to decode certain video formats. More information for that is available at https://docs.nvidia.com/video-technologies/video-codec-sdk/nvdec-application-note. If you do not have the video decoding accelerator for the GPU then the work gets passed to the CPU.
04:07 <kaliya[m]> This is not a problem on most old graphics cards such as Keplar because the video formats they offer support for video decoder acceleration are generally outdated. H264 is the only video codec which it may be useful for, but it is a non-free video codec.
04:09 <kaliya[m]> The only free video codecs which are currently relevant are VP9 and AV1, neither of which are supported for Keplar or older cards. Theora is old enough that it may be supported but I don't know for sure and it is rarely used regardless.
04:15 <kaliya[m]> Through what I have found with both VikingsGBMH and TechnoEthical, nouveau can load without issues on Libreboot. That is solely based on reports from https://tehnoetic.com/desktops/tet-d16ws which ships with a Keplar GPU and https://www.qubes-os.org/hcl/#asus_kcma-d8_opteron-4284_amd-rd890_geforce-gt-710b.

Referring to my comments about etc/only-load-pci-roms:

04:18 <kaliya[m]> Regarding the option ROM, if I understand it correctly, you are trying to accomplish the same as Nouveau does on Keplar and older architectures. They simply use Nouveau for everything and never load the firmware on the card since it isn't required.

TODO: follow-up. the person is doing more research

kaliya[m] on freenode joined the channel to ask about it. it's an interesting topic that could do with some links on libreboot.org i suggested to ask in `#nouveau` on OFTC, to which the person replied (on 22 July 2021): ```` 03:37 <kaliya[m]> Nouveau is a great project but they unfortunately provide very little information on which GPUs ship with unsigned firmware. I have found information elsewhere stating Kepler up to GK20A but wanted to confirm elsewhere, ideally in their channels. ```` Later, that person linked these pages: ```` 03:51 <kaliya[m]> https://unix.stackexchange.com/questions/393357/is-nouveau-completely-free-of-non-free-code -> Nvidia GPUs which can be run without non-free firmware blobs 03:51 <kaliya[m]> https://unix.stackexchange.com/questions/393504/which-amd-ati-cards-dont-require-nonfree-firmware-when-using-radeon -> AMD GPUs all require non-free firmware blobs 03:51 <kaliya[m]> https://nouveau.freedesktop.org/CodeNames.html -> Architecture code names 03:52 <kaliya[m]> Apologies for taking so long, I had issues finding the stackexchange posts again. That is the only information I have so far but I am hoping to learn far more than that in the future. ```` I then asked permission to share snippets from this IRC chat. Here is some more: ```` 04:01 <kaliya[m]> If you would like to then feel free. There is more information available at https://linuxfromscratch.org/blfs/view/svc/postlfs/firmware.html which is linked in the AMD stackexchange comments. 04:01 <kaliya[m]> It seems to provide some good information which may be useful. The reason it says Keplar and everything afterwards requires non-free blobs is because the video decoder requires non-free blobs. If you do not need the video decoder then it can be used without blobs via nouveau. ```` ```` 04:05 <kaliya[m]> Graphics cards have a video decoding accelerator where the GPU does the work to decode certain video formats. More information for that is available at https://docs.nvidia.com/video-technologies/video-codec-sdk/nvdec-application-note. If you do not have the video decoding accelerator for the GPU then the work gets passed to the CPU. ```` ```` 04:07 <kaliya[m]> This is not a problem on most old graphics cards such as Keplar because the video formats they offer support for video decoder acceleration are generally outdated. H264 is the only video codec which it may be useful for, but it is a non-free video codec. ```` ```` 04:09 <kaliya[m]> The only free video codecs which are currently relevant are VP9 and AV1, neither of which are supported for Keplar or older cards. Theora is old enough that it may be supported but I don't know for sure and it is rarely used regardless. ```` ```` 04:15 <kaliya[m]> Through what I have found with both VikingsGBMH and TechnoEthical, nouveau can load without issues on Libreboot. That is solely based on reports from https://tehnoetic.com/desktops/tet-d16ws which ships with a Keplar GPU and https://www.qubes-os.org/hcl/#asus_kcma-d8_opteron-4284_amd-rd890_geforce-gt-710b. ```` Referring to my comments about etc/only-load-pci-roms: ```` 04:18 <kaliya[m]> Regarding the option ROM, if I understand it correctly, you are trying to accomplish the same as Nouveau does on Keplar and older architectures. They simply use Nouveau for everything and never load the firmware on the card since it isn't required. ```` TODO: follow-up. the person is doing more research
Leah Rowe commented 2 years ago
Owner
17:02 <GNUtoo> On nvidia GPUs there is either a video BIOS and/or probably a GOP driver somehow for UEFI and both have some sort of bytecode and/or data inside that is used by the nouveau driver,
17:03 <GNUtoo> For the Tegra K1 and Tegra X1, it's different. Instead this data / nonfree-code is replaced by free code that is in Linux
17:03 <GNUtoo> And here the display controller is probably not part of nouveau
17:04 <GNUtoo> but AFAIK there is no free firmware yet for the Tegra X1 and at least some firmwares for the Tegra K1 are signed
17:08 <bone-baboon> biovoid_: From discussion I recently participated in on the h-node mailing list it sounds like there is no human review of submissions to h-node. Also on the h-node mailing list I ask if there is a searchable archive for for the h-node mailing list and have not recieved a response yet (so I do not have a link to share).
17:08 <GNUtoo> Ah I mixed up stuff I meant that the newer one (The Tegra X1) has signed firmware, not the older one (Tegra K1)
```` 17:02 <GNUtoo> On nvidia GPUs there is either a video BIOS and/or probably a GOP driver somehow for UEFI and both have some sort of bytecode and/or data inside that is used by the nouveau driver, 17:03 <GNUtoo> For the Tegra K1 and Tegra X1, it's different. Instead this data / nonfree-code is replaced by free code that is in Linux 17:03 <GNUtoo> And here the display controller is probably not part of nouveau 17:04 <GNUtoo> but AFAIK there is no free firmware yet for the Tegra X1 and at least some firmwares for the Tegra K1 are signed 17:08 <bone-baboon> biovoid_: From discussion I recently participated in on the h-node mailing list it sounds like there is no human review of submissions to h-node. Also on the h-node mailing list I ask if there is a searchable archive for for the h-node mailing list and have not recieved a response yet (so I do not have a link to share). 17:08 <GNUtoo> Ah I mixed up stuff I meant that the newer one (The Tegra X1) has signed firmware, not the older one (Tegra K1) ````
Leah Rowe commented 2 years ago
Owner
02:13 <kaliya[m]> Sorry Leah, thus far I have not received a single response in the Nouveau IRC channel.
02:13 <kaliya[m]> However, I have found other sources which may be useful if you are interested.
03:00 <-- madez (~madez@ip-176-198-251-181.hsi05.unitymediagroup.de) has quit (Quit: .)
03:02 --> madez (~madez@ip-176-198-251-181.hsi05.unitymediagroup.de) has joined #libreboot
03:20 <bone-baboon> kaliya[m]: Could you share links for the other sources you mentioned?
03:22 <kaliya[m]> Since an hour ago I had a big breakthrough. I now have a list of every graphics card which requires non-free firmware and/or drivers. Special thanks to Debian for having all of this in a repository that is easy to navigate, clearly labelled, and a complete list due to a dedicated non-free repository.
03:23 <kaliya[m]> Some manual work must be done to find the names for the freedom-respecting GPUs but I will be creating that list over the coming days to make it easier for others.
03:23  * kaliya[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/2f8f2e1eb373af342202f9079abaa5f9b90657c0/message.txt >

NVIDIA non-free firmware -> https://packages.debian.org/sid/firmware-misc-nonfree
NVIDIA GPU Code Names -> https://nouveau.freedesktop.org/CodeNames.html

AMD non-free firmware -> https://packages.debian.org/sid/firmware-amd-graphics
AMD GPU Code Names -> https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units#Desktop_GPUs

Other non-free firmware (may or may not be relevant) -> https://packages.debian.org/source/sid/firmware-nonfree

03:31 <bone-baboon> kaliya[m]: Thanks
03:44 <bone-baboon> kaliya[m]: I have a computer that when it has Debian installed can run a graphical environment but with Guix (FSDG) installed it can not run a graphical environment. While I have not investigated the cause for this difference I suspect it is because Linux-libre does a more thorough cleaning of the Linux kernel.
03:45 <bone-baboon> kaliya[m]: If the list you are planning on making of freedom respecting GPUs is based on Debian information (while it would be a useful resource) it may include GPUs that have freedom issues and that do not work with Linux-libre.
03:47 <kaliya[m]> There are reports on h-node.org that some graphics cards work on Guix but not Parabola and other similar issues. The list I plan to make is simply intended to be a start for figuring out what is compatible with Linux-libre. Once I release the list I will be asking people to confirm if their cards work or not. If any cards I list do not work for any reason, I will remove them.
03:48 <kaliya[m]> The primary goal is to have a proper GPU support list that can be used by Linux-libre distributions to tell users what is and is not compatible. It may take a while but it will be a far better experience than the blind guessing that currently happens.
03:52 <kaliya[m]> To my current knowledge the 780ti is the newest/strongest NVIDIA GPU which is supported, still waiting on confirmation for NVIDIA Titan Z. I currently do not know what the strongest AMD GPU would be.
```` 02:13 <kaliya[m]> Sorry Leah, thus far I have not received a single response in the Nouveau IRC channel. 02:13 <kaliya[m]> However, I have found other sources which may be useful if you are interested. 03:00 <-- madez (~madez@ip-176-198-251-181.hsi05.unitymediagroup.de) has quit (Quit: .) 03:02 --> madez (~madez@ip-176-198-251-181.hsi05.unitymediagroup.de) has joined #libreboot 03:20 <bone-baboon> kaliya[m]: Could you share links for the other sources you mentioned? 03:22 <kaliya[m]> Since an hour ago I had a big breakthrough. I now have a list of every graphics card which requires non-free firmware and/or drivers. Special thanks to Debian for having all of this in a repository that is easy to navigate, clearly labelled, and a complete list due to a dedicated non-free repository. 03:23 <kaliya[m]> Some manual work must be done to find the names for the freedom-respecting GPUs but I will be creating that list over the coming days to make it easier for others. 03:23 * kaliya[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/2f8f2e1eb373af342202f9079abaa5f9b90657c0/message.txt > NVIDIA non-free firmware -> https://packages.debian.org/sid/firmware-misc-nonfree NVIDIA GPU Code Names -> https://nouveau.freedesktop.org/CodeNames.html AMD non-free firmware -> https://packages.debian.org/sid/firmware-amd-graphics AMD GPU Code Names -> https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units#Desktop_GPUs Other non-free firmware (may or may not be relevant) -> https://packages.debian.org/source/sid/firmware-nonfree 03:31 <bone-baboon> kaliya[m]: Thanks 03:44 <bone-baboon> kaliya[m]: I have a computer that when it has Debian installed can run a graphical environment but with Guix (FSDG) installed it can not run a graphical environment. While I have not investigated the cause for this difference I suspect it is because Linux-libre does a more thorough cleaning of the Linux kernel. 03:45 <bone-baboon> kaliya[m]: If the list you are planning on making of freedom respecting GPUs is based on Debian information (while it would be a useful resource) it may include GPUs that have freedom issues and that do not work with Linux-libre. 03:47 <kaliya[m]> There are reports on h-node.org that some graphics cards work on Guix but not Parabola and other similar issues. The list I plan to make is simply intended to be a start for figuring out what is compatible with Linux-libre. Once I release the list I will be asking people to confirm if their cards work or not. If any cards I list do not work for any reason, I will remove them. 03:48 <kaliya[m]> The primary goal is to have a proper GPU support list that can be used by Linux-libre distributions to tell users what is and is not compatible. It may take a while but it will be a far better experience than the blind guessing that currently happens. 03:52 <kaliya[m]> To my current knowledge the 780ti is the newest/strongest NVIDIA GPU which is supported, still waiting on confirmation for NVIDIA Titan Z. I currently do not know what the strongest AMD GPU would be. ````
Leah Rowe commented 2 years ago
Owner
22:33 <kaliya[m]> With current information the strongest GPU available from NVIDIA would be the 780ti, NVIDIA Titan Black or the NVIDIA Quadro K6000.
```` 22:33 <kaliya[m]> With current information the strongest GPU available from NVIDIA would be the 780ti, NVIDIA Titan Black or the NVIDIA Quadro K6000. ````
Sign in to join this conversation.
No Label
No Milestone
No assignee
1 Participants
Loading...
Cancel
Save
There is no content yet.