# Nvidia drivers

## miraceti

Hi!

What nvidia driver should I use when lspci writes: 

```
02:00.0 VGA compatible controller: nVidia Corporation NVCrush11 [GeForce2 MX Integrated Graphics] (rev b1)
```

According to http://us.download.nvidia.com/XFree86/Linux-x86_64/100.14.11/README/appendix-a.html, it seems I should use 1.0-96xx driver. I tried to mask nvidia driver package by 

```
>=x11-drivers/nvidia-drivers-1.0.9700
```

 but the result was very poor. Desktop had problems with drawing and refreshing windows and was unusable. Then I tried to mask the driver package by 

```
>=x11-drivers/nvidia-drivers-1.0.8700
```

 and it seems, it worked (I did not have time to try everything but at least, the desktop looks ok). However, I would like to know, if anybody else had similar experience and how has solved it.

PS: I am upgrading almost a year old Gentoo and I am facing a lot of problems which I have to solve.

----------

## i4dnf

you dhoul try with nvidia-legacy-drivers

----------

## miraceti

 *i4dnf wrote:*   

> you dhoul try with nvidia-legacy-drivers

 

nvidia-legacy-drivers should not be used according to the Gentoo documentation.

----------

## Veldrin

True, but the age of your card requires to do this. The new divers won't support it.

alternatively you could try to use open-sources/in-kernel drivers. I do have mixed experiences - leaning toward bad.

----------

## miraceti

 *Veldrin wrote:*   

> True, but the age of your card requires to do this. The new divers won't support it.
> 
> alternatively you could try to use open-sources/in-kernel drivers. I do have mixed experiences - leaning toward bad.

 

The guide has quite a different opinion: *Quote:*   

> The nvidia-drivers package supports the full range of available nVidia cards. Multiple versions are available for installation, depending on the card(s) you have.
> 
> Newer cards such as the GeForce 8, 7, 6, and FX 5 series should use the newer drivers from the 100.x series.
> 
> Older cards such as the GeForce 3 or GeForce 4 series require the 96xx drivers. For these cards, you should mask >=x11-drivers/nvidia-drivers-1.0.9700 in your /etc/portage/package.mask file. This will prevent newer versions of the driver which are incompatible with your card from being installed.
> ...

 

What I am asking: Why I observe that this does not work? I feel there is a bug somewhere (in Gentoo guide or nVidia site) and I would like to get another opinion and observations. I am not going to use nvidia-legacy-drivers package, when it is depricated and nvidia-drivers package does contain the needed driver.

----------

## PaulBredbury

Explain what your problem is. Just do:

```
emerge =nvidia-drivers-1.0.7185
```

----------

## miraceti

 *PaulBredbury wrote:*   

> Explain what your problem is. Just do:
> 
> ```
> emerge =nvidia-drivers-1.0.7185
> ```
> ...

 

No need to do it. I am running it right now (because it is the highest version satisfying <x11-drivers/nvidia-drivers-1.0.8700) and it works as I wrote in the first post.

The problem is not, that this driver does not work. The problem is, that according to nVidia documentation, the 1.0-96xx driver should be used. However, this driver (latest stable version in portage is nvidia-drivers-1.0.9639) does not work.

I would like to get some opinions and experiences about it before I submit a bug.

Is it still unclear?

----------

## PaulBredbury

To submit a bug, see nvnews.

There's always somebody there who has some bizarre problem with every nvidia version. If you've found a version that works, thank the Gods and don't forget to sacrifice a chicken  :Smile: 

----------

## drwook

What bug?  Your card's a GeForce2, use the legacy drivers version....

----------

## PaulBredbury

Can everybody please wake up and stop recommending "legacy". It's deprecated. As proof, use your brains and look:

```
b-brebs:~$ ll /usr/portage/x11-drivers/nvidia-legacy-drivers/*.ebuild

-rw-r--r-- 1 root root 10630 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-legacy-drivers/nvidia-legacy-drivers-1.0.7184.ebuild

b-brebs:~$ ll /usr/portage/x11-drivers/nvidia-drivers/*.ebuild

-rw-r--r-- 1 root root 14572 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-100.14.09.ebuild

-rw-r--r-- 1 root root 14574 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-100.14.11.ebuild

-rw-r--r-- 1 root root 14234 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.7185.ebuild

-rw-r--r-- 1 root root 12809 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.8776-r1.ebuild

-rw-r--r-- 1 root root 13029 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9631-r1.ebuild

-rw-r--r-- 1 root root 14571 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9639.ebuild

-rw-r--r-- 1 root root 13189 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9746-r1.ebuild

-rw-r--r-- 1 root root 13189 2007-07-30 09:06 /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9755-r1.ebuild
```

