You are not logged in.

#1 2009-08-23 16:36:14

blackfedora
Member
From: USA (East coast usually)
Registered: 2009-06-22
Posts: 73

nvidia 32-bit libraries for a new driver

I've been experiencing kernal panics when running x with Nvidia 185.18.14 so I decided to update to the new 185.18.36 driver from the nvidia website. Now however, I can't find 32 bit lib utils for this driver in the AUR. Can I find these items myself and package them or do I just need to play the waiting game until someone finishes them and puts them up. I.e. Is this something that is out there just waiting to be put up onto the AUR, or something that someone needs some serious knowhow to create for the AUR?


Confusion is always the most honest response, and I'm a very honest person

Offline

#2 2009-08-23 18:31:17

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,911

Re: nvidia 32-bit libraries for a new driver

Current version in extra is 18.31 , have you tried that one ?

lib32-nvidia-utils is in community (also 18.31) , you can get the pkgbuild through abs


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2009-08-23 19:32:54

blackfedora
Member
From: USA (East coast usually)
Registered: 2009-06-22
Posts: 73

Re: nvidia 32-bit libraries for a new driver

I've installed them to try them out, haven't had a crash since I upgraded above .14 so hopefully I'm ok, but i've gone 4 days without a crash before so no telling just yet...


Confusion is always the most honest response, and I'm a very honest person

Offline

#4 2009-08-23 21:18:39

methuselah
Member
Registered: 2007-10-02
Posts: 570

Re: nvidia 32-bit libraries for a new driver

FIRST OF ALL I AM NO EXPERT ON THIS. (but this is what works for me)

