Nvidia Engineer Asks How the Company Can Improve Linux Support
sfcrazy writes "It seems that recent comments made by Linus Torvalds have made the people at NVIDIA take Linux more seriously. Recently Nvidia employee Stephen Warren asked in the Kernel Summit mailing list what could be done differently to make Linux support better. 'In a Google+ comment, Linus noted that we have mainly been contributing patches for Tegra SoC infra-structure details. I'm curious what other areas people might expect me/NVIDIA to contribute to. I assume the issue is mainly the lack of open support for the graphics-related parts of our HW, but perhaps there's some expectation that we'd also start helping out some core area of the kernel too? Would that kind of thing help our image even if we didn't open up our HW?'"
[...] we'd also start helping out some core area of the kernel too? Would that kind of thing help our image even if we didn't open up our HW?
You seem to care more about NVIDIA's image than about what the Linux community actually needs.
I truly don't understand what the big deal is. Just open up your damn specifications already.
vos nescitis quicquam, nec cogitatis quia expedit nobis ut unus moriatur homo pro populo et non tota gens pereat.
It's unnecessary, and likely impossible, for Nvidia to open source its proprietary driver, due to licensed software they don't own (they have stated in the past). All that's needed is for Nvidia to release the documentation on the components they manufacture, as AMD/ATI did in 2008 (and Intel has always done). The existing nouveau driver team will take it from there. Nvidia can also choose to provide funding, salaried developers, or sample cards for the team. That would put them in a parity position with AMD and Intel.
Can You Say Linux? I Knew That You Could.
Firstly, deal with the goddamn shitfucking Optimus hardware that's out there!!!!!!
Better power management. KMS. More timely releases. Stop whinging that there are problems with Linux/Xorg/whatever preventing you from doing something and work with those up-streams to fix it. Stop making excuses, start releasing code. Extract the proprietry stuff to (a) smaller blob(s) and expose the trivial interconnects and such at the very least. Never say it can't be done: everything's possible. Etc.
Leela: "Is all the work done by children?" Alien: "No, not the whipping."
Open up the hardware such that proper drivers can be written for any card (recent or not) and platform w/o the need of binary blobs.
That shouldn't be an impossible task given how much weight NVidia has towards third parties.
People keep spouting these things without actually taking into account that NVIDIA most likely has all sorts of contracts and license agreements they just can't break. Yes, it's fun to bash NVIDIA and try to paint them as some sort of a big, black demon worth all the hatred in the world, but in the end that doesn't actually *help* anyone, least of all F/OSS movement. Intel has the advantage in that that they entered the GPU-market a lot later than NVIDIA et.al., so they could avoid many of the mistakes their competitors did and they also have the whole, complete chain needed to produce and ship GPUs all by themselves and that really makes the comparison feel more like apples and oranges than anything directly comparable.
NVIDIA could possibly open up future hardware, but they'd still possibly have to then develop some areas completely from scratch in order to not run afoul of their previous engagements and such a move obviously would cost them huge amounts of time and money. And well, Linux-users simply ain't worth that. All this is to say that NVIDIA should open up as much as they can, that I agree with, but that it is also highly unlikely they could open it all up even if they wanted to.
I see why you're writing as an AC.
because nothing prevents nVidia from collaborating
Copyright, patent and contract laws quite likely do. Oh, but let's not let real-life facts bother us, eh? Ignorance is a bliss and all that.
Here's a summary of some of the most insightful discussions posted on slashdot when this discussion came up last week:
nVidia Issues:
*Proprietary drivers that don’t always survive kernel upgrades. 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. (from UnknowingFool) nVidia only provide a binary blob driver which makes bug fixing for it dependent on Nvidia's whims. (from AC)
*open source drivers – nVidia refuses to 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 everything to get a workable driver. (from AC) As a result, open source drivers are unable to use full card functionality like full 3D acceleration (from UnknowingFool)
Summary of graphic chip vendor support (from Lonewolf666):
*AMD provides specifications and a small developer team that actually works on open source drivers.
*Intel provides open source drivers.
*NVIDIA makes good binary drivers, but those have problems when a new kernel version comes out with changed interfaces: Only NVIDIA can adapt them, and until they get around to it, NVIDIA may not work with the latest kernel version.
From rajafarian: If the kernel maintainers have a question about the hardware, they can't ask NVIDIA they have to test and reverse engineer to find the answer whereas with other companies, they may get an answer directly from the manufacturer. Get it? "...NVIDIA just made the damn drivers. Now that is not good enough." Not from a kernel maintainer's or Stallman's point of view, I'm pretty sure.
From jmorris42 : Name another major chip vendor who hasn't figured out that getting into the Linux kernel is a required checkoff for market success. Doubly so for any product used in the enterprise vs the fanboi market. NVidia's CUDA is about the entire list these days, the last major holdout.
From basscomm: Windows users who have SLI and multiple monitors have been able to enable SLI and use both of their monitors at the same time since about 2008. But under Linux, no dice. So if I had two monitors (which I do), and two Nvidia GPUs in SLI mode (which I do), and I wanted to run some 3D app that took advantage of SLI, I would have to: reconfigure X to disable my second monitor and enable SLI, restart X, play the game/use the app I wanted, when I was done I would have to reconfigure X again to enable my second monitor and disable SLI, restart X again, and reopen all my apps. Hardly ideal.
Given all of this discussion, here are a few ways nVidia could work better with the community:
*Open Source drivers - 1) provide specs 2) provide developer team that works on the OS drivers 3) provide rep to interface with the OS community 4) provide enough detail to get 3D working well
*Proprietary drivers - 1) monitor upcoming kernel builds and proactively update drivers before the next kernel release or 2) have a dedicated nVidia contact to work on updating drivers ASAP when notified that an upcoming kernel build breaks them
*Overall - enhannce SLI and multiple monitor support,
Absolutely!
However, AMD/ATI is a PR stunt. The drivers just wrap non-free software and can't be utilised at all on truly free software platforms. Intel is the way to go. While you can't buy an Intel card explicitly you can utilise boards and/or laptops without nVidia/ATI and then use an Intel CPU with integrated graphics.
http://www.thinkpenguin.com/ offers absolutely the best hardware for free software users. There are no proprietary drivers or firmware required and even the free software endorsed Trisquel distribution is supported. That isn't just some hardware. It's everything. An impressive feet given the selection of hardware available.
Actually. ThinkPenguin has the largest catalog of GNU/Linux hardware by far. There really isn't a comparable offering anywhere else.
Years ago I got good support from Nvidia. I had a problem and sent a bug report and got a response late on a Saturday night (West Coast) that involved a kernel patch to fix a bug in the kernel that was causing the problem. I was an Nvidia fanboy for many years after that. I helped dozens of people get things like Twinview working.
In recent years, working with Nivida has been very frustrating and I can no longer recommend them for Linux systems. For example some interaction between closed-source Flash and the closed-source Nvidia drivers turns people blue in Youtube videos but not other sites.
There has also been a heart breaking struggle to remove video "tearing" (vsync problem) when watching dvds and blurays. The last time I checked I needed to use the GL video to remove tearing when watching dvds but I still have some tearing when watching blurays which is kind of heart breaking. At the very least Nvidia should have a sticky post in the Linux forum explaining all the hoops one must jump through to try to get rid of video tearing. Also, having the sticky posts show up on all pages, not just the first page is a big PITA. It wastes my time and attention. It is disrepectful.
I don't understand why video tearing is such a recurring problem. Are these environment variables still needed?
export VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE="DFP-0"
export __VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE="DFP-0"
export GL_SYNC_TO_VBLANK=1
export __GL_SYNC_TO_VBLANK=1
export GL_SYNC_DISPLAY_DEVICE="DFP-0"
export __GL_SYNC_DISPLAY_DEVICE="DFP-0"
When an nvidia driver update causes tearing to start again, or worse, if it causes X (or the entire machine) to crash, it feels like you are telling me "F- you!"
I get it that opening up your drivers is not an option. The problem is that this decision causes a lot of breakage and you do not make it easy to fix this breakage. Please just make it easy for me to get your drivers to work. Is Twinview plus non-tearing video playback really too much to ask for? Also, what about the problem with non-tearing and composite? Has that ever been fixed? If not, maybe that's something you could help with.
Years ago I felt like I was getting support. Nowadays I'm not feeling the love.
We don't see the world as it is, we see it as we are.
-- Anais Nin
And yet, our new deployment of thirty Linux-based image generators I just setup all have GeForce cards in them... Do we live in the same world?
nVidia cards, with nVidia's binary blob driver, are the only way I can get any work done in Linux. That doesn't seem to be changing anytime soon, either.
I wish it would. My home PC has a Radeon card... But the support under Linux just isn't there.
Maxim: People cannot follow directions.
Increases in truth directly with the length of time spent explaining them
Seriously? What do you think this is about? What's the licence on this that makes you think it's non-free? You seriously don't think this licence cuts it?
Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
It's everything. An impressive feet given the selection of hardware available.
Must be a Gnome user...
There is no "I disagree" mod for a reason. Flamebait, Troll, and Overrated are not substitutes.
nVidia is violating somebody's patents. I don't know which ones. They don't know which ones. It's really not possible for them to know which patents they're violating, and it could be that they're actually not violating anything, but it's probably a safe bet that they are. That's how broken our patent system is.
The flip side of this is, whoever holds those patents that nVidia is violating also doesn't know that nVidia is violating their patents. However, if nVidia were to release the specifications and source code that we all want them to, it might become easier for somebody to recognize that nVidia has unknowingly violated their patent, at which point nVidia might be very screwed. Or maybe not, who the hell knows? In any case, a series of patent infringement lawsuits could be very very bad, and could potentially destroy the company. The only defense nVidia has against this is 1) building up a patent warchest of their own, so that if somebody sues them, nVidia can look for patents they own that the other company is violating and work out a trade, and 2) shrouding their hardware in mystery, so nobody knows how it works and therefore nobody can figure out if it's infringing on someone's patent or not. Note that #1 is not possible against a patent troll that doesn't actually produce anything, so #2 is really all they've got.
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
AC may be referring to the firmware blobs without which newer AMD chips are good for little more than spartan 2d... That said, you really end up picking your poison with firmware. Some vendors include enough flash to store the blob, some demand that the kernel hand them the blob. There are exceptional cases, where the firmware is OSS, or where the vendor is a real asshole and forbids the blob to be distributed(for no obvious reason, since somebody always whips up a script that grabs the windows driver from the vendor site and gouges the firmware out of that.) In this unfortunate vein, it is probably worth noting that Intel is better about not making the firmware stuff visible, but AMD has historically been overwhelmingly nicer about coreboot vs. BIOS.
and we ought to just accept it, then he should know a better perception will never happen and just accept it and the consequent loss of sales.
The REALLY DUMB thing about both the engineer (and NVidia) and you is that you don't seem to even consider "Hey, lets tell them why it can't ever be done.".
Except that was tried a long time ago, where NVidia said something like "SGI owns some of the stuff we use and they won't let us release it". Well, given specific goals, the FOSS people went to SGI and asked "Can NVidia release the stuff they got from you?" SGI answered "We cannot conceive of anything that NVidia has off us that we wouldn't be happy with them releasing.".
Now, given that, did NVidia release specs?
No.
And, having been caught out in a porkie-pie, they have refused since then to do other than let their fanbois (and I use their cards too) say "Oh, maybe they can't for contract reasons" because, not being party to any secret NDA, the fanbois cannot supply any information on who/what or why and therefore it can't be rectified.