You are not logged in.

#1 2009-03-08 13:16:53

equilibrium
Member
From: EU
Registered: 2008-06-18
Posts: 80
Website

nvidia arch64 - 180.22 to 180.29 [API mismatch] fix

I did an upgrade of arch last night and am getting an error which seems to be caused by lib32-nvidia-utils being a different version to nvidia-utils.

 pacman -Q | grep nvidia
lib32-nvidia-utils 180.22-1
nvidia 180.29-3
nvidia-utils 180.29-3

Error:

Error: API mismatch: the NVIDIA kernel module has version 180.29,
but this NVIDIA driver component has version 180.22.  Please make
sure that the kernel module and all NVIDIA driver components
have the same version.

I sorted it out now by editing the lib32-nvidia-utils-beta package smile

pkgname=lib32-nvidia-utils-beta
pkgver=180.29
pkgrel=1.1
pkgdesc="NVIDIA drivers utilities and libraries."
arch=(x86_64)
_pkgnr=0
url="http://www.nvidia.com/"
license=('custom')
groups=('lib32')
depends=('lib32-libxext')
conflicts=('lib32-libgl' 'lib32-ati-fglrx-utils' 'lib32-nvidia-utils')
provides=('lib32-libgl' 'lib32-nvidia-utils')
license=('custom')
source=(ftp://download.nvidia.com/XFree86/Linux-x86/$pkgver/NVIDIA-Linux-x86-$pkgver-pkg$_pkgnr.run)

options=(docs !strip)

build()
{
  # Delete old files
  cd $startdir
  rm -rf pkg/* src/NVIDIA-Linux-x86-${pkgver}-pkg$_pkgnr/* pkg_temp
  # override nvida install routine and do it the long way.
  cd $startdir/src/
  sh NVIDIA-Linux-x86-${pkgver}-pkg$_pkgnr.run --extract-only
  cd NVIDIA-Linux-x86-${pkgver}-pkg$_pkgnr/usr/

  mkdir -p $startdir/pkg_temp
  mkdir -p $startdir/pkg_temp/usr/{lib,bin,share/applications,share/pixmaps,man/man1}
  mkdir -p $startdir/pkg_temp/usr/lib/xorg/modules/{extensions,drivers}
  mkdir -p $startdir/pkg_temp/usr/share/licenses/nvidia/
  
  install lib/{libGLcore,libGL,libnvidia-cfg,libcuda,tls/libnvidia-tls}.so.${pkgver} \
       $startdir/pkg_temp/usr/lib/ || return 1
  install -m644 share/man/man1/* $startdir/pkg_temp/usr/man/man1/ || return 1
  rm $startdir/pkg_temp/usr/man/man1/nvidia-installer.1.gz || return 1
  install X11R6/lib/libXv* $startdir/pkg_temp/usr/lib/ || return 1
  install -m644 share/applications/nvidia-settings.desktop $startdir/pkg_temp/usr/share/applications/ || return 1
  # fix nvidia .desktop file
  sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $startdir/pkg_temp/usr/share/applications/nvidia-settings.desktop
  install -m644 share/pixmaps/nvidia-settings.png $startdir/pkg_temp/usr/share/pixmaps/ || return 1
  #install X11R6/lib/modules/libnvidia-wfb.so.$pkgver $startdir/pkg_temp/usr/lib/xorg/modules || return 1
  install X11R6/lib/modules/drivers/nvidia_drv.so $startdir/pkg_temp/usr/lib/xorg/modules/drivers || return 1
  install X11R6/lib/modules/extensions/libglx.so.$pkgver $startdir/pkg_temp/usr/lib/xorg/modules/extensions || return 1
  install -m755 bin/nvidia-{settings,xconfig,bug-report.sh} $startdir/pkg_temp/usr/bin/ || return 1
#  cd $startdir/pkg_temp/usr/lib/
#  ln -s libGL.so.$pkgver libGL.so || return 1
#  ln -s libGL.so.$pkgver libGL.so.1 || return 1
#  ln -s libGLcore.so.$pkgver libGLcore.so.1 || return 1
#  ln -s libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1 || return 1
#  ln -s libnvidia-tls.so.$pkgver libnvidia-tls.so.1 || return 1
#  ln -s libcuda.so.$pkgver libcuda.so.1 || return 1
#  ln -s libXvMCNVIDIA.so.$pkgver libXvMCNVIDIA_dynamic.so.1 || return 1
#  cd $startdir/pkg_temp/usr/lib/xorg/modules/extensions
#  ln -s libglx.so.$pkgver libglx.so || return 1

  install -m644 $startdir/src/NVIDIA-Linux-x86-${pkgver}-pkg$_pkgnr/LICENSE $startdir/pkg_temp/usr/share/licenses/nvidia/ || return 1
  ln -s nvidia $startdir/pkg_temp/usr/share/licenses/nvidia-utils || return 1
  install -D -m644 $startdir/src/NVIDIA-Linux-x86-${pkgver}-pkg$_pkgnr/usr/share/doc/README.txt $startdir/pkg_temp/usr/share/doc/nvidia/README || return 1
  
  find $startdir/pkg_temp/usr -type d -exec chmod 755 {} \;

cd $startdir/pkg_temp
mkdir -p $startdir/pkg/opt/lib32/usr/lib
cp -dp usr/lib/*.so* $startdir/pkg/opt/lib32/usr/lib

# fix wrong links
cd $startdir/pkg/opt/lib32/usr/lib
ln -sf libGL.so.$pkgver libGL.so
ln -sf libGL.so.$pkgver libGL.so.1
ln -sf libGLcore.so.$pkgver libGLcore.so.1
ln -sf libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1
ln -sf libnvidia-tls.so.$pkgver libnvidia-tls.so.1
cd "$startdir"

}

Archlinux x86_64 | Github | acer chromebook c7 (arch)

Offline

#2 2009-03-08 13:28:49

equilibrium
Member
From: EU
Registered: 2008-06-18
Posts: 80
Website

Re: nvidia arch64 - 180.22 to 180.29 [API mismatch] fix

would it be better to rename the package?

I just thought that when I upgrade again arch is going to try to put on 180.35 yikes


Archlinux x86_64 | Github | acer chromebook c7 (arch)

Offline

#3 2009-03-08 23:52:11

Marshal0505
Member
From: Netherlands
Registered: 2008-10-31
Posts: 1

Re: nvidia arch64 - 180.22 to 180.29 [API mismatch] fix

I have no real solution for this but , I solved this by setting up a chroot, so now i have no need for lib32-nvidia-utils

(weee,first post!)

Offline

#4 2009-03-09 09:49:09

ckristi
Member
From: Bucharest, Romania
Registered: 2006-11-21
Posts: 225

Re: nvidia arch64 - 180.22 to 180.29 [API mismatch] fix

I guess you just had to remove the old module from memory and load the new one like this:

rmmod nvidia
modprobe nvidia

In love I believe and in Linux I trust

Offline

#5 2009-07-23 00:28:53

texnguy
Member
Registered: 2009-03-10
Posts: 3

Re: nvidia arch64 - 180.22 to 180.29 [API mismatch] fix

ckristi wrote:

I guess you just had to remove the old module from memory and load the new one like this:

rmmod nvidia
modprobe nvidia

I give you kudos. I upgraded my drivers and got the same error.. but your tip here got me on track.

Offline

#6 2009-07-25 14:28:24

djszapi
Member
From: Cambridge, United Kingdom
Registered: 2009-06-14
Posts: 1,439
Website

Re: nvidia arch64 - 180.22 to 180.29 [API mismatch] fix

Or the windows restart system feeling for the newbies haha smile)

Offline

Board footer

Powered by FluxBB