nForce2 GART Driver Finally Released For Linux
Rejoice, Radeon owners! For those of you who bought an nForce2 motherboard with the hopes of doing a bit of linux gaming on it, I'm sure it was a pretty hard let down to find out there was no AGPGART driver for the nForce2 -- until now. nVidia has finally released a kernel patch for the 2.4.20 release that is now providing GART support. Perhaps this means that nVidia is re-thinking their closed source-isms in favor of a more open policy in the future. A note on AGP 3.0: Note that AGP 8x mode is not available in 2.4.xx series kernels. If you find that X will not start, try disabling 8X mode in your BIOS. AGP3.0 has been implemented in the 2.5 series.
because it is not possible to run a radeon card in DRI-Mode on an nForce(2) Motherboard
I believe nVidia's 'closed source'ism is due to the fact that their drivers for their video cards include code that is not theirs, and licensed from other companies, and thus not publishable... Thus, I can't really see this as a shift to a more open source view.
I spent all last week playing Enemy Territory on Gentoo Linux with my NForce2 motherboard. I get similar framerates to the Windows version of the same game. Why exactly is this patch special?
I wonder. Would this kernel patch be any
help to the xbox-linux development to get
a better understanding of the nForce2 chip?
Maybe xbox-linux will have accelerated 3d in
the future?
Bram Stolk http://stolk.org/tlctc/
Because, before this patch, under linux you could only run an Nvidia based AGP card... Nvidia (used to) only supply an NVAGP module that would not work with ATI products...
/. no-no) but they are better performance-wise than the open-source ATI DRI drivers...
Essentially this meant that if you ran linux under nforce you were stuck to an all Nvidia lineup...
The only hiccup is that IMHO Nvidia has better drivers under Linux than ATI... true, Nvidia's are closed source ( a
_CMK
Bad spellers of the world untie!
Linux's lack of Token Ring support and the fact that we were unable to defrag its ext2 file system
Information on token ring support for linux is available at www.linuxtr.net
As far as I know ext2 does not really need to be defragmented as performance is not affected as much as it is on fat*/ntfs. Also there are ways to defrag it.
So you can imagine our suprise when we were informed by a lawyer that we would be required to publish our source code for others to use.
You switched to Linux without reading the copyright? Not to mention that you only need to release the source code if you modify existing gpl'ed projects.
I think the biggest thing keeping Linux from being truly competitive with Microsoft is this GPL...
Now you're just trolling, this is offtopic anyway. The only reason Linux has become successful is because many people add to it...
Radeon owners? Well, that sounds a little bit misleading and should be differently worded, but certainly the nforce2 chipset has features that are not video specific and can be attractive to Radeon users.
:)
The nforce2 uses a 128 bit memory architecture that benefits the system's memory bandwidth as a whole. The GART helps here because you can now combine this architecture with a separate AGP video card, neglecting the relatively lower-end video core inside the nforce2.
GART is an AGP bridge feature, not a Video Chip feature, and the nforce2 is the best AMD compatible chipset out there, combine that with the current best Video chipset out there, which right now happens to be a Radeon, and there you have it, Radeon owners like myself rejoicing
- Otaku no naka no otaku, otaking da!!!
In the past, only NVIDIA cards could be used on nForce2 mobos due to the fact that you could only get a nForce2 AGP-GART driver packaged with the NVIDIA linux video drivers. The fact that the GART driver has been seperated from the video drivers means ATI Radeon and other cards can now work with nForce2 chipsets under linux.
I have an nForce board and have been waiting for this for a while. I don't like having to use nVidia's built-in AGP support. However, many people with an nForce board have probably been using this patch for a while. It's been in the -ac patch in the kernel for a few weeks now, and the patch has been floating around a little longer than that. You can most likely expect it to be in kernel 2.4.22.
Second, some people seem to misunderstand the significance of this. nVidia's driver has built-in AGP support already, you don't need GART for AGP to work. This is only true, though, if you own a card that is made by nVidia. Radeon owners prior to now had to use the PCI bus for graphics if they had an nForce or nForce2 chipset.
You either have no knowledge on Free Software licenses, hire incompetent lawyers, or are deliberately trying to spread FUD (I can assure the latter will not work on /.)
(1) The "GPL compatible licensed" terms only applies to _distributed_ work. If your organiztion really are doing internal only work, you do not have any obligations to make available your source or binaries.
(2) Compiling code with GCC does NOT make your code automatically GPLed (how/where did you dig up lawyers like that?)
More useful (no kernel recompilation required) is that a gentleman named Robbie Ward has applied NVidia's AGPGART patch to the Radeon kernel module builder, and the result can be found at here.
You can find a small HOWTO on getting the lot going at the Waikato Linux Users' Group wiki, at http://www.wlug.org.nz/RadeonOnNforce. Have a look around while you're there, its an excellent source of information and we'd really love you to add to it.
That's not the driver it's recompiling. It's recompiling a wrapper layer around the driver that interfaces between it and the kernel.
The actual driver is completely closed-source. It may work with multiple kernels as long as the wrapper compiles, but there's no guarantee of that and it still can't be debugged or audited for security or anything.
> we were unable to defrag its ext2 file system
I had never the need to defrag an ext2 or ext3 file system, anyway you should be able, there are tools to do it, for instance
$ apt-cache search defrag | grep ext2
defrag - ext2, minix and xiafs filesystem defragmenter
you modify the kernel and you don't know how to search on google?
you are a FUD maker, and your surname is either sco or gates
"Furthermore, after reviewing this GPL our lawyers advised us that any products compiled with GPL'ed tools - such as gcc - would also have to its source code released. This was simply unacceptable."
This is simply untrue. Many non-free systems are compiled using GCC. Many propreitary systems are built using the Gnu Compiler Collection, and I have never heard of the Free Software Foundation claiming that they must release their code. I think this is either a misinterpretation by your lawyers or general just fear, uncertainty, and doubt on behalf of your company.
"I think the biggest thing keeping Linux from being truly competitive with Microsoft is this GPL. Its draconian requirements virtually guarentee that no business will ever be able to use it."
The GPL is hardly more draconian than the Microsoft EULA. Furthermore, the GPL is clearly not about companies. The GPL is about giving freedom to the user.
"Everyone was very pleased with Linux, and we were considering using it for a great deal of future internal projects."
Your comment significes the overwhelming sensibility of sharing code. All the public resources that have gone into creating the myriad of propreitary products is generallyh wasteful. Their is no point in trying to re-invent the wheel. Their is no point in not sharing generally useful technical information.
I personally admire what your company did in contracting to modify Free software for specialized purposes. This is exactly how Free Software would benefit to our economy, especially for developers such as yourself. The only reason that things like Microsoft EULA's exist is so that someone can take away the freedom of their users and exhibit a system of power over them as people. The arguement that companies must protect their intellectual property is flawed because the money that they make generally doesn't go into paying for the costs of distrobution. It goes into things like making Bill Gates a very rich man. That's a system not at all concerned with compensating the developers, once you make an analysis and really think about it.
It's not really a Slashdot nono. You don't get any help from kernel developers, period, if you experience problems on a system where any closed-source drivers have ever been loaded during the current power cycle. And for good reason; you can't really analyze the code to see if it's, say, smashing stack, or scribbling on the page cache, if you don't have the source. Since you can't rule out the closed-source elements because of this, it's harder to properly isolate the cause of, say, an oops; also, people like Alan have better things to do than narrow the cause of an oops down to code they can't debug.
It seems this guy has pasted this piece of crap before: http://slashdot.org/comments.pl?sid=67877&cid=6220 788
Founder of Mirror Moon - Tsukihime Game Trans
First you need to compile it against 2.4.20. The agpgart patch (as written) will not patch 2.4.21. If you manually apply it, the compile will fail. If you remove the line 'agp_bridge.num_of_masks = 1' from the diff, it will compile, but DRI still wouldn't work for me.
Unpack 2.4.20, apply the agpgart patch, compile, boot. Now 'make clean' in each individual directory in the nforce driver dir, make clean at top level leaves object files lying around. Then make,install. All should be good. ~6000fps in glxgears.
Don't bother applying the ac patches against 2.4.20 to get native nforce IDE support, this will break the DRI. Instead put 'hdparm -c1 -d1 -u1 /dev/hda' in your startup somewhere. The end result is the same.
I'm finally happy on the bleeding edge. I didn't have to set 4x AGP, but others have to.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
2.1.2 Linux Exception. Notwithstanding the foregoing terms of Section 2.1.1, SOFTWARE designed exclusively for use on the Linux operating system may be copied and redistributed, provided that the binary files thereof are not modified in any way (except for unzipping of compressed files).
Finally! A year of moderation! Ready for 2019?
Now if only they could release the source for the nvnet Ethernet drivers...
Or at least release enough docs so that open source drivers could be implemented; I'm running 2.5.x, and had to use an additional network card because the (crappy)binary drivers from nvidia only support ancient kernels, not to mention there is no support for *BSD or other OSes.
Better audio support would be nice too... ALSA handles it, but in a very dumbed down mode, with many features not supported because nvidia doesn't want to release the docs, and AFAIK there is not even binary drivers for that...
But the network drivers are the biggest pain, in my company we have >20 Linux desktops, and is a PIA to have to install manually the drivers in each box, and pray that the kernel you are using is supported.
Keep in mind that even if the nvidia binary graphics drivers are quite good, the nforce drivers are _crap_ and haven't been updated since November last year, there are various bugs that nvidia said would be fixed in the next release, but so far the users are stuck.
Oh, well, I guess that I(and my company) will buy VIA based boards from now on... *sigh*
Best wishes
\\Uriel
P.S.: Don't forget to sign the petition, maybe nvidia gets a clue when they realize how many of their customers they are pissing off:
http://petitiononline.com/nforce2/petition.html
"When in doubt, use brute force." Ken Thompson
Yeah, because that worked so well for ATI??? You can't get TV-out to work on any ATI cards, and TV-in is just barely functional, even after hours upon hours of getting the software to compile... 4 entirely different Linux distros, 3 different versions of avview, and 2 posts to the Gatos mailing list, and I have never been able to capture audio. That doesn't even mention that avview is a very weak piece of software, with a lot of limitations (1GB filesize max? That sucks), and it is essentially the only program that will work with ATI cards (theoretically, I actually never got it to work right).
Personally, I would go for the open source software rather than the closed source, however, no software is useful to me if it doesn't work, and that has been my experience with ATI. As for your die-hard aversion to binary drivers, I have to wonder why. In the world of Windows and Apples, ALL drivers are closed source... There is a reason for that; people would rather have a house than the blueprints for making a house.
The FreeBSD version of the NVidia drivers seems to be 90% source, and 10% binary, so it's likely you would be able to patch that if you ever needed to do so. In that way, it's not really any worse of a license than with D.J.B.'s software.
Sorry, but I don't follow your hard-line, and I don't really believe you do either... I bought my NVidia videocards knowing that they will work on Linux and FreeBSD, not so that they MIGHT work a few years in the future. They work right now, and nothing will stop them from working with the same software in the future. I'm not screwed if the Open Source driver developer decides not to fix a bug; so I'd much rather have a company that supports their hardware on my OS, rather than barely-working, open source drivers.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
nVidia drivers really are a lot better here, but I'm sticking with ATI.
With this MB under Gentoo with a Radeon 8500 64MB and fireGL I get 2200FPS in glxgears, but the same configuration using an nVidia MX440 64MB I get 2600FPS. Using otherwise exactly the same setup. The XFree86-DRM DRI driver for the Radeon gave 1800 BTW.
Now under Windows XP with MadOnion 3DMark2001SE, the Radeon kills the MX440, although I can't remember the exact scores.
It's GNU/Linux dammit!
In terms of performance ("faster"), it really depends quite heavily on several factors, including your hardware and the game itself. Wine(X) is a compatibility layer rather than an emulator, so corresponding Win32 API calls in the game are handled by the wine subsystems. I imagine generally this would be a little slower than the native win32 environment, since these routines are further 'backed' by the native environment (X11 etc). It's like adding an extra function call (at least) to each one the game makes. The faster your CPU is, the less impact these additional layers of execution are going to have.
Programming the hardware rendering pipeline is done via a DirectX-compatible layer (I guess not for OpenGL games?). If you have a high end video card (with drivers) and your Linux kernel is friendly with your north bridge, then rendering speeds are probably around about the same as in Windows.
So, final performance is really going to depend on where the bottleneck is. If the game is limited by your video acceleration hardware, then it's probably going to run about the same in Linux as in Windows, given your hardware has similar kernel and driver support in both. If the major bottleneck is with the CPU (e.g. a complex physics engine or large amounts of computation) then, based on my previous comments, it makes sense to expect the game to perform worse in the Linux environment.
I've played such things as UT, UT2003 in Linux 'natively' and I found the performance comparable to the same game running in Windows. Under WineX I've played around with RollerCoasterTycoon, Jagged Alliance 2, Fallout 2, Jedi Knight 2, and a few others. I found all of these games ran slower in Linux than in Windows. However, not a *lot* slower, just noticably slower. They were still technically playable.
Which brings me to an interesting point. By far, the most problems I've had with WineX haven't been due to graphics, sound, performance or even copy protection. The biggest problems I've had *by far* have been to do with my mouse. In RCT, the right mouse button refuses to work properly; in JA2, a single click ends up a double click (which is a lot more annoying than it might sound - especially with checkboxes!). Getting my Microsoft joystick working hasn't been fruitful (I don't even know for sure that it's possible). It's a bit of a disappointment to successfully install your favourite game with WineX, fire it up to see the wonderful and familiar graphics, hear the emotion-stirring music, only to discover you can't click on anything or the keyboard doesn't work.
WineX is an interesting project and one I hope continues to improve. However, it only takes me a minute or two to boot into Windows and fire up something for my 'fix'. At the end of the day, I'm not too bothered if I'm gaming in Windows or Linux, as long as I get to have some fun.
What a blatant troll. It contains several obvious falsehoods all designed to stir people up into a frothing mass. *sigh*
Need a Python, C++, Unix, Linux develop
Straight from the documentation:
"The network driver provided by NVIDIA is subject to the NVIDIA software license; the license is available on the NVIDIA website, and is included in this package. By using this software, you are agreeing to the terms of the license. The rest of the software is provided under the GNU public license, which is also included in this package."
The 2.4.20 kernel patch for AGP (which is the topic of discussion) was released under the GPL.
It's GNU/Linux dammit!
RTFA and RTFC (code)!!! did you even bother downloading before posting? the license file explicitly states that the kernel patch is under the GPL and that the binary drivers are under nvidias license.
Alright, NVIDIA's 3d-drivers are closed-source. But they do offer kick-ass performance under Linux.
Unfortunately, they have been jumping through all sorts of hoops in order to keep releasing closed source 3d driver binaries, while keeping them up to date with XFree86 and Linux kernel updates. This is unnecessary, since XFree86 already has an infrastructure in place, which is well suited to solve this problem: The Direct Rendering Infrastructure, or DRI.
In the past, NVIDIA's argument against DRI could have been that DRI wasn't a sufficiently mature technology, but nowadays, this is no longer an issue. Also, NVIDIA is the only company in the graphic card business, which used a different proprietary infrastructure for their 3d drivers. All the other companies, such as ATI, Matrox and Videologic (regardless if they release sources to their 3d-code or not) all use the DRI-model.
Currently, there DRI-model fits NVIDIA's predicament perfectly: NVIDIA has already released the sources to the 2d-part of their drivers long ago (and they have been part of XFree86 for quite some time), but they just want to keep the 3d-aspect closed source. That's exactly how DRI-based drivers work! A 2D-part, which is part of XFree86, combined with a 3d-part, which plugs into the 2D-part of the driver through a (standardized) modular architecture!
An added advantage is that these binary DRI modules are OS-independent, just architecture-dependent. It is even possible to use DRI modules with GUI systems other than XFree86. DirectFB has been (successfully) working on DRI-support.
In other words: had NVIDIA already switched to the DRI model for their driver, then they wouldn't have had to go through the trouble of porting their drivers to FreeBSD. The same binary module already available for Linux would have worked on a FreeBSD system with a DRI-enabled kernel (which FreeBSD already supports). The DRI modular architecture has been deliberately designed that way. All NVIDIA would have to do is release the 2D specs under open source (which they already have done) and compile DRI module releases once for each architecture they'd want to support: x86, Motorola/IBM G4, IA64 and AMD64 architectures. These modules would then work out of the box on any OS with DRI support (on any of these architectures).
Example: if Zeta, the BeOS "reincarnation", would be updated to work with DRI modules, then it would be able to make use of the 3d capabilities on NVIDIA-cards right away!
Furthermore, the DRI model would have made it a necessity vor NVIDIA to release open source AGPGART kernel code for the NForce2 in the first place, because this would be required for even NVIDIA's drivers to work. A proprietary alternative AGP handling hack (like what they have been using in their drivers until now) would have made no sense.
Lastly, the fact that NVIDIA would then not be using a different architecture then the other companies would be causing a lot less headaches for 3d application developers under Linux. Right now, many games and other applications under Linux, such as Winex 3.0 and the Neverwinter Nights port, have been optimised to work with NVIDIA's drivers, but still need work on proper support for DRI (basically covering all other 3d solutions for Linux).
If any NVIDIA driver engineer is currently reading this: please seriously consider switching your drivers to the DRI model! It would save both you and others a lot of work and potential compatibility problems, without having to release any 3d driver sources. This way, you would also instantly be expanding the number of operating systems able to support 3d on NVIDIA cards, without you having to do any additional work for it!
The only disadvantage for NVIDIA that I can think of is the status quo that NVIDIA would possibly like to uphold: games and other 3d applications having better support for NVIDIA (currently being the market leader on Linux) and all the DRI-using competitors remaining behind. In the longer term, how
"Oooh, does that mean we get to kick some puffy white mad zionist butt?"
I think they see supporting Linux as a good thing.
I have found their driver for the Geforce cards to be stable, I have never had a problem personally.
while I dont own an nForce2 board, I am happy that they released this driver. its another step in the right direction in my opinion.
They cant release the code to the Geforce driver because the code they utilise isnt their code, but I wonder: will they try to get around that?
There has to be a way around that issue. I forsee Nvidia releasing an open source driver one day.
to Nvidia: Thanks for giving me many years of stable gaming in Linux
GLXgears != benchmark. It takes advantage of no hardware features. Just pure pixel-pushing bandwidth.
-- Terry
I'm actually the original writer of this story, however at the time of writing, I hadn't made an accounbt on /. yet (I'm such a lurker. ;)
Anyway, I see from the comments people are having trouble with the GART driver (Getting DRI to work with a Radeon, etc.) So I will now post some more information.
My setup is:
I've tested this configuration both on Gentoo and Debian Sid.
The DRI drivers do indeed work, as you can see here:
cthulu root # glxinfo :0.0
:0 screen: 0
name of display:
display:
direct rendering: Yes
as well as here: :0.0 screen: 0
cthulu root # fglrxinfo
display:
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon 9700 Pro Athlon (3DNow!)
OpenGL version string: 1.3 (X4.3.0-2.9.12)
The fversion of FireGL drivers I am using are indeed 2.9.12 -- these are not currently available on ATI's website. This thread on transworld gaming's forums have links to tarballs for the FGLRX 2.9.12 drivers for both XF86 4.2 and 4.3. Dont mind that the thread actually says 2.9.8, the links are current.
Other than the updated drivers, I hadn't done anything special to get the GART driver and the R9700 to play nice together. However, it did take me 3 straight days of searching via google to figure out that the Kernel does not support AGP 3.0 in 2.4.x implementations, so the easiest workaround is to simply disable it in the bios as I mentioned in the story.
run fglrxconfig, generate your config file, restart X, you're good to go.
On another note, yes indeed -- if you read the new license carefully, the .diff file is released under the GPL. No, the net driver is not, nor do I believe the sound driver is either, but I may be mistaken. I really dont give a damn what liscense is used as long as my hardware works. :)
As for the patch to the radeon driver that supports AGP3.0, I'll have to check it out. Sounds interesting.
Oh, by the way:
cthulu root # glxgears
20234 frames in 5.0 seconds = 4046.800 FPS
23297 frames in 5.0 seconds = 4659.400 FPS
23300 frames in 5.0 seconds = 4660.000 FPS
23298 frames in 5.0 seconds = 4659.600 FPS
Hope this helps someone out there. :)