----------

## Darius4all

as i can read : GeForce2 MX Integrated Graphics 

and in nvidia guide : Old NV2x-based cards (such as TNT, TNT2, GeForce, and GeForce 2) require the older 71xx drivers (such as nvidia-drivers-1.0.7185)

so just use the nvidia-drivers-1.0.7185 as it works like nvidia just tells you to

----------

## miraceti

 *Darius4all wrote:*   

> as i can read : GeForce2 MX Integrated Graphics 
> 
> and in nvidia guide : Old NV2x-based cards (such as TNT, TNT2, GeForce, and GeForce 2) require the older 71xx drivers (such as nvidia-drivers-1.0.7185)
> 
> so just use the nvidia-drivers-1.0.7185 as it works like nvidia just tells you to

 

Yes, they work. But I read in nVidia guide: *Quote:*   

> The 1.0-96xx driver supports the following set of GPUs:
> 
> NVIDIA GPU product 	Device PCI ID
> 
> GeForce2 MX/MX 400 	0x0110
> ...

 

I do not know details of the GeForce2 cards.

Now, I have a problem with upgrade of world:

```
# emerge -uDNvp world

These are the packages that would be merged, in order:[quote]Calculating world dependencies... done!

[ebuild  N    ] x11-drivers/nvidia-legacy-drivers-1.0.7184  5,450 kB

[blocks B     ] x11-drivers/nvidia-drivers (is blocking x11-drivers/nvidia-legacy-drivers-1.0.7184)

[blocks B     ] x11-drivers/nvidia-legacy-drivers (is blocking x11-drivers/nvidia-drivers-1.0.7185)
```

And when I mask nvidia-legacy-drivers:

```
# emerge -uDNvp world

These are the packages that would be merged, in order:

Calculating world dependencies -

!!! All ebuilds that could satisfy ">=x11-drivers/nvidia-drivers-1.0.8774" have been masked.

!!! One of the following masked packages is required to complete your request:

- x11-drivers/nvidia-drivers-1.0.9631-r1 (masked by: package.mask, ~x86 keyword)

- x11-drivers/nvidia-drivers-100.14.09 (masked by: package.mask)

- x11-drivers/nvidia-drivers-1.0.9639 (masked by: package.mask)

- x11-drivers/nvidia-drivers-100.14.11 (masked by: package.mask, ~x86 keyword)

- x11-drivers/nvidia-drivers-1.0.8776-r1 (masked by: package.mask)

- x11-drivers/nvidia-drivers-1.0.9746-r1 (masked by: package.mask, ~x86 keyword)

- x11-drivers/nvidia-drivers-1.0.9755-r1 (masked by: package.mask, ~x86 keyword)

For more information, see MASKED PACKAGES section in the emerge man page or

refer to the Gentoo Handbook.

(dependency required by "x11-base/xorg-server-1.2.0-r3" [installed])

!!! Problem resolving dependencies for x11-drivers/nvidia-drivers

!!! Depgraph creation failed.
```

I have already seen this problem in this forum, so I guess, it will be fixed in next version of X.org package.

----------

## Xanadu

The guide has quite a different opinion: *Quote:*   

> Old NV2x-based cards (such as TNT, TNT2, GeForce, and GeForce 2) require the older 71xx drivers (such as nvidia-drivers-1.0.7185). For these cards, you should mask >=nvidia-drivers-1.0.8700 in /etc/portage/package.mask.
> 
> You can check for driver compatibility for your card at to determine which driver supports it at http://us.download.nvidia.com/XFree86/Linux-x86_64/100.14.11/README/appendix-a.html.
> 
> 

 

(I just have to chime in here, sorry)

This is absolutely crazy!

