# Nvidia drivers 1.0-9742 BETA is out...

## ejs76

Check here for the latest Nvidia beta driver (1.0-9742):

http://www.nzone.com/object/nzone_downloads_rel70betadriver.html

 *Quote:*   

> 
> 
> Beta Driver - Linux Display Driver â x86
> 
> Version: 1.0-9742
> ...

 

----------

## PaulBredbury

Here's an ebuild. The only real difference is the addition of "us." in SRC_URI, and "http" instead of "ftp". References:  nzone, bugzilla.

/usr/local/portage/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9742.ebuild

```
# Copyright 1999-2006 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9626.ebuild,v 1.6 2006/10/20 18:47:54 wolf31o2 Exp $

inherit eutils multilib versionator linux-mod

NV_V="${PV/1.0./1.0-}"

X86_NV_PACKAGE="NVIDIA-Linux-x86-${NV_V}"

AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${NV_V}"

X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${NV_V}"

DESCRIPTION="NVIDIA X11 driver and GLX libraries"

HOMEPAGE="http://www.nvidia.com/"

SRC_URI="x86? ( http://us.download.nvidia.com/XFree86/Linux-x86/${NV_V}/${X86_NV_PACKAGE}-pkg1.run )

    amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/${NV_V}/${AMD64_NV_PACKAGE}-pkg2.run )

    x86-fbsd? ( http://us.download.nvidia.com/freebsd/${NV_V}/${X86_FBSD_NV_PACKAGE}.tar.gz )"

LICENSE="NVIDIA"

SLOT="0"

KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"

IUSE="dlloader"

RESTRICT="nostrip multilib-pkg-force"

DEPEND="kernel_linux? ( virtual/linux-sources )"

RDEPEND="kernel_linux? ( virtual/modutils )

   x11-base/xorg-server

   media-libs/mesa

   app-admin/eselect-opengl

   kernel_FreeBSD? ( !media-video/nvidia-freebsd )

   !app-emulation/emul-linux-x86-nvidia

   !x11-drivers/nvidia-legacy-drivers"

QA_TEXTRELS_x86="usr/lib/xorg/libXvMCNVIDIA.so.${PV}

   usr/lib/opengl/nvidia/lib/libGL.so.${PV}

   usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}

   usr/lib/opengl/nvidia/tls/libnvidia-tls.so.${PV}

   usr/lib/opengl/nvidia/no-tls/libnvidia-tls.so.${PV}

   usr/lib/opengl/nvidia/extensions/libglx.so"

QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV}

   usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}

   usr/lib/opengl/nvidia/extensions/libglx.so"

QA_TEXTRELS_amd64="usr/lib64/xorg/libXvMCNVIDIA.so.${PV}

   usr/lib64/opengl/nvidia/lib/libGL.so.${PV}

   usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}

   usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.${PV}

   usr/lib64/opengl/nvidia/no-tls/libnvidia-tls.so.${PV}

   usr/lib64/opengl/nvidia/extensions/libglx.so

   usr/lib32/xorg/libXvMCNVIDIA.so.${PV}

   usr/lib32/opengl/nvidia/lib/libGL.so.${PV}

   usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}

   usr/lib32/opengl/nvidia/tls/libnvidia-tls.so.${PV}

   usr/lib32/opengl/nvidia/no-tls/libnvidia-tls.so.${PV}

   usr/lib32/opengl/nvidia/extensions/libglx.so"

QA_EXECSTACK_amd64="usr/lib64/opengl/nvidia/lib/libGL.so.${PV}

   usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}

   usr/lib64/opengl/nvidia/extensions/libglx.so

   usr/lib32/opengl/nvidia/lib/libGL.so.${PV}

   usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}

   usr/lib32/opengl/nvidia/extensions/libglx.so"

export _POSIX2_VERSION="199209"

if use x86; then

   PKG_V="-pkg1"

   NV_PACKAGE="${X86_NV_PACKAGE}"

elif use amd64; then

   PKG_V="-pkg2"

   NV_PACKAGE="${AMD64_NV_PACKAGE}"

elif use x86-fbsd; then

   PKG_V=""

   NV_PACKAGE="${X86_FBSD_NV_PACKAGE}"

fi

S="${WORKDIR}/${NV_PACKAGE}${PKG_V}/usr/src/nv"

# On BSD userland it wants real make command

MAKE="make"

mtrr_check() {

   ebegin "Checking for MTRR support"

   linux_chkconfig_present MTRR

   eend $?

   if [[ $? -ne 0 ]] ; then

      eerror "This version needs MTRR support for most chipsets!"

      eerror "Please enable MTRR support in your kernel config, found at:"

      eerror

      eerror "  Processor type and features"

      eerror "    [*] MTRR (Memory Type Range Register) support"

      eerror

      eerror "and recompile your kernel ..."

      die "MTRR support not detected!"

   fi

}

pkg_setup() {

   if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then

      eerror "This ebuild doesn't currently support changing your default abi."

      die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"

   fi

   if ! use x86-fbsd; then

      linux-mod_pkg_setup

      MODULE_NAMES="nvidia(video:${S})"

      BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} SYSOUT=${KV_OUT_DIR}"

      mtrr_check

   fi

}

src_unpack() {

   local NV_PATCH_PREFIX="${FILESDIR}/${PV}/NVIDIA-${PV}"

   if ! use x86-fbsd; then

      if [[ ${KV_MINOR} -eq 6 && ${KV_PATCH} -lt 7 ]] ; then

         echo

         ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"

         ewarn "This is not officially supported for ${P}. It is likely you"

         ewarn "will not be able to compile or use the kernel module."

         ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"

         echo

         ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."

      fi

   fi

   if ! use x86-fbsd; then

      cd ${WORKDIR}

      bash ${DISTDIR}/${NV_PACKAGE}${PKG_V}.run --extract-only

   else

      unpack ${A}

   fi

   # Patches go below here, add breif description

   use x86-fbsd \

      && cd "${WORKDIR}/${NV_PACKAGE}${PKG_V}/doc" \

      || cd "${WORKDIR}/${NV_PACKAGE}${PKG_V}"

   # Use the correct defines to make gtkglext build work

   epatch ${FILESDIR}/NVIDIA_glx-defines.patch

   # Use some more sensible gl headers and make way for new glext.h

   epatch ${FILESDIR}/NVIDIA_glx-glheader.patch

   if ! use x86-fbsd; then

      # Zander kernel patches

      # i2c patch

      #epatch ${NV_PATCH_PREFIX}-i2c.diff

      # Quiet down warnings the user do not need to see

      sed -i \

         -e 's:-Wpointer-arith::g' \

         -e 's:-Wsign-compare::g' \

         ${S}/Makefile.kbuild

      # If you set this then it's your own fault when stuff breaks :)

      [[ -n ${USE_CRAZY_OPTS} ]] && sed -i "s:-O:${CFLAGS}:" Makefile.*

      # If greater than 2.6.5 use M= instead of SUBDIR=

      cd ${S}; convert_to_m Makefile.kbuild

      # Patch the Makefile to not warn about nvidia-installer

#      epatch ${FILESDIR}/NVIDIA_glx-makefile.patch

      # Patch for kernel 2.6.19 from Daniel Drake <dsd@gentoo.org>

      #epatch ${FILESDIR}/NVIDIA_kernel-2.6.19.patch

   fi

}

src_compile() {

   # This is already the default on Linux, as there's no toplevel Makefile, but

   # on FreeBSD there's one and triggers the kernel module build, as we install

   # it by itself, pass this.

   if use x86-fbsd; then

      cd "${WORKDIR}/${NV_PACKAGE}${PKG_V}/src"

      MAKE="$(get_bmake)" emake CC="$(tc-getCC)" LD="$(tc-getLD)"

   else

      linux-mod_src_compile

   fi

}

src_install() {

   local MLTEST=$(type dyn_unpack)

   cd ${WORKDIR}/${NV_PACKAGE}${PKG_V}

   if ! use x86-fbsd; then

      linux-mod_src_install

      # Add the aliases

      sed -e 's:\${PACKAGE}:'${PF}':g' ${FILESDIR}/nvidia > ${WORKDIR}/nvidia

      insinto /etc/modules.d

      newins ${WORKDIR}/nvidia nvidia

   else

      insinto /boot/modules

      doins "${WORKDIR}/${X86_FBSD_NV_PACKAGE}/src/nvidia.kld"

      exeinto /boot/modules

      doexe "${WORKDIR}/${X86_FBSD_NV_PACKAGE}/src/nvidia.ko"

   fi

   if [[ "${MLTEST/set_abi}" == "${MLTEST}" ]] && has_multilib_profile ; then

      local OABI=${ABI}

      for ABI in $(get_install_abis) ; do

         src_install-libs

      done

      ABI=${OABI}

      unset OABI

   elif use amd64 ; then

      src_install-libs lib32 $(get_multilibdir)

      src_install-libs lib $(get_libdir)

      rm -rf ${D}/usr/$(get_multilibdir)/opengl/nvidia/include

      rm -rf ${D}/usr/$(get_multilibdir)/opengl/nvidia/extensions

   else

      src_install-libs

   fi

   is_final_abi || return 0

   if ! use x86-fbsd; then

      # Docs, remove nvidia-settings as provided by media-video/nvidia-settings

      newdoc usr/share/doc/README.txt README

      dodoc usr/share/doc/Copyrights usr/share/doc/NVIDIA_Changelog

      dodoc usr/share/doc/XF86Config.sample

      dohtml usr/share/doc/html/*

   else

      dodoc doc/README doc/README.Linux doc/XF86Config.sample

   fi

   # nVidia want bug reports using this script

   exeinto /usr/bin

   doexe usr/bin/nvidia-bug-report.sh

}

# Install nvidia library:

# the first parameter is the place where to install it

# the second paramis the base name of the library

# the third parameter is the provided soversion

donvidia() {

   dodir $1

   exeinto $1

   libname=$(basename $2)

   doexe $2.$3

   dosym ${libname}.$3 $1/${libname}

   [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1

}

src_install-libs() {

   local pkglibdir=lib

   local inslibdir=$(get_libdir)

   if [[ ${#} -eq 2 ]] ; then

      pkglibdir=${1}

      inslibdir=${2}

   elif has_multilib_profile && [[ ${ABI} == "x86" ]] ; then

      pkglibdir=lib32

   fi

   local usrpkglibdir=usr/${pkglibdir}

   local libdir=usr/X11R6/${pkglibdir}

   local drvdir=${libdir}/modules/drivers

   local extdir=${libdir}/modules/extensions

   local incdir=usr/include/GL

   local sover=${PV}

   local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"

   local NO_TLS_ROOT="${NV_ROOT}/no-tls"

   local TLS_ROOT="${NV_ROOT}/tls"

   local X11_LIB_DIR="/usr/${inslibdir}/xorg"

   if ! has_version x11-base/xorg-server ; then

      X11_LIB_DIR="/usr/${inslibdir}"

   fi

   if use x86-fbsd; then

      # on FreeBSD everything is on obj/

      pkglibdir=obj

      usrpkglibdir=obj

      x11pkglibdir=obj

      drvdir=obj

      extdir=obj

      # don't ask me why the headers are there.. glxext.h is missing

      incdir=doc

      # on FreeBSD it has just .1 suffix

      sover=1

   fi

   # The GLX libraries

   donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGL.so ${sover}

   donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGLcore.so ${sover}

   dodir ${NO_TLS_ROOT}

   donvidia ${NO_TLS_ROOT} ${usrpkglibdir}/libnvidia-tls.so ${sover}

   if ! use x86-fbsd; then

      donvidia ${TLS_ROOT} ${usrpkglibdir}/tls/libnvidia-tls.so ${sover}

   fi

   if want_tls ; then

      dosym ../tls/libnvidia-tls.so ${NV_ROOT}/lib

      dosym ../tls/libnvidia-tls.so.1 ${NV_ROOT}/lib

      dosym ../tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib

   else

      dosym ../no-tls/libnvidia-tls.so ${NV_ROOT}/lib

      dosym ../no-tls/libnvidia-tls.so.1 ${NV_ROOT}/lib

      dosym ../no-tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib

   fi

   if ! use x86-fbsd; then

      # Not sure whether installing the .la file is neccessary;

      # this is adopted from the `nvidia' ebuild

      local ver1=$(get_version_component_range 1)

      local ver2=$(get_version_component_range 2)

      local ver3=$(get_version_component_range 3)

      sed -e "s:\${PV}:${PV}:"     \

         -e "s:\${ver1}:${ver1}:" \

         -e "s:\${ver2}:${ver2}:" \

         -e "s:\${ver3}:${ver3}:" \

         -e "s:\${libdir}:${inslibdir}:" \

         ${FILESDIR}/libGL.la-r2 > ${D}/${NV_ROOT}/lib/libGL.la

   fi

   exeinto ${X11_LIB_DIR}/modules/drivers

   if use dlloader || has_version ">=x11-base/xorg-x11-6.8.99.15" ||

      has_version "x11-base/xorg-server"; then

      [[ -f ${drvdir}/nvidia_drv.so ]] && \

         doexe ${drvdir}/nvidia_drv.so

   else

      [[ -f ${drvdir}/nvidia_drv.o ]] && \

         doexe ${drvdir}/nvidia_drv.o

   fi

   insinto /usr/${inslibdir}

   [[ -f ${libdir}/libXvMCNVIDIA.a ]] && \

      doins ${libdir}/libXvMCNVIDIA.a

   exeinto /usr/${inslibdir}

   # fix Bug 131315

   [[ -f ${libdir}/libXvMCNVIDIA.so.${PV} ]] && \

      doexe ${libdir}/libXvMCNVIDIA.so.${PV} && \

      dosym /usr/${inslibdir}/libXvMCNVIDIA.so.${PV} \

         /usr/${inslibdir}/libXvMCNVIDIA.so

   exeinto ${NV_ROOT}/extensions

   [[ -f ${extdir}/libglx.so.${sover} ]] && \

      newexe ${extdir}/libglx.so.${sover} libglx.so

   # Includes

   insinto ${NV_ROOT}/include

   doins ${incdir}/*.h

}

pkg_preinst() {

   # Can we make up our minds ?!?!?

   local NV_D=${IMAGE:-${D}}

   if ! has_version x11-base/xorg-server ; then

      for dir in lib lib32 lib64 ; do

         if [[ -d ${NV_D}/usr/${dir}/xorg ]] ; then

            mv ${NV_D}/usr/${dir}/xorg/* ${NV_D}/usr/${dir}

            rmdir ${NV_D}/usr/${dir}/xorg

         fi

      done

   fi

   # Clean the dinamic libGL stuff's home to ensure

   # we dont have stale libs floating around

   if [[ -d ${ROOT}/usr/lib/opengl/nvidia ]] ; then

      rm -rf ${ROOT}/usr/lib/opengl/nvidia/*

   fi

   # Make sure we nuke the old nvidia-glx's env.d file

   if [[ -e ${ROOT}/etc/env.d/09nvidia ]] ; then

      rm -f ${ROOT}/etc/env.d/09nvidia

   fi

}

pkg_postinst() {

   if ! use x86-fbsd; then

      linux-mod_pkg_postinst

   fi

   #switch to the nvidia implementation

   eselect opengl set --use-old nvidia

   echo

   elog "To use the Nvidia GLX, run \"eselect opengl set nvidia\""

   echo

   einfo "You may also be interested in media-video/nvidia-settings"

   echo

   elog "nVidia has requested that any bug reports submitted have the"

   elog "output of /usr/bin/nvidia-bug-report.sh included."

   echo

   elog "To work with compiz, you must enable the AddARGBGLXVisuals option."

   echo

   elog "If you are having resolution problems, try disabling DynamicTwinView."

   echo

}

want_tls() {

   # For uclibc or anything non glibc, return false

   has_version sys-libs/glibc || return 1

   # Old versions of glibc were lt/no-tls only

   has_version '<sys-libs/glibc-2.3.2' && return 1

   local valid_chost="true"

   if use x86 ; then

      case ${CHOST/-*} in

         i486|i586|i686) ;;

         *) valid_chost="false"

      esac

   fi

   [[ ${valid_chost} == "false" ]] && return 1

   # If we've got nptl, we've got tls

   built_with_use sys-libs/glibc nptl && return 0

   # 2.3.5 turned off tls for linuxthreads glibc on i486 and i586

   if use x86 && has_version '>=sys-libs/glibc-2.3.5' ; then

      case ${CHOST/-*} in

         i486|i586) return 1 ;;

      esac

   fi

   # These versions built linuxthreads version to support tls, too

   has_version '>=sys-libs/glibc-2.3.4.20040619-r2' && return 0

   return 1

}

pkg_postrm() {

   if ! use x86-fbsd; then

      linux-mod_pkg_postrm

   fi

   eselect opengl set --use-old xorg-x11

}
```

Edit: Changed pkg0 to pkg1 for x86.

----------

## onlinepancakes

This release is great! Fixed the slowdowns I had with 9626 and 9629!

----------

## W.E.B. Du Bois

Sorry, I'm a noob.  Are there instructions for upgrading from the previous version?

----------

## VValdo

 *W.E.B. Du Bois wrote:*   

> Sorry, I'm a noob.  Are there instructions for upgrading from the previous version?

 

It's in portage so assuming you're in ~arch just emerge nvidia-drivers.

if you're not, add "x11-drivers/nvidia-drivers ~YOURARCH" to /etc/portage/package.keywords.  YOURARCH should be something like amd64 or x86 or whatever.

update:

to be more specific, do something like this from the command line as root

```
emerge --sync

echo "x11-drivers/nvidia-drivers ~amd64" >> /etc/portage/package.keywords

emerge nvidia-drivers
```

I have amd64.  You may have x86 or whatever. 

W

----------

## VValdo

Whoops.  I think it's also masked... meaning you might want to also do this:

```
echo "x11-drivers/nvidia-drivers" >> /etc/portage/package.unmask
```

before you emerge.  That should unmask this and all future masked nvidia drivers

W

----------

## antiflag1980

Damnit, I can't use these new drivers, it's says geforce4 mx420 is now supported by nvidia-legacy-drivers, 9629 works fine. Guess I'm gonna have to switch cards, luckily I have an fx5200 around at least.

----------

## Sho

Can't get this to compile against 2.6.19_rc5, can anyone else?

----------

## egon2003

 *Sho wrote:*   

> Can't get this to compile against 2.6.19_rc5, can anyone else?

 

Try this, works for me. https://bugs.gentoo.org/attachment.cgi?id=100051

----------

## ejs76

@PaulBredbury

Thanks for the ebuild!

@onlinepancakes

 *Quote:*   

> This release is great! Fixed the slowdowns I had with 9626 and 9629!

 

Same here!   :Very Happy: 

----------

## R.I.P.

does anybody know what was really changed in new version?

will I gain something with new version if 9625 works fine for me?

(my videocard is GeForce4 Ti4200)

official release notes are just too brief (saying only new cards support added).

----------

## zxy

Everything feels smoother, but I did an world upgrade so xorg server upgraded too.

The coolest thing are new nvidia settings (masked). Much more options.

There are options for twinview setting in xorg.conf, display size, monitor setting and other.

I still get black windows when too many are open with bery.

----------

## Timbers2k

I can't run WOW with this version. It exits with an error. I backed out to 9629 and it's working fine. The odd thing is that Quake4 works fine with both.

----------

## Let_Me_Be

Geforce 4 discontinued, stick with 1.0.9629!!!

----------

## onlinepancakes

 *zxy wrote:*   

> Everything feels smoother, but I did an world upgrade so xorg server upgraded too.
> 
> The coolest thing are new nvidia settings (masked). Much more options.
> 
> There are options for twinview setting in xorg.conf, display size, monitor setting and other.
> ...

 

The Nvidia-Settings in portage are already outdated. Theres a newer updated version you can get off of ftp://download.nvidia.com/XFree86/nvidia-settings/. They were updated on 11/2/06.

----------

## yabbadabbadont

 *Let_Me_Be wrote:*   

> Geforce 4 discontinued, stick with 1.0.9629!!!

 

What are you talking about?  Geforce 4 cards are still supported by this beta driver.

http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9742/README/appendix-a.html

----------

## Dan

 *antiflag1980 wrote:*   

> Damnit, I can't use these new drivers, it's says geforce4 mx420 is now supported by nvidia-legacy-drivers, 9629 works fine. Guess I'm gonna have to switch cards, luckily I have an fx5200 around at least.

 

Ive already posted to them about this.. heh like it will do any good...

the README http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9742/README/appendix-a.html shows it supported as well as the GeForce4 Ti 4200 neither of which work...

----------

## yabbadabbadont

Yeah.  It appears that the documentation will be the last thing they update before releasing the driver as a non-beta version...  :Rolling Eyes: 

----------

## Phenax

They fixed DFP monitor crash on resolution change, aswell..   :Smile: 

----------

## Let_Me_Be

Yes, GF4 is discontinued. I even can't switch cards, because i have a notebook with GF4 Go. I have to store the ebuild and driver somewhere, because legacy drivers simply don't work with my card (flickering cursor is back, froze after 30 seconds of running X server).

----------

## RichieB

[quote="zxy"]I still get black windows when too many are open with bery.[/quote]

Do you have any 'silly' plugins running, e.g. blur? That'll definitely cause black windows because of the texture requirements.

----------

## Belliash

 *ejs76 wrote:*   

> @PaulBredbury
> 
> Thanks for the ebuild!
> 
> @onlinepancakes
> ...

 

just 300FPS more...  :Rolling Eyes: 

----------

## glowworm

 *zxy wrote:*   

> I still get black windows when too many are open with bery.

 

There is a fix for this from about SVN r1130 or so. It adds a "Use Non-TFP Copy Rendering" option to BSM which when turned Off has cleared up my cases of Black Windows.

----------

## sylware

With those new drivers, when switching from X to a VGA VT, the layout of the text in the VGA VT is screwed and coming back to X is quite risky since I get most of the time a corrupted display.

Anyone experiencing the same issue?   :Confused: 

----------

## sylware

Several users are reporting the issue on nvidia forums... a bug was logged...

Have to wait the next drivers delivery...

Anybody wanna help "nouveau" nvidia chip open source drivers?   :Rolling Eyes: 

----------

## RichieB

Where's libnvidia-cfg gone to? I've tried modifying the ebuild from pkg0 to pkg1 (x86) in the vain hope that libnvidia-cfg is hiding there ... but to no avail.

'Tis needed for nvidia-xconfig utility, plus I believe related to some resolution / EDID issues I'm experiencing.

Ta

----------

