Slashdot Mirror


Open nVidia Linux Driver Pledge Nearly Complete

Ciarán Mooney writes to let us know that the Pledgebank drive to raise $10,000 for Project Nouvaeu is almost complete — at this moment it needs only 196 more people to sign up. Project Nouveau aims to provide open source 3D acceleration for nVidia cards. The drive was started by David Nielsen, whose blog explains what he hopes will happen.

47 of 221 comments (clear)

  1. This is a worthy cause by MountainMan101 · · Score: 4, Informative

    With new technology like AIGLX, XGL and XEGL emerging, having open source drivers for 3d cards is very important. Along with the recent R300 work for the ATI cards, this will bring much improved graphics to the Linux Desktop regardless of architecture. I only hope that the ATI X200M card gets open source support soon too (obviously not from nouveau).

    Also Fedora 7 (dure April) intends to include the nouveau drivers - which is great as out-of-the-box Fedora can't include the binary nVidia driver necessary to have AIGLX working.

    And to anyone who thinks this is unnecessary as there is the binary driver - just wait until you card is dropped from the official support and the old driver stops working with some future kernel.

    1. Re:This is a worthy cause by drinkypoo · · Score: 4, Insightful
      With new technology like AIGLX, XGL and XEGL emerging, having open source drivers for 3d cards is very important.

      While I agree with this statement, I think this project is the wrong way to go about it, simply because we do finally have a vendor who has committed to open source driver support: Intel. Now, I will grant you that their cards are slow and crappy but they should be up to the task of accelerating the linux desktop. Also, the current release supports only an integrated video chipset and some older cards... but voting with your dollars is an absolute necessity. For any non-gamer, it should be a sufficiently powerful graphics system, and the G965 Express Chipset supports Core 2 Duo and Pentium D, so you can combine it with very good CPU power. If I were building a system today (aka if I could afford to build a system today) this is the combination I would elect to use.

      But most importantly, we need to monetarily support vendors who give us working hardware with working linux drivers, or even vendors who simply give us enough information to write drivers. This is not ATI or nVidia. This apparently is intel. They're also just about the only vendor providing any useful wifi drivers.

      If we actually spend money to sponsor driver development this will be a clear message to all graphics card manufacturers that we will put up with their bad behavior.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:This is a worthy cause by fangorious · · Score: 2, Informative

      just wait until you card is dropped from the official support and the old driver stops working with some future kernel.

      Open source drivers drop support for devices too. And unless you're a kernel module developer, you're just as much at the mercy of others as you are with a binary driver from the manufacturer.

      Besides, isn't patent licensing part of the reason nVidia and Ati won't release fully OSS drivers? I believe Intel has patents on certain memory bus related technologies which are used by both nVidia and Ati.

    3. Re:This is a worthy cause by chromatic · · Score: 4, Interesting
      Besides, isn't patent licensing part of the reason nVidia and Ati won't release fully OSS drivers?

      I can't see how, unless someone's somehow managed to obtain patents that don't disclose information publicly and, as such, would suffer material harm in disclosing the patented ideas publicly by releasing source code.

      In other words, any vendor that tells you that is lying.

    4. Re:This is a worthy cause by drinkypoo · · Score: 5, Insightful
      Why? How does your spending money to write open source drivers affect nVidia one bit? Why should it even be on their radar?

      This shouldn't be that hard to figure out - apparently even the moderators got it this time. See, corporations only feel hits to the wallet. Most of their feedback comes from sales figures, and if they get less love than their competitor (or simply less love than they expect) they hurt, they know something is wrong. Unfortunately, they don't necessarily know why.

      However, if ATI or nVidia should lose some market share, they will certainly know that it is not because of their lack of linux support, simply because the OSS community is willing to do the work itself. The proof of this principle is that people are willing to spend money to have someone else do their job for them. Simply buying their products is bad enough, but spending MORE money to support them (they benefit from a driver because it can increase sales) is a clear statement that they don't need to develop open source graphics drivers.

      If you really think that this is not on their radar, you are incredibly naive. Linux is the fastest-growing segment in computing, Linux is the only operating system gaining market share in the server space, and Linux is probably the only platform gaining any significant ground in education. Linux will only become more important with time, and Windows less. The change shows every sign of being extremely slow, but that doesn't mean that it's not occurring.

      Finally, if it were so unimportant as to not even be on their radar, they wouldn't even have developed their own Linux drivers, closed and crappy as they may be. (Well, nVidia's work pretty well... too bad about ATI.)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:This is a worthy cause by zcat_NZ · · Score: 5, Insightful

      "isn't patent licensing part of the reason nVidia and Ati won't release fully OSS drivers?"

      One of the possible issues is _lack_ of patent licensing. Nobody really knows what trivial and obvious techniques have been patented by some patent-troll, but as long as the patent troll can't prove nvidia are doing something the troll's patent potentially covers, they have no reason to sue or shake nvidia down for license fees. Open source drivers would feed the trolls.

      --
      455fe10422ca29c4933f95052b792ab2
    6. Re:This is a worthy cause by ReachingFarr · · Score: 2, Insightful

      There is also the possibility that nVidia has licensed some patents for their hardware/drivers and they don't actually have the right to disclose some of the code. If they got patent X from some company, which they incorporate into their binary driver, they couldn't open source their driver without removing that piece of code first. Now this wouldn't be a big deal if we are talking about a single function or a few lines of code, but if, for some reason, they have a lot of licensed code they would have to remove it all and we would be left with a very incomplete OSS project.

    7. Re:This is a worthy cause by cortana · · Score: 5, Informative

      According to NVIDIA, there is no demand at all for free software drivers for NVIDIA hardware.

    8. Re:This is a worthy cause by vandan · · Score: 2, Interesting
      Open source drivers drop support for devices too.

      That's not entirely accurate, and not a fair comparison. When a corporation drops support of their product in a binary-only driver, that's the end of the story. When an open-source driver 'drops' support of a product, what they're doing is failing to maintain support. Other people are free to pick up the slack. If a device was supported by open-source software at one point, getting that support up-to-date is far easier than, say, starting from scratch.

      And unless you're a kernel module developer, you're just as much at the mercy of others as you are with a binary driver from the manufacturer.

      Not really. This story demonstrates that if there is sufficient demand for an open-source driver, it's quite easy to raise enough funds to hire a developer to bring an open-source driver up-to-date ... which again, is a different beast entirely from hiring a developer to start from scratch.

      And unless you're a kernel module developer, you're just as much at the mercy of others as you are with a binary driver from the manufacturer.

      Not at all. There's a big difference between an excuse and the real reasoning here. What nVidia and ATI are basically saying is that they can't give out documentation on programming the hardware ... register details, setting up DMA, basically talking to the card. This is absolute bullshit. They might be right when they say that they can't open-source their software , because, as they say, some of their software ... ie their OpenGL implementation and other tricks, are legally bound. Fair enough. But no-one is asking them to open-source their drivers. We're asking them to release enough information for developers to write their own drivers. There are no legal issues involved here.

      The real reason nVidia and ATI won't release any information for developers is that they see the emergence of high quality, high performance, feature rich, open-source drivers as a threat to their profits. If, for example, Intel can leverage the Xorg / DRI environment ( not to mention developers ), then it means their unit costs are considerably lower than if they have to screw around with writing everything themselves, and sign expensive licensing deals to make use of other people's OpenGL implementation. Intel isn't the only competitor here. Any upstart can make some hardware, hand the open-source community the documentation they need, and guess what ... pretty soon someone has written some drivers for them. And they're fast, feature rich, etc, etc. This is what ATI and nVidia don't want. They have spent millions on their own drivers, and they must protect that investment. There are no legal reasons preventing them from sharing developer documentation with open-source developers.

      I believe Intel has patents on certain memory bus related technologies which are used by both nVidia and Ati.

      Yes, but that patent covers the hardware, not the interface to talk to the hardware.
    9. Re:This is a worthy cause by chromatic · · Score: 2
      Yes, but that patent covers the hardware, not the interface to talk to the hardware.

      Further, that patent is already public information. That's what a patent is.

  2. Excuse me. by RightSaidFred99 · · Score: 2, Interesting
    Seriously - isn't it somewhat silly to undertake a project of this magnitude (and we're talking a _lot_ of magnitude - take for example redoing drivers for new 8800 line) when it could be instantly obsoleted by one phrase from Nvidia: "OK, nevermind, here are the drivers - we changed out mind."

    This sounds, for lack of a better phrase, retarded to me.

    1. Re:Excuse me. by businessnerd · · Score: 2, Informative

      Actually, whether Nouveau successfully releases an open nvidia driver, or nvidia decides to open theirs up, the goal of all of this will have been reached. What the community desperately needs is an open driver for nvidia cards. A large project, like what Nouveau is undertaking, may garner the kind of press necessary to make nvidia change their minds. If nvidia wants any kind of control over what passes as an nvidia driver, it is in their best interests to stop Nouveau by beating them to the punch. You may think that Nouvou had just wasted their time, working on a driver that won't be released, but I see it as Nouveau working on get an open driver released, whether it come from their own developers or nvidia's. It's a win win situation

      --
      "It's not whether you win or lose, it's how drunk you get." -- H. J. Simpson
    2. Re:Excuse me. by Anonymous Coward · · Score: 2, Interesting

      Nvidia has already stated why they can't make their driver open source: their source code is derived from SGI code (and yes, there was a lawsuit). Their settlement effectively bars them from opening their code.

    3. Re:Excuse me. by dinivin · · Score: 2, Interesting

      And SGI has already stated that this isn't true.

    4. Re:Excuse me. by lakeland · · Score: 2, Interesting

      I have to disagree with this.

      Yes, Nvidia has NDAs which would be violated if they turned around tomorrow and released a GPL driver. However, those NDAs were negotiated by Nvidia and it would be trivial for them to be renegotiated. I very much doubt the people who developed the components care either way - as illustrated by how quickly intel was able to open-source their driver.

      I think the "We'd be breaking our supplier agreements" line is nothing more than a red-herring.

    5. Re:Excuse me. by tinkerghost · · Score: 4, Interesting

      They may not be able to release the code to the drivers as they are - they probably do contain patented/licensed trade secret code. However, they certainly can provide basic - non optimized code to allow interfacing with the chipsets. With that as a basis, the OSS community could certainly work out how to optimize the system - alleviating the trade secret issues, though patents might still be a problem. IANAL, but IIRC, the API's can't be patented, just the code behind them. The rational being that the API's just dictate the interface & there is only 1 way to impliment using the interface - as dictated by the API.

    6. Re:Excuse me. by mungtor · · Score: 2, Insightful

      Intel has nothing to lose by open sourcing their drivers because their cards suck. They have no interesting technology in that area and really can only gain some market share among linux users.

      nVidia and ATI drive the entire graphics card market with their competition and neither wants to give away any info by open sourcing a driver to the very small number of people who even care. Even if you had full 3D accelleration on Linux, there are hardly any games to take advantage of it.

      And breaking the supplier agreements is a big deal. Most people here get all bent out of shape when somebody accidentally violates (in their opinion) some obscure and poorly worded clause in the GPL. A license is a license. Either respect all of them or none of them, not just the ones that give you the things you want for free.

  3. What I hope will happen - by D.N. by adisakp · · Score: 3, Funny

    Blog Entry: I hope that a bunch of people on slashdot will give me money. The End.

    1. Re:What I hope will happen - by D.N. by ArsonSmith · · Score: 2, Funny

      Our team of 4 is almost at our goal of $10,000 USD. We only need 196 more $50 pledges.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
  4. What is wrong with the proprietary driver? by mgemmons · · Score: 4, Insightful
    According to the pledgebank website,
    [...]leaving the many users of their videocards on popular UN*X systems such as Linux with only the option of using a 2d only driver or using nvidia' notorious proprietary driver.
    What is wrong with using nVidia's drivers for nVidia's cards? Is there some issue with the nVidia 3D driver implementation that would encourage an open-source reverse-engineering effort? What does "notorious proprietary" mean? I'm all for open-source, but this just seems to be OSFOSS (open-source for open-sources sake).
    1. Re:What is wrong with the proprietary driver? by lolocaust · · Score: 4, Interesting

      If we show that we will accept closed drivers/spec on an open system, we've already lost. Especially with the desktop effects becoming more and more important in modern distros. Also, AFAIK, there are no Nvidia drivers for PPC, and then there are people who could learn about the GPU specifics for the sake of it.

      --
      Why does my post history abruptly stop? I want to laugh at the stupid things I posted as a kid.
    2. Re:What is wrong with the proprietary driver? by the_humeister · · Score: 4, Interesting

      One of the problems is that the drivers are x86 only (although there are old and outdated Itanium drivers). Another issue is obsolete video cards. nVidia could one day stop supporting the TNT or GeForce. What do we do then? If there are no open source drivers, we're SOL on updates. If there are open source drivers, then we can make continued improvements when needed.

      I switched to a FireGL 8700 (R200-based) for this reason (and it was an upgrade from a GeForce FX 5200). With regards to ATI cards, there are usable and stable open source drivers for all R300-based and lower video cards. Additionally, ATI no longer supports R100-based or lower video cards on Linux. Fortunately, the open source drivers are available to pick up the slack.

    3. Re:What is wrong with the proprietary driver? by just_another_sean · · Score: 4, Informative

      Well when I used nVidia's binary driver on Debian Etch I went through two kernel upgrades and each time I rebooted to begin using the new kernel I was greeted by a console prompt instead of an xdm login screen.

      Now for me that wasn't much of a problem. I sighed, logged in as root, found the original installer I downloaded from NVidia, ran it, agreed to the license, pressed continue and was greeted with a message about missing kernel headers. Sighed again, downloaded linux-headers-`uname -r`, reran NVidia installer, etc, etc, ad nauseum every time I update the kernel.

      As I said, I know why and how I do this but not everyone does and the whole point of bringing true open source 3d graphics to the desktop for Linux users is so they don't have to learn how or why they need to do this.

      --
      Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
    4. Re:What is wrong with the proprietary driver? by Bent+Mind · · Score: 3, Insightful

      What is wrong with using nVidia's drivers for nVidia's cards?

      Just a few things off the top of my head...

      nVidia has dropped support for cards older than the GForce4. I have a GForce2 with 64MB and TV tuner that would benefit from this driver.

      A while back I was running Hardened Gentoo. When I asked the maintainer why the nVidia driver was masked (blocked), he replied:

      ... One of the very reasons for using hardened is for increased security protections. The way nvidia wrote the drivers is really crappy as does run time execution. That means it behaves exactly as shellcode does, which is the very thing we are trying to prevent in the first place. Now when that glx (libGL.so) gets installed every single package it that links to it then causes a PaX violation.

      I suggest you email the nvidia vendor and request that they stop taking shortcuts in the driver code and release something that's
      1) PIC proper [no TEXTREL's]
      2) stop using JIT.

      Several projects have worked to create versions of xorg or window managers that take advantage of 3D hardware. However, xorg relies on nVidia's driver (with nVidia hardware) for 3D. That code can't be modified.

      Finally, my understanding is that the nVidia driver only works with x86 hardware. All of my hardware is x86, so I've never verified this.

      --
      Request a Linux Shockwave player here: http://www.macromedia.com/support/email/wishform/
    5. Re:What is wrong with the proprietary driver? by kosmosik · · Score: 2, Insightful

      > What is wrong with using nVidia's drivers for nVidia's cards?

      F.e. they taint the kernel - if things crash (one of my nvidia cards *did* with some Linux kernel version and their binary blobs) you cannot debug and fix it. Hell kernel developers will tell you to go on /dev/tree since they will not waste time on debuging some closed code with their kernel.

      Like it or not this is how Linux philosophy and developement looks - we have (and don't want to) no stable kernel ABI and expect everything (at very least the kernel-space stuff) to be open source. If you don't like it go use like FreeBSD or something.

      > Is there some issue with the nVidia 3D driver implementation
      > that would encourage an open-source reverse-engineering effort?

      Yeah, they are closed, they tie you to one architecture (where are nvidia drivers for PPC?), they break with vesafb and so on. They just limit your freedom. You can imagine situation where you have old nvidia card model FOO but it works for you. Now nvidia decides to cease support for this model in their newest drivers. As kernel developement goes on you will find yourself that newest nvidia binary modules do not support your (perfectly working for you) hardware and the old drivers do not work with new Linux kernels - this limits your freedom in some way.

      I would be very happy to use open source drivers for nvidia cards. Imagine just installing a Linux distro and graphics just work out-of-the box.

      I *do* think nvidia is quite Linux/OpenSource friendly (but actually I run Intel since it works better for me - no hassle - Just Works) but I think at some point they just will have to release specs of hardware or even better open implementation of their drivers - they will be forced to do so by competition.

  5. Great... by Kalriath · · Score: 3, Insightful

    If a manufacturer refuses to help the Linux community by providing drivers, wouldn't it make more sense to simply, oh I don't know, boycott their products?

    Instead someone has the stupid idea to INCREASE nVidia's market share by getting a community nVidia gives the finger to to buy their products.

    Way to encourage companies to support the open source movement... it's basically saying "don't bother writing drivers for Linux, we'll do it at OUR expense!"

    Lunacy of epic proportions.

    --
    For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    1. Re:Great... by Anonymous Coward · · Score: 2, Interesting

      At the moment there seems to be only negative actions to take (ie a boycott of products without OS drivers). Perhaps a positive example where the presence of a fully implemented open source driver creates a competitive advantage for nVidia will push its rivals to release specs and code for OS drivers for their own products. Maybe it won't work out so optimisticly, but at least this project is making an effort to change the status quo.

  6. They don't need money... by Anonymous Coward · · Score: 5, Informative
    http://nouveau.freedesktop.org/wiki/NouveauCompani on_11

    [...] The pledge mentioned is however not supported by our project. We currently don't need any money and the person who set it up is not connected to our project.

    Congratulations to everyone who pledged to throw money at something that doesn't need any.
  7. Re:Huh? by eln · · Score: 4, Insightful

    His blog entry says it's basically a $10,000 "thank you" for taking on the project. Seriously, what? I'm giving someone a big pile of cash to thank them for taking on a project, even when they haven't made any meaningful progress toward completion of that project?

    I hereby announce I will take on the project of solving world hunger. Please give me a giant no-strings-attached donation as a "thank you" for my initiative. I will then make very little progress toward my goal before finally abandoning it as too difficult.

  8. Re:Huh? by Kalriath · · Score: 4, Informative

    The project's official website is even more interesting. It explicitly says they have no affiliation with the pledge drive, and don't need money.

    --
    For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  9. Re:Huh? by Otter · · Score: 5, Informative

    In fairness, the Nouveau guys (Heh, I hadn't grasped the name before but that's fairly clever...) aren't asking for money, say they don't need the $10K and make it clear that they're not expecting to have a reliable driver for the Fedora 7 release. The hype isn't their fault and I look forward to seeing what they come up with.

  10. Open Graphics Project by chill · · Score: 3, Interesting

    Just to bring this back into view...

    http://wiki.duskglow.com/tiki-index.php?page=OGPN1 7&PHPSESSID=629ef486f166fab6ef8951de2a5ae96c

    The Open Graphics Project is making steady progress.

    --
    Learning HOW to think is more important than learning WHAT to think.
  11. Re:Does anybody else not see the huge problems.... by MoralHazard · · Score: 2, Insightful

    if it's not worth $10k to nVidia to open up the source code themselvs, then why should it be that the software shouldn't be worth more than that to develop?

    You misunderstand why NVidia refuses to open their driver code. They're not just being dicks, and they probably aren't too scared to expose their own proprietary technologies, because there ARE benefits to gaining the acceptance of the OSS community that translate directly into more profit.

    The real problem is that NVidia didn't write all of the driver code itself, from scratch. They incorporated copyrighted code licensed from other companies, probably some derivative and some word-for-word. They probably use patented algorithms and technologies, too. Several other companies hold rights over the NVidia source code, in such a way that NVidia can't just release it and contribute it to the Linux kernel without violating its own agreements, or exposing the Linux kernel to litigation.

    (I really wish I had a quote about this, I cannot for the life of me remember where I read it, but I *believe* that an NVidia exec stated as much in a press conference or release. So unless you do your own research, take me with a grain of salt.)

    there's likely to be an inquiry by nVidia, to ensure that it was not inappropriated from them

    I find this highly unlikely. Unless one of the companies holding licenses over NVidia's head assumes that they contributed under the table to the OSS effort, there are no grounds whatsover to assume that code was "inappropriated" (sic). NVidia itself has no interest in preventing the release of an OSS driver--if anything, it will help sell me hardware and drive their market share upward as they become the "OSS-friendly" graphics card company. (That's worth a lot of fanboy forum toadying.)

    NVidia probably could develop a fresh OSS driver for release into the Linux kernel, via the 'clean-room' approach. It would have to hire developers to do it, provide them with enough specs/code to get the job done but NOT provide them with the licensed code or algorithms, and sit back and watch the payroll fly out the door. This would probably cost them a lot more than $10,000, given the complexity of modern GPUs and the relative rarity of the software skills to do this kind of work. But if someone else wants to do it for free, all they'd have to do is stay the hell away and cross their fingers.

  12. Re:Huh? by runderwo · · Score: 2, Informative

    Yes, you are missing something, since you are obviously not following the developer blog: 8 8

  13. Re:Plenty is wrong with the proprietary driver by mandelbr0t · · Score: 2, Interesting

    If nVidia ever decides to drop a piece of hardware and stop compiling a certain driver for newer kernels, then users will either have to upgrade hardware (gee, I wonder if nVidia would have an incentive to make people do that) or else use an old kernel. Ouch!

    More appropriate would be to say "or else use a kernel you don't want to." It's just as much of a nightmare being forced to upgrade your kernel as well. Gaming is very sensitive to kernel version (just read the Cedega release notes re: versions 2.6.9 and 2.6.10). Upgrading from 2.6.15 to 2.6.16 caused some Cedega-supported games to stop working.

    My major issue with the binary driver is security. Because the driver is a kernel module, remote exploits of the NVIDIA driver will hack the kernel every time. Online gaming brings new life to the idea of remotely exploiting the NVIDIA driver, and not having an auditable driver is a big issue. It took them over 2 years to fix a reported, remotely exploitable issue. It's unacceptable to be forced to use such crap. The only other alternative is to use some other crap which suffers from exactly the same problems. I wish something would shake up the 3D market, but somehow I doubt this project is going to unseat NVIDIA. :(

    mandelbr0t
    --
    "Please describe the scientific nature of the 'whammy'" - Agent Scully
  14. Not so much by Sycraft-fu · · Score: 4, Insightful

    Often technologies will have in the license agreement "You can't release this code." You aren't required to like it, but if you sign the contract (and this stuff involves real, paper, signed contracts) you are required to respect it. nVidia and ATi both license a good deal of things for their drivers (S3TC would be an example). They can't just give the finger to these people and do what they want, they'll get sued and they'll lose because there's a contract in place.

  15. nVidia Linux Drivers support x86-64 by spinfire · · Score: 2, Informative

    One of the problems is that the drivers are x86 only (although there are old and outdated Itanium drivers). Another issue is obsolete video cards. nVidia could one day stop supporting the TNT or GeForce. What do we do then? If there are no open source drivers, we're SOL on updates. If there are open source drivers, then we can make continued improvements when needed.

    You are either misinformed or a liar. The nVidia Linux drivers support x86, x86-64, and IA-64 architectures. This is actually one more architecture than they support on Windows (no IA-64 for Windows systems).

    I agree it would be nice to see open source replacements for the nVidia drivers, but please lets not spread or further any FUD about the current closed source drivers. nVidia has done a nice job with the drives. I use them without issue on two different x86-64 machines (one AMD, one Intel).

    1. Re:nVidia Linux Drivers support x86-64 by dinivin · · Score: 2, Informative


      And, in case anyone wants a reference:

      http://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/ enduser/std_adp.php?p_faqid=1971

      Now can we please stop with the BS complaints that nVidia allowed a known security hole to exist in their drivers for two years.

    2. Re:nVidia Linux Drivers support x86-64 by Peter+La+Casse · · Score: 2, Informative
      You are either misinformed or a liar. The nVidia Linux drivers support x86, x86-64, and IA-64 architectures. This is actually one more architecture than they support on Windows (no IA-64 for Windows systems).

      Or simply imprecise. To rephrase your parent poster, "one of the problems is that the drivers support the x86, x86-64, and IA-64 architectures only." People on other architectures are out of luck.

  16. I'll bet you DRM is behind the driver secrecy. by meldroc · · Score: 5, Interesting

    It isn't that NVidia or ATI won't release code. They won't even release hardware specs. There are plenty of kernel and X.org hackers out there who would jump at the chance to write open-source drivers for NVidia and ATI cards. But to do that, you need hardware programming information. You need to know which registers in the cards do what, you need to know what opcodes do what. You need to know what data goes in what registers, or to which addresses, and what data the card sends back, in raw binary. The driver developers don't have this information, and without it, they can't write drivers. NVidia and ATI aren't providing this and won't provide this, citing the need to protect trade secrets. Just to provide the 2-D open-source drivers that X.org does have for NVidia cards, the X.org developers had to run the driver source files through a code mangler that makes those particular .c files look like an entry to the Obfuscated C Contest, or NVidia wouldn't provide enough information to do even 2-D acceleration. The whole point of Nouveau is the laborious process of reverse-engineering NVidia's cards to figure out this information.

    Sure, there may be some secret sauce in there that makes for shinier 3-D graphics at a higher frame rate. But I suspect that shiny graphics aren't on the top of the list of things they're protecting. It's DRM. Macrovision's built into every video card that has a TV output port (so you can't use a VCR and tape a DVD movie.) Soon, HDCP will be built into every new graphics card so you can watch HD-DVD and Blu-Ray movies without being able to exercise Fair Use legally. And very likely, all you have to do to turn off Macrovision and completely piss off the MPAA is flip a single bit in a particular register. And it's likely that if hardware programming information was known about newer cards, cracking HDCP would be trivial.

    That's why we're stuck with proprietary drivers.

    --

    Meldroc, Waster of Electrons
  17. What's In It For Me? by Doc+Ruby · · Score: 2, Interesting

    Will this project produce a driver that will let my Inspiron 8000 offload window rendering from the CPU to the nVidia GPU, so Ubuntu runs faster?

    Or is it just a way to get higher FPS on 3D games running on nVidia HW?

    --

    --
    make install -not war

  18. Exactly by ChunderDownunder · · Score: 4, Interesting

    A similar thing has happened with Java. A few programmers, some employed by RedHat, got together to produce clean-room implementation of the class libraries under the classpath umbrella.

    Outsiders scoffed at the insurmountable task they were undertaking, saying it was a waste of time given Sun's implementation.

    Now, with nothing to lose, Sun is on the verge of releasing Java under the same license that classpath uses!

  19. I don't see how this can work. by sbaker · · Score: 3, Insightful

    nVidia have been very open about the reasons why they can't OpenSource their code - I think we have to take that as a true statement. It's not going to happen - period.

    Can we clone their drivers? Maybe - but it could take years to do that - and no sooner we succeed then we'll discover that there have been four generations of new hardware since we started - and the hardware we can support will be so far behind that very few people will want to use it.

    You *might* be able to do this for a relatively simple peripheral like a WiFi card - but graphics chips are probably the most complex (and least standardized) single chip device in existance. The driver has to contain a full-up compiler for the OpenGL shader language for chrissakes! (And no, you can't use an existing compiler or translate to some other language because this is a language that supports 4-way parallel arithmetic and has the bizarrest optimisation requirements imaginable!)

    This is a massive undertaking. $10,000 doesn't even scratch the surface of the work involved. I seriously doubt that a cash injection of a million dollars would get you a working, useful driver within a couple of years...let alone maintaining it and continually reverse-engineering the next generation of hardware.

    Your driver would probably (by necessity) infringe on a bunch of patents too.

    Whilst I'd REALLY like the peace of mind of knowing that there is a working, efficient and up-to-date-with-modern-hardware OpenSourced driver out there - it's *so* not going to happen. We need to find clean ways to wall off the nVidia driver so that it can function without being a security loophole and so it can survive kernel changes and such.

    --
    www.sjbaker.org
  20. Re:My closed source NVidia driver works fine by frogstar_robot · · Score: 3, Insightful

    I'd rather have closed drivers that work for these devices under Linux than some crappy open source drivers.

    What is wrong with that?


    1. nVidia can change their minds about Linux support at any time.
    2. People may want the hardware to be usable on other arches than i86.
    3. It'd be nice to be able to distribute a complete working nVidia Linux system legally.

    What is wrong with any of that?

  21. Let me start you off... by ratboy666 · · Score: 2, Informative

    10,000 seems like a lot of money. Its not. I expect a driver dev to get $70+ per hour, this pays for 143 hours.

    You are not going to get a driver in that amount of time.

    But, I will give you clues. The nVidia chip is pretty high on the OpenGL stack. The chip itself handles most OpenGL primitive operations. It just won't do contexts (nor will the ATI). I don't know the underlying protocol to communicate with the chip, but I would guess it is packet based. Registers would prove far too slow. I would imagine that for OpenGL, VGA, video, and mode support you are looking at almost a thousand "registers" or eqivalents.

    It may be possible to catch the kernel level packet interfaces -- mode setting and VGA extension should be reversable via emulation. But this won't tell you what any of the commands do. You could try iterating OpenGL and comparing generated packets... but...

    Modern chips typically DON'T implement a fixed-function pipeline. So you will have to figure out how OpenGL shader compiler for the chip works (because you have to know the "machine code").

    Good luck for a 4 week driver project. The shader compiler itself is almost a C++ compiler which has to be reversed, the communications format and the packet streams. I would give 10 man-years as a first estimate.

    Or, you could try to get the vendors to "be nice".

    But I won't do it for 10 grand. Sorry.

    --
    Just another "Cubible(sic) Joe" 2 17 3061
  22. Re:Change the kernel by rdebath · · Score: 2, Interesting
    Their drivers won't be any better, still crash happy, still dangerous.

    BUT, userspace drivers could allow us to kill and restart the driver when it crashes, keep the old slow ABI around so we don't have to bin the working hardware when the maker tells us to and put the driver behind a 'firewall' to prevent it seeing anything that would upset it.

    I can see why they don't want to release the binary interface of the card; it's not like an ethernet card ... "put bytes here and they go on the wire" ... the "interface description" would be a complete description of how the card works and why it works that way. The "driver" and the "chipset" are two interwoven parts of the device. The choice as to which side of the AGP a particular function is executed is not fixed and depends on detailed design choices during the co-development of the driver and the chipset.

    To try and put it clearly this interface is just like the interface between the different phases of GCC; the C-compiler syntax trees are the "interface" between the phases and could be described but it's not a fixed interface. The programs on the sides of the interface share code so that they know what will be sent and how it should work.

    They are stuck here; they cannot release the drivers because of paper contracts; they cannot release the 'interface' because it would require an exact description of the driver to make sense of it; and violate the contract. If they release what they can they're just taking the piss.

    IMO there are two choices that allow both sides to be happy
    1) Usermode drivers
    2) An opensource daughtercard.

    A box for a usermode driver would need care. In some ways a process with a usermode driver would have to be very different (eg control of shared memory in OTHER processes, DMA access to memory). The support for restarting the driver would be very interesting.

    The simple fact is that there is no hard line between 'software' and 'hardware' and if part of the 'hardware' actually runs on the host system I don't see a problem for open source. AS LONG AS the 'hardware' conforms to a published interface specification. There is IMO no difference between comforming to 'Usermode driver Version 1.1' and 'ATI I/O Port Version 12.43832' both have advantages and disadvantages but both are perfectly reasonable.

    The current situation is not reasonable; the kernel interface between the driver and the rest of the kernel is like the GCC example above it's not "Interface version 1.1" it's "The driver module interface for kernel version 2.6.14-ac13" and because these graphic card are designed in part like 'winmodems' (so they can be both cheap and fast) the makers are basically screwed.

    Number (2) would be an expensive little card that basically runs a lightweight version of the driver and means that everything on the host side can be open source and/or firmware blob. It in effect turns a 'winmodem' graphics card into a completely selfcontained one. (ie solve the problem by throwing moeny at it)

    So where's the usermode video driver project?

  23. Re:Change the kernel by Builder · · Score: 2, Insightful

    Ya think? Pity the kernel developers don't.

    Beyond just allowing for better drivers, this would allow other ISVs who write software that interacts with the kernel to better support Linux and thus grow the Linux ecosystem. But making developers lives easier and more fun was apparently more important.

    I've been ranting and railing about the stable API / ABI issue since the new development process was announced. I now have to wait for my distro to stabilise / patch 'their' kernel six ways from Sunday. Even today if you look at the differences between the SLES and RHEL kernels, they are significant, and they are only going to diverge further.

    The new kernel development model encourages, nay, demands fragmentation. Welcome to the Unix wars part deux :(