What was wrong with keeping the two (main) version of the driver separate under different ebuild names?!?  Now I have to go through all my machines that have older nVidia cards and add the mask in them when " emerge nvidia-legacy-drivers" was more than satisfactory (and a hell of a lot easier, I might add).

Granted I'm not talking about a huge fleet of machines with TNT2 cards (this effects two machines only, but...), what was the big deal with having two separate ebuilds?

It seemed to make life much easier for the user.  It's also a hell of a lot easier to help folks new to Gentoo who are testing out older machines with Gentoo before sacrificing their newer, higher-powered ones.  It's a lot easier to tell them:

"Oh, a TNT2?  you want nvidia-legacy-drivers, not the other one." then trying to walk them through "arcane" (seeming) masking etc.

Maybe it's just me...

----------

## Gusar

 *Xanadu wrote:*   

> What was wrong with keeping the two (main) version of the driver separate under different ebuild names?!?

 There are three driver branches, thats the problem. You could have three packages, nvidia-legacy1, nvidia-legacy2 and nvidia-current, but that would cause confusion as well.

I really don't get what the fuss is about. I mean, you do "emerge nvidia-drivers" and if you have an older card, you get the exact command you need to run. And that's it. So I ask again, what's the fuss?

----------

## miraceti

 *Gusar wrote:*   

>  *Xanadu wrote:*   What was wrong with keeping the two (main) version of the driver separate under different ebuild names?!? There are three driver branches, thats the problem. You could have three packages, nvidia-legacy1, nvidia-legacy2 and nvidia-current, but that would cause confusion as well.
> 
> I really don't get what the fuss is about. I mean, you do "emerge nvidia-drivers" and if you have an older card, you get the exact command you need to run. And that's it. So I ask again, what's the fuss?

 

