# nvidia drivers can't install

## avank

hello everybody

need some help here   :Sad: 

i'm upgrading my kernel from 2.6.20-r8 to 2.6.23-r3

and when i do 

```
emerge -av =nvidia-drivers-1.0.9631-r92
```

(ok, my nvidia card looks like old.)

i get this

```
cat /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/temp/build.log

 * Determining the location of the kernel source code

 * Found kernel source directory:

 *     /usr/src/linux

 * Found kernel object directory:

 *     /lib/modules/2.6.23-gentoo-r3/build

 * Found sources for kernel version:

 *     2.6.23-gentoo-r3

 * Checking for MTRR support ...                                                                                     [ ok ]

>>> Unpacking source...

Creating directory NVIDIA-Linux-x86-1.0-9631-pkg0

Verifying archive integrity... OK

Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86 1.0-9631..............................................................................................................................

 * Applying NVIDIA_glx-defines.patch ...                                                                             [ ok ]

 * Applying NVIDIA_glx-glheader.patch ...                                                                            [ ok ]

 * Converting Makefile.kbuild to use M= instead of SUBDIRS= ...                                                      [ ok ]

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv ...

 * Preparing nvidia module

NVIDIA: calling KBUILD...

make CC=i686-pc-linux-gnu-gcc KBUILD_OUTPUT=/lib/modules/2.6.23-gentoo-r3/build KBUILD_VERBOSE=1 -C /usr/src/linux M=/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv modules

make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.

make -C /lib/modules/2.6.23-gentoo-r3/build \

        KBUILD_SRC=/usr/src/linux-2.6.23-gentoo-r3 \

        KBUILD_EXTMOD="/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv" -f /usr/src/linux-2.6.23-gentoo-r3/Makefile modules

test -e include/linux/autoconf.h -a -e include/config/auto.conf || (            \

        echo;                                                           \

        echo "  ERROR: Kernel configuration is invalid.";               \

        echo "         include/linux/autoconf.h or include/config/auto.conf are missing.";      \

        echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";  \

        echo;                                                           \

        /bin/false)

mkdir -p /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/.tmp_versions

rm -f /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/.tmp_versions/*

make -f /usr/src/linux-2.6.23-gentoo-r3/scripts/Makefile.build obj=/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv

echo \#define NV_COMPILER \"`i686-pc-linux-gnu-gcc -v 2>&1 | tail -n 1`\" > /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv_compiler.h

  i686-pc-linux-gnu-gcc -Wp,-MD,/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/.nv.o.d  -nostdinc -isystem /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include -D__KERNEL__ -Iinclude -Iinclude2 -I/usr/src/linux-2.6.23-gentoo-r3/include -include include/linux/autoconf.h  -I/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=athlon -mtune=i686 -ffreestanding -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -I/usr/src/linux-2.6.23-gentoo-r3/include/asm-i386/mach-generic -Iinclude/asm-i386/mach-generic -I/usr/src/linux-2.6.23-gentoo-r3/include/asm-i386/mach-default -Iinclude/asm-i386/mach-default -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign  -I/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wno-multichar -Werror -O -fno-common -msoft-float -MD -Wno-cast-qual -Wno-error -D_LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE -DNVRM -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=9631 -UDEBUG -U_DEBUG -DNDEBUG -DNV_SIGNAL_STRUCT_RLIM -DNV_MULTIPLE_BRIDGE_AGPGART_PRESENT -DNV_PCI_GET_CLASS_PRESENT -DNV_SYSCTL_MAX_MAP_COUNT_PRESENT -DNV_PM_MESSAGE_T_PRESENT -DNV_PCI_CHOOSE_STATE_PRESENT -DNV_VM_INSERT_PAGE_PRESENT -DNV_OLD_MM_KGDB_BREAKPOINT_PRESENT -DNV_REMAP_PFN_RANGE_PRESENT -DNV_CHANGE_PAGE_ATTR_PRESENT -DNV_VMAP_4_PRESENT -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nv)"  -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.o /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:110: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c: In function 'nvos_create_alloc':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:454: error: 'nv_pte_t_cache' undeclared (first use in this function)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:454: error: (Each undeclared identifier is reported only once

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:454: error: for each function it appears in.)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c: In function 'nvos_free_alloc':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:486: error: 'nv_pte_t_cache' undeclared (first use in this function)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c: In function 'nvidia_init_module':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:1372: error: 'nv_pte_t_cache' undeclared (first use in this function)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:1372: error: too many arguments to function 'kmem_cache_create'

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:1494: error: void value not ignored as it ought to be

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c: In function 'nvidia_exit_module':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:1521: error: void value not ignored as it ought to be

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:1622: error: 'nv_pte_t_cache' undeclared (first use in this function)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c: In function 'nv_kern_open':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:1849: warning: 'deprecated_irq_flag' is deprecated (declared at include/linux/interrupt.h:64)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.c:1849: warning: 'deprecated_irq_flag' is deprecated (declared at include/linux/interrupt.h:64)

make[4]: *** [/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv/nv.o] Error 1

make[3]: *** [_module_/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/work/NVIDIA-Linux-x86-1.0-9631-pkg0/usr/src/nv] Error 2

make[2]: *** [modules] Error 2

NVIDIA: left KBUILD.

nvidia.ko failed to build!

make[1]: *** [module] Error 1

make: *** [module] Error 2

!!! ERROR: x11-drivers/nvidia-drivers-1.0.9631-r92 failed.

Call stack:

  ebuild.sh, line 1614:   Called dyn_compile

  ebuild.sh, line 971:   Called qa_call 'src_compile'

  environment, line 4334:   Called src_compile

  nvidia-drivers-1.0.9631-r92.ebuild, line 181:   Called linux-mod_src_compile

  linux-mod.eclass, line 518:   Called die

!!! Unable to make  IGNORE_CC_MISMATCH=yes V=1 SYSSRC=/usr/src/linux SYSOUT=/lib/modules/2.6.23-gentoo-r3/build clean module.

!!! If you need support, post the topmost build error, and the call stack if relevant.

!!! A complete build log is located at '/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.9631-r92/temp/build.log'.

--------------------------- ACCESS VIOLATION SUMMARY ---------------------------

LOG FILE = "/var/log/sandbox/sandbox-x11-drivers_-_nvidia-drivers-1.0.9631-r92-6075.log"

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

--------------------------------------------------------------------------------

```

