Announcement

Collapse
No announcement yet.

NVIDIA BIOS Signature Lock Broken - What Caused Open-Source Pains For Years

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #51
    Originally posted by torsionbar28 View Post
    Which is why any self-respecting FOSS enthusiast doesn't buy nvidia products. AMD or intel GPU's only please. Linus had the correct sign language.
    I'm a FOSS enthusiast and I buy Nvidia cards. Whether that makes me a non self-respecting enthusiast or simply not a zealot, I don't really care.

    Comment


    • #52
      I never fully understood the situation around NVIDIA firmware, maybe someone here can elucidate.
      I understand that the firmware is signed so only NVIDIA-blessed code will run, but why can't noveau load the official firmware and use it? Did the folks at noveau code their own firmware before firmware signing?
      It should in theory be possible to make a open-source driver that loads the official firmware and talks to it in the same way the official one does right? I can't see what would make it impossible (other than the amount of work involved).

      Comment


      • #53
        Originally posted by dp_alvarez View Post
        I never fully understood the situation around NVIDIA firmware, maybe someone here can elucidate.
        I understand that the firmware is signed so only NVIDIA-blessed code will run, but why can't noveau load the official firmware and use it? Did the folks at noveau code their own firmware before firmware signing?
        It should in theory be possible to make a open-source driver that loads the official firmware and talks to it in the same way the official one does right? I can't see what would make it impossible (other than the amount of work involved).
        I'm not 100% up to speed with these things, but I believe nouveau already does that. The problem nouveau faces is wrt reclocking: because custom models have various power profiles, nouveau cannot reliably decide how to change the clock speeds once everything is up an running. There's no interface for reading that info, it's all on a per model basis.

        Comment


        • #54
          this makes me happy, now we can run non stock fans off the GPU's fan header and patch the fan curve so it does not panic and crank to 100% speed for no reason at random cause the RPM is too low

          Comment


          • #55
            Originally posted by dp_alvarez View Post
            [...] why can't noveau load the official firmware and use it? Did the folks at noveau code their own firmware before firmware signing?
            It should in theory be possible to make a open-source driver that loads the official firmware and talks to it in the same way the official one does right? I can't see what would make it impossible (other than the amount of work involved).
            To this day the nouveau site on freedesktop.org shows NVIDIA chips that need "external firmware" for features to work, namely video encoding / decoding. So yes, nouveau used to load external firmware for a while. External because it can not legally be redistributed. Some nouveau developer could still call it "not stealing" it there is no redistribution and the user instead downloads the proprietary driver (or the external firmware) by the usual means. But now the NVIDIA license does not allow "separation of components". So it is even worse then having no distribution rights, NVIDIA really does not allow this.

            Other then that, loading the GPU firmware was becoming too complex without documentation, at the time when NVIDIA introduced the signed firmware. It was a long sequence and not just a copy (read and write) operation. Although NVIDIA eventually did help nouveau with the correct loading sequence for the GPU to enter secure mode, where authenticated firmware can then be loaded.

            But at the time, nouveau developers also explained that reusing the proprietary firmware now requires testing / fixing / reverse-engineering on a per-model basis, so for every specific model of GTX 1080 for example, produced by all AIB partners (also remember the mobile variants in laptops...).

            So even with proprietary firmware, nouveau still had to know "is this the cheaper card that can only boost to 1600MHz, or is it the good one that can go to 1750MHz" ? This is a simple example (GPU-Z can actually read the boost clock), but there are more timings and limits to control like this. And there is no way to ask the video card "how long can you sustain this new power level ?" or "for how long can the voltage be raised to this value ?" or "how fast can you switch to the next higher or lower power when needed ?"

            I did not understand these details, must be related to the lack of hardware documentation, but it had to do with timings and data tables in the vBIOS, that would ultimately provide answers to the above questions. But they were in a different format for each card, undocumented, and use different formulas for each (specific to the electrical components used). Even for the same video card model, units sold far apart in time can be built with different capacitors inside for example, and have different values and timings for those parts in the vBIOS tables, and they need to be re-engineered again.

            My own guess is it is technically possible for a driver like nouveau to do this, it is just too much work. And there is no documentation, plus no motivation to do such work, since the GPUs were clearly locked-down by NVIDIA to prevent this sort of use.

            Comment


            • #56
              Originally posted by justinkb View Post
              Let's be honest, nouveau never was that good, even for GPUs which weren't locked down
              There was a time when nouveau was a very good driver for Linux and actually made NVIDIA cards the better choice.

              But then remember it had to rely on reverse-engineering for development. And when NVIDIA locked-down the GPUs, nouveau struggled to gain any interest, it was in a way abandoned.

              Comment


              • #57
                Originally posted by erniv2 View Post
                [...] the new UEFI vBIOS is called GOP or something like that wich should also be a standard somewhere, and linux can grab it with the EFI simple framebuffer driver, there is no need for a hardware specific driver to boot a system, the driver is there to access special hardware accelerated features, wich in the case of nouveau fails cause it cant access the reclocking and or gpu shaders etc.
                But have you noticed how UEFI does not use the native resolution of the screen and is still slow, and how slow the simple GRUB is if you try to use 1440p ?. Using that would make the Linux setup and first-use a painful experience, associated with NVIDIA cards. Maybe they don't want that.

                I still think some VESA / GOP mode can be used, for the shortest amount of time, for booting Linux, but to solve a different problem of ever-growing firmware size in the initrd image.

                Comment


                • #58
                  Originally posted by bug77 View Post

                  I'm not 100% up to speed with these things, but I believe nouveau already does that. The problem nouveau faces is wrt reclocking: because custom models have various power profiles, nouveau cannot reliably decide how to change the clock speeds once everything is up an running. There's no interface for reading that info, it's all on a per model basis.
                  Yup, its actually even more complicated than that because the power profiles are not only specific per GPU model, but also the components for that model. i.e. you can have 2 GTX 1080's, but if one has Samsung memory and the other has Micron then the power profiles will be different (and thats only touching the surface).

                  Comment


                  • #59
                    Still not clear if the new vBIOS tools actually allow vBIOS modding, or just cross-flashing. Can they brute-force the signature somehow, to allow modding ?

                    But with vBIOS modding, I would love to see a way to enable ReBAR on RTX 2000 series, like it can be done with motherboard UEFI.

                    Any modders out there can find a way to do that for my RTX 2080 Ti X Trio?

                    Comment


                    • #60
                      Originally posted by bug77 View Post

                      I'm a FOSS enthusiast and I buy Nvidia cards. Whether that makes me a non self-respecting enthusiast or simply not a zealot, I don't really care.
                      I saw that movie before, where a black man is proudly waving a confederate flag…

                      Comment

                      Working...
                      X