Update nVidia binary drivers to most recent released version, 6113.

Features:
 * Support for the latest NVIDIA GPUs including GeForce 6800 Series
 * Improved interaction with -CURRENT's new threading libraries.

It also brings some more general fixes to the port:
 * Utilizes PORTDOCS
 * New knobs added
 * pkg-plist fixed

Special note for -CURRENT users: nVidia driver now depends
on mem.ko kernel module.

Submitted by:	Alexey Dokuchaev <danfe@regency.nsu.ru> (maintainer)
PR:		70561
This commit is contained in:
Sergey A. Osokin 2004-08-17 11:54:09 +00:00
parent d2a465f672
commit 9becd45701
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=116507
8 changed files with 85 additions and 112 deletions

View File

@ -7,7 +7,6 @@
PORTNAME= nvidia-driver
PORTVERSION= 1.0.${NVVERSION}
PORTREVISION?= 2
CATEGORIES= x11
MASTER_SITES= http://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
ftp://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
@ -22,7 +21,7 @@ USE_X_PREFIX= yes
NO_PACKAGE= should be recompiled for a particular FreeBSD kernel
INSTALLS_SHLIB= yes
NVVERSION= 4365
NVVERSION= 6113
.include <bsd.port.pre.mk>
@ -36,10 +35,13 @@ PLIST_SUB= XSERVVERSION=${XSERVVERSION} XLIBVERSION=${XLIBVERSION} \
.if !defined(WITHOUT_LINUX)
USE_LINUX= yes
PLIST_SUB+= LINUX=""
.else
PLIST_SUB+= LINUX="@comment "
.endif
.if ${OSVERSION} < 470000
IGNORE= "requires FreeBSD -STABLE, version 4.7-RELEASE or later"
.if ${OSVERSION} < 490000 || (${OSVERSION} >= 500000 && ${OSVERSION} < 502001)
IGNORE= "supports FreeBSD -STABLE (4.9 or later), or FreeBSD -CURRENT (5.2.1 or later)"
.endif
.if ${OSVERSION} < 500000
@ -52,53 +54,46 @@ pre-everything::
.if !defined(WITH_FREEBSD_AGP)
@${ECHO_MSG} "Define WITH_FREEBSD_AGP to use FreeBSD AGP GART driver"
.endif
.if !defined(FORCE_AGP_RATE)
@${ECHO_MSG} "Define FORCE_AGP_RATE to limit the driver to lower speeds"
.if !defined(WITH_VM86_INT10CALL)
@${ECHO_MSG} "Define WITH_VM86_INT10CALL to use VM86 interface for INT10 calls (video BIOS)"
.endif
.if !defined(WITH_NVIDIA_HACKS)
@${ECHO_MSG} "Define WITH_NVIDIA_HACKS to enable work-arounds to override basic AGP setup"
.if !defined(WITH_ACPI)
@${ECHO_MSG} "Define WITH_ACPI to enable support for ACPI Power Management (5.X only!)"
.endif
.if !defined(WITHOUT_LINUX)
@${ECHO_MSG} "Define WITHOUT_LINUX to build without support for Linux compatibility"
.endif
.if defined(WITH_FREEBSD_AGP) || defined(FORCE_AGP_RATE) || defined(WITH_NVIDIA_HACKS) || ${OSVERSION} > 501106
.if defined(WITH_FREEBSD_AGP) || defined(WITH_VM86_INT10CALL) || defined(WITH_ACPI) || defined(WITHOUT_LINUX)
USE_REINPLACE= yes
post-patch:
. if defined(WITH_FREEBSD_AGP)
@${REINPLACE_CMD} 's/undef USE_OS_AGP_GART/define USE_OS_AGP_GART/' \
@${REINPLACE_CMD} 's/undef NV_SUPPORT_OS_AGP/define NV_SUPPORT_OS_AGP/' \
${WRKSRC}/src/nv-freebsd.h
. endif
. if defined(FORCE_AGP_RATE)
@${REINPLACE_CMD} 's/NVreg_ReqAGPRate,[[:blank:]]*0/NVreg_ReqAGPRate, 1/' \
${WRKSRC}/src/nvidia_os_registry.c
. if defined(WITH_VM86_INT10CALL)
@${REINPLACE_CMD} 's/undef NV_USE_OS_VM86_INT10CALL/define NV_USE_OS_VM86_INT10CALL/' \
${WRKSRC}/src/nv-freebsd.h
. endif
. if defined(WITH_NVIDIA_HACKS)
@${REINPLACE_CMD} 's/NVreg_UpdateKernelAGP,[[:blank:]]*1/NVreg_UpdateKernelAGP, 0/' \
${WRKSRC}/src/nvidia_os_registry.c
. if defined(WITH_ACPI)
@${REINPLACE_CMD} 's/undef NV_SUPPORT_ACPI_PM/define NV_SUPPORT_ACPI_PM/' \
${WRKSRC}/src/nv-freebsd.h
. endif
. if ${OSVERSION} > 501106
@${REINPLACE_CMD} 's/PCIR_HEADERTYPE/PCIR_HDRTYPE/' ${WRKSRC}/src/nvidia_sysctl.c
. endif
. if ${OSVERSION} > 502115
. for f in nv-freebsd.h nvidia_ctl.c nvidia_dev.c nvidia_subr.c
@${REINPLACE_CMD} 's/dev_t/struct cdev \*/g' ${WRKSRC}/src/${f}
. endfor
. if defined(WITHOUT_LINUX)
@${REINPLACE_CMD} 's/define NV_SUPPORT_LINUX_COMPAT/undef NV_SUPPORT_LINUX_COMPAT/' \
${WRKSRC}/src/nv-freebsd.h
. endif
.endif
pre-install:
.if defined(WITHOUT_LINUX)
@${MKDIR} ${LINUXBASE}/usr/lib
.endif
-@(kldstat -n linux || kldload linux)
post-install:
.if ${OSVERSION} < 500000
.for dev in 0 1 2 3
@rm -f /dev/nvidia${dev}
@${RM} -f /dev/nvidia${dev}
@mknod /dev/nvidia${dev} c 180 ${dev}
@${CHMOD} 0666 /dev/nvidia${dev}
.endfor
@rm -f /dev/nvidiactl
@${RM} -f /dev/nvidiactl
@mknod /dev/nvidiactl c 180 255
@${CHMOD} 0666 /dev/nvidiactl
.endif