somehow, nvidia drivers seems ok on my old kernel ( 2.6.20-r8 )

please anyone, help me   :Confused: 

thx a lot

this is my ebuild

```
cat /portlay/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9631-r92.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.9631.ebuild,v 1.2 2006/12/12 14:46:27 wolf31o2 Exp $

inherit eutils multilib versionator linux-mod flag-o-matic

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}-pkg0.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 distribution no-ko"

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/libXvMCNVIDIA.so.${PV}

        usr/lib/xorg/modules/drivers/nvidia_drv.so

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

QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko

        usr/lib/opengl/nvidia/lib/libGL.so.1

        usr/lib/opengl/nvidia/lib/libGLcore.so.1

        usr/lib/opengl/nvidia/no-tls/libnvidia-tls.so.1

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

        usr/lib/xorg/modules/drivers/nvidia_drv.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/libXvMCNVIDIA.so.${PV}

        usr/lib64/xorg/modules/drivers/nvidia_drv.so

        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/libXvMCNVIDIA.so.${PV}

        usr/lib32/xorg/modules/drivers/nvidia_drv.so

        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="-pkg0"

        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

                # 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

        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"

                echo LDFLAGS="$(raw-ldflags)"

                MAKE="$(get_bmake)" emake CC="$(tc-getCC)" LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die

        else

                linux-mod_src_compile

        fi

}

src_install() {

        local MLTEST=$(type dyn_unpack)

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

        if ! use x86-fbsd; then

                if ! use no-ko; then

                        linux-mod_src_install

                fi

                # 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/*

                # nVidia want bug reports using this script

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

        else

                dodoc doc/{README,XF86Config.sample,Copyrights}

                dohtml doc/html/*

        fi

        if use distribution && ! use x86-fbsd; then

                insinto /lib/nvidia

                doins "${WORKDIR}/${NV_PACKAGE}${PKG_V}/usr/src/nv/nvidia.o"

                insinto /lib/nvidia

                doins "${WORKDIR}/${NV_PACKAGE}${PKG_V}/usr/src/nv/nvidia.mod.o"

                # then, remove nvidia.ko from the Live system.

                # to link the nvidia.mod.o to nvidia.o do something like (for i386):

                # ld -m elf_i386 -m elf_i386 -r -o nvidia.ko nvidia.o nvidia.mod.o

                # or (for x86_64):

                # ld -m elf_x86_64 -m elf_x86_64 -r -o nvidia.ko nvidia.o nvidia.mod.o

        fi

}

# 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

}
```

