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 Lord Lode (1290856) on Friday December 11, 2009 @12:53PM (#30403416)

    I'm a Linux user using the official binary NVidia drivers, they work good - very good even, many modern Windows games work in Wine without any performance loss.

    How do the Nouveau Nvidia drivers compare to the official ones? Do they have the same performance, no little annoying bugs or differences, etc...?

    • How do the Nouveau Nvidia drivers compare to the official ones?

      Slower on every machine I've tested.

    • by Meshach (578918)
      I'm curious about this too. I've used the official NVidia driver in Linux for many years and never had a problem. What was the compelling reason to reverse engineer?
      • by binarylarry (1338699) on Friday December 11, 2009 @01:00PM (#30403558)

        The official closed source driver creates a proprietary dependency on an otherwise open OS kernel.

        This irks some free software hippies and it also makes using Nvidia hardware on unsupported hardware platforms more difficult.

        • 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 vadim_t (324782) on Friday December 11, 2009 @01:41PM (#30404244) Homepage

          This irks some free software hippies and it also makes using Nvidia hardware on unsupported hardware platforms more difficult.

          It also irks people who noticed that a huge amount of devices didn't get 64 bit Windows drivers, because it was a lot more profitable to get people to buy new scanners, printers and webcams. Precisely thanks to this I now have a perfectly good color laser printer and scanner that my brother can't use anymore.

          Experience shows that if you trust the manufacturer will release updated drivers when they become needed, you're going to get screwed sooner or later. His new scanner (also made by Canon, guess he doesn't learn) looks nearly identical, and has pretty much the same specs. The only difference is that the light has been replaced with LEDs, but really he didn't gain anything from the new model.

      • by zoward (188110)

        nVidia can arbitrarily stop supporting old graphics cards at any time. ATI did this with my R600-based laptop chipset; the newest ATI Catalyst linux drivers now longer support my two-year-old laptop. Since linux has a smaller user base, it's a "safe" place to cut costs by not having to feature-test against older hardware with every proprietary driver release. Having an open source driver would prevent you from suddenly becoming unable to use your hardware on newer linux releases.

        • Linux developers can arbitrarily stop supporting whatever they damn well don't feel like supporting any longer so they can go program extra functions into their USB foam dart cannon. Just sayin'.
    • 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 socrplayr813 (1372733) on Friday December 11, 2009 @01:10PM (#30403740)

        I've heard some absolutely nightmarish stories about getting ATI cards to work properly in Linux and they haven't gotten much better. In the most recent releases, they may have even gotten worse.

        They might be more Linux-friendly now than they were in the past, but that doesn't make them good. They're certainly nowhere near as Linux-friendly as Nvidia.

        • I have had nothing but trouble with my ATI linux drivers. Granted, it was an older and a mobile card, but it was a pain to get 3D working at all. Actually, not that old - X1400 Mobile, I believe.
        • 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.

        • I'm thinking of going with Intel on my Linux machines from now on. the only problem is that the TV-out on laptops is a crapshoot (at least with some of the older 9xx adapters, in my experience). Apart from the laptop TV-out issues I've only had one Intel adapter not work perfectly right off the bat - on a server running CentOS.
      • Re: (Score:2, Insightful)

        by pantherace (165052)

        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 Tetsujin (103070)

        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.

        For what it's worth: I decided to go the ATI route this time around. I mostly use it for running Blender. I've been pretty happy with it overall - but I wouldn't say I've found the drivers to be particularly more or less troublesome than the NVidia ones.

      • Believe me, I've had nothing but headaches with my Radeon 3650 mobility, and being a laptop, I'll have to live with it.

        But for the foreseeable future, any ATI chip in a laptop is a dealbreaker

    • Re: (Score:3, Interesting)

      by Sir_Lewk (967686)

      As I understand it (I have an ATI card, not an Nvidia), Nouveau currently has 2d hardware support, and 3d support is in progress. Don't expect it to replace the proprietary driver for anything requiring preformance anytime soon, but this is good news for people who dislike the proprietary drivers, and for distros that cannot/willnot ship with them by default.

      • Re: (Score:3, Insightful)

        by Lord Lode (1290856)
        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 +
    • by FauxPasIII (75900)

      I've heard lots of horror stories about the ATI/AMD graphics drivers for Linux (and there are plenty of them in responses to your post), but I'll contribute that I just got a laptop with a FireGL M7740, got "fglrx" out of apt, and everything worked immediately and with good performance. It's a big binary blob, but once you've resigned yourself to that, I don't find it to be any less performant or reliable than the big nVidia binary blob.

    • I'm a Linux user using the official binary NVidia drivers, they work bad - very bad even, they handle suspend/resume and hibernation like a falling egg handles the ground and no combination of settings fixes the horrendous diagonal tearing during video playback.

      How do the Nouveau Nvidia drivers compare to the official ones? Do they actually work, no glitching/freezing issues or other similarities to the official driver, etc...?
  • by Just Some Guy (3352) <kirk+slashdot@strauser.com> on Friday December 11, 2009 @12:56PM (#30403484) Homepage Journal

    My Dell at work has an ATI RV635 card. You know: the one that might, someday, support 3D but hasn't yet in the couple of years it's been out? I switched from Ubuntu Karmic to Fedora Core 12 a couple of weeks ago to see if the experimental drivers worked, but ended up with a non-working X.

    If I want to buy a card that has working accelerated 3D today - not next week, not "maybe if I download a hack from North Korea that might work or might catch fire" - so I can do basic stuff like get smooth compositing in KDE, what should I get? Again, this is going into my computer at work, so $500 gaming cards are right out. I'm positive I can get the hardware guy to order a reasonably priced card for me (and another for himself) if it'll work on Linux, though.

    BTW, let me preemptively say that I'm not gonna Google it. There are 5,000,000 outdated and spurious reports. I'd much rather discuss it with a group of peers than try to decode what some kid in Sri Lanka came up with.

    • > I'd much rather discuss it with a group of peers than try to decode what
      > some kid in Sri Lanka came up with.

      Then why are you asking on Slashdot?

    • by Sir_Lewk (967686) <(moc.liamg) (ta) (kwelris)> 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 gazbo (517111) on Friday December 11, 2009 @01:08PM (#30403690)
      My work laptop has a GeForce 9600M GS (according to lspci) and once I installed the binary driver with a simple `yum install kmod-nvidia` it just worked. Dual screens with different resolutions set up fine with the nvidia utility (don't use the standard Linux display stuff) and performance on compositing is great. Only difference is I'm using Gnome not KDE.

      And I know fuck all about Linux, so it must work easily. I read nvidia cards worked well, and it certainly seemed to go smoother than the Radeon in my old laptop.

    • Re: (Score:2, Informative)

      by diegocg (1680514)

      A motherboard with an integrated intel graphic card. They are not as fast as ATI/Nvidia, but they work great for things like desktop compositting, and the driver is the most complete and stable driver available in the FOSS world.

      • A motherboard with an integrated intel graphic card.

        And my IT department won't mind if I just pop in a new motherboard? :-)

        In truth, no one would care (as long as it worked afterward), but I'd much rather swap in a replacement graphics card.

      • Seconded. In my experience onboard Intel cards have been the least troublesome by a long shot. Usually they work fine with no tweaking, 3D acceleration and all.
    • Re: (Score:3, Insightful)

      by socrplayr813 (1372733)

      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 hea

    • by LWATCDR (28044)

      I have an nVidia card and use the nVidia closed drivers and have no real issues.
      If you are getting a new PC and FOSS purity is important to you then get Intel graphics and you will be good to go.
      I have heard good things about ATI but I have no real experience with them myself..

    • Re: (Score:2, Informative)

      If you're looking for a specific card, this is in my office Dell Optiplex workstation, I think it's an EVGA, it was ~$50 at the time.

      01:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)

      Debian Lenny with nvidia debs from non-free, dual 19 inch DVI monitors
    • by h4rr4r (612664)

      An intel integrated should do the job fine. I have all the wizbang bullshit effects on my dell mini 9 and that has an intel GMA950. I turn them right off an use metacity though.

    • Re: (Score:3, Informative)

      by bfields (66644)

      For composited desktop with all the wobbly windows and such, tuxracer, watching DVD's, etc., the integrated intel chips are more than adequate and have great open-source support (everything except GMA 500 they use in netbooks).

      I'm told they aren't so great for the latest games.

  • by ClosedSource (238333) on Friday December 11, 2009 @01:01PM (#30403592)

    I've often wondered why more reverse engineering isn't done to create Linux drivers rather than just complaining about the manufacturer of the hardware. The only unfortunate thing about this project is that Linux drivers already exist (according to other posts here).

    Wouldn't it be better to reverse-engineer hardware to create Linux drivers that don't exist?

    • Re: (Score:2, Informative)

      Wouldn't it be better to reverse-engineer hardware to create Linux drivers that don't exist?

      That would be way more time-intensive and way harder....

    • by Sir_Lewk (967686) <(moc.liamg) (ta) (kwelris)> 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 skine (1524819)

        Indeed.

        Also, given that >95% of the Linux community contributes no code (or so I've heard), it's not surprising that most people rely on others to get their hardware to work (and work well).

    • Re: (Score:3, Informative)

      by david.given (6740)

      I've often wondered why more reverse engineering isn't done to create Linux drivers rather than just complaining about the manufacturer of the hardware.

      Because these days it's really, really hard.

      A modern graphics card, for example, is actually a complete computer. It's got RAM, a processor, a bunch of peripherals, a complete miniature operating system... and you don't even know what type of processor it is. A lot of peripherals work like this; a wireless card is typically an ARM processor with some RAM attached on one end to the radio and on the other to an I/O controller that talks to the computer.

      So in order to reverse engineer a graphics card you b

      • by RAMMS+EIN (578166) on Friday December 11, 2009 @03:12PM (#30405506) Homepage Journal

        ``A modern graphics card, for example, is actually a complete computer. It's got RAM, a processor, a bunch of peripherals, a complete miniature operating system... and you don't even know what type of processor it is. A lot of peripherals work like this; a wireless card is typically an ARM processor with some RAM attached on one end to the radio and on the other to an I/O controller that talks to the computer.''

        The big difference here is that we usually think of as a computer typically has enough specifications published that you can program them, and there are really just a couple of flavors. By comparison, even though each wireless network card does pretty much the same things as the next one, they are usually programmed completely differently and we're not told how. We have standards and heaps of documentation when it comes to CPUs, but when it comes to graphics accelerators or wireless network cards, it's a mess of undocumented, proprietary, incompatible interfaces.

    • Re: (Score:3, Insightful)

      by myrdos2 (989497)
      Because reverse-engineering is very hard and complaining is very easy.
    • Re: (Score:3, Interesting)

      by gr8_phk (621180)
      The reverse engineering of the nVidia driver took advantage of the close nVidia driver. Because the OS is open, they were able to put in hooks to intercept all data moving between the computer and the card. They can even monitor communication during specific rendering events. While it's an enormous amount of effort for a video card, it pales in comparison to trying to figure out how even a simple device works with no documentation and no existing way to manipulate it. In other words, the existence of the cl
    • 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 Corporate Troll (537873) on Friday December 11, 2009 @01:04PM (#30403622) Homepage Journal
    DRM in this context means Direct Rendering Manager [wikipedia.org] and not Digital Rights Management [wikipedia.org]
    • by cptdondo (59460)

      And I really, really wish they'd change that. It's really confusing. Especially since a big chunk of D[igital] R[ights] M[anagement] seems to be preventing the dreaded video analog hole.

      • by tepples (727027)
        Nothing can stop the analog hole for noninteractive video. It is always possible to camcord the screen, and an MPAA representative actually recommended it [arstechnica.com]. The only surefire way to plug the analog hole is to make video games instead of movies.
    • Re: (Score:3, Informative)

      by Again (1351325)

      DRM in this context means Direct Rendering Manager [wikipedia.org] and not Digital Rights Management [wikipedia.org]

      Thanks. I was reading through the comments looking for the usual DRM rants.

  • monolithic kernel (Score:2, Insightful)

    by Icegryphon (715550)
    monolithic kernel is monolithic!
    Soon 2.6 will have support for the kitchen sink!
    • Re: (Score:2, Insightful)

      by Anonymous Coward

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

  • 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 gr8_phk (621180) on Friday December 11, 2009 @03:29PM (#30405716)
      A number of reverse engineering tools were developed for the Nouveau effort. Some of that can be used for similar efforts with other hardware. Most of that can be used should a new graphics driver architecture come out of nVidia. I have often wonder how long it will take if the Nouveau status matrix gets a new column, for that new generation of card to get support. It's been like 3 years for all the existing ones.
    • Re: (Score:3, Insightful)

      by Lemming Mark (849014)

      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.

  • What about BSD? (Score:2, Interesting)

    by rhavenn (97211)

    So, currently there is an issue with xorg 7.5 being imported into FreeBSD due very Linux specific driver "hacks", specifically in the latest Intel drivers and the ATI radeon drivers. Is this the same issue? Will this Nouveau driver work on anything else or is "open source" becoming synonymous with "if it runs on Linux, that's good enough". Linux has achieved great strides, but far too many "open source" developers target Linux only and have blinders on to any other open source OS or UNIX'esque OS where this

  • If Linux has free alternatives to nvidia drivers and I don't use nvidia drivers, then I should get a discount on my next purchase of an nvidia card since part of that cost goes into development of the drivers.

    • by Sir_Lewk (967686)

      If I buy a car, then paint it myself, do I get a discount on the car since some of the cost payed for painting it originally?

      I mean, give me a break, I'm probably considered huge FOSS appologist and proprietary software hater, but even I think that is stupid.

  • 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.

Time sharing: The use of many people by the computer.

Working...