/[gentoo-x86]/eclass/nvidia-driver.eclass
Gentoo

Diff of /eclass/nvidia-driver.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 Revision 1.15
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2011 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/nvidia-driver.eclass,v 1.1 2007/07/05 19:03:24 cardoe Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/nvidia-driver.eclass,v 1.15 2011/08/22 04:46:32 vapier Exp $
4 4
5# 5# @ECLASS: nvidia-driver.eclass
6# @MAINTAINER:
7# chainsaw@gentoo.org
8# @AUTHOR:
6# Original Author: Doug Goldstein <cardoe@gentoo.org> 9# Original author: Doug Goldstein <cardoe@gentoo.org>
10# @BLURB: Provide useful messages for nvidia-drivers based on currently installed Nvidia card
11# @DESCRIPTION:
7# Purpose: Provide useful messages for nvidia-drivers based on currently 12# Provide useful messages for nvidia-drivers based on currently installed Nvidia
8# installed Nvidia card 13# card. It inherits versionator.
9# 14
15inherit versionator
10 16
11DEPEND="sys-apps/pciutils" 17DEPEND="sys-apps/pciutils"
18
19# the data below is derived from
20# http://us.download.nvidia.com/XFree86/Linux-x86_64/177.13/README/appendix-a.html
12 21
13drv_96xx="0110 0111 0112 0113 0170 0171 0172 0173 0174 0175 0176 0177 0178 \ 22drv_96xx="0110 0111 0112 0113 0170 0171 0172 0173 0174 0175 0176 0177 0178 \
140179 017a 017c 017d 0181 0182 0183 0185 0188 018a 018b 018c 01a0 01f0 0200 \ 230179 017a 017c 017d 0181 0182 0183 0185 0188 018a 018b 018c 01a0 01f0 0200 \
150201 0202 0203 0250 0251 0253 0258 0259 025b 0280 0281 0282 0286 0288 0289 \ 240201 0202 0203 0250 0251 0253 0258 0259 025b 0280 0281 0282 0286 0288 0289 \
16028c" 25028c"
17 26
18drv_71xx="0020 0028 0029 002c 002d 00a0 0100 0101 0103 0150 0151 0152 0153" 27drv_71xx="0020 0028 0029 002c 002d 00a0 0100 0101 0103 0150 0151 0152 0153"
19 28
20mask_96xx=">=x11-drivers/nvidia-drivers-1.0.9700" 29drv_173x="00fa 00fb 00fc 00fd 00fe 0301 0302 0308 0309 0311 0312 0314 031a \
21mask_71xx=">=x11-drivers/nvidia-drivers-1.0.7200" 30031b 031c 0320 0321 0322 0323 0324 0325 0326 0327 0328 032a 032b 032c 032d \
310330 0331 0332 0333 0334 0338 033f 0341 0342 0343 0344 0347 0348 034c 034e"
22 32
33mask_96xx=">=x11-drivers/nvidia-drivers-97.0.0"
34mask_71xx=">=x11-drivers/nvidia-drivers-72.0.0"
35mask_173x=">=x11-drivers/nvidia-drivers-177.0.0"
36
37# @FUNCTION: nvidia-driver-get-card
38# @DESCRIPTION:
23# Retrieve the PCI device ID for each Nvidia video card you have 39# Retrieve the PCI device ID for each Nvidia video card you have
24nvidia-driver-get-card() { 40nvidia-driver-get-card() {
25 local NVIDIA_CARD="$(/usr/sbin/lspci -d 10de: -n | \ 41 local NVIDIA_CARD="$(/usr/sbin/lspci -d 10de: -n | \
26 awk '/ 0300: /{print $3}' | cut -d: -f2 | tr '\n' ' ')" 42 awk '/ 0300: /{print $3}' | cut -d: -f2 | tr '\n' ' ')"
27 43
47 echo "$mask_71xx"; 63 echo "$mask_71xx";
48 return 0; 64 return 0;
49 fi 65 fi
50 done 66 done
51 67
68 for drv in $drv_173x; do
69 if [ "x$card" = "x$drv" ]; then
70 echo "$mask_173x";
71 return 0;
72 fi
73 done
52 done 74 done
53 75
54 echo ""; 76 echo "";
55 return 1; 77 return 1;
56} 78}
57 79
80# @FUNCTION: nvidia-driver-check-warning
81# @DESCRIPTION:
82# Prints out a warning if the driver does not work w/ the installed video card
58nvidia-driver-check-warning() { 83nvidia-driver-check-warning() {
59 local NVIDIA_MASK="$(nvidia-driver-get-mask)" 84 local NVIDIA_MASK="$(nvidia-driver-get-mask)"
60 if [ -n "$NVIDIA_MASK" ]; then 85 if [ -n "$NVIDIA_MASK" ]; then
86 version_compare "${NVIDIA_MASK##*-}" "${PV}"
87 r=$?
88
89 if [ "x$r" = "x1" ]; then
61 ewarn "***** WARNING *****" 90 ewarn "***** WARNING *****"
62 ewarn 91 ewarn
63 ewarn "You are currently installing a version of nvidia-drivers that is" 92 ewarn "You are currently installing a version of nvidia-drivers that is"
64 ewarn "known not to work with a video card you have installed on your" 93 ewarn "known not to work with a video card you have installed on your"
65 ewarn "system. If this is intentional, please ignore this. If it is not" 94 ewarn "system. If this is intentional, please ignore this. If it is not"
66 ewarn "please perform the following steps:" 95 ewarn "please perform the following steps:"
67 ewarn 96 ewarn
68 ewarn "Add the following mask entry to /etc/portage/package.mask by" 97 ewarn "Add the following mask entry to /etc/portage/package.mask by"
69 if [ -d "${ROOT}/etc/portage/package.mask" ]; then 98 if [ -d "${ROOT}/etc/portage/package.mask" ]; then
70 ewarn "echo \"$NVIDIA_MASK\" > /etc/portage/package.mask/nvidia-drivers" 99 ewarn "echo \"$NVIDIA_MASK\" > /etc/portage/package.mask/nvidia-drivers"
71 else 100 else
72 ewarn "echo \"$NVIDIA_MASK\" >> /etc/portage/package.mask" 101 ewarn "echo \"$NVIDIA_MASK\" >> /etc/portage/package.mask"
102 fi
103 ewarn
104 ewarn "Failure to perform the steps above could result in a non-working"
105 ewarn "X setup."
106 ewarn
107 ewarn "For more information please read:"
108 ewarn "http://www.nvidia.com/object/IO_32667.html"
109 ebeep 5
73 fi 110 fi
74 ewarn
75 ewarn "Failure to perform the steps above could result in a non-working"
76 ewarn "X setup."
77 ebeep 5
78 fi 111 fi
79} 112}
80
81

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.20