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.

  • UltraFiestaMango
    link
    fedilink
    English
    arrow-up
    15
    arrow-down
    22
    ·
    1 year ago

    But why is it a problem if they call on parts of the kernal they shouldn’t? is it just a privacy concern, does it also impact performance? i don’t understand

    • priapus@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      57
      arrow-down
      1
      ·
      1 year ago

      As the commenter stated, it is a copyright issue. Nvidia is not allowed to use this code in a proprietary driver.

        • webghost0101@sopuli.xyz
          link
          fedilink
          English
          arrow-up
          14
          arrow-down
          1
          ·
          1 year ago

          If they want to use that code legally they should make their code GPL but i doubt there proprietary code gets automatically overrules. I wish it did.

          I do wonder what would happen if someone would hack and leak Nvidia’s code under the defense that they thought Nvidia to be operating legally therefor assuming there code is GPL, I presume Nvidia would need to officially confess their crime as a legal defense that they never ment to open source their own code.

          • wim@lemmy.sdf.org
            link
            fedilink
            arrow-up
            30
            ·
            edit-2
            1 year ago

            Free Software Foundation, Inc. Vs Cisco Systems Inc. disagrees. The FSF sued Linksys for violating the license for GCC, libc etc.

            And they were forced in court to release all their WRT stuff under GPL, which is how OpenWRT got its start.

            • webghost0101@sopuli.xyz
              link
              fedilink
              English
              arrow-up
              15
              ·
              1 year ago

              Just the idea of nvidia being forced to open source there drivers makes me drool in sweet winners justice.

              But realistically, Nvidia feels like one of the more powerful corporations around do we stand a chance? I do hope FSF tries regardless.

              • wim@lemmy.sdf.org
                link
                fedilink
                arrow-up
                10
                ·
                edit-2
                1 year ago

                Linksys was part of Cisco. They had veryy deep pockets, but the FSF & SFC prevailed regardless.

                I doubt the FSF or SFC will go after Nvidia, this has been a long standing issue and I haven’t heard about any lawsuits being brought because of it, even before Nvidia had more money than God.

            • ArbitraryValue@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              4
              ·
              1 year ago

              They weren’t forced to do it. They did it as part of a settlement. The outcome if they had gone to trial and lost could well have been different.

              (Also how do you even violate the license for gcc while making a router?)

          • deong@lemmy.world
            link
            fedilink
            arrow-up
            8
            ·
            1 year ago

            There are lots of problems here. First, if you have to “hack” something to get the code, then it likely invalidates your own defense that you thought you were allowed to release it. Second, even if you can prove that nVidia knows that they should have to GPL their code, you still have no legal right to hack something to get it. If the hacking is illegal, then it’s illegal, even if it’s done to enable an otherwise legal activity.

      • planish@sh.itjust.works
        link
        fedilink
        arrow-up
        4
        arrow-down
        19
        ·
        1 year ago

        I don’t see how the copyright mechanism works here. The GPL has rules about linking to GPL code, enforced by the notion that the linked binary is a protected derivative work. Going and finding out where in memory some functions are and jumping to them is not going to create a derivative work.

        The Linux devs just have a rule about who they want to call these symbols and are trying to enforce it themselves.

      • ahornsirup@artemis.camp
        link
        fedilink
        arrow-up
        5
        arrow-down
        29
        ·
        1 year ago

        Which they technically didn’t. I’m sure Nvidia has a legal team that vetted their solution, they certainly have the money for it. At this point the “protection” against the proprietary driver is just anti-consumer.

        • priapus@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          14
          ·
          1 year ago

          And I’m sure Nvidia’s legal team knows that Linux is not going to take them to court for this because it isn’t worth it. Nvidia absolutely did violate the GPL, but they have the funds to avoid any legal trouble, hence why Linux goes this other router. I don’t see how this is anti-consumer, it will not significantly effect the consumer. Nvidia will simply have to update their driver like they did when these protections were first implemented.

    • patatahooligan@lemmy.world
      link
      fedilink
      arrow-up
      37
      arrow-down
      2
      ·
      1 year ago

      It is copyright infringement. Nvidia (and everyone writing kernel modules) has to choose between:

      • using the GPL-covered parts of the kernel interface and sharing their own source code under the GPL (a free software license)
      • not using the GPL-covered parts of the kernel interface

      Remember that the kernel is maintained by volunteers and by engineers funded by/working for many companies, including Nvidia’s direct competitors, and Nvidia is worth billions of dollars. Nvidia is incredibly obnoxious to infringe on the kernel’s copyright. To me it is 100% the appropriate response to show them zero tolerance for their copyright infringement.

      • fubo@lemmy.world
        link
        fedilink
        arrow-up
        9
        ·
        edit-2
        1 year ago

        To expand a bit:

        The GPL-only symbols restriction is there for the benefit of proprietary developers. It ensures that their work doesn’t become a “derivative work” of the kernel’s internals, by sticking to using only the published and documented interfaces. Using published APIs doesn’t make your work a legally derivative work of the system behind those APIs (i.e. the kernel).

        If your code needs to mess around in the kernel internals, it is very likely a derivative work of the kernel; which means you need the permission of the kernel authors if you want to publish that code legally.

        The only terms under which the kernel authors grant that permission are the terms of the GPL.

        By circumventing the GPL-only symbols restriction, Nvidia is demonstrating that their driver code needs to mess with kernel internals, not just the published APIs. And that means that it probably is a derivative work of the kernel. Which, in turn, means that those drivers must be published under the GPL in order to avoid violating the kernel copyrights.

        Basically: Linus drew a line in the sand and said “As long as you don’t step over this line, you’re not pirating the kernel by releasing proprietary drivers.” And Nvidia stepped over that line.

    • cobra89@beehaw.org
      link
      fedilink
      arrow-up
      10
      ·
      1 year ago

      Because the license for the patents that the Linux kernel is utilizing says that the code utilizing those patents must be open source. So therefore Nvidia is accessing those parts of the kernel illegally and against the license the Linux Foundation has. The Linux Foundation could lose the rights to use those patents if they’re not respecting the license.