View File

@ -1,2 +1,2 @@
MD5 (NVIDIA-FreeBSD-x86-1.0-4365.tar.gz) = e14d9f2668746ee4d8b47e1c9dbc78af
SIZE (NVIDIA-FreeBSD-x86-1.0-4365.tar.gz) = 4522076
MD5 (NVIDIA-FreeBSD-x86-1.0-6113.tar.gz) = 1dab16b9ebf3ab4253811b6ba29fc701
SIZE (NVIDIA-FreeBSD-x86-1.0-6113.tar.gz) = 6215565

View File

@ -1,13 +0,0 @@
--- module/Makefile.orig Wed May 28 23:51:52 2003
+++ module/Makefile Sun Jan 25 11:47:48 2004
@@ -14,6 +14,10 @@
BUILD_DONE= ${.CURDIR}/.build_done
CLEANFILES+= ${BUILD_DONE}
+.if ${OSVERSION} > 500011
+KMODDIR?= /boot/modules
+.endif
+
#
# To enable debugging see nvidia_debug.h
# uncomment the following line and change the 'debug'

View File

@ -1,15 +0,0 @@
--- src/nvidia_ctl.c.old Sun Feb 22 13:05:46 2004
+++ src/nvidia_ctl.c Sun Feb 22 13:07:25 2004
@@ -43,7 +43,12 @@
.d_ioctl = nvidia_ctl_ioctl,
.d_poll = nvidia_ctl_poll,
.d_name = "nvidiactl",
+#if __FreeBSD_version < 502103
.d_maj = CDEV_MAJOR,
.d_flags = D_TRACKCLOSE
+#else
+ .d_version = D_VERSION,
+ .d_flags = D_NEEDGIANT|D_TRACKCLOSE
+#endif
#endif
};

View File

@ -1,15 +0,0 @@
--- src/nvidia_dev.c.old Wed May 28 12:51:52 2003
+++ src/nvidia_dev.c Sun Feb 22 13:36:25 2004
@@ -45,7 +45,12 @@
.d_poll = nvidia_dev_poll,
.d_mmap = nvidia_dev_mmap,
.d_name = "nvidia",
+#if __FreeBSD_version < 502103
.d_maj = CDEV_MAJOR,
.d_flags = D_MEM|D_TRACKCLOSE
+#else
+ .d_version = D_VERSION,
+ .d_flags = D_MEM|D_TRACKCLOSE|D_NEEDGIANT
+#endif
#endif
};

View File

