Forgot your password?
typodupeerror
Image

Torvalds Slams NVIDIA's Linux Support 663

Posted by timothy
from the first-person-digital dept.
New submitter jppiiroinen writes "Linus Torvalds received the Millennium prize last week for his work on Linux operating system. He was already in Finland, so Aalto University arranged a talk session with him (video). During the Q&A, a person asks why NVIDIA does not play well with Linux. Torvalds explained shortly that NVIDIA has been one of the worst companies to work with Linux project — which makes it even worse that NVIDIA ships a high number of chips for Android devices (which use Linux inside). Torvalds even summarized that ('Nvidia, f*** you!') in a playful manner. What has been your experience on NVIDIA drivers with Linux?"
This discussion has been archived. No new comments can be posted.

Torvalds Slams NVIDIA's Linux Support

Comments Filter:
  • Problems? Really? (Score:5, Insightful)

    by certain death (947081) on Sunday June 17, 2012 @10:53AM (#40351403)
    I haven't had problems with NVIDIA cards since Redhat 5.2. ATI on the other hand...every time I try to install Linux on a laptop with an ATI video card, I end up having to futz with it for hours to get it to work.
    • by Torp (199297) on Sunday June 17, 2012 @10:56AM (#40351427)

      Nvidia cards are the only way to reliable game on Linux, either natively or through wine. Look at the winehq.org appdb for any game, then notice how most reported problems are on Ati video cards.
      Case closed, unfortunately.
      I have no experience with arm nvidia graphics drivers though.

      • by Sycraft-fu (314770) on Sunday June 17, 2012 @06:02PM (#40354593)

        There was all this chatter about how if the GPU companies would just open up, legions of extremely smart programmers would make grad-A OSS drivers, better than the Windows counterparts!

        So AMD does and... Nothing. We have a broke ass, "sorta works" OSS driver. Apparently the legions of programmers are either busy playing WoW or maybe, just maybe, writing a graphics driver for a modern card is way harder than people give it credit.

        I think part of the problem is you get people who've written something like a NIC driver and say "Oh this driver writing isn't bad." The problem is most hardware is peanuts compared to a GPU. They are just amazingly complex. You can see it in driver sizes. A NIC or RAID driver will generally be 100ish kbytes, sometimes less. On my system, the primary WDDM nVidia driver file is 20MB, and it won't even work completely with that alone. It's driver to support OpenGL is another 25MB, another 10MB for D3D10/11 components, 7MB for CUDA, and so on, never mind support stuff like the control panel.

        Basically it is a really complex problem, and of course each new version of the graphics hardware brings in a new setup to deal with. So it isn't so easy to bash out a high quality driver for graphics cards.

        Thus the OSS AMD drivers really aren't any good, despite AMD playing nice. The community has not managed to produce some amazing driver that is fast, stable, feature complete, that makes Windows people say "Man I wish I had that." Had that happened, I'd be more inclined to say "Get with it nVidia." However as it stands, nVidia is able to produce a Linux driver that is in every way as good as their Windows driver, and that is damn good. Given that, I'd say they are doing it right.

        • by Kjella (173770) on Sunday June 17, 2012 @07:46PM (#40355185) Homepage

          Basically it is a really complex problem, and of course each new version of the graphics hardware brings in a new setup to deal with.

          I think particularly the last part. Unlike CPUs that have to be 99.9% the same to support already compiled binary code, graphics drivers only care about the DirectX/OpenGL layer. Everything about how you accelerate those commands is being rewritten constantly. For example the AMD OSS drivers cover three very different architectures, VLIW5, VLIW4 and GCN. And within each architecture you have different generations with different ways of doing things and instruction sets. The hardware API is changing because they're working closely with the driver team, who are the only ones talking to the hardware - until you try writing an OSS driver. Third party chips like HDMI change both suppliers and versions so the hardware API changes, without code changes practically nothing works on a new card. There's a lot of upkeep.

          The other part is that the generic code is woefully behind the times, regardless of the driver code. Mesa still only supports OpenGL 3.0, which was released in July 2008 and that support only came first this year - at that point 5.5 years behind the specification. So if you want to run recent OpenGL code you need closed source drivers because the whole stack is missing, not just the driver code. Basically even if AMD is doing the same bits as AMD does for Windows, nobody's doing the OpenGL equivalent of Microsoft's work on DirectX. Or well obviously some are working on it, but not enough to keep up.

          The last part which makes sharing code between the open and closed source driver hard is DRM. AMD simply can't let the open source driver have any code that would make it easy to poke at what the closed source driver is doing like for example patch it to dump a BluRay to disk (despite AACS, BD+ and HDMI all being broken). Same goes for audio and PAP. Even just keeping the DRM bits in a little blob by itself would be painting a big sign saying "reverse engineer this". This means things have to go back and forth with the lawyers all the time, and you need this information because of what I wrote in the beginning.

          On the bright side Intel seems to want to use more of their own graphics in coming Atoms - google "Intel Valley View" for more - because PowerVR has been the absolutely worst of the bunch when it comes to Linux support - and pretty terrible at Windows support too from what I gather. And at least according to AMD their OSS support is getting better with each generation, even though it has a long way to go...

        • by oursland (1898514) on Sunday June 17, 2012 @08:24PM (#40355399)
          Has AMD opened up the 3D documentation? All I've seen are the 2D specs, which have helped make a rock solid 2D driver.
        • by arglebargle_xiv (2212710) on Monday June 18, 2012 @12:03AM (#40356399)

          I think part of the problem is you get people who've written something like a NIC driver and say "Oh this driver writing isn't bad." The problem is most hardware is peanuts compared to a GPU.

          That's an understatement. GPUs and baseband processors are some of the most hellishly complex programmable devices ever created (I'd say baseband processors are far worse than GPUs, for long and complex reasons that I couldn't be bothered typing up here). For example a typical ATI GPU several years ago had around 4,500 registers, many of which were documented with a single-line entry in a data sheet containing a name/description like SCL_DAX_ENABLE. Each functional unit had its own group of developers who knew it inside out and didn't meddle with any other functional unit. If you needed help, you picked up the phone and called the guy who'd done that part of the silicon. Two days later, the two of you had finally agreed on how a particular hardware feature was supposed to be used.

          No matter how enthusiastic you are about OSS, you can't open-source that.

    • Not to mention that ATI lets drivers fall out of support a lot faster...
    • by Stumbles (602007)
      Agreed. I don't know about the NVIDIA/Android problems but on the desktop NVIDIA has always been waaaaaay better than ATI. That may have changed in recent years, I don't know because I stopped buying ATI stuff a long time ago.
      • Re: (Score:3, Informative)

        by tqk (413719)

        I don't know about the NVIDIA/Android problems but on the desktop NVIDIA has always been waaaaaay better than ATI. That may have changed in recent years, I don't know because I stopped buying ATI stuff a long time ago.

        So, you've no idea what you're talking about. Good to know.

        What I know is when nvidia came out, I was seeing thousands of posts from people desperately seeking answers on how to get them to work, and thousands more on how to make their X Window survive upgrades. Nvidia is the reason they came up with the mantra, "Don't use a GUI package manager!", because if it upgrades X, it'll kill the pkg. mgr. doing it.

        Meanwhile, I've been using ATI for more than a decade with zero problems past their initial teething

        • Re:Problems? Really? (Score:5, Interesting)

          by jedidiah (1196) on Sunday June 17, 2012 @12:49PM (#40352323) Homepage

          > What I know is when nvidia came out, I was seeing
          > thousands of posts from people desperately seeking
          > answers on how to get them to work, and thousands
          > more on how to make their X Window survive upgrades.

          Yeah, and they solved that problem. An entire module rebuild facility for kernel upgrades was probably developed just for Nvidia.

          That benefits ATI blob drivers too. This is a good thing since you are unlikely to get suitable performance (if you care about that sort of thing) without the blob driver.

        • Re:Problems? Really? (Score:5, Informative)

          by sjames (1099) on Sunday June 17, 2012 @12:52PM (#40352365) Homepage

          Nvidia drivers were actually the driving force behind the concept of kernel tainting where an oops dump reports that non-free modules were in use. Nvidia drivers were creating a huge number of oops reports that couldn't be debugged due to being closed source.

        • What I know is when nvidia came out, I was seeing thousands of posts from people desperately seeking answers on how to get them to work,

          The first time I ever used linux semi-seriously was in a computer class in like 2004. During downtime, since the comps had nvidia cards, I wanted to play Unreal Tournament, so i decided to install the drivers. The steps:
          1)Go to nVidia.com, and download the driver installer.
          2) run .\driverinstaller
          3) play unreal tournament.

          Ever since then I have periodically gone back to Linux, each time with an nVidia card, and each time the process was the exact same. Download the installer (helpfully linked here! [geforce.com]), run

      • by UnknowingFool (672806) on Sunday June 17, 2012 @12:32PM (#40352185)
        The problem isn't that nVidia doesn't put out functioning binary drivers. They do. Their binary ones are much better than ATI ones IMHO. The problem is that the binary drivers don't always survive kernel updates So people who rely on nVidia's proprietary binary drivers can't always update their kernel or they lose their graphics until nVidia puts out an update. Now, there are open source drivers for nVidia that get updated with every kernel update; however, nVidia does not put out enough specifications so that these drivers are able to use full card functionality like full 3D acceleration. It wasn't until recently [slashdot.org] that the open source drivers have been able to reverse-engineer some of the functionality.
        • by Anonymous Coward on Sunday June 17, 2012 @02:35PM (#40353067)

          It's been established for a while that nVidia is not going to open source their driver. It's not like this is a surprise. In the past, Linus has gone on record to say that binary blobs are better than no driver at all.

          The turnaround on a kernel release would need to be a month or so for a company like nVidia to make the required changes to their driver and have it ready when a new kernel is launched. Hell, even the Evil Microsoft provides developers access to pre-RTM builds with enough time to make sure that their drivers work at launch.

          What kind of OS changes their driver API so much that a driver compiled for one version doesn't "just work" with an incremental update? An immature one. Frequent kernel updates are basically patches. If your driver API is changing that much, you need to re-examine how you're doing your development.

          We have every right irritated with Linus here. I've written software for Linux, Windows, and embedded RTOSes. Linux was by far the most painful. Boost was the only thing that made it tolerable. Berating a company that supports a user base which represents 1% or less of their market without any modern-day language tools at their disposal (STL, Boost, a decent IDE) is just counter-productive.

          If Linus wanted to do something productive, he'd help to stabilize the various APIs in the kernel so that this stops being an issue.

          Bottom line: this goes both ways. Either you allow binary blobs and give the providers of those blobs a chance to get their drivers working before you put out a new kernel, or you launch a kernel whenever you feel like it and live with the fallout.

    • by RedK (112790) on Sunday June 17, 2012 @11:16AM (#40351537)

      Linus isn't talking about gaming, performance or anything else like that. The point is : nVidia ships a binary blob and an obfuscated source portion that needs to be built outside of the vanilla kernel. That is what Linus is talking about, nVidia's lack of cooperation with the kernel people at integrating their drivers into the main line kernel in a way that respects the project's goals and visions.

      Why you people are discussing the performance when that is not at issue, I have no idea. It was all pretty clear to me what Linus meant.

      • by Richard_at_work (517087) <richardprice@nOSPam.gmail.com> on Sunday June 17, 2012 @11:22AM (#40351583)

        Why should Nvidia subscribe to the projects "goals and visions"? Thats the projects concern, not theirs.

        • by RedK (112790) on Sunday June 17, 2012 @11:24AM (#40351599)

          Hence why it's Linus (the project lead) that's talking about it ? He's voicing his concern... I don't get what you're even trying to get at here...

        • Re:Problems? Really? (Score:5, Informative)

          by GreatBunzinni (642500) on Sunday June 17, 2012 @11:59AM (#40351903)

          Why should Nvidia subscribe to the projects "goals and visions"? Thats the projects concern, not theirs.

          NVidia isn't required to, as you put it, "subscribe to the projects goals and visions".

          But Linus Torvalds is also not required to enjoy or approve of NVidia's policies, particularly when they generate bad publicity for Linus Torvalds' project and also cause a number of people to complain to Linus Torvalds about a problem which he didn't caused nor can he do anything at all about it. Hence, a very appropriate and sorely required "Fuck you, NVidia".

          • Linus Torvalds is also not required to enjoy or approve of NVidia's policies, particularly when they generate bad publicity for Linus Torvalds' project

            Except that's bullshit. Linux Torvald's project is generating bad publicity because it's bad at graphics drivers. ATI is more than accommodating and helpful--and the open source community fails miserably at creating stable drivers. So just about everybody demands Nvidia or ATI *fix* Torvald's failed project. If Nvidia opened up their specs more there's nothing to suggest that the drivers would be any better than the Open Source community's crappy job with ATI drivers. At least Nvidia offers a workab

    • I've had problems with a NVidia card that I have, and the last time it gave me problems was with the latest upgrade to Kubuntu 12.04. With this upgrade, NVidia's very own proprietary driver either rendered 3D scenes excruciatingly slow or never rendered them at all, instead presenting only a black window. Strangely enough, 2D rendering worked without any noticeable hitch.

      The fix came only about a month ago, with an upgrade to NVidia's proprietary driver.

  • Compromises (Score:5, Insightful)

    by Wowsers (1151731) on Sunday June 17, 2012 @10:57AM (#40351437) Journal

    I have had to make a compromise in using the Nvidia driver. It's a "black box", so you don't know what is in it or how others might be able to improve on it, but on the other hand, it does the 3D work for stuff like KDE, Google Earth or 3D games like Brutal Chess or BZflag.

    In Mageia, there is the Nouveau [freedesktop.org] free driver, it works very well for 2D stuff, but does not work for 3D stuff.

    So it depends on your requirements, and how wedded you are to the "Free" concept. Having said that, if there was a free driver that does 3D on Nvidia cards, I'd take it.

    • Re:Compromises (Score:4, Insightful)

      by houstonbofh (602064) on Sunday June 17, 2012 @11:07AM (#40351495)
      To me, computers are a tool, not a religion. So I am OK with a "black box" that works better than an "open box" any day.
      • Re:Compromises (Score:5, Insightful)

        by Anonymous Coward on Sunday June 17, 2012 @11:32AM (#40351651)

        And when people use that tool to make you do things you don't want, then remember what you agreed to. But it's not a religion, so that makes it okay.

      • Re:Compromises (Score:5, Insightful)

        by rtfa-troll (1340807) on Sunday June 17, 2012 @11:55AM (#40351869)

        To me, computers are a tool, not a religion. So I am OK with a "black box" that works better than an "open box" any day.

        The tool analogy is great and people often make it. There's alot of sense to it. As long as you are only involved in very basic or simplistic consumer level computing, that is fine. However, if you think in terms of cars, there comes a point where any serious use ends up wanting to travel long distances, wanting to travel through wild areas and wanting to transport non standard goods. At that point, you want a car where you know you can find spares. You want a vehicle where you know that in every little village in Azerbaijan you will be able to get a person who can fix your car.

        With things like device drivers and graphics, you will come accross strange problems where a piece of code outside the device driver interacts with a piece inside in an unexpected way. If you have the source to both, you will be able to debug that problem much more easily. This means, that your normal programming team will be able to see what's gooing wrong and, most likely, find a work around even if the bug is inside the device driver and they aren't capable of fixing it. It's similar to having a vehicle where the local service people are able to swap and replace parts themselves, rather than one where you have to have it taken back to the original manufacturer to make every fix.

        It's good to think about computers as tools, but you have to understand that they are more like fully automated drilling machines than like simple screwdrivers. Even if you personally don't have to understand them, someone else likely will. If you bought a drilling machine, you would expect to get the service manual with it. The source code serves in the same way in software and you should insist on it for anything you rely on.

        There is another important difference; with computers one solution tends to end up as the basis for another more complex one. The solutions add and add, often without much review or chance to rebuild. This means that even if a system seems like a one time non business critical solution, you should always bear in mind the possibility that something else more important gets layered on top of it later.

  • by G3ckoG33k (647276) on Sunday June 17, 2012 @10:59AM (#40351449)

    I have had far less issues with any nVidia card than ATi/AMD. i have had both for more than ten years.

  • Problem being... (Score:5, Insightful)

    by Junta (36770) on Sunday June 17, 2012 @11:14AM (#40351527)

    In a world of blind men, the one eyed man is king....

    If I want to have decently supported video offload and remotely respectable 3D performance, nVidia drivers are about the only choice.

    AMD drivers to this day cause my system to panic on shutdown attempt. MythTV's OpenGL painter and video renderer don't work correctly with AMD drivers, leaving me with video playback with XV and no recourse to sync to vblank. They do have XvBA out there, but I have to go into a more 'bleeding edge' xbmc and then be greeted by very bad artefacts with videos that are profile 5.1. AMD's open source interaction seems better, but none of the open source drivers come close to the 3D performance and notably no video decode offload is available.

    Intel I heard great things about, but at least with Fedora 17 I can't seem to find the best way to get vaapi driver on there. All I see are requests to get it in being met with 'too messy'. It's also not in rpm fusion. I dug up a module from an old rpm and got vainfo running, only to find out rpmfusion xbmc build disabled vaapi support anyway, and only went with vdpau. Now I could recompile, but the point being that the larger community seems to not be bothering with trying to test Intel's solution as much.

    Meanwhile, my nVidia system does vdpau beautifully, has pretty much no-brainer 3d support, and tear-free XV playback (even though I never use it anymore in favor of opengl rendering). Everything about the experience shows that both nVidia as a company and the userbase at large are developing and testing with nVidia primarily.

    I could see as a developer being frustrated at supporting a kernel where a large portion is running kernel-mode code that you can't see, but from a user perspective, nVidia is about the only viable solution for Linux graphics.

  • I have nothing but problems with Intel's drivers not working right under Linux... I only wish that they were as stable as NVidia's drivers.

    • Mark my post as a troll if it makes you feel better, but the simple fact of the matter is that the drivers that NVidia DOES put out are have more features and are more stable than the open source drivers that Intel makes available.

      That said, let me join Linus and say "Fuck You" to NVidia for not helping to make drivers available for the Optimus laptop graphics chipset. I have one in my Dell XPS as well, and it sucks that I'm stuck with using the Intel integrated graphics on it.

  • misleading headline (Score:5, Informative)

    by Anonymous Coward on Sunday June 17, 2012 @11:24AM (#40351601)

    Linus did give Nvidia the bird and a "fuck you" but he never slammed the quality of the Nvidia's hardware. His gripe with Nvidia is how hard it is for Linux to work with the company since they only provide a binary blob driver which makes bug fixing for it dependent on Nvidia's whims. Plus they refuse to even provide specs and API's for their hardware which make writing open drivers much more difficult and time-consuming because of having to reverse-engineer everthing to get a workable driver. In this case, Linus is absolutely correct.

  • by smpoole7 (1467717) on Sunday June 17, 2012 @11:24AM (#40351603) Homepage

    I've had some problems with all three (I run OpenSuse) ... but NOT since I started downloading their own driver packages and building them on the target machine. I most recently did it with the AMD/ATI Radeon graphics on a new HP Probook. Both ATI and nVidia include configuration/tweaking software that will let me fine-adjust, and I just don't have problems with either.

    BUT ... disclaimer: I haven't bought a *video* card in years. I always buy integrated graphics, because it's cheaper and does what I want. Your mileage will vary. But my Big Test(tm) of any graphics system under Linux is to see how well it runs Celestia. If it will run it at reasonable speed without flickering or other annoyances, I consider it Good.

    Actually, I've had considerably more trouble with Intel's 9xx series of built in graphics than with ATI and nVidia combined. My previous laptop had the 945 graphics kit (I think I remember the number correctly) and I suffered through everything from flickers to outright hangs.

    And the worst experience of all was with an old S3 card many years ago. Wow, what a piece of joy.

  • by jppiiroinen (2664019) on Sunday June 17, 2012 @12:30PM (#40352175)
    There was also one person from the NVIDIA in the audience :) Linus actually opens up the reason, why he made a comment with the word: http://www.youtube.com/watch?v=MShbP3OpASA&feature=youtu.be&hd=1&t=1h00m25s [youtube.com]
  • by xaoslaad (590527) on Sunday June 17, 2012 @01:42PM (#40352709)
    At least the binary GPU drivers work. I had to move off of nouveau because every time I resumed from suspend the GPU fan sounded like a UFO taking off. Granted that may arguably be nvidia's fault by not giving the nouveau dev's what they need to write the drivers properly.

    But, I haven't had issues getting nvidia cards working under EFI either; particularly those in Mac's. On the other hand the only way I have gotten ATI cards to work properly is by using fbdev. I have seen supposed ways to get this working by dumping the bios when booting in legacy mode and then using loadbios in grub 2, but have never personally gotten it to work.

    So, they may not be great to work with, but at least they're throwing us a bone, which is more than I can say for ATI in most cases.
  • by descubes (35093) on Sunday June 17, 2012 @02:22PM (#40352971) Homepage

    Tao Presentations [taodyne.com] is a 3D presentation software that runs on Linux as well as on Windows and MacOSX. We had mixed experience with nVidia support. Sometimes, it just works. In other cases, major functionality is missing (e.g. a laptop where the HDMI port is simply not detected). That being said, except when we hit a major bug, OpenGL performance is overall rather close to what we get on the same machine on Windows, which indicates that nVidia takes Linux somewhat seriously.
    Actually, I don't think nVidia has any kind of anti-Linux strategy in place. It's rather that their portfolio is big and their overall strategy is sometimes confusing as a result. Consider stereoscopy for example, which matters a lot for Tao Presentations. Both nVidia and ATI have this puzzling idea that only "pro" customers can have stereoscopic support for OpenGL. This leads to situations where a machine with an nVidia chipset will connect to a 3D projector perfectly... as long as it runs MacOSX. The exact same hardware won't offer quad-buffer OpenGL support when running Windows or Linux. Why not?
    So it's not about Linux, it's about lining up so many little pieces that sometimes, one of them is missing and the whole thing collapses. Linux is probably at the bottom of the list of things to fix, so that's where you see more problems.

"The only way for a reporter to look at a politician is down." -- H.L. Mencken

Working...