summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Goldstein <cardoe@gentoo.org>2007-07-05 19:03:24 +0000
committerDoug Goldstein <cardoe@gentoo.org>2007-07-05 19:03:24 +0000
commit5c8f635693a65f82039b62c5300053155f125e44 (patch)
tree3750414d3234fc32318ea12b4e93fca25a091fe8 /eclass/nvidia-driver.eclass
parentApply patch to fix a crasher bug for amd64 and possibly other arches. Provide... (diff)
downloadhistorical-5c8f635693a65f82039b62c5300053155f125e44.tar.gz
historical-5c8f635693a65f82039b62c5300053155f125e44.tar.bz2
historical-5c8f635693a65f82039b62c5300053155f125e44.zip
Add new nvidia-driver eclass for determining nVidia card models that match driver versions
Diffstat (limited to 'eclass/nvidia-driver.eclass')
-rw-r--r--eclass/nvidia-driver.eclass81
1 files changed, 81 insertions, 0 deletions
diff --git a/eclass/nvidia-driver.eclass b/eclass/nvidia-driver.eclass
new file mode 100644
index 000000000000..2b2037da1c0a
--- /dev/null
+++ b/eclass/nvidia-driver.eclass
@@ -0,0 +1,81 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/nvidia-driver.eclass,v 1.1 2007/07/05 19:03:24 cardoe Exp $
+
+#
+# Original Author: Doug Goldstein <cardoe@gentoo.org>
+# Purpose: Provide useful messages for nvidia-drivers based on currently
+# installed Nvidia card
+#
+
+DEPEND="sys-apps/pciutils"
+
+drv_96xx="0110 0111 0112 0113 0170 0171 0172 0173 0174 0175 0176 0177 0178 \
+0179 017a 017c 017d 0181 0182 0183 0185 0188 018a 018b 018c 01a0 01f0 0200 \
+0201 0202 0203 0250 0251 0253 0258 0259 025b 0280 0281 0282 0286 0288 0289 \
+028c"
+
+drv_71xx="0020 0028 0029 002c 002d 00a0 0100 0101 0103 0150 0151 0152 0153"
+
+mask_96xx=">=x11-drivers/nvidia-drivers-1.0.9700"
+mask_71xx=">=x11-drivers/nvidia-drivers-1.0.7200"
+
+# Retrieve the PCI device ID for each Nvidia video card you have
+nvidia-driver-get-card() {
+ local NVIDIA_CARD="$(/usr/sbin/lspci -d 10de: -n | \
+ awk '/ 0300: /{print $3}' | cut -d: -f2 | tr '\n' ' ')"
+
+ if [ -n "$NVIDIA_CARD" ]; then
+ echo "$NVIDIA_CARD";
+ else
+ echo "0000";
+ fi
+}
+
+nvidia-driver-get-mask() {
+ local NVIDIA_CARDS="$(nvidia-driver-get-card)"
+ for card in $NVIDIA_CARDS; do
+ for drv in $drv_96xx; do
+ if [ "x$card" = "x$drv" ]; then
+ echo "$mask_96xx";
+ return 0;
+ fi
+ done
+
+ for drv in $drv_71xx; do
+ if [ "x$card" = "x$drv" ]; then
+ echo "$mask_71xx";
+ return 0;
+ fi
+ done
+
+ done
+
+ echo "";
+ return 1;
+}
+
+nvidia-driver-check-warning() {
+ local NVIDIA_MASK="$(nvidia-driver-get-mask)"
+ if [ -n "$NVIDIA_MASK" ]; then
+ ewarn "***** WARNING *****"
+ ewarn
+ ewarn "You are currently installing a version of nvidia-drivers that is"
+ ewarn "known not to work with a video card you have installed on your"
+ ewarn "system. If this is intentional, please ignore this. If it is not"
+ ewarn "please perform the following steps:"
+ ewarn
+ ewarn "Add the following mask entry to /etc/portage/package.mask by"
+ if [ -d "${ROOT}/etc/portage/package.mask" ]; then
+ ewarn "echo \"$NVIDIA_MASK\" > /etc/portage/package.mask/nvidia-drivers"
+ else
+ ewarn "echo \"$NVIDIA_MASK\" >> /etc/portage/package.mask"
+ fi
+ ewarn
+ ewarn "Failure to perform the steps above could result in a non-working"
+ ewarn "X setup."
+ ebeep 5
+ fi
+}
+
+