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.
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.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
Eventually given how global markets expand and change, Nvidia will have to change its policies.
After all, they sell a GPU.
Consider how silly it is not to publish register information so you can write software for it. It is silly. Especially if Intel did the same thing with its chipsets because AMD might get some information on how a instruction works and try and copy it therefore making assembly language illegal and silly IP laws.
Eventually this policy is going to cost Nvidia in the pocket book, and they will either come around or sink into nothingness.
The exact same direction Apple is going to be heading to very shortly.
-Hack
Got Geometrodynamics? Awe, too hard to figure out? Too bad.
I find your lack of faith disturbing...
A vulgar finger gesture got results.
Demand the moon, get a moon base.
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!!!!!!
How about you start supporting the fucking GPUs you are selling people, like this Nvidia Optimus shit!?
Crazy talk, I know, not kicking your paying customers in the nuts. Sounds like something wild and crazy that Apple would try to pull.
Mod me down, my New Earth Global Warmingist friends!
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."
. I assume the issue is mainly the lack of open support for the graphics-related parts of our HW,
He knows exactly what people want. The entire point of the question is to make it look like they are doing something without actually doing something.
"First they came for the slanderers and i said nothing."
Help open source community write a generic high level opengl/whatever they need This layer will be hardware indepenedant, then at least write something in Galliume3D interface for nvidia cards and maintain it. Do it anyway, if we use nVidia cards and want to switch to Wayland everything works alright. Do it in a way, my laptop backlights work! Do it in a way that is easy for sysadmins to maitain. Finally, if you want to keep the same source on every platform Galume3D is much better. If you think it misses feature, improve it.
Very happy with my Radeon chipsets, don't have to worry about kernel version incompatibility or graphics lockups from some bug we can't even begin to fix. I've had both problems with nVidia hardware.
No PR move from nVidia is going to change my mind beside opening the specs.
Frankly the GPU support issues are going to be the big key issue no matter what. Whether you think its wrong/stupid/immoral/wasteful/anti-american or whatever to use Linux as a gaming platform or for any other sort of performance-critical real-time 3d rendering *some* Linux users will still disagree with you and do it anyway. Whether flaws in your business plan and/or shady under-the-table anti-competitive agreements made years ago with certain big software vendors preclude you from giving Linux full support or if its really some legitimate logistics problem *some* Linux users will still disbelieve the excuses and not forgive you for it. Some of those Linux users still consider themselves your paying customers. You will never truly live this down, but don't worry; judging by the word on the street these days neither will any of your competitors.
However, if you want to set up a smokescreen that hides the fact that *someone* in the higher end of Nvidia's chain of command is openly prejudiced against open source software (or just made a shit ton of cash on Microsoft stock perhaps and refuses to believe therefore that Linux is anything other than a waste of the company's time) you could at least consider making an attempt at distro-native packages for your driver that show evidence that you are capable of and willing to put at least half as much effort into working within the rules and parameters of various distro's packaging systems and with their tools properly as you've already put into that big self-extracting NVIDIA-Linux-x86-whatever.run bash script monstrosity to make it capable of the far more arduous task of cleaning up after itself enough to get a working GLX after it has fully subverted and broken said packaging system by using very crude non-native tools and methods that are not dependency-aware.
"I can't operate your cancer, but would it improve my image as a doctor if I cured your limp?"
Not really. What is needed is hardware that can be documented. Nice of nVidia to confess they are "not it". Spares having to consider them.
Help stamp out iliturcy.
Nvidia has the same problem Adobe has with Flash: Closed source equals instability.
Between Fedora 14 and 17, I have never experienced so much system instability in Linux, and I've been a user since RH 5.1. My X is now guaranteed to lock in 5 minutes either by watching a Flash video or doing a yum install kmod-nvidia.
The year of the desktop, yeah, right.
There is no need to use a SlashDot sig for SEO...
Yes, it's their own fault that they're hindering the progress of the community. But corporations are corporations - the way I see it, we're lucky they're offering help at all in response to it, even if only to save their image. Truthfully I haven't bought Nvidia in years, it's been AMD/ATI for me for the last decade. Just remember that our wallets are the most powerful tool we have.
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,
Nothing, really!
I can complain a lot about their lack of support of modern X stack, xrandr, etc. But my next card will be nVidia, unless performance is not an issue at all (in which case integrated Intel is more than perfect).
Unless AMD put its stuff together and starts either releasing quality closed drivers or pumping some extra effort (money, more docs, help) onto OSS drivers, I don't see any threat to nVidia in the linux perfomance graphics segment.
I do not think Intel will try to get head to head on the performance GPU market and thus they do not represent a serious threat to nVidia in the linux perfomance graphics segment too.
C-x C-c
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).
It also can break DRM.
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
crown jewels? the company makes graphics cards, no one is buying drivers without the card. Most software companies sell support.
you closed sourcers are so ignornant on what makes money.....
...but here's some things I wish NVIDIA would add to their closed source driver: 1)Allow us to just shut off the nvidia card on optimus laptops and use the Intel one for video display. That would at least make the laptops with optimus usable. Brownie points for letting us run CUDA/vdpau stuff on the nvidia card without using it as a display adapter. 2)Re-enable coolbits/nvclock. My GTX 670 GPU sits to about 80-82C while using BOINC with it, and it would be nice to be able to underclock it inside linux, or at least speed up the fan. 3)Make it so the proprietary driver doesn't make my TTYs all ugly!
...and actually respond to the comments. Start making us feel like we're part of the development loop. Let us know when you run into a problem and why something is difficult or an obstacle. If we know and understand the problems you're facing, we'll be far more likely to have a positive attitude towards your product line and cut you some slack. If you ignore us and create a huge, anti-feedback corporate wall, we'll feel shunned and ignored and respond with negative posts (whether we're accurate or not about what's really going on).
*** Don't be dull.***
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
Move everything to userspace, and use an existing driver, or a very small open driver, to access the card. There should be no reason, even if they're crying "trade secrets" for this to happen. If nouveau can do it, and they're not crying trade secrets over it, then nvidia proper can do it too.
I run gentoo on a myraid of boxes and update quite regularly including bleeding edge kernel and ~ARCH ("not yet gnerally released for this this archetecture") packages, which is as bleeding edge as you can get, and I havn't had a update failure outside of the X config (which I have been churning a lot on purpose) in forever.
If your distro is crap, maybe you should change your distro.
If your admin is crap, maybe you should change your admin.
I would characterize your characterization of patch stability under linux as "uncommonly unlikely, or procedurely impure" just on blind weight-of-anecdote compared to everyone eles I know.
Then I did drop Ubuntu because they started to bring in non-open tidbits (and freaking mono) so maybe you are choking on some binary bull (or someone else's platform envy). /doh.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
So that's two "shitstorms"...
Oddly enough that isn't compelling in its depth of analysis, and in both cases you can point to closed vendor hardware....
hrm... patern?
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
Try de-obfuscating the interface to the blob itself. Just come out and say "our blob is something we are all stuck with, therefore, this is how you will now and alwyas operate the blob."
If you cannot, for some legitimate reason, release the API for your hardware, then release the API for your stoftware interface as a well defined and "warrented" interface.
Then make that interface your -hardware- -interface- by pushing that back into the GPU or a "front end" processor.
In short, you claim you have a mess you cannot share with us for all sorts of odd reasons...? Then put your mess inside your own junk and give us an interface we can then use. You test and warrant your half and we'll test and warrent ours. This is far superior to this thing where you calim to need to come into our yard and move the furnishing to match some fung shui most holy and secret.
And if your blob interfce is too broken to play well, then its to broken to expect us to want and need so its kinda moot that you gave it to us anyway.
This is not that hard. Not that you are that unique. Ever try to get an interface document for a Brother label writer etc? All this "my ball" crap is killing innovation.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
News for nerds, random bullshit posts by anonymous assholes.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
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.
Does Nvidia's driver exist for the BSDs, which do have a driver ABI?
crown jewels? the company makes graphics cards, no one is buying drivers without the card. Most software companies sell support.
you closed sourcers are so ignornant on what makes money.....
How do you know that? Nvidia may have good reasons for their actions, that this is how they maximize their profit. The always unknown step two.
Instead of being upset about companies which rightfully keeps its secrets closed we should thank those who don't, such as Intel.
So NVIDA's product is the driver, and the card is just an extra? Ok, they can go out of business. (Or not, since it isn't, and you're full of shit.)
Great Intellect...
Perhaps in this case Linus' comments were secondary to his vim and tertiary to the gesture -which would have been rude in other circumstances and apparently perfectly appropriate in this case- in his statement.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
Or, how about buying competitive open alternatives from other vendors?
As far as I know Nvidia support their driver on FreeBSD.
It's funny, when I used to buy graphics cards, I bought nVidia because the driver was that much better - TwinView meant good multi-monitor support, etc... Now all that has changed. I replaced two nVidia cards with an AMD card, because AMD support their Eyefinity tech even on low-end cards, and my triple monitor setup works perfectly with 3D acceleration on the open drivers, which means I get KMS and no binary blobs. By comparison, I had to use xinerama to get triple monitors with the nVidia driver, no KMS, no 3D acceleration.
It's obvious what we want, open source drivers. If they can't handle that, documentation, but we all know they'll spout the same stuff about NDAs and 3rd party stuff they are licensing and can't reveal, and tell us binary blobs are the only way - well, I don't buy it. Intel manage it well, and AMD are definitely getting there. Binary blobs just don't give the experience any more, that's the reality.
-- Lattyware (www.lattyware.co.uk)
From TFE (email): "Within the constraints I have, what should I and perhaps other NVIDIA employees be contributing to in the kernel?"
I suspect those constraints essentially preclude what would really be useful, so what's the point?
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.
Get rid of the nvidia-settings application and provide something that resembles modern support for multimonitor setup, preferably by tying into the desktop environments' infrastructures. And support KMS.
"When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
For years there has always been the problem of the closed source drivers not supporting the console framebuffer properly. I think if NVIDIA had a proper console framebuffer it would go a long way to making the linux experience smoother. Honestly that's always been my biggest gripe with the drivers. Under X11 the drivers support pretty much everything I want to use. But as soon as I hit Ctrl-Alt-F1 everything turns to shit. Also, I've noticed that the SLI performance boost doesn't appear to exist at least on 460gtx hardware. I have dual GPUs but on linux there doesn't appear to be a noticeable improvement in wine or even opengl linux applications with SLI enabled.
I take it you hate gaming for Linux, since Intel is worse than Matrox for gaming.
lol get some help
Can I light a sig ?
If Linux had a platform share of 50% of the hardware market, they'd have sufficient grounds for biting the bullet and betting on staying ahead of the competition by being the best at doing the hardware part of their architecture.
The thing is, they could open their specs, wait a couple of months until open-source driver support catches up or even exceeds their closed-source drivers, and take pretty close to 100% of the Linux market.
Now, because Linux has at that point got as good or better accelerated video support than Windows, it will overtake Windows even faster than it's already doing for things like home theatre PCs. Valve will be happy, since their Linux-based console will be able to rock the cheap, powerful NVidia chips, and they will port more games to Linux since it's a pish easy job because of the improved 3D acceleration.
Yes, that's a bit idealistic.
Any or all contributions will be welcomed, and will improve my image of the company. Improvements that don't involve opening up the HW mean still no sales here, but I will have a better image of the company. :)
Not really. What is needed is hardware that can be documented. Nice of nVidia to confess they are "not it". Spares having to consider them.
I've been NVidia-free for quite some time, and happier for it.
When all you have is a hammer, every problem starts to look like a thumb.
for whatever reason, if their higher ups don't want to be telling the world how their drivers work, and so they won't.
That's nothing a good firing wouldn't fix.
When all you have is a hammer, every problem starts to look like a thumb.
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.
I think some of the SGI people that were burnt very badly by software patent trolls ended up at Nvidia. Currently there is nothing to stop it all happening again if Nvidia describe their methods in enough detail to let opportunists go after them in court. It appears they don't think they can afford to open up the specs while broad software patents that should never have been granted still cover everything obvious in computer graphics.
That appears to be the "big deal".
Retrofit your monolithic binary blob into a wayland capable architecture and you'll have addressed many concerns such as KMS, EGL, etc.
Supporting it on Tegra would be a step towards running standard accelerated Linux on an ARM phone or tablet and you'll be the slashdot nerd's platform of choice ahead of Adreno, Mali, PowerVR, VideoCore etc.
Patents last how long?
Patents last 20 years after filing or 17 years after grant, whichever is longer. Modern PCs don't even have slots for video cards made in 1992.
It is not nVidia's job to do ANYTHING for X or Y operating system. If they make crappy drivers for a certain OS, they lose market on that OS. Maybe they don't care about that market.
Entia non sunt multiplicanda praeter necessitatem.
Hey, good news. China is changing.
Now, they tell you up-front that in order to sell a small number of units in China, you must hand over all your technical documentation so that they can start making and selling them after the initial sale.
So, will you buy the even less supported Dynamic Switchable Graphics solution from AMD or are you giving up on dedicated 3D acceleration for good?
After my optimus experience I will simply not buy another closed source NVIDIA graphics solution. In the end I much like others and the internet in general route around broken parts. I will be curious to see how kernel module signing some distros are doing now for secure boot will effect NVIDIA proprietary drivers.
Oh please, it's firmware whining again
Dear open source zealots, no one is obliged to add more circuits to a computer just because you can't be bothered to give the embedded card some data.
ALL computers depends on some amount of closed source data, deal with it.
There are exceptional cases, where the firmware is OSS, or where the vendor is a real asshole and forbids the blob to be distributed
Absolutely. Dear manufacturers, if you complain about distribution of fw at the same time anyone can download your "windows driver" off your website, You Are An Asshole
how long until
Have you even looked at the firmware in question? It really does things as "implement fencing point support" low level crap, and it is damn SMALL. It is more akin to cpu microcode than, e.g., NIC firmware (which is often actually machine-code for ARM/MIPS cores implementing higher level details that indeed would benefit from source code and modification), in that it implements stuff that is so low-level, it is not only simple enough to not be buggy, it is also of no general interest whatsoever as far as modifying it goes.
Yeah, it would be nice if it were open, but it doesn't matter very much if it is given a license that doesn't cause it to end up in Debian's non-free repo except for the lack of source (or you can actually document that it has no source, being a bitfield based microcode or something).
They could pull an Atheros and hire several of the core open-source driver developers to their own team. Linux support for Atheros chipsets has been phenomenal ever since.
I haven't figured out a way with just the OSS tooling to correct for overscanning on my TV.
XML is like violence. If it doesn't solve the problem, use more.
The biggest problem with NVidia drivers right now is lack of Optimus support.
With every new laptop that has an NVidia chipset using this feature, this is not acceptable IMO, because it puts Linux users in a horrible position of having to choose between horrible battery life or horrible performance.
And yes, I have been trying out project bumblebee. But really, it is a giant hack and not a workable solution long term IMO, because it is the opposite of "seamless"
That's a really good idea.
"XML is like violence. If it doesn't solve your problem, use more." - Anonymous Coward
This is a power play from the linux kernel team. They don't like that someone else has control over a large part of their system and they want the source so that they can control it. As far as I can tell they are the only people with a real, practical issue with the status quo in that they're the ones using exprimental kernels that Nvidia don't support yet and obviously Nvidia drivers being under their control would make their lives easier.
I'm with Nvidia on this one though, it's their hardware and they have the right to maintain control of thier drivers if they choose to do so. Of course, as others have pointed out, we have the right not buy that hardware if we choose and those with an ideological issue with Nvidia's position will probably choose to do that but this clearly doesn't worry Nvidia too much.
Personally, I'm satisfied with Nvidia's model. Seems to work pretty well for me.
"XML is like violence. If it doesn't solve your problem, use more." - Anonymous Coward
you don't quite understand the problem here - the HW manufacturer can offer a single Windows binary (or 2 or 3 at worst). But with Linux, they have to recompile a version for every (well...) version of the kernel that's out there. If the driver system had a stable ABI that never changed, then the HW manufacturers could deliver a single binary built "for linux" and would expect it to work. Currently, they have no such guarantee.
You wonder why Linux on the desktop never took off? There's no business benefit to the manufacturers to support it. Sure, its technically better, but that means diddly squat in the real world especially when the answer is to recompile from source. You're never going to get Nvidia's source code, so accept that and start to deal with it with a technical solution rather than an idealistic one.
And what do you do when a proprietary vendor changes something in their code that breaks your application? If it's closed, you're unable to fix it.
How many hours of "real work" do you lose while you try to resolve the issue or find a workaround?
You can call RMS and his followers as "zealots," but ideas have practical consequences. In RMS's case it was not being able to fully utilize a printer that prompted him to start the GNU project. That was a tangible instance of closed source "ideology" preventing people from getting their real work done efficiently.
I'd say you are.. apparently the drivers contain much of the magic that makes their cards word well, so opening up the source to the drivers would hand all their competitors a ton of advantage. Sure, I'd like to see that ;) but it isn't going to happen.
So start thinking how to address the issue that allows Nvidia to release a single binary that works across all Linux platforms and versions, then I can download the driver from their website, bundled CD, or have it packaged with their own repo and you'd get super fast graphics without any hassle.
What is needed is an operating system that doesn't sh*t itself on update so nVidia can write a single Linux driver as they do with Windows/Mac and call it a day.
My current peeve... how about a driver that works nicely with Real Time Linux. The word is that proprietary NVIDIA drivers are death to Real Time OS. I would purchase a NVIDIA card and use proprietary drivers if they had low latency, low jitter, and no memory conflict issues. Until then, I will try AMD/ATI and/or use KML drivers. Real Time Linux is used for device controllers, robotics, and other timing-sensitive applications. I am not a Freeware fanatic, I just want something that works.
The lack of binary compatibility is a factor limiting linux mainstream usage, however, it does not need to be a factor for the manufacturers. The OSS community will happily build/repackage compatible binaries if the manufacturer will allow them to distribute things such as firmware blobs. No one is asking the manufacturers to do more work, they're asking the manufacturers to alter their policies on documentation and/or distribution so that the OSS community can do the work.
make imaginary.friends COUNT=100 VISIBLE=false
Linux still uses X. Regardless of how far away it's abstracted with dirty ugly hacks, it's still X.
So - for desktop use - no, it's NOT technically better. And it has little to do with the drivers not being open, but rather the religious insistence of nutters to keep the useful, flashy, graphics, you know - desktop, bits out of where they could work.
If the driver system had a stable ABI that never changed, then the HW manufacturers could deliver a single binary built "for linux" and would expect it to work. Currently, they have no such guarantee.
Is there no way to write some middleware that would at least allow the same operations to succeed across kernel releases? I mean, let the kernel guys do what they want, but chance the interface's back end to meet the kernel and keep the front-end stable.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
I'm pretty sure they run on OS X just fine...
"We know what happens to people who stay in the middle of the road. They get run over." - Aneurin Bevan
Seriously, if we have to use the blob, it may as well have a framebuffer like every other driver that exists. I have to use it for VMWare, otherwise it'd be Nouveau.
If Linux had a platform share of 50% of the hardware market
That's a very interesting assertion... See linux has like 1% of the desktop market, and the server market is irrelevant in this discussion. But the GPU computing market is not. And nVIDIA and AMD are battling it out for systems with tens of thousands of high end GPU's in them, and those systems all run linux, or a variant on it.
It would not surprise me in the slightest if nVIDIA does 30 or 40% of it's high value business on linux as part of GPU computing clusters. It doesn't take a lot of customers buying 100 000 GPU's at a time to suddenly have a big market, and a big percent of total sales (of cards anyone cares about).
you mean something like NDISWrapper that lets you run Windows binary drivers for network devices. We need something similar for Windows graphics drivers... well, if it won't be done natively, then yes, this is probably exactly what is needed/
Using NVIDIA's FreeBSD driver on FreeBSD/amd64 9.0-STABLE. Works okay, most of the time. Better than on Linux. Thanks for that, guys. My only real gripe with NVIDIA is their lack of FreeBSD CUDA/OpenCL support. That's REALLY holding FreeBSD back in the HPC domain.
cpghost at Cordula's Web.
Slashdot needs to lose the "news for nerds" tagline and adopt "reddit news from yesterday, today." instead.
Modded down for that? I thought it should be +5 insightful.
No, please! There's already too much transient stuff in the kernel. I think the developers should be asking themselves why they feel they need to keep tinkering with the kernel. Lending some stability to the ABI would be a godsend.
Answer our questions!
Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
Have you even looked at the firmware in question? It really does things as "implement fencing point support" low level crap, and it is damn SMALL.
Code is code, and even code that compiles down to a few kB at some point often requires a patch. It's quite common for new versions of firmware to be released that fix problems.
Yeah, it would be nice if it were open, but it doesn't matter very much if it is given a license that doesn't cause it to end up in Debian's non-free repo except for the lack of source
No source means it goes into non-free. There's no license that will change that. From the Debian Free Software Guidelines: "The program must include source code, and must allow distribution in source code as well as compiled form."
Oh please, it's firmware whining again
Oh please, it's another apologist for closed-source exceptions. Imagine that, people dedicated to open source want source instead of being required to distribute binary blobs.
no one is obliged to add more circuits to a computer just because you can't be bothered to give the embedded card some data.
Nobody is asking such. Just release the source instead of a binary blob. If it truly is data without corresponding source, then there is no problem. Of course, you know there's source there.
Yep.
But computing cluster guys might be quite content with a proprietary driver that gets the job done, where the open source community isn't pleased with this solution.
Although having been in the GPU computing business relatively recently. You do actually want regular driver updates, or at least did at one point, since you want to take advantage of language features and performance improvements.
That is a fundamental Phillosophy problem.
I work in Midrange stuff and I understand exactly why the Kernel devs are so hard line. In our MRP system, we have a licensed copy of the source code. That code has run on CISC, RISC, and POWER IBM hardware with little input from the manufacturer in 15+ years. 90% of the time the code just needs to be recompiled under the new compiler version. SOMETIMES it as to be touched to change depreciated data types, etc... The box uses Object code, but some things still need the source TOUCHED and without that ability we would have been dead I the water so many times and shut our business down.
Fundamentally, it is a "I'll show mine, you show me yours" thing. Nvidia can download any of the Linux pices THEY need to make drivers work... It's FREE! It becomes "just too bad" that they can't share back. Kernel Devs want to work in Source Code or they will get cornered by the guys like TiVo-ize and don't give the MEANINGFUL parts back to the Devs.
Put a microprocessor on the card which accepts OpenGL commands (or something similar) from the computer and does whatever proprietary stuff you would usually do on the card. Then publish and open the interface between the host system and that controller, so every graphics card will look "the same" to the host system. Get the complexity out of the driver and into the "hardware".
The whole idea of closed source software is ridiculous anyhow. Don't you think your competitors haven't already analysed it in detail just like they reverse engineered your chips for years?
My next GPU will be Intel, when I change my motherboard.
They don't need to "create a new driver", nouveau already exists and it's pretty good, they just need to release specifications and/or start helping nouveau.
Release a seperate product that's completely open and give the open hardware specs to bsd and linux devs to work with, or open up all old products. Let the O/S developers drive the device no binary blobs. If you don't one of the Taiwan chip manufacturers will and you'll have lost out to hundreds of millions of future Android handsets. Then you can continue to swindle the computer gaming market with your ridiculously inflated windows closed source drive bubble and help future proof the company when that market inevitably disappears in a decade or sooner.
unfortunately its not a Nvidia v Linux thing, Nvidia *doesn't* have to release anything for Linux. They can ignore the platform completely, which in turn means consumers ignore the platform too (because it has shitty graphics) and then Nvidia has no reason to work with Linux because it has no customers demanding Nvidia support...
but its not just Nvidia, if there was a stable ABI, any hardware manufacturer could bundle a CD with Linux driver software (and a little "works with" penguin icon) with their kit and anyone buying it would know it worked with their Linux install. Today, that's not the case, so the manufacturers standard mechanism of releasing software to consumers fails. They might know to rerlease the source and let the Linux guys recompile it and (hopefully) fix it for new versions, but that's not the way its done (and it puts an increasingly large burden on the distro compilers, wouldn't it be better if all these driver modules didn't need touching between versions?)
I like to think of this problem as a classic business v technical one, where the techs are not providing the business what it needs. Unfortunately, I think it really is a big part of the reason Linux is not more popular as a consumer OS.
This is just marketing bullshit from NVIDIA. IF they were really concerned or interested this announcement would never have been issued; instead all they needed to do was listen to their own developers and the kernel folks.
My karma is not a Chameleon.
And what do you do when a proprietary vendor changes something in their code that breaks your application? If it's closed, you're unable to fix it.
How many hours of "real work" do you lose while you try to resolve the issue or find a workaround?
Dunno, but I know I've lost many hours trying to get a few FOSS drivers to work in the first place.
Fifty watts per channel, baby cakes.
Many moons ago, S3 had one amazing piece of tech in their extremely underwhelming Savage4 and 2000 video cards: S3TC. With it, a Savage4 could muster some of the most gorgeous 3D images of it's time, particularly in Unreal Tournament when the 2nd disc full of S3TC specific textures was installed. While still slow as a constipated turtle shitting molasses, visually a Savage4 was far ahead of the TNT2's and GeForce256's of the day on a game that supported S3TC via S3's MeTal API.
Nvidia licensed S3TC (as did many other companies) for their products many years ago, and it's still proprietary. This is but one hurdle facing a completely FOSS driver.
Fifty watts per channel, baby cakes.
And by "dealing" we mean "using the same software facilities used by anyone else and which are in the kernel for ages", not "trying to reinvent the wheel each time, so you can re-use the same wheel as in Windows instead of playing nice with everyone else".
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
XRandR (REALLY-REALLY THIS! I cant use my colorhug without cripling my nvidia driver and switching to nouveau because of XRandR fail) and if you dont want to make your driver work with old cards, help NOUVEAU support them properly with just the knowhow, mainenance will be free.
*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.
In addition to that, Nvidia tends to do things in their own way in order to share code between the various OSes.
And some feature can't be implemented in the Windows-y way on Linux.
On the other hand, the linux kernel provides plenty of software facillities, thus increasing code share between drivers. Nvidia tends to ignore these. (For example, Linux has standard interface for handling multiple monitors, changing the resolution, and so on: XRandr. Until now (version 302) all that the nvidia drivers could do was only their own TwinView, which is proprietary, has nothing to do with XRandr, doesn't play nicely with other Linux software. But is the same technology as what they do on Windows - Meanwhile Xrandr has been available on ATI for ages, both on the proprietary and opensource drivers).
The Optimus situation boils down to that.
- A new generation of optimus laptop has an embed Intel gpu which is always on, and which is permanently connected to the display. It has also a discrete Nvidia GPU. Unlike older dual GPU laptops, it lacks any electronics to switch the output from one GPU to the other. The Nvidia GPU will never see a monitor connected to it, it stays always headless. Instead the Nvidia GPU has to render its 3D ouput on the frame buffer of the Intel GPU , which will display it.
- The Linux operating systems has several software facilities which could make such an "shared framebuffer" architecture workable (both as in kernel code to route ouput, and a modular Gallium3D driver stack) - in fact, current experimental implementation of such software works to do crazy stuff. Like hot plugging an USB attached display adapter and have the computer's high performance GPU off loads the 3D rendering and then stream the graphics to the external 2D LCD.
- But the Nvidia people don't use these because they differ massively with how they deal with these things in their common OS-shared code. End result. no Optimus for you, which can in some circumstance even mean no graphic output for you at all.
Nvidia's answer? Go see Bumblebee.
(Bumblebee is a hack by a small 4-man team [kudos to them!]. Basically it will start on-demand a separate X server on the Nvidia hardware and use VirtualGL to copy back the visuals on the main X Server running on the intel. Users can select which software to run on the real Intel X server, and which software to remote to the Nvidia X server. It can solve the optimus problem in a few situations. But that is still a hack. And that's because Nvidia has a closed driver that can't be fixed, so volunteer have to make such hacks aroudn the unfixable problems)
And as far as I've heard, the Tegra situation isn't any better. Nvidia keeps doing things their way.
*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
Well that would be the strict minimum. It would be even better if Nvidia could at least try to play nicely along with what's done by everybody else.
We have a real clash of mentalities.
On the linux side, we have developpers which like consolidation, code sharing and so one. If some function has to be performed by more than 2 modules, the developers dream is to have that function move out into a common module with a nice API to export such functionnality to anyone who can need it. (for exemple, in storage, the long term is to consolidate all the various data redundacy functions (MD linux software raid, vendors sfake raid, LVM stripping, DRBD network redundancy) into the same facility - currently LVM and Fakeraid alrea
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Depending on how much functionnality you want from the card, that might not work.
Several functions (the Optimus situation being a prime example) require a lot of collaboration between lots of component.
The very small open drivers, begin to just be a small interface for passing commands to the hardware. But then you start to need initialisations in the kernel (KMS - Kernel mode switching) for various good reasons (suspend/resume, error message, graphical console). You end up with the 2D support being opensource and the closed source component being only the OpenGL driver.
But then (specially for SLI, Optimus, etc.) you need to be somewhat able to share states accross drivers and graphic cards: you need to use the in-kernel memory management facilities that the other use, you nee d to use the modular architecture of Gallium3D, so the opensource part gets even bigger and spans user space too, while the closed source part is even smaller.
At that point the closed part is nothing more than a thin layer which exports basic hardware function blocks (shaders, etc.) while everything else is handled in the common part (memory management is handled by the kernel, openGL and other APIs are handled by Gallium3D, etc.)
And then, the closed source model start to lose its advantages: you won't be able to share much between OSes (Gallium3D modular architecture hasn't much in common with WDDM). You won't be able to exploit all your small private secret über optimisation because you have to play nicely with API state trackers in Gallium3D and play nicely with all other drivers cards.
That is something which was understood by Intel : They moved completely to the opensource stack and asked Tungsten to write their driver for linux as opensource. It uses KMS, it's been on the fore-front of memory management facilities (TTM, GEM, etc.), Gallium3D was developped *by* people at Tungsten (although, curiously Intel themselves only started using it recently for the latest hardware, the rest still uses the older stack in Mesa).
That is also something wich was understoof by ATI: They offer both a Linux port of Catalysts (which might not be as stable and great as Nvidia's blob. But on the other on the other side plays nicely with some standard in Linux like Xrandr), and they support opensource drivers (release docs, pay developers). We've reached the point where for old hardware (up to r500 / Radeon X1nnn) the opensource drivers are the best solution for stability AND performance. And newer hardware (R600 and up / Radeon HD nnnn) is more or less functioning, with very good stability and with acceptable performance for everyday work.
Nvidia on their side prefer clinging on their advantage of closed source (shared code accross OSes, über optimisations) which make them win on ease of development, but make them lose on the cooperation with the rest of the ecosystem: their driver doesn't play that nicely with kernel updates. their driver doesn't play nicely with other driver/hardware and some feature just can't be make to work (Optimus). their driver doesn't play nicely with the current standard and some feature work bad with some software (TwinView vs. Xrandr). and their monolithic drivers make kernel developpers want to cry (from what i've heard the Tegra situation is worse).
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
and the only reason Intel drivers work is because of the server market and because chips don't change often.
Well, you're wrong. Foremost, Intel GPU are at most deployed on desktops, server tend to use either even older GPUs or use GPUs with embed VNC server for remote KVM.
But Intel has been quite active on the GPU in kernel. They have helped create or sponsored (through paying Tungsten graphics to write opensource driver) a lot of development.
Kernel mode setting has appeared thanks to joint collaboration between all (non-Nvidia) developpers and that helps a lot for example for suspend/resume to work.
Intel (through Tungsten) has helped in-kernel gpu memory management (TTM, GEM, etc.)
Tungsten developpers (paid by Intel, then by VMware) have created the modular Gallium3D stack (which use separate font-end for the various API like OpenGL, openCL, etc. there's even a dx10/11 frontend. And a separate back-end to interface the hardware). The opensource ATI driver use it, Nouveau use it, newer Intel hardware (and alternative driver for older intel hardware, in part sponsored by Google) use it.
Yup there's a lot of development being done on the Intel front. They are not just sitting around with the same old 10yo driver and juste adding new PCI IDs from time to time.
It's not rocket science, writing graphics drivers are HARD and Linus continually poking his pecker into the kernel means they continually break and have to be tinkered with to work again. {...} It needs to be repeated so it sinks in, Linux needs a reliable ABI so ATI and others can just slap a Linux driver onto the CD that comes with the card and call it a day.
Nobody said that graphic drivers are easy. Nobody said that once AMD published specs, perfect drivers will insta-magically show up on the next day. (Although by now, the opensource AMD drivers are the best thing for Radeon X cards, and work well enough (not the best perfomance, but work stable) for most Radeon hd except the latest generation).
And if "linus is poking his pecker" (well actually not. He doesn't do much GPU development. the "pecker poking" in the GPU world is currently done by people on AMD's, Intel's, VMWare's, Tungsten's payroll) that because *technology is changing*. keeping a stable ABI would also mean that we stick to old paradigm and old technologies. People aren't just breaking Linux for the sake of breaking it. Their are breaking it because old cruft needs to be removed, new capabilites needs to be added. Disparate stuff needs to be consolidated in common. Linux is a moving target, because technology is moving on.
(And in fact, it's not just Linux. Microsoft has also needed to break compatibility in several point in time in their Windows family. You don't notice it as much, because overall Windows development tends to move at the speed of a glacier, specially in the post XP era. But for exemple the graphic driver infrastucture between XP and Vista changer completly. For exactly the same reasons as it is also changing in Linux: bring in modularity)
If Linux sticks with a stable API/ABI, it will be stopped in it's development. (You like how there isn't any problem on laptops by suspend resume with opensource drivers? Well that's because KMS was introduced, remove the needs for a crazy ping-pong between kernel and userland x server for state saving and re-initialising).
It's because Nvidia doesn't use the newest feature of the kernel that Optimus isn't working.
Also binary-drivers-on-CD have the problem that, when there is a big change needed in the kernel and in the API/ABI, drivers won't get updated.
- On linux, substem team can make sure that if their subsystem changes somewhat, all their drivers can be adapted to work with the newer infrastructure.
- On windows, not every single manufacturer upgraded every piece of hardware from XP to Vista.
To be able to keep up with such a moving target, hardware manufacturer need to :
- either actively tra
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]