this is my emerge --info

```
Portage 2.1.2.2 (default-linux/x86/2007.0, gcc-4.1.1, glibc-2.5-r0, 2.6.23-gentoo-r3 i686)

=================================================================

System uname: 2.6.23-gentoo-r3 i686 AMD Athlon(tm) XP 2400+

Gentoo Base System release 1.12.9

Timestamp of tree: Wed, 09 Jan 2008 01:47:01 +0000

app-shells/bash:     3.1_p17

dev-lang/python:     2.4.3-r4

dev-python/pycrypto: 2.0.1-r5

sys-apps/baselayout: 1.12.9

sys-apps/sandbox:    1.2.17

sys-devel/autoconf:  2.13, 2.61

sys-devel/automake:  1.6.3, 1.7.9-r1, 1.9.6-r2, 1.10

sys-devel/binutils:  2.16.1-r3

sys-devel/gcc-config: 1.3.14

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.17-r2

ACCEPT_KEYWORDS="x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-march=athlon-xp -pipe -O3"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"

CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo"

CXXFLAGS="-march=athlon-xp -pipe -O3"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer sandbox sfperms strict"

GENTOO_MIRRORS="http://pinguin.stttelkom.ac.id/gentoo http://komo.vlsm.org/gentoo http://distfiles.gentoo.org"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/portlay"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="3dnow 3dnowext X aac aalib aiglx alisp alsa arts asf bash-completion curl dbus dlloader dts dvd dvdread ffmpeg flac fontconfig gd gif gpm gstreamer hal jpeg kde midi minimal mmx mmxext mono mp3 mp4 mpeg mplayer network ntfs nvidia ogg opengl oss pdf png python qt3 qt4 quicktime raw rdesktop real samba sndfile sse syslog unicode usb vnc vorbis wav wavpack win32codecs wma x86 xine xinerama xorg xscreensaver xv xvid" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse psaux" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nvidia vesa"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
```

----------

## jburns

You need nvidia-drivers-96.43.01

----------

## avank

 *jburns wrote:*   

> You need nvidia-drivers-96.43.01

 

it got another error

```
--------------------------- ACCESS VIOLATION SUMMARY ---------------------------

LOG FILE = "/var/log/sandbox/sandbox-x11-drivers_-_nvidia-drivers-96.43.01-6136.log"

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

open_wr:   /usr/src/linux-2.6.23-gentoo-r3/null.gcda

--------------------------------------------------------------------------------

```

----------

## c0r0

i suggest you use kernel 2.6.22 or below, 2.6.23 version is weird for me hehehhe

----------

## psomas

there's a bug with sandbox...

try using a more recent version of sandbox, or use FEATURES="-sandbox" emerge nvidia-drivers...

----------

