Posted
by
timothy
on Wednesday February 17, 2010 @06:43PM
from the oh-that's-nouveau-riche dept.

An anonymous reader writes "Red Hat has already been using the Nouveau X.Org driver in Fedora for providing display and 2D support, but with their next release (Fedora 13) they will be making open-source 3D acceleration readily available to those using Nvidia graphics cards. Red Hat has packaged the Nouveau 3D driver in Fedora 13 and what makes it interesting — besides being an open source 3D driver that was written by the community by reverse engineering Nvidia's closed-source driver — is that it's one of the first drivers to use the Gallium3D driver interface. Phoronix has tested out this Gallium3D driver for Nvidia GPUs in a Fedora 13 daily build and found it to run with a variety of OpenGL games, with benchmarks being included that compare it to Nvidia's official driver. The performance is far from being on the same stage as Nvidia's official Unix driver."

I know it's not a professional project, nor built on any real technical documentation, but I hardly think that an OS should be distributed with a driver that gets 32fps running Quake 3 on a Geforce 9. Can anyone tell me: better or worse performance than using a 3dfx card under Linux?

If you have to choose between shipping an open source driver that only does 2d, and an open source driver that does 2d well and 3d poorly which would you choose? People still have the choice to install the official Nvidia driver that they've always had. So this is a good step forward. If it's enough for Compiz, and can do kernel mode setting (which Nvidia's driver won't do), then it'll please a lot of people.

I am one of those people and I'm very pleased with nouveau. I don't run games on linux very much (outside of teg and dosbox) but I would like KMS and a bling desktop. I get both of these on my 8800gt with a free driver which is now just a kernel option away! Nouveau FTW!

So? The NVidia driver doesn't support xrandr. I know it's only a professional project, but I hardly thing that a company should distribute a driver which can't even change screen resolution using the standard tools.

False. It doesn't support KMS (Kernel Mode Setting) so you have to set the video mode after the kernel has posted. Meaning you don't get a seamless boot display, boo hoo. I have a GTS 240 which AFAIK is not supported by any driver (that may have changed in the last five weeks, where I've not been at that computer, because I've not been in that country) and xrandr works fine on it with the driver I'm using.

Now on the other hand, xrandr isn't working on my EEE 701 with Jolicloud Linux (aka a somewhat fucked-o

Reminds me of a news story that came out when Robert Goddard was testing his early liquid-fuel rockets. He told an ass-hat reporter that rockets like his would one day reach the moon and the headline the next day after an unsuccessful test was "Goddard misses moon by only 250,000 miles".

I don't think he was saying the driver was a waste of time, I think he was saying that it was a waste to distribute it with Fedora right now.

I mean I don't think Firefox was a waste of time, I use it currently, in fact. However I think it would have been a waste to ship a 0.1 version with an OS that didn't work as well as other browser choices.

Remember that not everyone has an "OSS at any cost!" mentality. Some people use Linux for pragmatic reasons, not for ideological ones.

You're exactly correct. I won't use closed software unless absolutely unavoidable because it's the least pragmatic solution. When you don't "own" the code running on your system, you're at the mercy of someone else.

I had a FreeBSD desktop with a GeForce 4 AGP card. Just before the buffer overflow vulnerability [vuxml.org] was found that made it possible to crack a display using the closed NVidia drivers just by displaying an appropriately-formatted image, NVidia dropped support for the GeForce 4 series from their new d

Microsoft doesn't ship with any drivers they created with GForce9 cards. Should they stop shipping today, or should they recall (like Toyota) all the software they made and dont' ship again till all the problems are fixed? Why do people assume that microsoft makes all the software they make (instead of getting all their software made by other people). We won't even start to talk about reverse engineering and an utter derth of technical documentation. You reverse something as technical as a whole family

clearly your post was a joke, but a serious answer to your question would be
Linux Device Drivers:
http://lwn.net/Kernel/LDD3/ [lwn.net]
Understanding the linux kernel:
http://oreilly.com/catalog/9780596000028 [oreilly.com]
I found both books fantastic and well worth a read, they will take you from knowing C to developing drivers for the linux kernel.