Well, you will always have dependency hell like in the case of X.org. There will be some versions of nvidia drivers which cannot be use with a certain software but drivers with lower version will be possible to use, because they are for different hardware. I do not see very much cleverness in chosen solution but I can accept it if somebody handles the mentioned dependency hell. (I was out of the user community for a year, this is a new thing to me too and I don't like it. It makes my life more complicated.)

----------

## PaulBredbury

Blame nvidia for the confusion, not Gentoo. Gentoo is doing its best, with /usr/portage/eclass/nvidia-driver.eclass

----------

## theDOC_23

have you tried x11-drivers/nvidia-drivers-1.0.9631-r1?

this is the last driver that works on my system (onboard gf2mx)

----------

## Gusar

+1 on what PaulBredbury said. And I'll also add this: that's the mess you get by relying on closed proprietary drivers.

----------

## miraceti

 *theDOC_23 wrote:*   

> have you tried x11-drivers/nvidia-drivers-1.0.9631-r1?
> 
> this is the last driver that works on my system (onboard gf2mx)

 

I will try it ASAP. Do you think only nvidia-drivers-1.0.9639 package is broken but the 1.0.96xx branch itself is ok?

----------

## miraceti

 *Gusar wrote:*   

> +1 on what PaulBredbury said. And I'll also add this: that's the mess you get by relying on closed proprietary drivers.

 The mess has quite a little to do with proprietarness of the drivers. The same mess can appear also with completly open sources. I think, Gentoo is good but the current solution of nvidia drivers package is not the best what Gentoo people could do.

----------

## theDOC_23

 *miraceti wrote:*   

>  *theDOC_23 wrote:*   have you tried x11-drivers/nvidia-drivers-1.0.9631-r1?
> 
> this is the last driver that works on my system (onboard gf2mx) 
> 
> I will try it ASAP. Do you think only nvidia-drivers-1.0.9639 package is broken but the 1.0.96xx branch itself is ok?

 

I don't know, maybe the 1.0.9639 driver will work with newer gpu's like gf4 or sth. And since the 1.0.9631 works for me, I think the branch is ok. Maybe nvidia broke something for the very old boards that were supported in 9631 when they added some of the new glx functionality.

----------

## Gusar

 *miraceti wrote:*   

>  *Gusar wrote:*   +1 on what PaulBredbury said. And I'll also add this: that's the mess you get by relying on closed proprietary drivers. The mess has quite a little to do with proprietarness of the drivers. The same mess can appear also with completly open sources.

 Wrong. With open source drivers you report to the xorg mailing list (or file a bug in their bugzilla) and they fix it. Plus, you can be sure that when they change something in X that requires a driver update, the driver will be updated immediately, you don't need to wait for the next driver release that's due who knows when. Also, open source devs care about all cards, not just the newest ones.

 *miraceti wrote:*   

> I think, Gentoo is good but the current solution of nvidia drivers package is not the best what Gentoo people could do.

 Actually it is. The current package scans your machine and gives you the command that provides the suitable driver - how is that complicated?. That this driver does not work properly is beyond gentoo devs' capability to fix, because, well, the driver is closed source!

What other solution would you propose? Multiple packages? How would you name them? And then, you would need to look up in the documentation to find out what you actually need - is it legacy1, legacy2 or current, and there will be for sure be a legacy3 in the future. With the current gentoo package, this is done automatically, you just have to read the emerge output.

Also, in the case of multiple packages you would install something like nvidia-legacy1, which would by default install the newest (9639), which in your case doesn't work, so you would have to intervene manually anyway to install some earlier version. It would be the same mess and only because the driver is closed.

----------

## embobo

 *Quote:*   

> 
> 
> Gentoo is doing its best, with /usr/portage/eclass/nvidia-driver.eclass
> 
> 

 

That eclass is a bad idea. It assumes the build host is the same as the host on which it is running. I build my packages in a chroot on a faster machine.

 *Gusar wrote:*   

> What other solution would you propose? Multiple packages? How would you name them? And then, you would need to look up in the documentation to find out what you actually need - is it legacy1, legacy2 or current, and there will be for sure be a legacy3 in the future. With the current gentoo package, this is done automatically, you just have to read the emerge output.

 

No need for multiple packages. The solution is staring you in the face: USE flags.   :Surprised: 

I do not recommed such straw-man USE flags as "legacy1" and "legacy". It is possible to name a use flag like "geforce2" which will cause the 1.0.7185 version to be built.

Simple, eh?   :Cool: 

----------

## Gusar

 *embobo wrote:*   

> It is possible to name a use flag like "geforce2" which will cause the 1.0.7185 version to be built.
> 
> Simple, eh?  

 Would be, if all geforce2 cards required 7185, but some work with 9639. Also, 7185 supports other cards than geforce2. Same goes for 9639, it supports cards from geforce2 to geforce4. Then there are the quadro cards, also divided between different versions, for instance 'Quadro NVS 400' needs 9639, while 'Quadro NVS 440' works with the latest driver. So, which use flags do you propose the package to have?

Dividing by pci-id (like it's done in the eclass) is the only correct way. You don't need to lookup any documentation, you just run the command you're given. The other solution is to say 'fsck it' and let the user deal with it themselves without any other help than a link to the nvidia documentation.

----------

## embobo

 *Gusar wrote:*   

> Would be, if all geforce2 cards required 7185, but some work with 9639. Also, 7185 supports other cards than geforce2. Same goes for 9639, it supports cards from geforce2 to geforce4. Then there are the quadro cards, also divided between different versions, for instance 'Quadro NVS 400' needs 9639, while 'Quadro NVS 440' works with the latest driver. So, which use flags do you propose the package to have?
> 
> Dividing by pci-id (like it's done in the eclass) is the only correct way. You don't need to lookup any documentation, you just run the command you're given. The other solution is to say 'fsck it' and let the user deal with it themselves without any other help than a link to the nvidia documentation.

 

To repeat, examining the PCI bus during build time assumes the build host is the host on which you are loading the driver. This is an incorrect asumption.

Ok, here is my stab at USE flags: nvidia_current, nvidia_96xx, nvidia_71xx. (Hmm, where did I get these?)

Update the guide http://www.gentoo.org/doc/en/nvidia-guide.xml with info on how to figure out which driver to use. In fact, in the driver files directory (/usr/portage/blah/nvidia-driver/files) have a script the user could run that outputs the correct USE flag. Basically suck out the logic in nvidia-driver-get-card() and nvidia-driver-get-mask() in /usr/portage/eclass/nvidia-driver.eclass.

The user must set one of these otherwise the ebuild will edie pointing the user to the guide. Setting this use flag is an easy, one-time thing (except for the case below).

When a new current driver obsoletes a card and the user USEs nvidia_current, have the ebuild ewarn there are new obsoleted cards and point the user to the guide.

This route keeps thing as automated as possible without making incorrect assumpions and follows the Gentoo Way (tm) of USE flags to select features. It is not merely saying "fsck it" and linking to the guide.

Edit: I also beleive it is better than manually editing package.mask. In both cases users of obsolete cards only need make one edit but setting a USE flag is less of a hack.

----------

## PaulBredbury

 *embobo wrote:*   

> nvidia_current, nvidia_96xx, nvidia_71xx
> 
> This route keeps thing as automated as possible

 

Wrong, because we would just have threads with newbies asking which USE flag is appropriate, rather than which driver version is appropriate. 96xx versus 71xx is hardly intuitive.

And having an ebuild die by default will mess up people's initial installations.

People need to figure out for themselves, possibly even with a bit of trial and error, which version works best on their PC. Every driver version has its horror stories.

----------

## embobo

 *PaulBredbury wrote:*   

>  *embobo wrote:*   nvidia_current, nvidia_96xx, nvidia_71xx
> 
> This route keeps thing as automated as possible 
> 
> Wrong, because we would just have threads with newbies asking which USE flag is appropriate, rather than which driver version is appropriate. 96xx versus 71xx is hardly intuitive.
> ...

 

It does keep them as automated as possible. Right now they are totally automated in the eclass but it is wrong in assuming build host == run host. So the question becomes: how is the situation helped in the least hackish and most automated way possible? My asnwer is use flags. Newbs will understand USE flags to select features and a script will be provided to help select the USE flag.

As for dying, either change it to a warn and select the current by default or add something to the installation doc that says "if you have an nvidia card set this flag."

Your last para sound like you are saying "fsck it"--there is no even partially automated to help select a driver and the extra logic in the eclass should be removed.

----------

## PaulBredbury

 *embobo wrote:*   

> in assuming build host == run host

 

Doesn't matter, because it's only a warning, and it's probably correct 95% of the time. The user is still in control, through the totally standard /etc/portage/ files that everyone will be familiar with.

So, in summary, the eclass is a decent solution to the usual Gentoo problem of maintaining flexibility whilst keeping the user in control, and not having to rearrange things when upstream changes their mind.

----------

## embobo

 *PaulBredbury wrote:*   

>  *embobo wrote:*   in assuming build host == run host 
> 
> Doesn't matter, because it's only a warning, and it's probably correct 95% of the time. The user is still in control, through the totally standard /etc/portage/ files that everyone will be familiar with.
> 
> So, in summary, the eclass is a decent solution to the usual Gentoo problem of maintaining flexibility whilst keeping the user in control, and not having to rearrange things when upstream changes their mind.

 

So, in summary, when I found out that the legacy drivers no longer existed I installed the regular drivers through my chroot and got a broken system. I got no warnings, no nothing. I guess I'm part of the 5% that got screwed over by this silent change. I'll speak for all of them in saying: Thanks!

----------

## PaulBredbury

Well, explain how a newbie is going to instinctively know what "nvidia_71xx" means. I am definitely not convinced that it would be an advantage.

As previously said, blame nvidia for this confusion - it's them who create drivers which don't always work properly, and force us to play mix-n-match with the version numbers, coupled with pot luck.

----------

## Gusar

@embobo: Do you really think that build host != running host is a common enough scenario to warrant this extra attention?

And your use flags don't change one thing - the need to lookup documentation (every user will go "wtf is nvidia_96xx" I'm sure of that). The eclass skips this step, because it gives you the necessary info right there in the emerge output and this info is correct, except in your case. Yes you got screwed, sorry for that, but your situation with hosts being different is hardly typical.

And again, if the suggested (and correct) driver doesn't work properly, this is not gentoo's fault, but nvidia's and will require extra effort from the user no matter what system portage uses.

In the end, it's like PaulBredbury said many times - thank nvidia for this mess. And for your own sake, go with intel graphics for your next machine(s).

----------

## Xanadu

 *embobo wrote:*   

> To repeat, examining the PCI bus during build time assumes the build host is the host on which you are loading the driver. This is an incorrect asumption.

 

 AGREE! 

(sorry for the late reply to my sort-of knee jerk reaction that got this thread going...)

With the way things are now, it's VERY much a PitA to get these drivers for my machines.  I have only ONE machine that downloads every, any, and all packages for multiple systems and not a single one of those systems is even close to being alike (hardware wise).  It used to be quite simple to update the nVidia modules:

```
emerge -f nvidia-legacy-drivers nvidia-drivers
```

and that would pull in both versions I need on one simple command.  

NOW it stinks.

Now, I have to:

```
emerge -f nvidia-drivers

nano /etc/portage/packages.mask

emerge -f nvidia-drivers

nano /etc/portage/package.mask

```

OK, I get it that's it's not THAT much more work, but this is certainly something that really does stink and make me HAVE to sit in front of this laptop when I'm downloading updates for all my machines because I have to manually interact with the fetching.

So much for automation.

----------

## chaosgame

 *Gusar wrote:*   

>  *embobo wrote:*   It is possible to name a use flag like "geforce2" which will cause the 1.0.7185 version to be built.
> 
> Simple, eh?   Would be, if all geforce2 cards required 7185, but some work with 9639. Also, 7185 supports other cards than geforce2. Same goes for 9639, it supports cards from geforce2 to geforce4. Then there are the quadro cards, also divided between different versions, for instance 'Quadro NVS 400' needs 9639, while 'Quadro NVS 440' works with the latest driver. So, which use flags do you propose the package to have?
> 
> 

 

So?  The in kernel Riva framebuffer driver supports more than just the nVidia Riva devices...

----------

## Gusar

 *chaosgame wrote:*   

> So?  The in kernel Riva framebuffer driver supports more than just the nVidia Riva devices...

 Then please tell your suggestions on how to name the use flags so that there will be no confusion which one to activate. Because that's the point of all this - to make it easier for the user.

Or suggest a better solution than what the gentoo devs came up with. When I saw the nvidia eclass I thought it was a brilliant idea. And so far I haven't seen in this thread any solution that would be better and/or less confusing.

----------

## Joaquin24

you are over-complicating this post... just download the drivers from nvidia.com if it is not supported the installer will let you know with a red dialog... i. e 

..."this  is not supported download version 0.xx.xx.blah"...

despite having a ebuild in the portage, is not supported officially by Gentoo (same goes for abobe flash), so just download it. nvidia.com

0.9.6xx  Geforce 4 or older models

0.7.xxx Newer Cards.

Sli-driver for SLi and

 64 bits for 64 bits.

And case you want to test something experimental you have the nouveau driver,  which is open source and _not_ a blob http://nouveau.freedesktop.org/wiki/ right thing (tm)

----------

## Xanadu

 *Joaquin24 wrote:*   

> 0.9.6xx  Geforce 4 or older models
> 
> 0.7.xxx Newer Cards.
> 
> Sli-driver for SLi and
> ...

 

This is exactly my point(s).  It was fine and (near) perfect the way things were:

nvidia-drivers

vs.

nvidia-legacy-drivers

What's so complicated / confusing about that?  No "cryptic" version numbers to contend with.  It's also nothing that a simple lspci won't show for an unsure user to know which to get.  the way things are now, we have to do all this "cryptic" (advanced) masking / unmasking where one DOES have to know the exact versions of the driver they (we) need.  

I think things were near perfect before.

If it's about add the 100.* driver (or whatever the version is - I don't have an nVidia card that new) to the mix that's an issue:

nvidia-drivers: 100* (since these are the newest and should the the "top level" name)

nvidia-legacy-drivers: >=.9.6* && <100* (Those are now the "legacy" drivers)

nvidia-tnt-drivers: <=.7* (for the old tnt cards like I'm complaining about...)

nvidia-sli-drivers: (for the SLI diver that Joaquin24 mentions - I honestly don't know what this is)

I don't see how this is hard or complicated and it address all (or most...) issues.  Why futz around with masking and weird version numbers when there is no real reason to.

It's possible that my examples aren't the greatest, but y'all get my point; there's MUCH easier ways to do this than playing around with /etc/portage/package.mask.  Especially in my case that I have ONE machine that downloads ALL packages for ALL Gentoo machines I have.  There are TWO different version of the driver that I need for my machines.  It's far more easy to (using my example):

```
 emerge -f nvidia-drivers nvidia-tnt-drivers
```

than it is to do it the way it is now.  

And I know what I'm doing*.  

Imagine explaining all this to a New User while still trying to maintain the perspective that this is the "Best Way"...

*

for the most part...  :Smile: 

----------

## Gusar

 *Xanadu wrote:*   

> 
> 
> nvidia-drivers
> 
> vs.
> ...

 It doesn't work with three driver branches.  

 *Xanadu wrote:*   

> the way things are now, we have to do all this "cryptic" (advanced) masking / unmasking where one DOES have to know the exact versions of the driver they (we) need.

 What cryptic unmasking? You are given the exact command. Are you saying that following instructions is cryptic?

 *Xanadu wrote:*   

> 
> 
> ```
>  emerge -f nvidia-drivers nvidia-tnt-drivers
> ```
> ...

 Let's see:

```
emerge -f =nvidia-drivers-1.0.7185 =nvidia-drivers-1.0.9639
```

What's wrong with that? Ok you need to know the correct versions, but it will download the two drivers you need and is a single command, no need to play around with package.mask.

 *Xanadu wrote:*   

> Imagine explaining all this to a New User while still trying to maintain the perspective that this is the "Best Way"...

 

Here are my instructions to a new user for installing the nvidia driver:

1.) run 'emerge nvidia-drivers'

2.) you might receive a warning that you need to run a command to download the correct driver

3.) if 2. is the case, run that command and then do 'emerge nvidia-drivers' again

