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

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.20