[HN Gopher] Nvidia releases open-source GPU kernel-modules ___________________________________________________________________ Nvidia releases open-source GPU kernel-modules Author : ghishadow Score : 825 points Date : 2022-05-11 19:59 UTC (3 hours ago) (HTM) web link (www.phoronix.com) (TXT) w3m dump (www.phoronix.com) | comandillos wrote: | May this enables the possibility of compiling NVIDIA drivers for | ARM-based PCs? | adolph wrote: | https://github.com/NVIDIA/open-gpu-kernel-modules#supported-... | | "Currently, the kernel modules can be built for x86_64 or | _aarch64_. " | wmf wrote: | Nvidia has been providing ARM drivers for a little while and | they work on Ampere Altra. | messe wrote: | Had to do a few doubletakes on this, but even with the recent | hacks and progress on NVIDIA releasing Tegra source code, I | didn't expect this for another few years. | | Holy shit. | | It's even licensed as MIT. | | Even OpenBSD could conceivably port this with enough manpower. | Adding enough just emulation for the userspace driver would be a | lot easier than maintaining a complete linux emulator. | | This is one of the biggest things to happen to hardware support | for open source OSes in well over a decade. | samstave wrote: | ELI5: ? (dont have a formulated question ; ELI5 impact plz) | paisawalla wrote: | Nvidia have always shipped closed-source drivers, despite AMD | and Intel providing open source drivers for their GPUs. This | made the experience on Linux second class to Windows, where | while also closed source, at least you knew that bugs would | probably get fixed. Various non-core features simply wouldn't | have support on Linux, e.g. Optimus. Also, shipping closed | source binaries would limit which kernel you could run to | supported versions. | | Lastly, of course, this opens the way to non-Linux OSes | receiving support as well. | | If you just search the web for "Nvidia issues Linux" you'll | see quite a few complaints. Particularly from people who have | obscure configurations -- they pretty much had no chance of | getting anything to work. | bayindirh wrote: | > where while also closed source, at least you knew that | bugs would probably get fixed. | | Yeah, I waited _just 18 months_ (IIRC) for proper | DisplayPort DPMS signalling, so my monitor can sleep. | | Linux driver bugs get fixed, albeit accidentally. | messe wrote: | I think the GP meant the windows drivers would be fixed; | not the linux drivers. | lucideer wrote: | This is a good technical summary of the impact but I think | misses the somewhat emotive history here. | | See things like this infamous clip from Torvalds[0] for | more context on the community sentiment around nvidia in | general. | | [0] https://www.youtube.com/watch?v=IVpOyKCNZYw | anthk wrote: | If the module can use MESA, good. If not, meh. | | >. Adding enough just emulation for the userspace driver would | be a lot easier than maintaining a complete linux emulator. | | OpenBSD it's the best BSD on support for free (Intel) and semi | free drivers such as the ones from AMD, they already adapted | all the src from Linux, KMS included. | messe wrote: | That's very different. The source code for the userspace | portions of the MESA drivers for AMD/Intel are released under | a permissive licenses, so OpenBSD (and other BSDs) have been | able to modify them to compile under their OS (and get those | changes committed to the original tree). With NVIDIA, the | userspace portions don't use MESA, so would need some form of | translation layer to work on an OS other than Linux. | | But, said translation layer would have limited scope; so is a | lot more feasible than maintaining a general purpose | translation layer indefinitely. | onphonenow wrote: | Wow! MIT is about as clean as you can go, with no real reserved | advantage to dual license etc using Affero GPLv3 or similar. | Not bad. | moffkalast wrote: | I wonder if this is related: https://www.eetimes.com/wp- | content/uploads/Nvidia-hack-secur... | [deleted] | jjoonathan wrote: | That might not even be overstatement. The last few big desktop | linux crash-and-burns I've run into all had display drivers as | a common component. | | I like back-foot, underdog NVIDIA. Ascendent AMD hasn't drawn | my ire yet, let's hope power corrupts slowly. | lawl wrote: | Amd changed their windows drivers to not output video if it | detects its running in a VM. Nvidia went the other way and | stopped doing so. | | Both can/could be bypassed with some libvirtd xml magic, but | still. Nvidia seem to slowly stop being assholes, AMD started | already. | namlem wrote: | The cycle continues | mlyle wrote: | > I like back-foot, underdog NVIDIA. Ascendent AMD hasn't | drawn my ire yet, let's hope power corrupts slowly. | | That "back-foot" "underdog" nVidia has the edge in the video | market still... and 3x the market cap of AMD. | SemanticStrengh wrote: | APUs are eating the market of novideo, see e.g. the | performance of the M1 iGPU | [deleted] | orra wrote: | > It's even licensed as MIT. | | Wouldn't be the first time. The old 2D "nv" driver was part of | X11, and maintained by Nvidia employees. | | The catch, besides it being 2D only, was the "source code" was | actually somewhat obfuscated. | NexRebular wrote: | Well, then... hopefully FreeBSD and illumos will finally start | getting support for CUDA. | smw wrote: | Anyone know if this makes it easy to hack in SR-IOV support for | desktop class gpus? | pixelmonkey wrote: | > In this open-source release, support for GeForce and | Workstation GPUs is alpha quality. GeForce and Workstation users | can use this driver on Turing and NVIDIA Ampere architecture GPUs | to run Linux desktops and use features such as multiple displays, | G-SYNC, and NVIDIA RTX ray tracing in Vulkan and NVIDIA OptiX. | Users can opt in using the kernel module parameter | NVreg_EnableUnsupportedGpus as highlighted in the documentation. | More robust and fully featured GeForce and Workstation support | will follow in subsequent releases and the NVIDIA Open Kernel | Modules will eventually supplant the closed-source driver. | Customers with Turing and Ampere GPUs can choose which modules to | install. Pre-Turing customers will continue to run the closed | source modules. | | Translating & simplifying the language here: sounds like GTX 10xx | GPU users (Pascal architecture, e.g. 1070/1080) will stick with | closed source for now, but RTX 20xx GPU users (Turing | architecture, e.g. 2080) and RTX 30xx GPU users (Ampere | architecture, e.g. 3080) will have the option to opt-in to the | open source kernel module. Stable open source support for GTX | 10xx GPU users may come later. | kaladin-jasnah wrote: | The reason for this is because NVIDIA's Turing and above GPUs | use a new microcontroller called the GSP, which is RISC-V | based. From my understanding, NVIDIA has offloaded their | proprietary IP from the closed-source driver to the GSP | firmware (and not the older microcontroller present on Pascal | and lower). This is why `gsp.bin` exists in `linux-firmware` | now, and the FOSS driver targets the GSP (because now the | proprietary stuff isn't in the kernel driver but rather a | RISC-V ELF binary that runs on the GPU), not the older | controller. | jabl wrote: | > Stable open source support for GTX 10xx GPU users may come | later. | | Nope, Turing or later gen GPU is a hard requirement. | akselmo wrote: | This year just keeps getting more weird | intsunny wrote: | Phoronix link about what this actually means: | | https://www.phoronix.com/scan.php?page=article&item=nvidia-o... | | Main takeaways: | | - support for gaming workstation GPUs is alpha | | - the user space stuff (OpenGL/Vulkan) is still closed source. (A | LOT of heavy lifting is done here.) | dang wrote: | Ok, we've changed to that from | https://developer.nvidia.com/blog/nvidia-releases-open-sourc... | above. Thanks! | InitEnabler wrote: | Wow. Am I dreaming? That's great. | anonymousDan wrote: | Can this be used with CUDA for GPGPU or is it somehow only | relevant for graphics? | kodah wrote: | AYYYYYY | | Shout out to nvidia for this. | marius_k wrote: | nvidia, fuck you no more! | jzox wrote: | Hopefully Linus concurs | voldacar wrote: | So is it correct that they are only open-sourcing the kernel-mode | portion of the driver and that the real meat of the driver like | the shader compiler will remain in a closed-source binary? | zekrioca wrote: | It seems the modules bridge the kernel with the driver [1], so it | is this part that is GPL/MIT, the driver itself is still a binary | blob. AMD probably does the same? Correct me if I'm wrong. | | [1] https://github.com/NVIDIA/open-gpu-kernel- | modules/tree/main/... | puffoflogic wrote: | You're looking at the wrong thing. | https://github.com/NVIDIA/open-gpu-kernel-modules/tree/main/... | contains the largest parts of the driver. | marcodiego wrote: | For those who didn't use Nvidia on linux in the old times: | | The driver was a proprietary binary. Since a kernel module | requires interfacing with the kernel API, it could be considered | a derivative work and a breach of the GPL license. So, Nvidia | provided a small open source shim which interfaced between the | kernel and the proprietary module. | | You had to compile that shim yourself with the right arcane | command line incantations and if you did anything wrong, missed | the right packages or had an incompatible user space, including | libs and compiler, you could end up without X11 and no way to | easily run a browser or google about the problem you had. You had | to do it EVERY FUCKING TIME YOU UPDATED THE KERNEL! | | It was still possible to edit xorg.conf or, if you were older, | xf86config by hand to fix it and use the VESA driver, but it was | very inconvenient. It became more reliable over the time and even | fully automated with DKMS, but I hated them for it. | | I used and recommended ATI and INTEL for most of the people I | could for a long time because of this. | | I was from a time when It was possible to use 3D acceleration on | linux with 3dfx with fully open source drivers (I think), giving | you a cheap UNIX-like graphical workstation with OpenGL support. | When Nvidia bought 3dfx and simply killed their drivers, my hate | became specially strong. | | EDIT: Remember you had to recompile the shim at every kernel | update and replaced "module" with "driver". | throw0101a wrote: | > _The module was a proprietary binary. Since a kernel module | requires interfacing with the kernel API, it could be | considered a derivative work and a breach of the GPL license._ | | I never quite understood this logic: the same (?) binary blob | is used for the FreeBSD and Solaris drivers. | | * https://www.nvidia.com/en-us/drivers/unix/ | | So how can it be a 'derivative' of the GPL Linux if it it also | used on non-GPL systems? | messe wrote: | That's an interesting cognitive dissonance that I've always | been fascinated by. I've heard people criticize developers | who release proprietary drivers for the linux kernel, but | never those who release something dual licensed as GPL2/MIT, | or those who distribute a dual licensed GPL2/MIT module as if | it were solely under the MIT license; surely that would | violate the Linux kernel's GPL (in being a derivative work) | as much a proprietary module would? | marcodiego wrote: | I'm not sure about the details, but to write a linux kernel | module you must include some .h files under the GPL license. | You really have to include it because linux ABI is | intentionally not stable exactly to prevent proprietary | abuse. So, AFAIK, every functional linux kernel driver must | be released under the GPL. | amelius wrote: | APIs and ABIs should be open. GPL taking a different stance | here is not helping anyone. | marcodiego wrote: | The point is: if you want to include a GPL licensed | header, your code must comply with its license. Your | opinion on the GPL is an entirely different matter. | my123 wrote: | btw for the Oracle vs Google lawsuit, OpenJDK was | licensed as GPLv2. It was very much a GPL (purported) | violation case. | pornel wrote: | Because to make a driver work with Linux you have to add | Linux-specific code that typically uses Linux's source code, | and that combination of the driver and Linux-specific code | could be considered a "derivative". | | Note that the word "derivative" is used here as defined by | the license, not in its plain English meaning. | throw0101a wrote: | Linus Torvalds: But one gray area in | particular is something like a driver that was | originally written for another operating system (ie clearly | not a derived work of Linux in origin). At exactly | what point does it become a derived work of the | kernel (and thus fall under the GPL)? THAT | is a gray area, and _that_ is the area where I personally | believe that some modules may be considered to not | be derived works simply because they weren't | designed for Linux and don't depend on any special Linux | behaviour. Basically: - anything | that was written with Linux in mind (whether it then _also_ | works on other operating systems or not) is clearly | partially a derived work. - anything | that has knowledge of and plays with fundamental internal | Linux behaviour is clearly a derived work. If you need to | muck around with core code, you're derived, no | question about it. | | * https://yarchive.net/comp/linux/gpl_modules.html | | Then you have things like (Open)ZFS and DTrace. | puffoflogic wrote: | > don't depend on any special Linux behaviour. | | This is the key point, and it is nearly impossible for | firmware blobs to depend on any OS behavior, let alone | "special Linux behavior". The only way they could do so | is via the open-source part, so it should be easy enough | to check that. | messe wrote: | You quickly get into something similar the ship of theseus | (or Trigger's broom) argument. You write some code that | must link to a GPL library to functon; that code is now GPL | because it's a derivative work of the library. | | You rewrite that library under an MIT license, so now your | code can link to that and run. Is your original code still | a derivative work? | pornel wrote: | Your original code is never a derivative work. You retain | copyright to the code you wrote yourself, even if it's | combined with GPL later. GPL even contains this | interesting clause: | | > _You are not required to accept this License, since you | have not signed it._ | | So to answer your question: no, unless you've copied bits | of GPL library into your code (or similar that would be | judged as a copyright violation). | | There's also a crappy situation of Oracle vs Google that | made APIs copyrightable, so now it's not entirely clear | if your code + your rewrite of library is still yours if | it uses an API of the GPL library. | messe wrote: | > Your original code is never a derivative work[...] | | > > You are not required to accept this License, since | you have not signed it. | | > So to answer your question: no, unless you've copied | bits of GPL library into your code (or similar that would | be judged as a copyright violation). | | Actually that clears a lot up for me, and I'd have | considered myself reasonably knowledgeable when it comes | to copyright in general; I think I had a few conflicting | ideas about what it means to be an original work. Thank | you. | bogwog wrote: | I'm not a lawyer, but my understanding is that the GPL | requires you to make source available upon request to | users of your software. | | So I guess if someone asks you for the source code, you | can require them to prove that they actually have a copy | of the GPL version, and not the new one. | adastra22 wrote: | The license is abundantly clear about this and answers | all your questions. | | It matters who is doing the rewriting and how they got | the code in the first place. | messe wrote: | I think one of the matters that confused me about it was | the CLISP question. IIRC, CLISP linked to readline, but | was released under a non-GPL license. | | RMS contacted them, and asked them to relicense. They | suggested either reimplementing a stub readline-library, | or rewriting their line editing code against another lib | instead. RMS insisted that they would still be a GPL- | derivative, resulting in the current license situation. | | I may be misremembering the recount of this, as this was | way before my time. | adastra22 wrote: | RMS may have believed or wanted that, but it is my | understanding (IANAL!) that the case law has been settled | differently. If you are found in violation of the GPL due | to a dependency you weren't aware was released under the | GPL, you can fix that violation by rewriting your | application to avoid the GPL dependency. | | CLISP et al cannot be forced to distribute their code | under the GPL. It's their code and their choice; contract | law cannot compel someone who has never entered into the | contract to do something against their will -- CLISP | didn't knowingly distribute GPL code, so that | distribution doesn't trigger acceptance of the GPL terms. | They just have to make the situation right once they're | made aware of the violation. | AshamedCaptain wrote: | "Derivate" I think here is red herring. The biggest problem | is that the combination of kernel + nvidia modules could | never be redistributed, which means that technically no | distro should have been able to ship these drivers by | default. | anthk wrote: | I remember using that for a Geforce2 MX and the installer. | | People has no idea on what FREEDOM do you have if you aren't | bound to crappy licenses with Nvidia and CUDA for serious | computing where you can be limited per core. | frostwarrior wrote: | Those were simpler times | alksjdalkj wrote: | If I remember correctly, the open source ATI drivers were | always a bit buggy and it wasn't that easy getting them | installed either. The tradeoff was always Nvidia: proprietary | but works well, ATI: open but buggy. | messe wrote: | As far as I'm aware, since AMD took over, they've been fairly | stable (although occasionally omitting support for the latest | features until the next kernel release) | dralley wrote: | IIRC were some problems with the Linux drivers for Navi 1.0 | that continued for about a year after launch. Supposedly | those have been fixed. | | My Vega 56 has been perfectly stable and trouble-free for | years. | marcodiego wrote: | > the open source ATI drivers were always a bit buggy and it | wasn't that easy getting them installed either. | | No. Once mainlined, you had to do absolutely nothing to get | the hardware working. | chlorion wrote: | The part about them being buggy is definitely true. | | Up until somewhere around 2016-2017 the ATI/AMD drivers | were really bad. | | I had an "HD 7850" GPU on Linux around that time and it was | barely usable. The performance was less than half of what | you got on Windows, and the drivers would crash very often, | sometimes several times a day if I was trying to play games | like Team Fortress 2. | | It was so bad that I decided to replace the HD 7850 with a | new GTX 970 and decided to not buy anymore AMD GPUs for the | indefinite future. The GTX 970 was stable and performed | very well with the closed source drivers, and other than | them being closed source I never had an issue with them. I | always installed the closed drivers through the system | package manager which handled all of the tricky stuff for | me (Arch Linux maintains the nvidia driver as a system | package and makes sure it runs on the current kernel before | releasing it). | | In modern times the situation has flipped though. I still | haven't bought an AMD GPU since then but I am pretty sure | my next one will be. | Shared404 wrote: | Just bought a 6600XT, and it's been great. | | Literally just plugged it in and installed the driver | packages I didn't on initial setup, on most distros it | would've literally been plug and play. | marcodiego wrote: | About them being buggy, I won't discuss. But you didn't | have to do anything to even get them installed. | eointierney wrote: | Thank you for bring back so many memories of learning the | unnecessarily hard way. | | This is great news | Vladimof wrote: | > EDIT: Remember you had to recompile the shim at every kernel | update and replaced "module" with "driver". | | I haven't bought NVIDIA since then | [deleted] | ars wrote: | On Debian I do: module-assistant build-install nvidia | | And it works every time, but you do need to run it every time. | There is a way to automate it on new kernel installs. | | > missed the right packages or had an incompatible user space, | including libs and compiler, you could end up without X11 and | no way to easily run a browser or google about the problem you | had | | I always kept the previous version of the kernel and module in | case of this. | | I've been recompiling my nvidia module each kernel release for | over a decade and I've had no problems, you install the kernel, | you install the nvidia module, and you reboot. | TacticalCoder wrote: | > I used and recommended ATI and INTEL for most of the people I | could for a long time because of this. | | Same here but recently I somehow got a 3700X and there's no | integrated GPU so I had to look for a GPU. I like my PC not | just quiet but nearly silent, so a GPU with a fan was a big no- | no. I couldn't find any single GPU able to drive 3840x1600 | without a fan... Except for a NVidia one. Of course the | proprietary Linux drivers are somehow buggy: the "sleep" | doesn't work correctly, failing to reinitialize the correct | video mode when waking up. It's always, always, always the same | with NVidia GPUs on Linux. Thankfully I can switch to tty2, | then back to graphical mode but I hate the inconvenience. | | I'm thinking about selling my 3700X and getting a 12th gen | Intel with an integrated GPU (I don't game and really couldn't | care less about fast GPUs). | KronisLV wrote: | If you want to stick with AMD and don't want to swap out the | motherboard, then you'd probably just need to get an AMD CPU | with on board graphics. | | The actual name of the CPU should help you find one that | would work in that regard, for example, see this link which | explains the naming suffixes: | https://www.androidauthority.com/amd-cpu-guide-1222438/ | | In particular: X - Higher clocked desktop | processor (what you got) G - Has integrated AMD Radeon | Vega Graphics (what you probably want) GE - Has | integrated AMD Radeon Vega Graphics but lower TDP (what you | might want in niche use cases) | | For example, some of my homelab servers use older AMD Athlon | 200 GE as their CPUs, due to the fact that there are on board | graphics and because the TDP is 35W, both saving electricity | and also allowing me to use passive cooling (with just a | large heatsink https://www.arctic.de/en/Alpine- | AM4-Passive/ACALP00022A). | | For the Zen 2 series that your 3700X belongs to, you might | want to look at this table: https://en.wikipedia.org/wiki/Lis | t_of_AMD_Ryzen_processors#A... | | From what i can tell, the closest option performance wise to | Ryzen 7 3700X but with on board graphics would be Ryzen 7 | 4700G. | kd913 wrote: | Why not go for a 5700g? That would hopefully avoid you having | to replace your motherboard. | LtdJorge wrote: | Exactly | messe wrote: | > I'm thinking about selling my 3700X and getting a 12th gen | Intel with an integrated GPU (I don't game and really | couldn't care less about fast GPUs). | | Don't suppose you're in Ireland/UK/EU? Looking at building a | low/mid-range gaming rig for a sibling, and a 3700X would fit | fine if you're looking to sell. | chx wrote: | > I couldn't find any single GPU able to drive 3840x1600 | without a fan | | > I don't game | | Let me help. https://www.ebay.com/itm/194948432276 that's a | full DP 1.2 port in there https://www.techpowerup.com/gpu- | specs/sapphire-ultimate-r7-2... so it'll drive 3840 x 1600 up | to 108 Hz even without custom mode shenanigans. | kllrnohj wrote: | The 3700x with a GPU with a fan is going to be a lot easier | to make silent than a 12th gen Intel is going to be. | | Also many GPUs support the fan turning off when idle. | RussianCow wrote: | I was about to post this. The fans on my AMD RX 580 never | turn on unless I'm gaming or doing some crazy WebGL stuff. | I can only imagine that newer ones are even more efficient | in this regard. | SV_BubbleTime wrote: | It's pretty damn stunning how quite an AIO 2x 140mm cooler | can be. And graphics cards with those big triple fans are | silent until needed. | | I've been through a couple 12th gens. I like them, but unless | you need the machine updated right now, 13th gen is 6 months | out. | pmoriarty wrote: | Just out of curiosity, how easy would it to have been to | decompile and reverse-engineer the original closed-source modules | and then write an open sourced version of them? Would that have | been legal? | wmf wrote: | That's called Nouveau. | 8organicbits wrote: | I'm curious to see how they'll manage updates, so far it's one | mega commit. | | > Showing 2,519 changed files with 1,060,036 additions and 0 | deletions. | bawolff wrote: | That's not really surprising when they are importing to a new | repo and they aren't sure there isnt anything confidential (or | bad optics) in previous commits or message | zokier wrote: | from the article: | | > With each new driver release, NVIDIA publishes a snapshot of | the source code on GitHub | | That definitely sounds like squashed commits will be the norm | for now | GlitchMr wrote: | According to README: | | > There will likely only be one git commit per driver release. | sylware wrote: | The kernel modules are the first stage I guess, since a massive | amount of hardware programing knowledge is in user space like | with AMD/intel GPUs. | | I wonder how much LAPSUS$ hack has to do with it. | | I wonder if nvidia hardware programing interface is a mess like | AMD one, just curious. | dralley wrote: | >I wonder how much LAPSUS$ hack has to do with it. | | Probably zero. | | 1) There have been rumors about this for months | | 2) The hacks only happened very recently, this certainly would | have taken longer to do than that. | moffkalast wrote: | Likely very related, wasn't this one of their exact demands? | Looks like Nvidia caved haha. | Shared404 wrote: | This is well after the deadline iirc, and not the sort of | thing that gets rushed. | | I doubt this is directly because of that. | umanwizard wrote: | How does what is being open-sourced differ from the proprietary | binary modules? | zamadatix wrote: | I was worried they had actually decided not to do this after | seeing all of the other recent developments and then a pause. | Glad to see it was just part of the path to it. | mjg59 wrote: | 1) This is unambiguously Good News | | 2) This is not upstreamable in its current form (nvidia admit | this in their press release) | | 3) In an ideal world, nouveau (the open source driver for nvidia | hardware) would be able to target this kernel code. Right now | though there's no commitment for any sort of stable userland ABI, | and that makes that difficult (moving to a new driver version may | break interfaces that nouveau uses) | | The press release does say that they have plans to figure out a | more upstream friendly approach in the long term, which is great | - and what has been released will undoubtedly help development of | the existing nouveau codebase. | [deleted] | marcodiego wrote: | Hell is freezing? | | Serious, does it means we won't need Nouveau anymore? How many | and which binary blobs it still needs? Are they encrypted or | require signing? | gary_0 wrote: | Nouveau is still needed because Nvidia's drivers do not conform | to Linux kernel standards, so they can't be upstreamed. Nouveau | is conforming, so it still has a reason to exist. Fortunately | Nouveau can more easily improve by using Nvidia's now-open | source as a reference. | verst wrote: | From the linked article: | | > The current codebase does not conform to the Linux kernel | design conventions and is not a candidate for Linux upstream. | [...] | | > In the meantime, published source code serves as a reference | to help improve the Nouveau driver. Nouveau can leverage the | same firmware used by the NVIDIA driver, exposing many GPU | functionalities, such as clock management and thermal | management, bringing new features to the in-tree Nouveau | driver. | dzogchen wrote: | It means Nouveau will finally can get good I think. | salawat wrote: | Nope, nouveau is still hosed because they've been blocked ny | Nvidia's secrutful FALCON's which have the reclocking and | power management API's locked away behind proprietary | firmware blobs. | kaladin-jasnah wrote: | This new driver targets GPUs with FALCON, and nouveau will | be able to control it, as FALCON is GSP (https://www.phoron | ix.com/scan.php?page=news_item&px=NVIDIA-R...). | salawat wrote: | They're likely changing it because security researchers | pwned FALCON. | | There is a way to leak the hash against which High | Security mode FALCON compares the microcode for signature | validation. | | So hopefully you'll forgive me if I maintain my | skepticism over this being anything but Nvidia iterating | to close a massive security defeat by redesigning their | FALCON controller to mitigate the thorough pwning that's | been achieved. | | I don't doubt there are other improvements, I just think | the timing is pretty darn convenient, especially for | being in the midst of a semiconductor shortage for going | and doing a massive manufacturing change like that. | zokier wrote: | Nouveau is still needed if you want open-source userland; the | new nvidia open source thingy is only kernel-side and | presumably works only with their own userspace drivers. | jacooper wrote: | > presumably works only with their own userspace drivers. | | For now, the plan is to replicate the way AMD drivers | | Work, with having shared firmware but separate user lands, | one closed and the other libre(MESA for AMD, Nouveau++ for | nvidia?) | | More details here from Red hats Christian schaller | | https://blogs.gnome.org/uraeus/2022/05/11/why-is-the-open- | so... | jacooper wrote: | Currently no, the driver is alpha code at this point. | | But the goal is to create a complete open source stack like | MESA for AMD. | | Also its only for Turing and newer (GTX 16XX+) | https://blogs.gnome.org/uraeus/2022/05/11/why-is-the-open-so... | cosmiccatnap wrote: | I don't normally curse on HN but I think I speak for all of us | when I say | | Fucking finally. | [deleted] | zepearl wrote: | Public post by nVidia: https://developer.nvidia.com/blog/nvidia- | releases-open-sourc... | tonnydourado wrote: | Ten bucks Linus will curse at them in the near future. | throwaway8486 wrote: | May be but atleast he wont show the middle finger | [deleted] | ASalazarMX wrote: | I did a double take because the title is almost clickbait for us | desktop Linux users, and immediately wondered "what's the | catch?". It's a significant catch, but also a significant step in | the right direction. | bombcar wrote: | It sounds like this "GSP" lets them binary blob their "secret | sauce" on the controller itself, so the rest of the driver can | be open source now. | madushan1000 wrote: | Probably all their "enterprise" feature lockouts(vgpu etc..) | are in the gigantic firmware that's loaded into GSP. But | things that matter to desktop users probably aren't going to | be locked out this way. | exikyut wrote: | I8, 8 ,8I | `8b d8b d8' | "8, ,8"8, ,8" | Y8 8P Y8 8P ,adPPYba, 8b db d8 | `8b d8' `8b d8' a8" "8a `8b d88b d8' | `8a a8' `8a a8' 8b d8 `8b d8'`8b d8' | `8a8' `8a8' "8a, ,a8" `8bd8' `8bd8' ._. | `8' `8' `"YbbdP"' YP YP `~' | black_puppydog wrote: | Would love to hear from folks who worked on this! | | Was this an ongoing thing? Did it have to be pitched hard? What | finally made the difference? I'm assuming here it's not because | of LAPSUS as some speculate. This seems like it must have been in | the making for quite a while. | bcatanzaro wrote: | I didn't work on this but I have watched it with interest for a | very long time. It has been a strategic initiative in order to | improve the GPU compute ecosystem. No one loves having a | tainted kernel and everyone who uses a GPU with Linux (which is | almost all data center GPUs) would prefer to have the kernel | modules open source. It took a lot of work and planning to | figure out how to do this over many teams for a very long time, | and then an enormous amount of testing to prove the new drivers | were fast enough to be deployed. | exikyut wrote: | It could be quite interesting to outline just how far back in | time this started (with lots of details), considering those | demands to open-source certain code that were apparently made | around March 3rd this year. | | My own motivation is to believe that NVidia isn't as broken | as everyone insists it is, I guess :) and more broadly | speaking it honestly seems like a Good And Interesting Idea | to make the situation more clear in any case, particularly | given the coverage and significant collective awareness it's | attracted. | | Also, I found | https://www.phoronix.com/scan.php?page=news_item&px=Big- | New-... in another comment - 22 May to 12 May, that's some | serious stamina lol | bcatanzaro wrote: | This functionality has been rolled out (shipping) for the | past year. From the blog post: "This was made possible by | the phased rollout of the GSP driver architecture over the | past year, designed to make the transition easy for NVIDIA | customers. https://download.nvidia.com/XFree86/Linux-x86_64 | /510.39.01/R..." | e12e wrote: | This is great. Anyone know how/if this will/does impact laptops | with nvidia dGPU? | dzogchen wrote: | Wow, this is big for Linux & Nvidea isn't it? | gchamonlive wrote: | Does this mean we get a bit closer to having native, kernel-level | Optimus drivers for Linux? | snshn wrote: | Nvidia... THANK YOU! | teekert wrote: | Nvidia module does not taint kernel anymore! | ece wrote: | 16xx, 20xx, 30xx, and some enterprise cards. Still great | progress. | Pr0ject217 wrote: | lol! | est31 wrote: | For the uninitiated: If the linux kernel is asked to load a | module with an incompatible license, it's called "tainted": | https://www.kernel.org/doc/html/latest/admin-guide/tainted-k... | nsajko wrote: | > load a module with an incompatible license | | Loading any out-of-tree module taints the kernel, for example | the vbox modules are GPL: https://archlinux.org/packages/comm | unity/x86_64/virtualbox-h... | teekert wrote: | I saw this message scroll by during booting, somewhere in | 2004? I searched for it online and those were my first | lessons on foss and the GPL. How great to see this happening. | Is it the hack (I don't think so)? Is it the succes of Steam | (Deck)? Is is Proton? Deep Learning? Probably all of it... | BeefySwain wrote: | > Open kernel modules support all Ampere and Turing GPUs. | Datacenter GPUs are supported for production, and support for | GeForce and Workstation GPUs is alpha quality. | | Sounds like this is not going to be what I game on for at least a | little bit? | mc4ndr3 wrote: | Will Linus revisit his rejection of Nvidia integration? | geerlingguy wrote: | With this announcement, I'm now interested in trying out some | Nvidia graphics cards on the Pi again. Nouveau had some issues, | and the official drivers had no source available, so I couldn't | hack them to work. | | With the source available... it could be possible! Of course, | CUDA support may never happen there, at least not using open | source code. | adolph wrote: | <meta>-F geerl: not disappointed | | Thank you for the work you do, I'm going through your ssd on | rpi4 today! | remexre wrote: | Which ones are connectable to it? And does this rely on the | "replace the USB3 controller with a PCIe bridge" hardware mod? | aftbit wrote: | Parent is talking about the Compute Module 4, which can plug | into (among other things) a first party IO board that has a | PCIe 1x slot. With a simple hardware mod (cut the slot | connector, cut the GPU, use a riser, etc etc), any GPU can | physically fit. He's only gotten one to work so far though, | an ancient ATI card. Lots of fun YouTube videos and GitHub | issues about this if you search parent's name or look at | links in his profile. | jacooper wrote: | Its a bit too early now isn't it ? The driver is still very | alpha, and doesn't support most display stuff. | geerlingguy wrote: | This early is a good time to also iron out some of the | inevitable aarch64 bugs that have already been ironed out in | other kernel drivers for AMD/other stacks. | malikNF wrote: | https://github.com/geerlingguy | DantesKite wrote: | I wonder what impact this will have on the SteamDeck if any. | jonny_eh wrote: | The Steam Deck uses an AMD GPU, so it was probably the other | way around. I'm betting this was partly done so nVidia GPUs can | be used in similar devices going forward. | ghishadow wrote: | they are contributing to | https://github.com/Plagman/gamescope/pull/454 which is SteamOS | session compositing window manager. so maybe in future Steam | Deck will Nvidia tech. | kadoban wrote: | Wow! I literally never thought I'd see the day. | | I've been on linux for at least a couple of decades now, and this | has been a thorn in my side from the get-go. I can't overstate | how huge this is! | | Great work Nvidia, seriously. It does look like it's not perfect, | but damn it's a great step. | hansihe wrote: | Note that this is just the kernel modules, not the actual | graphics driver. | | IIRC these sources were already released under a permissive | license along with their driver distribution. This just seems to | be them putting those sources on GitHub and being more open to | contributions. | pluc wrote: | The same could be said of a lot of Nvidia IP which was leaked a | few months ago. | | But this is different, it's voluntary. | amluto wrote: | Are they? I thought the "OS-agnostic" part was historically | only available as a binary. Maybe that changed since last time | I looked. | | On quick inspection, this is a complete, MIT-licensed kernel | driver. | mzs wrote: | >Note that the kernel modules built here must be used with | gsp.bin firmware and user-space NVIDIA GPU driver components | from a corresponding 515.43.04 driver release. This can be | achieved by installing the NVIDIA GPU driver from the .run | file using the --no-kernel-modules option. | tomxor wrote: | Thanks for clearing that up, for a second I thought nVidia was | finally Linux viable. | [deleted] | weinzierl wrote: | I wonder if it is the result of the LAPSUS$ hack. This was their | statement from early March: | | _" After evaluating our position and Nvidia's, we decided to add | one more requirement._" | | _" We request that Nvidia commits to completely Open Source (an | distribute under a FOSS License) ther GPU drivers for Windows, | macOS and Linux, from now on and forever."_ | | _" If this request is not met, on Friday we will release the | complete Silicon, Graphics and Computer Chipset Files for all | recent Nvidia GPUs."_ | messe wrote: | I wonder if that means their userspace drivers will follow | soon. | ladyanita22 wrote: | No way they're releasing CUDA or Nvidia RTX code. That'll | stay closed source (and I respect that) | anthk wrote: | Well, the libre GNU world world will be able to use OpenCL | with even more performance. | bayindirh wrote: | They may be limiting that stuff on the closed source | parts or at the firmware level. Nvidia no way will allow | full blown OpenCL/Vulkan performance and support on their | cards. | sylware wrote: | Direct GPU assembly programing for even more performance, | like with AMD GPUs. | | I guess the nintendo switch "may" benefit from GPU | assembly programing... that said, AMD GPU isa | documentation is top notch and I wonder if nvidia will | follow up to there. | etaioinshrdlu wrote: | Incredible if extortion actually worked. | bogwog wrote: | I remember reading an article where it was claimed that Nvidia | successfully did a "counter hack" on that group, whatever that | means. | | Considering this is coming well after the supposed deadline, I | don't think it's related. | [deleted] | Metacelsus wrote: | >If this request is not met, on Friday we will release the | complete Silicon, Graphics and Computer Chipset Files for all | recent Nvidia GPUs. | | Since the deadline passed I guess Nvidia negotiated, or they | were bluffing. | HidyBush wrote: | I don't think so. Phoronix.com just over a year ago reported | that a big GPU maker was going to open source their drivers. I | can't find the link but I believe this thing has been in the | making for a long while | | [edit] found it: | https://www.phoronix.com/scan.php?page=news_item&px=Big-New-... | xbar wrote: | Definitely. There are no coincidences in Nvidia strategy. | salawat wrote: | This doesn't actually solve the major standing issue with | Nvidia's drivers as far as I'm aware, because the biggest thorn | has been the secretful FALCON units, and the code signing of | firmware blobs that's kept projects like nouveau from being | able to gain traction. | | Remember, it isn't enough that the kernel module is FOSS. The | firmware is where the crux is. | anthk wrote: | Radeons have the same issue, tho. | [deleted] | kiechu wrote: | https://youtu.be/_36yNWw_07g Linus expressing his deepest | gratitude. | yellowapple wrote: | The Devil's putting on ice skates. | etaioinshrdlu wrote: | I am guessing the Nvidia is more okay with doing this because | they have moved more functionality to the userspace components? | 8organicbits wrote: | This may be a boon for unlocking hardware features on GeForce. | Stuff like below shows that some things are just disabled in | hardware, but lots of reverse engineering would be needed to | bypass it. | | https://www.ibtimes.com/nvidia-geforce-graphics-card-virtual... | iepathos wrote: | Thank you nvidia, we've been waiting for this and you finally | came through for us! | jpe90 wrote: | I didn't see anything for Pascal GPUs, are they left out? | jabl wrote: | Yes, Turing or newer is a hard requirement. | jpe90 wrote: | There is no god | madushan1000 wrote: | With the kernel driver open source + redistributeble firmware I | guess the graphics APIs can be provided by mesa. | SemanticStrengh wrote: | Nouveau has very close to 100% openGL and ES support. It has a | deficit of out of specs extensions support though. Also no | opensource nvidia vulkan implementation?? | | https://mesamatrix.net/ | madushan1000 wrote: | I guess nobody bothered to add vulkan support due to almost | unusable performance without reclocking. Hopefully some work | will get started with this news! | [deleted] | SemanticStrengh wrote: | reclocking.. You're reminding me of so many memories of | years of a decade of reading phoronix nouveau news. (btw | nouveau mean new in french) | jacooper wrote: | It will probably end up like how AMD cards work. | | The closed source driver still exists but there will hopefully be | a completely open source stack (Nouveau++?) For nvidia. | | This blog has more details about red hats plans for this driver. | | https://blogs.gnome.org/uraeus/2022/05/11/why-is-the-open-so... | feanaro wrote: | I've never properly understood _why_ the closed source AMD | driver still exists. Is it substantially different from the | open source one? Does it offer anything not included in the | open source one? | outworlder wrote: | OpenCL, for one. | | If you don't care about that, you can run pretty much | anything else and performance is great. | geerlingguy wrote: | I think support for professional users. | SXX wrote: | AMD proprietary driver actually has only few proprietary | bits. Other than OpenCL that was already mentioned there are: | | * Proprietary shader compiler that can also be used for | Vulkan | | * Legacy OpenGL driver optimized for closed-source | workstation apps | sobkas wrote: | > The closed source driver still exists but there will | hopefully be a completely open source stack (Nouveau++?) For | nvidia. | | I can only hope they change name to aidivn, like any sane | driver should. | the_duke wrote: | I wonder if this has been in the works for years, or if this is a | reaction to the recent Lapsus hack. | ssl232 wrote: | I'd be interested to know too. The hackers purportedly demanded | release of the Nvidia drivers as open source: | | > The LAPSUS$ hacking group, which has taken credit for the | breach, had an unusually populist demand: it stated that it | wants Nvidia to open source its GPU drivers forever and remove | its Ethereum cryptocurrency mining nerf from all Nvidia | 30-series GPUs (such as newer models of the RTX 3080) rather | than directly asking for cash. [1] | | [1] https://www.theverge.com/2022/3/4/22962217/nvidia-hack- | lapsu... | StillBored wrote: | The datacenter focus here probably just means that $$$$ did the | talking somewhere. AKA some large customer/former | customer/potentially former customer said "open source or else" | and they decided that having a couple people clean up, and push | the special bits into the firmware/etc was a good way to solve | the problem and keep $ALTERNATIVE at bay for the next | generation or two. | viksit wrote: | 23 years ago in middle school I made my first ever linux user | group post [1] trying to shift from an nvidia geforce to the | onboard cyrix mediagx drivers because they had closed source | drivers. | | It's been a long time coming lol. | | [1] https://www.spinics.net/lists/xf-xpert/msg04601.html | SemanticStrengh wrote: | I thought they had open source CUDA kernels for a minute.. | samus wrote: | Since the open sourced drivers are explicitly stated in TA to | also help the Nouveau driver improve, the latter does not matter | that much. That's what Mesa is here for. ___________________________________________________________________ (page generated 2022-05-11 23:00 UTC)