Open-Source NVIDIA Driver Goes Stable On Linux
An anonymous reader writes "The open source Nouveau driver, a reverse-engineered incarnation of NVIDIA's official proprietary driver for Linux, has reached its biggest milestone. The Nouveau driver is now being considered stable within the Linux kernel and leaving the staging area, with the pledge of a stable ABI. Phoronix has summarized the state of the Nouveau driver, which works fine if you don't care about performance or are fine with running hardware that's a few generations old."
Sorry, this is kind of off, but still interesting and related as this was work done by reverse engineering. How do you reverse engineer on Linux, or other UNIX systems like OS X and BSD? Windows has many great software like IDA and OllyDBG, but seems there's just no such things available for Linux or UNIX. The problem isn't even about using console programs, it's about showing the debugging process and being able to put breakpoints.
The latest version on Ubuntu 12.04 beta2 doesn't cut it on my hardware. I am thankful for Nvidia's support of Linux.
Which I do, but I also care about performance. I've found myself having to switch back and forth between it and the propreitary Nvidia driver on some machines.
Way to go guys.. you've now given Nvidia massive disincentive to continue to do more work with their MODERN drivers.
Competition is usually a motivation to improve rather than stagnate.
Wouldn't be at all surprised to see things like VDPAU and CUDA recieve even more attention from Nvidia. Maybe even features like KMS might happen now...
Not dismissing what's obviously a pretty daunting technical challenge, but still. The problem is...
Why would you buy a $250 3D Nvidia card if you didn't care about performance?
Check out my sci-fi book "Lacuna" at http://goo.gl/MVxX8
Sometimes causes me headaches when trying to develop CUDA projects... but all in all a wonderful thing for 95% of the Linus user base. Spock would approve.
I only wish Ubuntu didn't ram it down my throat.
I am very small, utmostly microscopic.
Which is why open source drivers should be discredited everywhere. Because it can be done, but at a disservice to everyone...
Why scratch an itch when the manufactures will stand up eventually and do the right thing? /end sarcasm
It's amazing to me that there is so much flame out there for this. None of you could do this, Not a single one of you have tried, and yet, this small group of dedicated people have actually figured out a piece of proprietary hardware to the point of having their code included in the Linux kernel? Way to go guys.
"On the Internet, nobody can hear you being subtle." -Linus Torvalds
Software freedom is important for its own sake. You're better off with a less functional free implementation than a more powerful and reliable proprietary implementation in numerous practical ways programmers and users have known for decades.
If the proprietor stops supporting something and they're all you've got to depend on, you're out of luck left with an ugly choice to run increasingly obsolete code or (apparently needlessly) do without that functionality at all. Proprietors control your computer and tell you what you can do with it. Free software gives you the freedom to control your own computer. One can learn to program and understand the Nouveau source code: maintain the code to work on more OSes and work with more hardware, free from the fear of DRM (digital restrictions management). If you're not a programmer, like most computer users aren't, you can still help the effort by giving programmers what they need to help you in return. Often that's money, equipment, good bug reports, documentation translations, and writing documentation for the software.
We're better off relying on each other in freedom than we are depending on a proprietor. Socially, we can't build a better future for ourselves by relying on secret software. We should be allowed to fully own and control our computers and we'll get there with software freedom.
Nvidia should have told their customers how to fully use the equipment they sold. Nouveau hackers are remedying that deficiency. I'm grateful for the valuable work Nouveau hackers are doing for all of us.
Digital Citizen
They are presently suffering togetherness issues on both fronts(Intel because Intel denied them authorization to build any QPI chipsets, AMD because AMD now owns ATI...); but Nvidia shoved a pretty significant number of integrated graphics chipsets out the door in the past few years. For a while, they more or less were the embedded graphics option for AMD boards, and they presented a fairly persuasive offer on the Intel side, given the dire state of Intel graphics.
That's quite a few performance-insensitive Nvidia parts in the world, in addition to the discrete ones, which usually indicate some level of interest in performance, or at least driving a greater-than-default number of heads...
2) buy someone elses (likely)
And this is what NVIDIA has done. NVIDIA bought a license for ARM's CPU and built the Tegra SoC around it.
is design a time machine to go back three years and peddle this afterthought to the linux community, just as theyre putting the finishing touches on a workable desktop video driver for AMD cards that supports HDMI.
then nvidia can hop back in and take a trip 5 years back, and fix the problem with faulty chips they just decided to ship and apologize for as an afterthought.
while we're fidgeting with the knobs in our video card tardis of sorts, we can shuffle on back to the point in nvidia history when despite overwhelming support by AMD for 64 bit linux, nvidia decided 32 bit was all they were getting.
Good people go to bed earlier.
The last time someone came up with a replacement for an Nvidia driver was for the ethernet drivers and Nvdia ended up discontinuing their own and contributing to the open source driver instead. If this happens again we are all better off.
Seriously guys why all the hate? Sure it doesn't work for everyone, it works on old hardware. But here's the deal, it works and is sufficient for day to day use. Here's the amazing and nerdy part of it too, they REVERSE ENGINEERED IT. Something as complicated as a video card. That's no small feat and they should be congratulated for their efforts to make linux just that much better. Start hating when you contribute something with any significance at all. BTW I'm not a kernel developer, just a nerd that appreciates a feat such as this.
They realize their top notch drivers are a big selling point of their hardware. You'll find more than a couple people who have the opinion that AMD has good graphics hardware, crippled by poor drivers.
nVidia will only discontinue Linux drivers if the market shrinks to such a size that it is no longer worth it. If Linux becomes an "embedded only" OS or something they'll stop. However so long as it is being used a reasonable amount, they'll keep making drivers for it (they also have FreeBSD and Solaris drivers to give you an idea).
Particularly since it is a big market for their GPGPU stuff. When people get a big multi-card Tesla system, they sometimes want to run Linux on it. That is only doable with first flight drivers that have all the features supported, work with the latest hardware, and give up nothing in terms of speed.
I'm using this driver (well, probably a slightly older version of it) with my desktop now, and so far I've been pleasently surprised. I don't need blazing fast performance on 3D for most things. FlightGear/OpenArena level games are about as far as I'm likely to push, since I'm not into the latest and greatest FPS anymore. Given that, the prospect of an integrated driver that "just works" without having to do anything extra is awesome.
My last Gentoo re-install I ended up trying the Nouveau driver after my attempt at enabling the binary NVIDIA driver didn't go well - had to flip on a couple kernel options to get acceleration, but after doing so and for my uses the results are "fast enough." I'll be sticking with Nouveau from now on unless I hit a major show-stopper. Well done, Nouveau team!
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
One thing which you cannot do with the official NVIDIA driver for GNU/Linux is have mixed rotation monitors. (I would like to be proven wrong - have even tried to prove myself wrong, but given up).
I currently have one monitor in portrait and one monitor in landscape and one monitor in landscape, with the ability to drag windows from one to the other. I have some acceleration, which allows me to see through terminal windows.
Nouveau works, official one does not work. Simple choice.
kers at the wrong moment What happens when you catch stock tic
...and it would seem to be a rather persistent thing, at that.
Personally, I think it's great to hear some simple news about a non-trivial thing relating to a driver that also affects the overall performance of my own computer. That it's an article not written in marketspeak covered with a 20 gallon drum full of marketsauce, then, I guess that may also serve to comment to the technological integrity of the open source developer domain.
But sure sure, we can troll, we can. Cheers.
So true. I had a problem with my onboard network card a while ago. I dug up an old 3COM PCI 10/100 card, those cards were awesome and would survive god striking them. I put it in, boot Windows 64 bit and... obviously no driver. It's an old card and no one bothered to create a driver for Windows 7 64 bit. Then I reboot under Kubuntu also running 64 bit and hey, it's working.
1) build their own cpu (not likely)
You mean like the Tegra line of processors? I think you should limit your thinking to x86 dimensions.
There is no "I disagree" mod for a reason. Flamebait, Troll, and Overrated are not substitutes.
The comments on this story really do illustrate how the readership of Slashdot really has changed over the past few years.
This is a real "News for Nerds" story, a story about open source development and how we're still not really past the bad old days of winmodems when it comes to (real, not binary blob) hardware support by manufacturers.
A full half of the comments I can see above seem to be troll posts along the lines of "LOL M8 DOESNT RUN UNREAL TOURNAMENT 27".
Oh dear.
Not dismissing what's obviously a pretty daunting technical challenge, but still. The problem is...
Why would you buy a $250 3D Nvidia card if you didn't care about performance?
Well, you could dual boot. In this case you would want all the performance you can get while gaming in Windows. Since you are probably not gaming much in Linux, all you really need is enough power for desktop effects, which require a 3D driver.
Or you could just by a $50 Nvidia GPU and use this driver with it. I don't thing it's limited to the latest and greatest Nvidia cards.
There is no "I disagree" mod for a reason. Flamebait, Troll, and Overrated are not substitutes.
If i didnt care about performance why would I bother to install something aside from whatever the system boots with on install?
In addition, and this is a big one for me, you don't have to reinstall the open source driver with every kernel upgrade.
Have you got your LWN subscription yet?
I hereby pledge to only install software that "seems to work."
After fighting with the nVidia installers for years I'm happy with any X solution. Thanks for the hard work.
Perhaps you set it up wrong (you have to reboot/restart x to change most settings related to multiple monitors). I have managed to get multiple monitors working in both separate x-screen and xcinerama (which is similar to how windows does dual screens) setups on multiple different machines. One thing that doesn't work very well with multiple monitors is gnome 3/unity/cinnamon but that's not due to the drivers, its due to the gnome 3 devs deciding no one needs multiple monitors.
KDE, MATE and gnome 2 all work fine on multiple monitors using the nvidia drivers it takes about 30 seconds plus a reboot to set it up. The only problems i've had with the official drivers is how ubuntu tries to remove them when you upgrade to a new release.
null
Point being: this shit is hard, and the current milestone represents a huge achievement. If everybody had the attitude that "well it sucks compared to [something else] right now, why bother", nothing hard would ever be attempted.
especially microsoft
Absolutely fantastic, provided you haven't bought a video card made in the last 3 or 4 years...
Hell, I can't even boot the latest Mint or Fedora live-CDs without derping around nouveau, and I'm not exactly bleeding edge here.
Older cards don't even necessary have a binary driver that will work with them. Something like Nouveau will keep older systems ticking along, while also filling the gap for those that don't need the full support of the binary driver
It's a software patent thing that Nvidia are very sensitive about since they have some ex-SGI guys that have already been dragged through the courts once by patent trolls. I can't see them opening their drivers any time soon and I don't blame them for it.
Your comment really makes sense, made me think twice about what I wrote.
Maybe, it would have been better to make this announcement as a solid promise of a good driver, a work in progress with a bright future instead of saying that it went stable with the "exceptions" mentioned.
> If the proprietor stops supporting something and they're all you've got to depend on, you're out of luck left with an ugly choice to run increasingly obsolete code or (apparently needlessly) do without that functionality at all.
And nVidia does exactly this, they drop old models from their drivers (it isn't that bad, the last time it happened to me, it was really old, and the machine stopped being relevant for desktop usage a long time before). Still, I like the tranquility of mind; that's why I switched to ATI cards everywhere. It's good to have choice again. The work of Nouveau developers is impressive, considering the competing open source ati drivers got a lot of help from AMD.
Kill all hipsters.
I applaud your efforts, but unless we get wirespeed performance on our nVidia hardware in both 2D and 3D modes, thanks anyway, but no thanks until nVidia assists the Noveau folks for real.
Kriston
Yes, that, and the abandoned SoundForce platform. Sheesh.
Kriston
Great news ! Linux rocks. A great addition to the platform for all the gamers who have to switch to windows for playing games (include me . .:P)
Oh, good point. Is Don still doing clusters? Don't they all use GPU's now ? ;)
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Way to go guys.. you've now given Nvidia massive disincentive to continue to do more work with their MODERN drivers.
But if they hadn't.. Would you have been able to post anything this whiny?
Moron...
Nvidia is not releasing drivers for gamers on Linux. Shocking I know. But this hasn't and most likely never will be why Nvidia releases Linux drivers.
Nvidia does however, create drivers for their high end workstation cards. Which are regularly used on Unix/Irix/Linux workstations. The consumer grade stuff is an offshoot of this. Not the other way around. They have already written the code for paying customers.. Why not tweak it a tiny bit and let everyone else benefit.
This is a low end get you working driver, that does not actually get used on high end graphics workstations So no change in incentive.
It is difficult to get a man to understand something when his job depends on not understanding it.
Nvidia is not releasing drivers for gamers on Linux. Shocking I know. But this hasn't and most likely never will be why Nvidia releases Linux drivers.
Nvidia does however, create drivers for their high end workstation cards.
Wrong and right. nVidia DOES release drivers for gamers on Linux. How can you tell? They support old hardware. Look at the supported hardware list for the geforce driver, now compare to the supported hardware list for the ATI driver and laugh. Only the very newest nVidia cards ever lack Linux support, and then only the budget ones, and they get it within a few versions.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
"You're better off with a less functional free implementation than a more powerful and reliable proprietary implementation in numerous practical ways programmers and users have known for decades."
Not to downplay the release of the driver, but this is nonsense. As a user, in what way am I "better off" with a less functional implementation just because it's "free" (as in speech, one assumes), when I could be using the full power of my computer with a proprietry driver? It's an absurd argument.
Bear in mind I'm a *user*, who wants to *use* his equipment, rather than an idealogue who wants to feel all smug and proud. So banging on about freedom isn't going to cut it when you're openly recommending deliberately hamstringing it.
The comments "if only you don't care about performance..." came from the anonymous submitter of the slashdot summary, not from the original article.
The original article is talking about how the nouveau driver is becoming part of the stable kernel, and benchmarks it against the proprietary Nvidia driver. The benchmarks show that for some applications the nouveau driver has quite acceptable performance, and for others it is significantly slower.
Becoming stable is not a claim that it is finished, just that the ABI is stable. Those people who don't care about licences are going to continue to use the proprietary driver for the foreseeable future; the announcement is primarily relevant to those of us who do care about licences and appreciate the effort and intelligence that has gone into the nouveau driver.
at least from a corporate point of view, you get what your IT dept buy.
There are lots of other type of users. People designing embedded systems, people maintaining long term projects etc.
The thing we probably don't care about you, since you will just go install the binary driver from nvidia site. Most users probably just want their desktop/laptop to work out of the box.
All absolutely true, but it doesn't address my point. I'm not saying the developers *should* care about people like me, since I *will* just go and install the binary driver from nvidia, at least until nouveau is fully supported. I was more wandering off-topic, because he made a blanket statement, covering everyone. I definitely am NOT better off with an implementation I've deliberately hamstrung, just because it's "free". Fuck free, I want it to work. If it can do both I'm very happy, if it's a choice of one or the other I've nothing against binary blobs.
I'd like to emphasise I'm not having a dig at the developers, what they've achieved, with zero documentation, is extremely impressive and I hope they carry on development. Some day nvidia will cut support for every graphics card they currently make, and on that day we'd be a lot happier with a solid open source driver - all of us with nvidia cards, no matter what they're plugged into and for what purpose.
But claiming that I'll always be better off with an incomplete free implementation is the attitude that's turned open source from a worthwhile endeavour into something edging a religion.
While the WINE project relies on testing windows software to see what windows api calls are being used, and tries to mimic them, the Nouveau project actually knows the entire possibility of what can be sent and what calls are and are not implemented.
I would guess that the Nouveau project will eventually succeed in a very ambitious project. I see no reason to believe that wine will ever succeed, that target keeps moving, and is not easy to define.
Work bio at MMWD
Stable doesn't mean implements all features or supports all versions, it means it won't crash your computer.
What I want is to be able to play video with default drivers that install with the system. A card a few generations old will do this and playing video hasn't been cutting edge performance for a long time.
My needs can be met by intel and ATI cards, now nvidia has joined them. So from my perspective, there is now more competition. For someone whose needs would not be met by these drivers, I can see why they might not be very impressed, but it has changed my buying criteria for my next box, and I am considering getting two more low end boxes soon.
http://marriedmansexlife.com/
Because this driver will continue to be supported for as long as there is interest in it, not just until nVidia decides that it's time for you to buy a new GPU. A few years ago, nVidia released a driver with a remotely exploitable (kernel mode arbitrary code execution) vulnerability. When this was publicly disclosed (about a year after being reported to nVidia), they released a driver update that fixed it, but which didn't provide support for all of the cards that were vulnerable. You had two choices then if you had slightly older hardware: you could run a driver with a known vulnerability, or you could use the VESA driver and have no hardware acceleration at all. Now you'd have a third choice: run a slower driver that is maintained and constantly improving.
I am TheRaven on Soylent News
I bought this laptop about 2 years ago, installed Linux (and the official nVidia drivers), and multiple monitors--one of them sometimes being my 52" TV via HDMI--have "just worked" for me ever since. I applaud these guys, but I'm also a believer in "If it ain't broke, don't fix it". Might give it a burl whenever I get round to a fresh install on this thing, though.
Il n'y a pas de Planet B.
Huh? I've *never* had to do a reboot or to restart X for this. I plug in the 2nd monitor, it gets detected after about 10 seconds and just works after that.
Running OpenSUSE 11.3 with the Desktop kernel/KDE 3.5.10/nVidia drivers here. Did you not install the nVidia config tool or something?
Il n'y a pas de Planet B.
They might go under, they might decide to charge for upgrades or new versions.
A free (AIS) implementation is a defence against those things happening.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
And then there are those that use the least amount of closed source software they can, while still accomplishing the task at hand.
We will re-evaluate if there are some situations that the open source driver may be usable now where it wasn't just a few months ago.
I would expect the days of compiling the nvidia kernel module to be coming to a close in the next couple of years, the driver looks like it might actually be faster than the binary blob when the clock setting issues are figured out.
Work bio at MMWD
Well, if you have hardware which is a few generations old then you generally have 2 choices:
"a driver that works fine if you don't care about performance"
"hardware that doesnt work at all"
Considering that a video card which is a few generations old can still be a useful device for most purposes except gaming, i'd rather use the fully working card i already have than be forced to buy a new one.
Also if your using an old card, you probably aren't concerned with performance.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
What struck me odd was that even the IPW2200 chips have no more official Windows 7 support. Well, the Vista driver works.
I have no problem with the performance of the nouveau drivers, but compared to the proprietary drivers my card (8500 GT) runs quite a bit hotter. So I tend to stick with the proprietary drivers.
If the nouveau devs can address this point, I'd be very content to stick with nouveau.
Maybe even features like KMS might happen now...
No it won't. NVIDIA's actual customers on *Nix are people who don't give a flying fuck about KMS. And no, their actual customers are not Linux "gamers" are desktop cube jockeys.
The early 2000's called and want their joke back. You're trying too hard.
Subject line says it all.
Geology - it's not rocket science; it's rock science
you don't have to reinstall the open source driver with every kernel upgrade.
You don't have to reinstall the Nvidia driver, at least on Fedora with rpmfusion enabled, which is the "easy button" way:
sudo yum install akmod-nvidia
You mean the 3C90x? The situation is even more twisted than what you described. You will find no 32 bit or 64 bit driver for download anywhere for it... BUT, that's not the whole story because there is a driver and you can get it over Microsofts online driver search.... I'm not kidding, in order to get this driver you need to be online already. In my journal I have documented this alongside my ramblings about the fanbois saying 7 has drivers for everything out of the box. Well the 3C90x definitely doesn't, at least not out of the box.
Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
Competition in you main market is an incentive to improve.
Competition in a tiny side market is an incentive to give up and stop wasting resources on it.
I think you should limit your thinking to x86 dimensions.
Exactly! I think that 86 dimensions are enough for anyone.
"A government is a body of people usually -- notably -- ungoverned." -Shepherd Book
Yes, I'd agree with that too. I have some older machines where the blob already does not work because it has not been maintained by Nvidia. Yes, those machines are ready for retirement, but I'll retire them when I'm ready, not when Nvidia decides they are obsolete.
I installed it, but when you enable another monitor or change from "seprate x-screens" to "xcinerama" or change the screen positions nothing changes until a reboot (or an x restart) because it just change the config file.
Maybe SUSE has a newer version or something, all the distros I use are debian based.
null
I've always found the nouveau drivers to provide terrible graphics/screen resolutions and very little in terms of config options. I will give you that they require less setup, but that is usually just because they are default. KMS would be very useful in the official drivers but, good graphics quality is more important.
null
3D desktops were first created on Linux. (admittedly as a proof of concept).
There are quite a few things that are native to Linux that make use of openGL.
3D drivers are more or less a requirement for obscure software like KDE4, and Gnome 3.
I use the nvidia binary blobs, and wind up recompiling the module that loads the blob every few months, I will be happy when I don't have to.
Work bio at MMWD
Agreed.
Seconded.
Nouveau works just fine for KDE4 and Gnome 3 (OpenGL compositing). In fact, Gnome and KDE developers recommend Nouveau as a driver instead of the blob for the DEs.
I agree completely, I couldn't have said that better.
Everyone should care about KMS.
KMS is simply a great advancement for Linux, unless you want to be tweaking your xorg.conf to death. KMS does all the configuration for you, it actually removes the need of having a xorg.conf.
One definition of Moron, would be someone who thinks, "if I dont see a reason for it, there is no reason for it".
nvidia does not apparently want its graphics hardware drivers open sourced. long LONG time ago, they started out open, but then went closed for them.
Somewhere high up in management, there is somewho who believes there is an important business reason for doing this.
If that person, or persons, are still there, they are now faced with the datapoint of, "if we release our closed source drivers on linux... they will get reverse engineered, and our intellectual property will be opened up against our wishes."
Then then becomes a business reason to discontinue linux graphics driver support in the future, depending on whether they are still all cagey and proprietary about their graphics cards.
They probably are.
btw: exactly how many "high end [Irix]" workstations exist in the year 2012???
Really weird rational you are claiming.
Phoronix.com just published an article called "AMD To Drop Radeon HD 2000/3000/4000 Catalyst Support and never mentions software freedom in their article. The proprietor changes but the freedom issues remain the same.
Digital Citizen