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.

  • @patatahooligan
    link
    361 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
      link
      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.