And that's it. You don't need to know about any version numbers, you don't even need to know about masking. You just run a command as you're instructed to do. That's all the information a new user needs. Because you can be sure that a new user won't be having a 'build host != running host' case, nor will he have a single machine that downloads stuff for many other machines.

But in the end, I'm not a gentoo dev, so why should I care. If you think your proposal is better, then suggest it to the nvidia-drivers package maintainer and see what he has to say.

----------

## Xanadu

 *Gusar wrote:*   

> Here are my instructions to a new user for installing the nvidia driver:
> 
> 1.) run 'emerge nvidia-drivers'
> 
> 2.) you might receive a warning that you need to run a command to download the correct driver
> ...

 

You make a very good point.  The ebuild should show the needed info at the end and it's even usually in a way that you can just "copy and paste" the command at a prompt and it'll just do it.  There is a small problem with relying on ONLY that, though (and I've been bitten by this a few times...).  If I say "emerge kde", portage will want to emerge X (obviously).  Part of the X dependency list will be the nVidia drivers in this case (from USE flags and / or the VIDEO_CARDS flag).  So, just at a guess, the nVidia driver would fall somewhere in the middle of that several hundred thousand lines of compiling code flying by the screen.  A user, not even me who have been using Gentoo since Sept. of 2002 would have seen that ewarning at the end of "emerge nvidia-drivers" (or whatever) and will end up with either a broke system or glxgears going around 50fps if you're lucky.

 *Gusar wrote:*   

> 
> 
> But in the end, I'm not a gentoo dev, so why should I care. If you think your proposal is better, then suggest it to the nvidia-drivers package maintainer and see what he has to say.

 

I've been thinking about that.  I'm no developer, either.  I thought I'd run my ideas past the community before bugging them...  :Smile: 

----------

## Gusar

 *Xanadu wrote:*   

> So, just at a guess, the nVidia driver would fall somewhere in the middle of that several hundred thousand lines of compiling code flying by the screen.

 That used to be a problem in the past, yes. But portage now repeats all messages at the end of the emerge process. A new user will for sure notice a bunch of messages prefixed with yellow and red *'s.

----------

## Xanadu

 *Gusar wrote:*   

> That used to be a problem in the past, yes. But portage now repeats all messages at the end of the emerge process. A new user will for sure notice a bunch of messages prefixed with yellow and red *'s.

 

Unless, of course, they couldn't (or didn't think to) get a pretty 1024x768 or greater, frame buffer console set up and still only have the default 80x40 column display going.  Then after a, potentially, couple hundred packages full of multi-lined ewarnings, the chance they'll see something that important in only 40 available rows of text...

----------

