# NVidia alternative

## g4c9z

Hi,

I'm wondering if there's an alternative to using the nvidia-kernel package that I seem to need to use X Windows since I have an NVidia graphics card.  It's really been annoying me lately; every time it comes time to upgrade either it or my Linux kernel, I have to do the following:

1. Emerge the kernel without emerging nvidia (meaning it can't all be done with emerge world)

2. Build and install the new kernel

3. Boot into the new kernel without starting X, since now the old nvidia won't work

4. emerge nvidia (have to be running the kernel it's being built for)

5. Reboot with X

I know these annoyances are probably a result of the driver being closed-source.  I just wonder if there's an alternative that's built right into the kernel, or what would happen if I used some kind of general driver for my video card, and if so, what are the pros/cons of each approach.

Furthermore, my card has a TV-out which I can use to output the video from my computer to anything that has either that yellow RCA plug or an S-Video input.  I haven't tried to get this working yet, but I would like to use it someday.  The nvidia drivers say they support it, and I'd ideally like an alternative that would too.Last edited by g4c9z on Sat Dec 04, 2004 3:41 pm; edited 1 time in total

----------

## Seymour

Yes, there is the nv driver built in to X.  Just set the driver option to "nv" in your xorg.conf.  The thing with this is you won't get 3d acceleration.  I don't think that tv-out will work either, but I'm not certian (it works great with the binary drivers).  

Btw, you don't need to be running you new kernel when you compile the nvidia driver.  You just need to have the /usr/src/linux symlink set to your new source.  Your steps should be:

1. Emerge kernel

2. Set /usr/src/linux symlink (portage may do this for you)

3. Build and install kernel

4. Re-Emerge nvidia-kernel

5. Reboot and let X start

----------

## g4c9z

 *Quote:*   

> Yes, there is the nv driver built in to X. Just set the driver option to "nv" in your xorg.conf

 

Thanks!  I'm using XFree rather than X.Org at the moment, but I'll probalby try switching soon (by the way, is it just a matter of unmerging XFree then emerging X.Org?)

I'm also wondering about the relative quality of the 2 drivers.  If NVidia's is closed source, does that mean the nv driver has to make guesses / assumptions that leads to a buggier driver?  Or do they release the required information needed to write a driver but not the driver source code itself?

 *Quote:*   

> The thing with this is you won't get 3d acceleration

 

What is that exactly?  Does it improve graphic quality, or speed, or is it needed to run certain games?

 *Quote:*   

> 
> 
> Btw, you don't need to be running you new kernel when you compile the nvidia driver. You just need to have the /usr/src/linux symlink set to your new source. Your steps should be:
> 
> 1. Emerge kernel
> ...

 

OK, but I remember when I tried to emerge nvidia when I was running 2.6.5 and had just built 2.6.7, I got an error message saying something like "could not determine the kernel version".  It may have not worked because 2.6.7 doesn't like nvidia, or vice versa, as I was reading in another thread.  Too bad I can't test it now because I'm running the newest stable packaged kernel, but next time I upgrade if I remember I'll try to post the exact error message here or say there was no longer an error message.

----------

## Seymour

 *g4c9z wrote:*   

> Thanks!  I'm using XFree rather than X.Org at the moment, but I'll probalby try switching soon (by the way, is it just a matter of unmerging XFree then emerging X.Org?)

 

I havent switched myself yet either.  :Smile:  The nv driver works the same for XFree86 as it does for Xorg.  Just replace "xorg.conf" with "XF86Config".

 *g4c9z wrote:*   

> I'm also wondering about the relative quality of the 2 drivers.  If NVidia's is closed source, does that mean the nv driver has to make guesses / assumptions that leads to a buggier driver?  Or do they release the required information needed to write a driver but not the driver source code itself?

 

I'm under the impression that nvidia doesn't release anything in the way of specs, so the nv driver is most likly all guess work.  That is why there is no 3d.  It's been around for a long time though, and last I used it, there were no problems with stability.  It's even slightly faster for 2d stuff than the binary driver.

 *g4c9z wrote:*   

> What is that exactly?  Does it improve graphic quality, or speed, or is it needed to run certain games?

 

It means you wont be able use the accelerated features of your graphics card.  Any 3d application you run will have to use software to to all the work, which means it will be very slow for all but the simplest graphics.  Forget playing any 3d games.

 *g4c9z wrote:*   

> OK, but I remember when I tried to emerge nvidia when I was running 2.6.5 and had just built 2.6.7, I got an error message saying something like "could not determine the kernel version".  It may have not worked because 2.6.7 doesn't like nvidia, or vice versa, as I was reading in another thread.  Too bad I can't test it now because I'm running the newest stable packaged kernel, but next time I upgrade if I remember I'll try to post the exact error message here or say there was no longer an error message.

 

Could be also that the /usr/src/linux symlink was missing or pointing to the wrong place.  Post the error message if you get it again.

----------

## g4c9z

 *Quote:*   

> 
> 
> Btw, you don't need to be running you new kernel when you compile the nvidia driver. You just need to have the /usr/src/linux symlink set to your new source. Your steps should be:
> 
> 1. Emerge kernel
> ...

 

You were right after all, it seems; that method worked for kernel 2.6.9 and I compiled nvidia before rebooting into the new kernel.  So at least it isn't necessary to reboot in command line mode.

I just wonder about one thing, though - is it still possible to put both gentoo-dev-sources and nvidia in my world file and emerge everything at once?  The problem is that emerging the kernel doesn't actually install the kernel - you still have to go through the configuration process, which doesn't happen until after all packages are updated.  That means the new nvidia will get compiled using the old kernel (portage doesn't change the /usr/src/linux symlink, by the way), and I don't know if that will always work.  Could I have it emerged during a world update and then emerge it again manually (or rather, in my kernel install script) after configuring the kernel?  I would really like to have nvidia in my world file so emerge depclean doesn't try to remove it.

----------

## dsd

nvidia-kernel (and other kernel modules) compile against the sources at /usr/src/linux  and sometimes rely on this kernel being configured.

----------

## g4c9z

OK, but my method (compiling nvidia twice) might still work, unless the newest version of nvidia expects the newest kernel.  Is that possible?

----------

## LynZ

In any case you just need the new kernel source...

Just compile it and MAKE SURE that the /usr/src/linux poits to your NEW kernel sources. Then simply run emerge nvidia-kernel AFTER make modoles_install. Worked always for  me.

I guess it applies patches according to a kernel ver found in /usr/src/linux.

So in my opinion doesn't really matter what sources do you use.

----------

## dsd

it does .. it inserts the module under /lib/modules/KERNELVERSION/extras/nvidia.ko

----------