Not necessarily. Ever said "when I grow up I wanna..." without a clue as to what it would take? You still have that option as a grownup, with perhaps a better chance of making it since you make your own decisions:)

Also probably worth a read is some operating system design stuff. I'm not sure how much of it is covered in the suggested books (they're both on my reading list) so it might be redundant, but driver land is full of things like synchronization (semaphores/mutexes/locks etc), memory management issues (depending on the interrupt level you may not be able to access data on other memory pages because you are at a higher level of priority than the VMM), interrupts and interrupt levels etc. etc.

Toaster is the classic sample code used when learning the Windows Driver Model (WDM). The vast majority of Windows drivers were probably built on top of the Toaster sample. My comment is supposed to be silly because you can't use a WDM in Linux.

Uh, the device driver is supposed to act as the implementation between the interface of the hardware and the interface of the data communication layer. Any software layers above aren't supposed to see any difference between a ATM network and an Ethernet or Token Ring network. All they need to know is the function calls to send a block of data to a specified network address, read back blocks of data representing addressed data packets, set various settings and read back statistics.

Writing graphics card drivers is a way to get closer to the hardware. They have many interesting gadgets (like PLLs) that give a taste of interfacing with a real world.

For 3d drivers, I recommend reading a book on OpenGL, downloading Noveau code and reading it. Lurk on the mailing list for a few weeks and then ask developers for a simple task to help with.
Test with your applications and report bugs with as much information as possible. Try fixing the bugs yourself.

I remember at Intel those silly locked up books detailing the trade secrets. We have constrained bits flying through constrained hardware to make a game. Anyone looking in from the outside will wonder what game we are all playing for this state of affairs!

I don't think we'll get either religion or IP out of the way before the Singularity hits anyway.

I'm actually pretty impressed, I didn't expect they'd be this successful getting a development community and a working driver going. I'm curious as to the stability, I noticed there was one issue with the fonts in the review. Personally stability would be the big selling point for me, I've had issues with the proprietary drivers in the past and it would be great if there was a highly dependable open source driver I could count on.

On a related topic does anyone know the state of the open source ATI driver? I saw a phoronix article claiming it was more popular than the proprietary one [phoronix.com] but other than that I don't know what it has for performance or features. It would be interesting to compare since the ATI made the specs available.

It depends on what ATI card you have, recently I bought a motherboard (ASUS M4A78-EM - Phenom II) with an integrated HR3200, I can tell you that all 3 ATI drivers perform bad.The driver that runs best (better said least bad) on it is the 2D only ATI driver, the RadeonHD driver does not run at all and the FireGL (proprietary) crashes all the time and does not run 3D either.I had to get my old Nvidea 6600 out of the closet (with which I did not yet try Nouveau), it does run 3D and GL without any trouble and r

On a related topic does anyone know the state of the open source ATI driver?

As of about a week ago, FreeBSD imported versions of Mesa3D, libdrm, and RadeonHD drivers recent enough to enable 3D on my Radeon 3600. This is on a work desktop so I haven't tried many games on it, but KDE's compositing works perfectly for me as of today. I can only assume it would work as well on Linux.

Yes, reverse-engineering a driver *is* expensive, but when you compare it to the man-years of labor Red Hat has spent due to the binary blob writing random crap all over physical memory causing weird crashes, or merely investigating the possibility of the binary blob writing random crap all over physical memory for any given crash, it suddenly makes a lot of sense. Sure, the Nvidia driver is fast, but it's written with the philosophy that it's more important to be fast than correct, to the point where they

They are still early into Step 2. Checking the site and status details out, I can't understand how this is ready for Prime Time. Most cards don't work, many essential features are just plain not implemented...

as a fedora user since the redhat days, I can honestly say one of the only retarded things they've done is replace pidgin with empathy, empathy is nowhere near as mature and feature complete and it was only even suggested because of the lack of webcam in pidgin which has now been resolved anyway.

With that said, the news was not that they were going to make the nvidia driver fail, but that they would include the nouveau driver.