I usually use the official drivers or the beta drivers from this page (I'm using NVIDIA 190.25 at the moment): http://nvnews.net/vbulletin/showthread.php?t=122606

And during the install of that NVIDIA driver it will offer the 32-bit libs along with the rest of the 64-bit libs. (I always select yes)

I used to install the latest nvidia-utils-beta package from the AUR of the same version number to go along with it, but I have stopped doing that now since I think that it isn't needed.

(because the Arch nvidia package only builds and installs the nvidia.ko module which the NVIDIA installer does, and then the NVIDIA installer includes all of the files that come in the nvidia-utils package..... all the same libs and lib64s..... and the same files are all in the /usr/share/doc/NVIDIA_GLX-1.0 directory..... if I am wrong here then please let me know)

Last edited by methuselah (2009-08-23 21:34:16)

Offline

#5 2009-08-24 05:33:25

blackfedora
Member
From: USA (East coast usually)
Registered: 2009-06-22
Posts: 73

Re: nvidia 32-bit libraries for a new driver

I'm not so sure because I routinely check yes and yet my 32 bit applications that require heavy graphics will fail to run and give me errors. I'll try in the morning.

Last edited by blackfedora (2009-08-24 05:36:03)


Confusion is always the most honest response, and I'm a very honest person

Offline

#6 2009-08-24 06:06:57

methuselah
Member
Registered: 2007-10-02
Posts: 570

Re: nvidia 32-bit libraries for a new driver

blackfedora wrote:

I'm not so sure because I routinely check yes and yet my 32 bit applications that require heavy graphics will fail to run and give me errors. I'll try in the morning.

You probably know more about this than me, I never run 32-bit apps.

Offline

#7 2009-08-25 02:11:50

methuselah
Member
Registered: 2007-10-02
Posts: 570

Re: nvidia 32-bit libraries for a new driver

(I am not an expert on this, but this is what I noticed..... if you want the conclusion that I found about the 32-bit libs, that is more toward the bottom of this post)

I had been wondering about the official NVIDIA driver from the NVIDIA site, and it's 32-bit libs for a while..... and this thread made me wonder about it some more, so I did a bit of investigating.


The first thing I did was to uninstall my nvidia-utils-beta package that I was using with the NVIDIA driver from the NVIDIA site.

I did this because I had noticed that the Arch nvidia PKGBUILD downloads the NVIDIA-Linux-x86_64-1**.**-pkg0.run and then runs "sh NVIDIA-Linux-x86_64-1**.**-pkg0.run --extract-only" to build/install the kernel module.

Then the nvidia-utils PKGBUILD does the same thing with the "sh NVIDIA-Linux-x86_64-1**.**-pkg0.run --extract-only" command, so it extracts everything else that is important from the NVIDIA-Linux-x86_64-1**.**-pkg0 directory, and then the PKGBUILD places them in the correct directories with the correct symbolic links:



But if you use the latest version of "NVIDIA-Linux-x86_64-190.25-pkg0.run" (from here: ftp://download.nvidia.com/XFree86/Linux-x86_64/190.25/ ), instead of using the Arch 'nvidia' and 'nvidia-utils' packages, then the "NVIDIA pkg0" will puts their libraries and symbolic links into the /usr/lib64 directory.


/usr/lib64:

libGL.la
libGL.so
libGL.so.1
libGL.so.190.25
libGLcore.so.1
libGLcore.so.190.25
libOSSlib.so
libcuda.so
libcuda.so.1
libcuda.so.190.25
libnvidia-cfg.so
libnvidia-cfg.so.1
libnvidia-cfg.so.190.25
libnvidia-tls.so.1
libnvidia-tls.so.190.25
libvdpau.so
libvdpau.so.1
libvdpau.so.190.25
libvdpau_nvidia.so
libvdpau_nvidia.so.190.25
libvdpau_trace.so
libvdpau_trace.so.190.25
tls

Then it puts all libXvMCNVIDIA into the /usr/lib directory same as Arch:

libXvMCNVIDIA.a
libXvMCNVIDIA.so.190.25
libXvMCNVIDIA_dynamic.so
libXvMCNVIDIA_dynamic.so.1

These are all put in the same place as the Arch packages:

/usr/share/applications/nvidia-settings.desktop

/usr/bin/nvidia-xconfig
/usr/bin/nvidia-settings
/usr/bin/nvidia-smi
/usr/bin/nvidia-bug-report.sh
/usr/lib/xorg/modules/drivers/nvidia_drv.so

/usr/lib/xorg/modules/extensions/libglx.so.190.25



The manual pages are also put into the same location as Arch's packages.


The last difference that I noticed is that the default Arch packages place everything that is found in here "/usr/share/doc/NVIDIA_GLX-1.0 directory" in the these directories (I'm sure I missed something else):

/usr/share/licenses/nvidia/LICENSE
/usr/share/pixmaps/nvidia-settings.png
/usr/share/doc/nvidia/README.txt
   


Now if you were to download the "NVIDIA-Linux-x86_64-190.25-pkg2.run" that includes the NVIDIA 32-bit libraries, this is where I noticed the problem is.

See, when you run:

sh NVIDIA-Linux-x86_64-190.25-pkg2.run

..... it installs the /NVIDIA-Linux-x86_64-190.25-pkg2/usr/lib32/*.so* files into the /usr/lib directory..... which is the wrong place..... it should be in the /opt/lib32/usr/lib directory.

So you could try this PKGBUILD that I just made..... I'm not sure if it will work, or if I did everything correct so USE IT AT YOUR OWN RISK!!!!!

# $Id: PKGBUILD 490 2009-08-01 11:12:15Z ibiru $
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
# Maintainer : Biru Ionut <ionut@archlinux.ro>
# Remade from : Methuselah (TRY AT YOUR OWN RISK)
_pkgsourcename=nvidia-utils-beta
pkgname=lib32-$_pkgsourcename
pkgver=190.25
pkgrel=1
pkgdesc="NVIDIA drivers utilities and libraries."
arch=(x86_64)
url="http://www.nvidia.com/"
license=('custom')
groups=('lib32')
depends=('lib32-libxext')
conflicts=('lib32-libgl' 'lib32-ati-fglrx-utils')
provides=('lib32-libgl')
source=(ftp://download.nvidia.com/XFree86/Linux-x86_64/190.25/NVIDIA-Linux-x86_64-190.25-pkg2.run)
md5sums=('4d4a3606c64f05cf975dc044ec9200a8')

build() {
    cd $srcdir
        mkdir -p $pkgdir/opt/lib32/usr/lib
    mkdir -p $pkgdir/opt/lib32/usr/lib/tls
    sh NVIDIA-Linux-x86_64-190.25-pkg2.run --extract-only
    cp -dp NVIDIA-Linux-x86_64-190.25-pkg2/usr/lib32/*.so* $pkgdir/opt/lib32/usr/lib
    cp -dp NVIDIA-Linux-x86_64-190.25-pkg2/usr/lib32/libGL.la $pkgdir/opt/lib32/usr/lib
    cp -dpr NVIDIA-Linux-x86_64-190.25-pkg2/usr/lib32/tls $pkgdir/opt/lib32/usr/lib 

    # fix wrnog links
    cd $pkgdir/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 libvdpau.so.$pkgver libvdpau.so.1
    ln -sf libvdpau_trace.so.$pkgver libvdpau_trace.so.1
    ln -sf libvdpau_nvidia.so.$pkgver libvdpau_nvidia.so.1
    ln -sf libnvidia-tls.so.$pkgver libnvidia-tls.so.1
    ln -sf libcuda.so.$pkgver libcuda.so.1
    cd $pkgdir/opt/lib32/usr/lib/tls
    ln -sf libnvidia-tls.so.$pkgver libnvidia-tls.so.1
}

So to finish this up, you could just install this NVIDIA package from their server: ftp://download.nvidia.com/XFree86/Linux … 5-pkg0.run

And then TRY my lib32-nvidia-utils-beta PKGBUILD. (if you feel it is correctly written and approved by someone else with a bit more experience with these things)

Offline

#8 2009-08-25 18:18:08

blackfedora
Member
From: USA (East coast usually)
Registered: 2009-06-22
Posts: 73

Re: nvidia 32-bit libraries for a new driver

Ok I installed the 185.18.36-pkg0.run driver from nvidia.com and then I edited a nvidia-utils file from the AUR to look like this:

# Original PKGBUILD: lib32-nvidia-utils-180.29-3 by Florian Joncour aka Diablo150
# Based on lib32-nvidia-utils-173.14.18-1 maintained by Christofer Bertonha [ghost-linux]
# Current maintainer: Ian Burnette (blackfedora)

pkgname=lib32-nvidia-utils-185.18.36-1
pkgver=185.18.36
pkgrel=1
pkgdesc="x86 NVIDIA drivers utilities and libraries for x86_64 systems."
arch=(x86_64)
_pkgnr=1
url="http://www.nvidia.com/"
license=('custom')
groups=('lib32')
depends=('lib32-libxext')
conflicts=('lib32-libgl' 'lib32-ati-fglrx-utils' 'lib32-nvidia-utils' 'lib32-nvidia-utils-beta ')
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"

}
md5sums=('e1ed7d04187dee04ea9d32a41e2b7899')

then I moved the tar.gz to my root directory and ran yaourt -U <filepath> but I recieved a corrupted package error and yaourt shut itself down.

I've yet to experience in a freeze from the latest driver, but I can't get the lib32 utils installed to run several apps (most notably wine). Any help on correctly packaging NVIDIA-Linux-x86-185.18.36-pkg1.run to install with yaourt would be greatly appreciated. I'm going to look for pkgbuild giudes to see if I can figure it out myself.


Confusion is always the most honest response, and I'm a very honest person

Offline

#9 2009-08-25 18:20:36

blackfedora
Member
From: USA (East coast usually)
Registered: 2009-06-22
Posts: 73

Re: nvidia 32-bit libraries for a new driver

oh and if I experience another freeze on these drivers I'm scrapping the whole OS and starting over with 32-bit arch or ubuntu to see if this is possibly a hardware problem. (I've let memtest run for over 10 hours but I don't think that tests GPU or mobo does it?) All the best, thanks for any and all responses.

Edit:
Apparently I just haven't been formatting/installing the packages correctly as I downloaded a .tar.gz file from the AUR and ran the same command only to receive the same error as the package i had meddled with. So, can anyone tell me how to install a tar.gz with a PKGBUILD file within it when it's located on the HD and not in the AUR at all?

Last edited by blackfedora (2009-08-25 18:44:29)


Confusion is always the most honest response, and I'm a very honest person

Offline

#10 2009-08-25 19:17:34

methuselah
Member
Registered: 2007-10-02
Posts: 570

Re: nvidia 32-bit libraries for a new driver

blackfedora wrote:

oh and if I experience another freeze on these drivers I'm scrapping the whole OS and starting over with 32-bit arch or ubuntu to see if this is possibly a hardware problem. (I've let memtest run for over 10 hours but I don't think that tests GPU or mobo does it?) All the best, thanks for any and all responses.

Edit:
Apparently I just haven't been formatting/installing the packages correctly as I downloaded a .tar.gz file from the AUR and ran the same command only to receive the same error as the package i had meddled with. So, can anyone tell me how to install a tar.gz with a PKGBUILD file within it when it's located on the HD and not in the AUR at all?

I'm not familiar with yaourt, but I am pretty familiar with using the AUR/ABS (I've been building my entire system from source for about a year now), so if you want to explain to me what steps you are doing when building a PKGBUILD, then maybe I can help.

But the basic steps are this:

1. Download the "new_package".tar.gz PKGBUILD from AUR to a build directory, I use: ~/AUR (/home/myname/AUR)
2. Extract the tar.gz so it creates a new directory with a PKGBUILD and usually an .install file (and sometimes some other files): /home/myname/AUR/new_package
3. Change directory in the newly extracted directory: cd ~/AUR/new_package
4. Using pacman run: makepkg
5. When the build finishes (compiling usually takes a few minutes), then use pacman to upload the package: sudo pacman -U new_package-x86_64.pkg.tar.gz
6. Then you can always remove the package with: sudo pacman -R new_package

One more hint, after I made that lib32-nvidia-utils-beta PKGBUILD I found a similar PKGBUILD in the AUR: http://aur.archlinux.org/packages.php?O … b32-nvidia

This is a good forum for info on NVIDIA: http://www.nvnews.net/vbulletin/forumdi … forumid=14


******************************************************************

And if you're not scared of using the NVIDIA beta drivers, then you can download this NVIDIA 190.25.pkg0.run: ftp://download.nvidia.com/XFree86/Linux-x86_64/190.25/

After installing that package, then you can copy my lib32-nvidia-utils-beta PKGBUILD into a build directory: ~/AUR/lib32-nvidia-utils-beta

Then run "makepkg" in that directory, and then upload it after it's done building using this command:

sudo pacman -U lib32-nvidia-utils-beta-190.25-1-x86_64.pkg.tar.gz

Last night after building and installing my lib32-nvidia-utils-beta package, I was able to build/run "bin32 Google Earth", and it ran much better than Google Earth on Vista64..... so I know that my package provides lib32-libgl like it's supposed to.

Last edited by methuselah (2009-08-25 19:48:50)

Offline

#11 2009-08-25 22:47:33

blackfedora
Member
From: USA (East coast usually)
Registered: 2009-06-22
Posts: 73

Re: nvidia 32-bit libraries for a new driver

Awesome, I used the previous version on the (marked outdated) as a template and followed your instructions and all seems well. It successfully started World of Warcraft using Wine so I know it's handling some decently intense graphics. I'll see if I run into any troubles with it and if not I can put it up on the AUR with a ton of warnings that it was packaged by a noob right?


Confusion is always the most honest response, and I'm a very honest person

Offline

Board footer

Powered by FluxBB