@ -1,21 +1,12 @@
--- src/nvidia_pci.c.orig Thu May 29 02:51:52 2003
+++ src/nvidia_pci.c Fri Oct 3 01:19:55 2003
@@ -33,6 +33,18 @@
if (vendor != NVIDIA_VENDORID || device < 0x0020)
return ENXIO;
--- src/nvidia_pci.c.orig Mon Aug 16 17:40:56 2004
+++ src/nvidia_pci.c Mon Aug 16 17:41:20 2004
@@ -218,6 +218,9 @@
};
+ /* Exclude nForce MCP devices from detection */
+ if (device >= 0x01A4 && device <= 0x01ef)
+ return ENXIO;
+
+ /* Exclude nForce2 MCP2 devices from detection */
+ if (device >= 0x0060 && device <= 0x006e)
+ return ENXIO;
+
+ /* Exclude nForce3 MCP3 devices from detection */
+ if (device >= 0x00d4 && device <= 0x00da)
+ return ENXIO;
+
if (rm_get_device_name(device, NV_DEVICE_NAME_LENGTH, name)
!= RM_OK) {
strcpy(name, "Unknown");
DRIVER_MODULE(nvidia, pci, nvidia_pci_driver, nvidia_devclass, nvidia_modevent, 0);
+#if __FreeBSD_version > 502126
+MODULE_DEPEND(nvidia, mem, 1, 1, 1);
+#endif
#ifdef NV_SUPPORT_OS_AGP
MODULE_DEPEND(nvidia, agp, 1, 1, 1);

View File

@ -1,16 +1,26 @@
To use these drivers, make sure that you have loaded the nvidia kernel
module, by doing
# kldload nvidia
If you compile this package with WITH_FREEBSD_AGP=yes, you must load
the agp.ko kernel module *at boot time* by putting the following
line into your /boot/loader.conf:
or adding
agp_load="YES"
nvidia_load="YES"
or have your kernel compiled with "device agp".
to your /boot/loader.conf (normally done automatically when installing
the port).
Otherwise the nvidia kernel module will not load.
If you build this port with WITH_FREEBSD_AGP=yes, make sure you have
agp.ko kernel module compiled and installed, since nvidia.ko will
depend on it, or have your kernel compiled with "device agp". Other-
wise the nvidia kernel module will not load. Also, care to specify
correct ``Option "NvAGP"'' in ``Device'' section of your X11 configu-
ration file.
See ${PREFIX}/share/doc/NVIDIA/README for more information.
When building with Linux compatibility (WITH_LINUX=yes), make sure
linux.ko is available as well (or have it compiled in kernel).
Note that this driver does not support PAE-enabled kernels.
See ${PREFIX}/share/doc/NVIDIA_GLX-1.0/README for more information.

View File

@ -18,18 +18,33 @@ lib/libGLcore.so.1
lib/libXvMCNVIDIA.so.1
@exec ln -sf %D/lib/libXvMCNVIDIA.so.1 %D/lib/libXvMCNVIDIA.so
@unexec rm -f %D/lib/libXvMCNVIDIA.so
lib/libnvidia-tls.so.1
@exec ln -sf %D/lib/libnvidia-tls.so.1 %D/lib/libnvidia-tls.so
@unexec rm -f %D/lib/libnvidia-tls.so
lib/libXvMCNVIDIA.a
lib/modules/drivers/nvidia_drv.o
lib/modules/extensions/libglx.so.1
@exec ln -sf %D/lib/modules/extensions/libglx.so.1 %D/lib/modules/extensions/libglx.so
@unexec rm -f %D/lib/modules/extensions/libglx.so
share/doc/NVIDIA/README
share/doc/NVIDIA/README.Linux
share/doc/NVIDIA/XF86Config.sample
share/doc/NVIDIA/license.txt
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/README
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/README.Linux
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/XF86Config.sample
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/license.txt
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/gl.h
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/glx.h
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/glext.h
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/glxtokens.h
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/agp.ko-hints.diff
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/machdep.c.diff
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/vm_map.c_4.10.diff
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/device_pager.c_4.10.diff
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/vm_object.c_5.2.diff
%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/device_pager.c_5.2.diff
%%PORTDOCS%%@dirrm share/doc/NVIDIA_GLX-1.0
%%FREEBSD4%%@cwd /modules
%%FREEBSD5%%@cwd /boot/modules
nvidia.ko
%%FREEBSD5%%@unexec kldxref %D
%%FREEBSD4%%@cwd /dev
%%FREEBSD4%%MAKEDEV.nvidia
%%FREEBSD4%%@exec mknod /dev/nvidia0 c 180 0
@ -47,8 +62,13 @@ nvidia.ko
%%FREEBSD4%%@unexec rm -f /dev/nvidia2
%%FREEBSD4%%@unexec rm -f /dev/nvidia3
%%FREEBSD4%%@unexec rm -f /dev/nvidiactl
@cwd %%LINUXBASE%%
usr/lib/libGL.so.1.0.%%NVVERSION%%
usr/lib/libGLcore.so.1.0.%%NVVERSION%%
@exec ln -sf %D/usr/lib/libGL.so.1.0.%%NVVERSION%% %D/usr/lib/libGL.so.1
@exec ln -sf %D/usr/lib/libGLcore.so.1.0.%%NVVERSION%% %D/usr/lib/libGLcore.so.1
%%LINUX%%@cwd %%LINUXBASE%%
%%LINUX%%usr/lib/libGL.so.1.0.%%NVVERSION%%
%%LINUX%%usr/lib/libGLcore.so.1.0.%%NVVERSION%%
%%LINUX%%usr/lib/libnvidia-tls.so.1.0.%%NVVERSION%%
%%LINUX%%@exec ln -sf %D/usr/lib/libGL.so.1.0.%%NVVERSION%% %D/usr/lib/libGL.so.1
%%LINUX%%@exec ln -sf %D/usr/lib/libGLcore.so.1.0.%%NVVERSION%% %D/usr/lib/libGLcore.so.1
%%LINUX%%@exec ln -sf %D/usr/lib/libnvidia-tls.so.1.0.%%NVVERSION%% %D/usr/lib/liblibnvidia-tls.so.1
%%LINUX%%@unexec rm -f %D/usr/lib/libGL.so.1
%%LINUX%%@unexec rm -f %D/usr/lib/libGLcore.so.1
%%LINUX%%@unexec rm -f %D/usr/lib/liblibnvidia-tls.so.1