/[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.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.1 2007/07/05 19:03:24 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"
17
18# the data below is derived from
19# http://us.download.nvidia.com/XFree86/Linux-x86_64/177.13/README/appendix-a.html
12 20
13drv_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 \
140179 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 \
150201 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 \
16028c" 24028c"
17 25
18drv_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"
19 27
20mask_96xx=">=x11-drivers/nvidia-drivers-1.0.9700" 28drv_173x="00fa 00fb 00fc 00fd 00fe 0301 0302 0308 0309 0311 0312 0314 031a \
21mask_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"
22 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:
23# 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
24nvidia-driver-get-card() { 39nvidia-driver-get-card() {
25 local NVIDIA_CARD="$(/usr/sbin/lspci -d 10de: -n | \ 40 local NVIDIA_CARD="$(/usr/sbin/lspci -d 10de: -n | \
26 awk '/ 0300: /{print $3}' | cut -d: -f2 | tr '\n' ' ')" 41 awk '/ 0300: /{print $3}' | cut -d: -f2 | tr '\n' ' ')"
27 42
47 echo "$mask_71xx"; 62 echo "$mask_71xx";
48 return 0; 63 return 0;
49 fi 64 fi
50 done 65 done
51 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
52 done 73 done
53 74
54 echo ""; 75 echo "";
55 return 1; 76 return 1;
56} 77}
57 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
58nvidia-driver-check-warning() { 82nvidia-driver-check-warning() {
59 local NVIDIA_MASK="$(nvidia-driver-get-mask)" 83 local NVIDIA_MASK="$(nvidia-driver-get-mask)"
60 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
61 ewarn "***** WARNING *****" 89 ewarn "***** WARNING *****"
62 ewarn 90 ewarn
63 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"
64 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"
65 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"
66 ewarn "please perform the following steps:" 94 ewarn "please perform the following steps:"
67 ewarn 95 ewarn
68 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"
69 if [ -d "${ROOT}/etc/portage/package.mask" ]; then 97 if [ -d "${ROOT}/etc/portage/package.mask" ]; then
70 ewarn "echo \"$NVIDIA_MASK\" > /etc/portage/package.mask/nvidia-drivers" 98 ewarn "echo \"$NVIDIA_MASK\" > /etc/portage/package.mask/nvidia-drivers"
71 else 99 else
72 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
73 fi 109 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 110 fi
79} 111}
80 112
81 113

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

  ViewVC Help
Powered by ViewVC 1.1.20