Please create an account to participate in the Slashdot moderation system

 



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 @09: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 queazocotal (915608) on Sunday June 17, 2012 @09:53AM (#40351407)

    You can't code reliably for complex hardware without specifications.
    Which are not released.

  • by Torp (199297) on Sunday June 17, 2012 @09: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.

  • Compromises (Score:5, Insightful)

    by Wowsers (1151731) on Sunday June 17, 2012 @09: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:Puzzled (Score:5, Insightful)

    by Anonymous Coward on Sunday June 17, 2012 @10:05AM (#40351473)

    The actual question that led to the 'Fuck you, NVIDIA' was about hybrid graphics on laptops I believe, which are currently not usable(?)/supported by NVIDIA under Linux, that's was the problem I believe. I recommend rewinding the video a bit for more context.

  • Re:Compromises (Score:4, Insightful)

    by houstonbofh (602064) on Sunday June 17, 2012 @10: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.
  • Problem being... (Score:5, Insightful)

    by Junta (36770) on Sunday June 17, 2012 @10: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.

  • by RedK (112790) on Sunday June 17, 2012 @10: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 arbiter1 (1204146) on Sunday June 17, 2012 @10:19AM (#40351561)
    Lets look at it in terms of hardware sales. What % of buyers run windows/OSX vs linux? Don't think linux really has many programs that use most their cards to what they are made for.
  • Re:What a disgrace (Score:4, Insightful)

    by CRCulver (715279) <crculver@christopherculver.com> on Sunday June 17, 2012 @10:20AM (#40351571) Homepage

    There is no Soviet Finland. The Finns took a bigger bite out of the Soviet Bear's arse than any other country (except Germany), and survived to tell about it.

    So much about the Winter War is mythologizing. The Finns fought hard and should be praised for that, yes, but their ability to inflict such heavy losses on the Soviet army was due mainly to confused leadership on the Russian side -- if Stalin hadn't purged so many competent generals throughout the 1930s, the Soviets would certainly have overrun Finland completely, regardless of the Finns' bravery.

    Furthermore, accounts of the Winter War tend to downplay the fact that Finland lost territory. It wasn't a victory: Finland didn't ward off the Soviet threat. Hundreds of thousands of people lost their homes and had to flee, and Finnish identity has now been erased from parts of Karelia.

    Yes, the Finnish people have been courageous and have maintained one of the stronger armies in Europe. Nonetheless, they aren't sisu-fueled supermen and there's a reason that during the Cold War they made serious compromises with Moscow.

  • by Richard_at_work (517087) <.moc.liamg. .ta. .ecirpdrahcir.> on Sunday June 17, 2012 @10: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 @10: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...

  • by houstonbofh (602064) on Sunday June 17, 2012 @10:27AM (#40351617)

    I suspect your definition of "realistic time frame" is a bit different than some people (especially those who consider Linux their primary OS, and won't touch Windows).

    I only run Linux on my desktop, laptop, media PC, and work PC. Also, my fiancée only runs Linux. Last time I rebuilt my Desktop, about a year ago, I used a GTX550Ti, and the drivers were prebuilt in a PPA for Ubuntu.

    When I buy new hardware, I wouldn't want to wait months/years to use it... So nVidia clearly considers Linux a second-class citizen, which may be OK for you, but not for some.

    Everyone considers Linux a second-class citizen. nVidia just threats their second class better than most. Even HP takes a while to release drivers for new printers...

    It doesn't mean that the companies are any better - but nVidia's "high road" as you make it out to be really just makes them the bottleneck when it comes to hardware driver support. It puts them in a position where they MUST create the drivers in a timely fashion, because there is no other choice.

    Whereas, with other vendors, the existing reference drivers can often be fiddled with to gain partial support for new hardware, and as specifications are released, anyone with the know-how can begin adding support for that hardware - the bottleneck becomes the availability of talent and motivation.

    So that is why the ATI drivers are so amazing, and support the latest stuff! No, wait a minute... They only support a narrow range of product before they fall off, and you get the 2D only version.

    Anyhow, I take a different road - I avoid high-end graphics hardware entirely, and since I'm not a "gamer", it doesn't matter to me. I just use hand-me-down hardware that people give me and I'm content with it - but I do usually favor AMD's graphics chips since they are more open by nature.

    For someone not that interested in graphics drivers, you sure have a strong opinion. And actually, for your case, I would recommend Intel over ATI. PErhaps because to me, graphics are important, and stability more so.

  • by recoiledsnake (879048) on Sunday June 17, 2012 @10:28AM (#40351619)

    > but I do usually favor AMD's graphics chips since they are more open by nature.

    We've been hearing about AMD's opening specs and drivers drivers for what, close to 5 or 6 years now?

    http://tech.slashdot.org/story/07/09/06/1335230/amd-to-open-ati-specs [slashdot.org]

    http://linux.slashdot.org/story/08/12/30/0337204/amd-releases-open-source-r600700-3d-code [slashdot.org]

    And even after all that, getting 3D accel, multimonitor etc. to reliably work has been extremely painful compared to Nvidia binary blobs which pretty much work for common scenarios like fully accel 3d gaming(I remember playing UT2004 a very good FPS on Linux with those drivers). So this means that either AMD/ATI has failed at providing open specs and code or that the community hasn't fully stepped up to convert those specs into "Working(TM)" drivers. Which is it?

    Meanwhile, I hope someone sensitive at Nvidia does not take this tongue-in-cheek comment personally and decrease the priority and allocated to the Nvidia binary drivers development because they feel that's it not helping them in the community to do more than their rivals in the business.

  • by Xest (935314) on Sunday June 17, 2012 @10:29AM (#40351639)

    I think his point is that Linus should be grateful that they even support his project at all, rather than bitching at them. If it costs them money to support Linux and they're damned if they do, damned if they don't, then what incentive is there to continue even supporting them at all?

    I think a large part the problem is that Linus has a way of sounding like a dick. There are much more diplomatic ways of saying nVidia could certainly do better on Linux than the way Linus goes about these things. No one is suggesting nvidia couldn't do better, but when he attacks a company over this sort of thing it just makes him sound like an ungrateful prick.

  • Re:Compromises (Score:5, Insightful)

    by Anonymous Coward on Sunday June 17, 2012 @10: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.

  • by Microlith (54737) on Sunday June 17, 2012 @10:53AM (#40351843)

    Quick, let's lash out at Linus!

    he is starting to get that syndrome where everything out of his mouth makes you want to roll your eyes and ignore him

    You've obviously never had to deal with a shitty company before. Nvidia interacts heavily with the Linux world, but any attempts to accomplish things if you aren't a direct customer buying millions of chips from them is goddamn impossible. It's not just getting sources, it's just making shit work and having to deal with the fact that a prominent company whose technology gets used in so many platforms causes you no end of trouble (bug reports, workarounds, etc.) but they won't assist or aid you in the slightest. On top of being entirely closed source. You can't ignore the issue entirely, but your hands are tied in terms of how you can actually look into and resolve a problem.

    So yeah, Nvidia cranks out Linux drivers that work decently well. That doesn't make them immune to criticism, especially not at the level Linus probably has to deal with them at.

    But hey, Slashdot is rapidly becoming very, very anti-Linux so why not?

  • Re:Compromises (Score:5, Insightful)

    by rtfa-troll (1340807) on Sunday June 17, 2012 @10: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 myrdos2 (989497) on Sunday June 17, 2012 @11:01AM (#40351923)

    If it costs them money to support Linux and they're damned if they do, damned if they don't, then what incentive is there to continue even supporting them at all?

    Because they feel the Linux market is worth supporting. They don't do it to make Torvalds happy.

  • by Picass0 (147474) on Sunday June 17, 2012 @11:03AM (#40351935) Homepage Journal

    >> "Linux needs Nvidia. Nvidia doesn't need Linux."

    Android is Linux. If Nvidia wants to eventually deal itself out of the cell market they can be my guest.

  • by Anonymous Coward on Sunday June 17, 2012 @11:07AM (#40351969)

    If I were nvidia, i'd be glad to make drivers. An unusable card does not sell very well.

  • by Skapare (16644) on Sunday June 17, 2012 @11:28AM (#40352153) Homepage

    Drivers are not an OS.

    NVIDIA should make the hardware and firmware that runs it. The main CPU should be the realm of the OS. These two should talk to each other. NVIDIA is not cooperating with that.

  • by Skapare (16644) on Sunday June 17, 2012 @11:31AM (#40352181) Homepage

    A reference driver is fine. Open source it. Then the Linux source tree can include it. Then when the hardware maker adds new hardware or firmware features, submit patches. If they make a whole new architecture that is not compatible, submit a whole new driver ... as source code. Then it's in the Linux tree and it can be maintained by kernel developers when the kernel changes that requires something to change in the driver (for example a change in number of parameters needed for some kernel function call to support some new feature).

  • by UnknowingFool (672806) on Sunday June 17, 2012 @11:32AM (#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.
  • Re:Puzzled (Score:5, Insightful)

    by Skapare (16644) on Sunday June 17, 2012 @11:34AM (#40352201) Homepage

    But ... they don't. The majority of my system crashes are due to NVIDIA drivers being poorly programmed. Nouveau has never caused any such problems since 2.6.38.

  • by GPLHost-Thomas (1330431) on Sunday June 17, 2012 @11:44AM (#40352275)
    Nobody asked Nvidia to do any driver. Linus is here complaining that they aren't COOPERATIVE. That's very different. Besides that, yes, it should be Nvidia's job, since they are the ship makers. Also, they do use Linux themselves. So they just take, and don't give, which isn't fair.
  • by jedidiah (1196) on Sunday June 17, 2012 @11:45AM (#40352281) Homepage

    > Every other major OS has a stable driver ABI.

    So that's why hardware on Windows isn't supported from one major release to the next?

    Like anything else, what you are talking about sounds great in theory but doesn't actaully work out in practice. So the situation with the alternatives is not nearly as superior as one would be led to believe.

    Every other major OS does not in fact have a "stable driver ABI".

  • by Wonko the Sane (25252) * on Sunday June 17, 2012 @11:52AM (#40352371) Journal

    NVIDIA's graphics drivers for Linux are full-featured and rock solid.

    This is only true if your definition of "full-featured" does not include KMS or complete XRandR support.

  • by toadlife (301863) on Sunday June 17, 2012 @12:09PM (#40352499) Journal

    Until they release a full API/ABI with a permissive license

    Perhaps *Linux* should create a stable ABI. Then vendors like Nvidia could write a driver and not have to worry about each point release of the kernel breaking it.

  • by Anonymous Coward on Sunday June 17, 2012 @01: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 GreatBunzinni (642500) on Sunday June 17, 2012 @01:37PM (#40353075)

    Graphics cards are, nowadays, a bit more than 3D gaming. Nowadays there are a number of markets that companies such as NVidia may cater and are of fundamental importance, such as smartphones/tablets (remember Tegra?) and HPC (remember CUDA/OpenCL?).

    What these markets have in common is that linux is the only reason they exist and are relevant. Windows is,at the very best, a "also ran" in mobile devices. In the HPC world linux is essentially the only game in town. In fact, there is currently only a single entry proprietary OS entry in the Top500 list.

    Do you expect NVidia to abandon any of those markets in protest of Linus Torvalds pointing out that NVidia sucks at supporting linux? Think again.

  • by kthreadd (1558445) on Sunday June 17, 2012 @01:43PM (#40353119)

    You're absolutely right in that they don't cooperate. I agree there. However, when it comes to the question of what is fair I don't agree with you. It is not fair to demand that Nvidia should give you a driver or documentation. What is fair is that they sell a product, if you want it you buy it. If you don't want their product you buy something else. Vote with your wallet.

    I would of course be very happy if they cooperated. I would be very happy if they released documentation or even an open driver. But I think that it would be very unfair of me to require any such actions.

    Right now Intel is probably your best option.

  • by rsmith-mac (639075) on Sunday June 17, 2012 @01:53PM (#40353211)

    Drivers are not an OS.

    On the contrary. Have you seen the size of NVIDIA's (and AMD's) drivers lately? Even after scraping out the bloat they're huge - they're on the scale of Windows 95/98, and all of that is code.

    At this point they are an OS; they're performing code compilation, thread scheduling, power management, memory management, providing APIs, etc. Video drivers have become a sub-OS to manage the GPU in a fashion very similar to what Linux does with the CPU, which is just insane if you think about it. But it's also why both NVIDIA and AMD are so sheepish about open sourcing their existing drivers.

  • by jedidiah (1196) on Sunday June 17, 2012 @02:07PM (#40353333) Homepage

    No. The thing that cause you to be "fucked" is not being able to boot a new kernel.

    The idea that you won't be able to compile your own kernel modules because of Microsoft's locked booter is a novel and interesting concept.

  • Should the driver API be stable? Usually not: a long term stable API means that it's hard to make changes when necessary. For example, the Linux USB subsystem has been substantially re-written 4 times. This is never a problem, because when someone changes the kernel API, they also are responsible for updating all drivers in the tree that are affected by it. It means that Linux's USB support isn't hamstrung by lots of legacy cruft.

    This is simply a comment on how poorly the design of components in Linux is done in the first place.

    Should the ABI be stable? No. This breaks pretty much every time the kernel is compiled. The solution: recompile the drivers.

    Only on Linux. Other OSes manage just fine.

    The argument for a stable ABI is rather like the (claimed) USP of Java: write once, run anywhere. The thing is, if you can recompile on your target platform, that advantage disappears. Why would anyone care about binary compatibility if they can have source-compatibility?

    Because you can't always guarantee access to a compiler, to highlight but one obvious reason.

    Aside: there is a very different logic with the Posix (system-call) API between userspace and kernel space. This means that, for example, fopen() works exactly the same way now that it did 20 years ago.

    Didn't you just spend a few paragraphs telling us how this sort of "legacy cruft" "hamstrings" new development ?

  • by Vanders (110092) on Sunday June 17, 2012 @02:58PM (#40353665) Homepage

    Have you ever shopped for a graphic card recently, with the goal to put that in your Linux box? There's currently only 2 choices: Nvidia or ATI.

    I'm just asking for my computer output on DVI / HDMI / VGA... what's that hard and expensive to make?
    Has features which I don't care about (eg: 3D and gaming shit...)

    Did Intel cease to exist in in the past 24 hours, or am I in a parallel universe?

  • by amorsen (7485) <benny+slashdot@amorsen.dk> on Sunday June 17, 2012 @04:27PM (#40354319)

    Torvald's is carrying out the unproductive one.

    Your so-called productive approach has been entirely unproductive for more than a decade. It is way past time to say "fuck you".

  • by Sycraft-fu (314770) on Sunday June 17, 2012 @05: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 arglebargle_xiv (2212710) on Sunday June 17, 2012 @11:03PM (#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.

The idle man does not know what it is to enjoy rest.

Working...