fedora has had nouveau for at least two release cycles now (over a year) don't think you get just how bleeding edge it is (always works for me though at least), the news is that they are enabling 3d support as opposed to just 2d in the driver.

Reverse engineering of hardware interfaces involves running usb, i2c, pci monitoring software to watch to see what hardware memory and registers are being changed. From this, it is possible to write an equivalent driver.

Doesn't Nvidia do some memory mapping voodoo with virtual memory mapping to speed up context switching?

And what happens if tomorrow Nvidia decides it doesn't want to provide those drivers any more and removes all but the latest cards drivers? You can't distribute their binary drivers without their permission (and they don't give it btw). The problem with not using FOSS software is that if the commercial vendor decides to stop selling it there is nothing you can do about it other than offer them lots of money and hope they change their mind. Take windows XP, the day Microsoft decides to stop selling it you wo

actually you can get copies of every MS product right back to DOS 3 via technet.

Technet is not a retail channel for typical consumers to get a single product. Also, the older products aren't supported and generally don't work on the new hardware around today.

because some FOSS project is FAR FAR more likely to stop producing updates and go offline (because they got a life/job/girlfriend) then a company like MS or nvidia which has actual funding

NVIDIA has already shown [nvidia.com] they are willing to drop driver support for their products when they aren't interested anymore. And it's not just about the risk of if they will stop support, you also need to factor in the damage done - we don't have the option to fix the proprietary stuff ourselves even if we wanted to, but we could fix the abandoned FOSS stuff if we considered it worthwhile.

actually you can get copies of every MS product right back to DOS 3 via technet.

Technet subscriptions allow for testing not use. Personal or commercial use (outside as I said testing) of MSDOS from technet is a violation of your license agreement with Microsoft. Not only that but you obviously don't have a technet subscription (I do) as you would know that MSDOS 6.22 is the only DOS available via technet, in addition windows 95 and 98 aren't available via technet. Regardless of being able to acquire it you can't legally run it unless you can purchase a retail used copy. Those sources rapidly dwindle. In fact many commercial software packages have completely disappeared and software drivers for newer versions of software like windows are frequently not available. HP and Creative are prime examples of companies that simply don't provide drivers and force you to purchase newer hardware. It's not unreasonable to assume that at some future date Nvidia may decide to do the same, in fact something as simple as a change in management could cause it.

your whole premise is a big fail, because some FOSS project is FAR FAR more likely to stop producing updates and go offline (because they got a life/job/girlfriend) then a company like MS or nvidia which has actual funding. I'll say it again, your assumption is stupid and irrational and you've got nothing to back it up.

Your belief and assertion that the Linux kernel (after all the entire article is about FOSS drivers for Nvidia cards for the Linux Kernel) is more likely to be abandoned than Nvidia's production of drivers for Legacy hardware is laughably stupid. Such a statement is the height of folly and irrationality and frankly makes you look like an idiot in need of professional help. The Linux Kernel is supported by far more companies with far more resources (apparently the basis of your argument) and in fact was developed even without those resources. It's use in everything from MP3 players to televisions to large mainframe computers and it's nearly 25% market share in all computers guarantees it will survive far longer than Nvidia ever will. Working to develop FOSS drivers for nVidia hardware so future Linux kernels can use such hardware is only logical.

There is no doubt in my mind that at some point in the future nvidia will abandon production of drivers for legacy hardware. It will likely come in a few short years as then current hardware begins to differ so substantially from the legacy hardware as to make driver production excessively costly. Up until the Fermi architecture, even 10 year old hardware still functioned substantially similar to legacy hardware. That advantage will fade very rapidly as the processors nvidia produces move towards general use and likely in a few short years they will abandon legacy hardware as driver production costs escalate. To do otherwise would likely elicit a shareholder lawsuit.

I don't expect any of this to convince you of course, in fact I expect a reply with more silly childish aggressiveness probably with some name calling. With that in mind lets deal with the only premise here is your original assertion and give you an avenue to everyone you know anything at all. You premise was that someone is irrational and stupid to believe that Nvidia could some day stop providing drivers. Rather than asking me to prove a negative why don't you simply present evidence that Nvidia drivers will always be available thereby proving your statement.

So have at it, prove that Nvidia will always provide drivers for every product they have ever made. While your at, show me where I can get (full) 3dfx drivers for windows 7, after all Nvidia owns 3dfx and 3dfx's former products are Nvidias products now. After you prove Nvidia will always produce legacy hardware drivers for the rest of eternity I will happily admit you are right and that there is nothing at all to worry about. Don't worry, I'm not holding my breath. Cheers!

The binary nVidia drivers had a remotely exploitable kernel-privilege vulnerability that nVidia knew about for two years before fixing. When they did fix it, the fix was only for the latest revision of the driver, which didn't support all of the affected cards. Sure, you could run the old version, but then any web page you visited could inject arbitrary code into your kernel.

So I don't have to waste my time going and hunting down nvidia drivers when I install a new machine....that alone is a good enough reason.

another is not getting hit by your card no longer supported when you've just done an upgrade so having to switch to the legacy drivers the hard way yet again... been hit by nvidea blob problems too often when upgrading.

There are lots of reasons to want good F/OSS graphics drivers. For example: the binary ATI graphics driver doesn't work with on kernels with the realtime-preempt patches, which seem to help JACK-related stuff considerably. I don't think Nvidia's binary drivers do either. F/OSS drivers can be a lot more flexible in this regard. Intel's graphics driver works, for example.

I have as well. Graphics drivers are not the greatest, for example, because XP brought DirectX 9. Finding binary drivers for ancient hardware can be quite a chore, especially with all the good driver repositories trying to nickel and dime you for some ancient S3 driver they still have sitting on there servers. Nothing is more supremely frustrating than really needing to complete an install and the only copies you can find still out there on the net are sitting behind some pay wall.

64bit windows has deprecated a lot of the driver interfaces (out of necessity) so good luck getting your old hardware to work with 10 year old binary drivers.

If you need to use ten year old hardware, do you need to use x86-64?

With IOMMU [wikipedia.org]s, you can just run a virtualized guest and pass the device to it - be it Windows 7 or something older. (Of course, you can still run recent software on 10 year old versions of Windows...)

Not really. A lot of newer programs support only XP or newer, so you would have to at least upgrade to XP to get a lot of modern software to run. I'm pretty sure a lot of the major stuff still works, like firefox, and I can't think of any real examples, but there are certainly apps out there that need newer interfaces. I don't believe you can install the.net framework version 3 for instance and a lot of apps have been coded against those libraries. I don't know how much more life support XP has, but I thin

I have a desktop with 8gb ram, and a dec tulip 10/100 network card (designed for use in 64bit alpha systems)...Windows has no 64bit drivers for this card at all, and the 32bit version won't let me use all of the memory in the system.

I think you are likely mistaken. I haven't seen any installations personally, but the Steam survey showed twice as many x86-64 installs than of Windows 7 than there were i386.

Of course, Steam is will have a severe sampling bias against laptops, so it's possible your observations fits the data. Here are the survey results: http://store.steampowered.com/hwsurvey [steampowered.com]

Which OS new is using 5 year old drivers, windows 7 does not like XP drivers.

Most Windows 2000/XP drivers work in Windows 7. This is how non-Aero capable graphics drivers work in Windows Vista and Windows 7; they use the same driver interface as in Windows XP.

I'm pretty sure all Video and Sound drivers will from WinXP SP3 and earlier will not work with Windows Vista and later.
Why? Because Microsoft redesigned those systems for Windows Vista - they now operate primarily in user-space, and Windows 7 uses the same architecture being based on the same kernel as Vista. (Yes, Microsoft is using a similar architecture now to X for the Video Drivers.)

I'm pretty sure all Video and Sound drivers will from WinXP SP3 and earlier will not work with Windows Vista and later.

No. XPDM (Windows XP Driver Model) graphics drivers work on Vista and 7. This is how non-Aero capable graphics cards work on NT6 (such as the Intel GMA 900 and virtual graphics devices other than the latest VMware and Parallels versions). The same is true for audio. The old driver interfaces are still present, but you don't get the new features.

Then they have a compatibility set somehow as the older drivers would not be able to operate in Kernel Mode as they would expect, which was part of XPDM. The Win2k driver model won't work, nor will NT4's. So the point still stands.

Then they have a compatibility set somehow as the older drivers would not be able to operate in Kernel Mode as they would expect, which was part of XPDM. The Win2k driver model won't work, nor will NT4's. So the point still stands.

Take a look on "Configure Konqueror" option in Konqueror-the default browser for KDE. All those options and not a single NoScript or AdBlock, the shit that counts.

Konqueror comes, out of the box, with an adblocker which is compatible with (and defaults to) AdBlockPlus' list.

The rest of it is a matter of mostly uninformed opinion, like this:

As most of you know KDE uses both Konqueror and Dolphin for file navigation.

Konqueror is a web browser, it just happens to support Dolphin as a plugin. So nope, no change here. It's other browsers, like Firefox, which insist on making local file browsing look like an autogenerated Apache index.

In Konqueror if you save password for some website, this 'wallet' password pops up and in order to save the password you have to type another password in the wallet.

Yes, once per session. Gnome has an equivalent wallet, and you're not required to have a password for it. It's just helpful if you do -- it's this neat little feature called "encryption". Hell, even Firefox supports a Master Password.

Not really worth going into detail about how wrong you are, since you're already pretty much a troll, but really, you can do better. There are enough things to dislike about KDE that you could effectively troll it without spreading things which are actually wrong.

As most of you know KDE uses both Konqueror and Dolphin for file navigation.

Konqueror is a web browser, it just happens to support Dolphin as a plugin. So nope, no change here. It's other browsers, like Firefox, which insist on making local file browsing look like an autogenerated Apache index.

To be fair to the troll, this wasn't always the case. Konqueror was a web browser and file browser, then Dolphin came along later causing some overlap. This overlap has now been mostly resolved.

Konqueror was a web browser and file browser, then Dolphin came along later causing some overlap. This overlap has now been mostly resolved.

Nope, Dolphin is and always was (since 4.0 at least, IIRC) a file manager which used the same component to actually draw the files and folders that Konqueror does. The only "resolution" is that people are starting to realize this.

To say that Konqueror "overlaps" with Dolphin makes about as much sense as saying it "overlaps" with Okular, just because Konqueror can display PDFs... which it does using components form Okular.

And I'm pretty sure Konqueror still has all the same file management features it used t

I was thinking more from the late stages of KDE 3 series. Konqueror was the default file browser, Dolphin was just another option to try (and introduced late in the game) if you wanted a lighter weight one. Now that Dolphin is more usable and is the default in KDE 4, Konqueror doesn't tend to "invade Dolphins territory" even though it is technically capable of it. That's the gist I was trying to get at.

Do some people really use markedly inferior software simply because it is open source, even if a better competitor is available at no cost?

Nvidia's driver may not necessarily be "better," depending on how you define it. Nvidia's driver is clearly better in terms of 3D acceleration, but Nouveau wins in many other areas (largely as an extension of it's F/OSS'ness). There's much less legal worry when distributing it, it doesn't have to be recompiled against the kernel updates, it supports KMS (which is more important than 3D acceleration with many, such as myself), it can be fix/changed/updated without dependence on Nvidia, it's also more likely to have continued support on older hardware - the list gets pretty long. Maybe these things don't matter to you as much as 3D acceleration, but for many they do.

I use linux because it works perfectly well for me.

F/OSS isn't just blind idealism - there's practical benefits which result. I expect at least part of the reason why Linux "works perfectly well" for you is a result of the fact it's F/OSS. This carries over to the video drivers, too.

Do some people really use markedly inferior software simply because it is open source, even if a better competitor is available at no cost?

The NVIDIA driver has a huge cost: you know the day NVIDIA wants your card to be obsolete and replaced, they'll stop shipping the driver. They did it in the past and will continue to do it because they think it makes them more profitable. Plus, you don't know what's in their driver, no one can make it work with your custom kernel if there's a problem.

Only if your don't value your freedom, the NVIDIA driver has no cost (but then you're better with MacOS or Windows).