Forgot your password?
typodupeerror
Graphics Linux

Nouveau NVIDIA Driver To Enter Linux 2.6.33 Kernel 289

Posted by kdawson
from the no-excuses dept.
An anonymous reader writes "Not only is DRBD to be included in the Linux 2.6.33 kernel, but so is the Nouveau driver. The Nouveau driver is the free software driver that was created by clean-room reverse engineering NVIDIA's binary Linux driver. It has been in development for several years with 2D, 3D, and video support. The DRM component is set to enter the Linux 2.6.33 kernel as a staging driver. This is coming as a surprise move after yesterday Linus began ranting over Red Hat not upstreaming Nouveau and then Red Hat attributing this delay to microcode issues. The microcode issue is temporarily worked around by removing it from the driver itself and using the kernel's firmware loader to insert this potentially copyrighted work instead."
This discussion has been archived. No new comments can be posted.

Nouveau NVIDIA Driver To Enter Linux 2.6.33 Kernel

Comments Filter:
  • by Wonko the Sane (25252) * on Friday December 11, 2009 @12:50PM (#30403370) Journal

    Because Nouveau works on a more architectures than Windows has ever been ported to.

  • by Anonymous Coward on Friday December 11, 2009 @12:55PM (#30403472)

    And it will suck major ass in comparison to nvidia's.

  • by Idiot with a gun (1081749) on Friday December 11, 2009 @12:57PM (#30403510)
    I'll agree with you, they work good, when they work. The problem with the official drivers is that they're a binary blob, thus most distributions (none I've ever seen) ship with them enabled. This is an issue if the default nv driver crashes your machine. Because of this, I'm going with ATI next time, I've heard they're way more Linux friendly now.
  • by rumith (983060) on Friday December 11, 2009 @12:57PM (#30403516)
    Now if NVidia cards would work on those architectures, too :-)
  • by Sir_Lewk (967686) <sirlewk&gmail,com> on Friday December 11, 2009 @01:04PM (#30403628)

    If you need/want to use a Free driver, get an older ATI card. I have a card in the R500 series and the Free 'radeon' driver works wonderfully for what I ask from it (urban terror and mplayer). Anything up to the R500's have good support atm, the R600/700 support is getting there...

    If you don't care about that, get an Nvidia card and use the non-Free driver. This option will also get you the best preformance.

  • by Lord Lode (1290856) on Friday December 11, 2009 @01:06PM (#30403666)
    Hardware video card support is pretty darn important these days, especially with more and more calculations (even not graphics related) being possible on the GPU and non-game applications using 3D acceleration to render 2D things faster, so I really, really, hope that Linux (and the free software in general) will have a good solution to run stuff on any GPU as good as it can run stuff on a CPU right now, because otherwise it'll lag behind and prevent applications that use that instead of the classical CPU + software rendered 2D graphics combination.
  • by icebraining (1313345) on Friday December 11, 2009 @01:07PM (#30403682) Homepage

    Most people don't care about /. either, and here we are.

  • by Just Some Guy (3352) <kirk+slashdot@strauser.com> on Friday December 11, 2009 @01:08PM (#30403698) Homepage Journal

    "Peer" doesn't mean "infallible expert", or at least not among my peer group.

  • monolithic kernel (Score:2, Insightful)

    by Icegryphon (715550) on Friday December 11, 2009 @01:08PM (#30403700)
    monolithic kernel is monolithic!
    Soon 2.6 will have support for the kitchen sink!
  • by OzPeter (195038) on Friday December 11, 2009 @01:09PM (#30403708)
    Reverse engineering a complete video driver is an impressive feat. However it is a reactive process and not a proactive process. Presumably when NVidia changes their driver architecture (to suit future hardware) won't this all have to be done over from scratch?
  • by Sir_Lewk (967686) <sirlewk&gmail,com> on Friday December 11, 2009 @01:12PM (#30403782)

    Video drivers are generally considered the thing most lacking in linux. Last I heard/tried, USB wifi cards are a nightmare, but besides those, most high-profile hardware is pretty well supported. You'll always find the odd usb controlled nerf gun turret or whatnot that lacks a driver, but that's not really an issue for most people.

    Furthermore, it is in error to think that people reverse engineering video cards would otherwise spend their time reverse engineering other hardware. These people do not necessarily specialize in other sorts of hardware. In linux, more people working on A does not really mean less people work on B. It's not like there is a manager at the top assigning and moving people around from task to task.

  • by mellon (7048) on Friday December 11, 2009 @01:16PM (#30403826) Homepage

    He's forcing the point. If you are the one upon whom the point is being forced, I guess you could see it in the way you've described, but it's just a tactic for making the right thing happen. To the extent that you can say anything is his job, this is his job. Linux wouldn't be where it is today, for better or for worse, without Linus being the benevolent tyrant.

  • But tyrant still. (Score:0, Insightful)

    by Anonymous Coward on Friday December 11, 2009 @01:19PM (#30403852)

    But a tyrant still.

    And not always benevolent (cf BK vs Tridge).

  • by socrplayr813 (1372733) on Friday December 11, 2009 @01:21PM (#30403898)

    If you're against closed drivers, all I will say is good luck.

    If you're okay with using proprietary drivers, any Nvidia card should work fine. If you don't need fancy games or similar, the run-of-the-mill $50 cards will be plenty.

    I know anecdotes are not evidence, but I haven't had any issues in the last 2 years or so getting Nvidia cards to work on my personal computers (three separate machines). My one ATI machine though, still barely manages 2d and crashes if I install the proprietary driver. I've heard and read many similar stories.

  • by pantherace (165052) on Friday December 11, 2009 @01:26PM (#30403976)

    None ship them enabled because nvidia doesn't let them by default.* I think at least one distro has distributed them (Mandrake) possibly in one of their pay products. Most have an option to download them after install. (Kubuntu, Gentoo being the last two I checked, though you could argue that's still in the install for gentoo.)

    Frankly, I think you'll be disappointed in the support ATI on Linux has.

    *I just looked, and they now allow it, provided nothing is modified. They didn't last time I looked.

  • by Al Dimond (792444) on Friday December 11, 2009 @01:31PM (#30404060) Journal

    Because it's in the kernel of their operating system. Because the fact that the driver is not Libre prevents other desktop-related stuff from working because the one vendor doesn't care and nobody else can fix it. Here's an example:

    Using the gratis ATI driver, running two X servers on the card crashes the driver and leaves X and the card in an unusable state (you have to ssh into the box to reboot it cleanly). This has apparently been a bug in the ATI driver for ages. And because multiple X servers are used to implement "fast user switching", ATI's crap driver blocks fast user switching.

    This sort of bug would be fixed in a libre driver. It's 100% reproducible, incredibly annoying, and affects a feature in desktop environments with millions of users and thousands of developers. If I had the source code to ATI's driver I could probably fix this bug. But ATI doesn't care.

    It's impossible for the Linux kernel team and X.org to design interfaces and a good model for how kernel drivers should interact with userspace X drivers to provide rendering in a way that fits in with X's model when the two biggest GPU makers will just ignore it, write their own kernel modules and their own interfaces. With a Libre driver new X.org standards and interfaces would be adopted much quicker and the drivers would fit into the system better. Nvidia and ATI care about this for Windows (to some degree) and so their drivers fit well there. On Linux they don't. But lots of other people do care, and non-Libre drivers prevent them from doing anything about it.

  • by LOLLinux (1682094) on Friday December 11, 2009 @01:33PM (#30404086)

    The people who are using nvidia's driver obviously care about 3d performance otherwise they'd already be using the open source driver with 2d support. Also, I doubt nouveau has the hardware accelerated playback of mpeg-2, vc-1 and h.264 like the closed drivers.

  • by LOLLinux (1682094) on Friday December 11, 2009 @01:34PM (#30404106)

    or 2D it's already better.

    Do you have any benchmarks that aren't 2+ years old and were comparing nouveau to the ancient NV drivers?

  • by Anonymous Coward on Friday December 11, 2009 @01:37PM (#30404154)

    You clearly know nothing about writing drivers, let alone video drivers, for Windows.

    Windows video drivers do not "generally include kernel components". That's complete bullshit. The driver itself can be considered a "kernel component". But otherwise, any Windows graphics driver just implements a certain well-defined interface, and only calls certain well-defined kernel functions.

    There is nothing technical stopping the Linux kernel, the FreeBSD kernel, the Solaris kernel, the Mac OS X kernel, and whatever other popular x86 or x64 operating system you use from implementing similar interfaces. Many of the functions would just need to be stubs that do nothing.

    And "virtualization" does not mean what you think it means. There is absolutely no need to modify the machine code of the graphics drivers, let alone fake the hardware underneath it using software.

    Any restrictions would likely be imposed by licensing and ideology, rather than any technical obstacles.

    Please refrain from spouting out your pure bullshit in the future. Or at least try to write a Windows graphics driver before you pretend to know anything about them.

  • by LOLLinux (1682094) on Friday December 11, 2009 @01:38PM (#30404186)

    Do you think any end user cares? The nvidia binary driver provides hardware accelerated playback of all high-def formats. The open source one doesn't. That's all that matters.

  • by Minwee (522556) <dcr@neverwhen.org> on Friday December 11, 2009 @01:39PM (#30404196) Homepage

    It also causes my Inspiron 8200 to crash hard when I try to use ACPI functions. Nvidia has expressed no interest in fixing this bug and that pushes it from "mildly unacceptable to free software hippies and people with obscure unsupported hardware" to "completely useless crap masquerading as software".

    I'm not bitter about it but it's a good example of a problem which could easily be fixed in open source software, but can't even be touched in something as closed as the nvidia video driver.

  • by Anonymous Coward on Friday December 11, 2009 @01:42PM (#30404262)

    What the hell does FPS (in all cases well above typical 50-100Hz display rates anyway) of a 3D program (glxgears) have to do with jitter and tear free 2D? Not a whole lot, that's what.

  • by Anonymous Coward on Friday December 11, 2009 @01:43PM (#30404290)

    Yes indeed. Years of dissing Windows for integrating the graphics drivers into the kernel, and what does Linux do ...

  • Linus in a snit (Score:2, Insightful)

    by Anonymous Coward on Friday December 11, 2009 @01:50PM (#30404372)

    Reading Linus' remarks, I can't help but think what a childish, whinging prat he is. He makes Theo look calm, cool, and collected.

  • by Anonymous Coward on Friday December 11, 2009 @01:57PM (#30404470)

    Being open source does not make it automatically not crap. I suspect it will always be far more unstable for 3D applications. As it is now it can't even handle Blender without crashing, and that's an immediate-mode app that isn't exactly using esoteric extensions.

  • I have had more luck now that the Open Source ATI driver added 3D accel support for my card. The official ATI drivers suck badly with barley working 32 bit drivers and mostly useless 64 bit support. The open source drivers actually make me like using my Dell Vostro again and it's actually to a point where I would rather use ATI than NVIDIA.

  • by RMingin (985478) on Friday December 11, 2009 @02:10PM (#30404634) Homepage

    Ok, I may be dating myself here, but way back in 2000 we were telling people in the Nvidia support channel that GLXGEARS IS NOT A BENCHMARK. Nvidia spent a LOT of time over the years putting absurd amounts of time into over-optimizing the performance of that small snippet of code, and a few others, simply because they noticed that certain clueless noobs were using it as a performance metric.

    The ONLY purpose of glxgears as it was designed is to indicate if software or hardware acceleration of 3D was happening. It's now useless for that even, since CPUs have become fast enough to crank out absurd FPS numbers as well.

  • by myrdos2 (989497) on Friday December 11, 2009 @02:49PM (#30405224)
    Because reverse-engineering is very hard and complaining is very easy.
  • by Minwee (522556) <dcr@neverwhen.org> on Friday December 11, 2009 @03:39PM (#30405846) Homepage

    So because the ACPI is a little buggy the software is complete crap? Never mind every other feature that the software has.

    Here is a lovely pastry. It was made with the finest butter, the flour was hand ground by monks, and it is served with cream and tiny bits of shaved chocolate.

    Oh, and it is also covered with sprinkles of bacillus anthracis which will cause you to die in agony after you eat it. But just look at all the other wonderful features it has!

    Don't you want to eat it? Sure the antrax does pose a teeny tiny little problem, but maybe you could just eat a little bit of it.

    (Or do we need a car analogy to explain the problem here?)

  • by Lemming Mark (849014) on Friday December 11, 2009 @04:50PM (#30406720) Homepage

    This is good stuff, I think. They're not going to shove the whole Nouveau device driver into the kernel, it'll follow the modern X.org / Linux model of having kernel modesetting and a DRM driver in the kernel and a whole load of other stuff living in userspace.

    Kernel modesetting (KMS) means that one entity, the kernel, always controls what graphics mode the video card is in. That's useful because pre-KMS, X.org might have changed the mode *without the kernel knowing*. That's one reason Linux can't easily have a Blue Screen Of Death - the kernel doesn't know what it can send to the graphics card to display it. BSOD isn't a feature you want to *see* but if you have a kernel panic, it'd be a lot more useful to actually see it, rather than it being hidden by your frozen X server! I'm not aware of graphical kernel panics currently being supported but at least it could be done in principle now, AIUI. KMS also reduces unnecessary modeswitching "to make sure" that you otherwise get, so switching between console and X should be quicker, as should switching between X sessions (fast user switching). KMS is also what's used by the new bootsplashes, like RedHat's Plymouth (which other distros, e.g. Mandriva) are also moving towards. DRM, in this context, is the Direct Rendering Manager and is how GL apps get direct rendering access to the graphics card, in a controlled way. I don't know so much about that though ;-)

    The Nvidia open source driver "nv" doesn't support KMS or any 3D. The Nvidia proprietary driver doesn't support KMS but does support 3D (with good performance). Many distros have tended to use nv by default, some do ship nvidia though. Either way, you don't get the nice boot splash and neater terminal switching that a KMS driver would get you. The Nvidia proprietary driver is good performance-wise but it also tends to lag the open source drivers in terms of features a little; I think Nouveau (at one point? may not still be true) was aiming to support Xrandr features that Nvidia's did not. I've also heard that Nvidia's driver has issues with suspend.

    Because of all this, expanding Nouveau support is a good thing. Nouveau are also in the process of reverse engineering for 3D support but they have some way to go. However, I've had the impression that it's getting towards being better than the 2D-only nv driver. So at *least* it will mean that when installing on your system you can expect a decent boot experience and correctly-working basic 2D graphics, with suspend/resume behaving sensible, etc. So it could be making life better for users *soon*. But as 3D support improves, things should get better still.

    The Linux kernel devs generally take a stance these days that all kernel code ought to be merged into Linus's tree as soon as possible. It's really rather impressive to see this process working and the kernel devs (mostly) really following through on this.

  • Welcome new comer! (Score:4, Insightful)

    by msimm (580077) on Friday December 11, 2009 @05:08PM (#30406952) Homepage
    I love posts like this because it demonstrates a dramatic (and frequent) misunderstanding. The idea seems to be (and I don't mean to fault anyone for this) that there's a great big general pool of Linux/driver developers that get together and decide what to do. We regularly see suggestions (like the one above) directed at how to make better use of this imaginary pool.

    But the truth is much of what gets done in terms of development is done by people like yourself, with interests of their own and probably more frequently then you imagine, on their own time. So while the project might not make sense to every possible user, particularly in the terms of some great imaginary directed labor pool, like many open source projects it's intended to scratch the developers own particular itch. And I don't know about you, but when I sit down to program in my free time I like to do something that I'm personally (preferably even passionately) interested in.
  • by Lemming Mark (849014) on Friday December 11, 2009 @06:15PM (#30407706) Homepage

    I'd have said the hardest part is reverse engineering how to talk to the hardware. If new hardware comes out they'll have to reverse engineer the new features / changes in that but they shouldn't have to start again from scratch.

  • by martin-boundary (547041) on Friday December 11, 2009 @09:40PM (#30409664)
    You've actually got it backwards, this is indeed proactive. With an open source driver, whenever the Linux kernel (or Xorg etc) changes, the driver can be modified to still work. With a closed source driver, if change happens, your driver is effectively bricked. The problem is that Nvidia isn't here for the longhaul, at least nowhere near as long as open source.

    There are many reasons why Nvidia might stop updating a driver for a particular card: they might go out of business, they might refuse to support obsolete cards that they no longer sell, etc. So over time, even if you still own their hardware, it will stop working at full potential (or at all) with the latest Linux. You'd need to download a newer driver, and if that's no option, you'd need to buy youself a new card, or you'd need to refuse to upgrade your Linux etc.

    If you expect your hardware to always work with Linux, then with closed source you need Nvidia to react to all changes that may happen to keep your card working, whereas with an open source driver there's potentially millions of people who can be persuaded to keep your card working.

Often statistics are used as a drunken man uses lampposts -- for support rather than illumination.

Working...