You are not logged in.

#1 2012-10-31 15:19:04

tokumei
Member
Registered: 2012-10-25
Posts: 8

[SOLVED] libvdpau.so.1: wrong ELF class: ELFCLASS32

Whenever I try to launch mplayer, this is returned:

$ mplayer
mplayer: error while loading shared libraries: libvdpau.so.1: wrong ELF class: ELFCLASS32

How can I troubleshoot this?  I assume that I've installed the wrong version of libvdpau for my architecture, but I thought the nvidia driver handles this?

If anyone is interested in the solution, here's what I did:

# rm -f /usr/lib/libvdpau*
# pacman -S nvidia nvidia-utils libvdpau

Probably a bit overkill, but I just wanted to be sure.  You would probably be fine with just re-installing libvdpau.

Last edited by tokumei (2012-11-01 21:34:43)

Offline

#2 2012-10-31 17:58:31

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] libvdpau.so.1: wrong ELF class: ELFCLASS32

Post your pacman.conf, the output of 'uname -m' and the output of 'file /usr/lib/libvdpau.so.1' or wherever that file is on your system. If it's a symlink, follow it.

$ file /usr/lib/libvdpau.so.1
/usr/lib/libvdpau.so.1: symbolic link to `libvdpau.so.1.0.0'
$ file /usr/lib/libvdpau.so.1.0.0
/usr/lib/libvdpau.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xeb161ef431d74724b4a97a2b049d3afaf91d54e6, stripped

Offline

#3 2012-10-31 18:14:45

tokumei
Member
Registered: 2012-10-25
Posts: 8

Re: [SOLVED] libvdpau.so.1: wrong ELF class: ELFCLASS32

Thanks for the response!

$ cat /etc/pacman.conf
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
HoldPkg     = pacman glibc
# If upgrades are available for these packages they will be asked for first
SyncFirst   = pacman
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
#UseDelta
#TotalDownload
CheckSpace
#VerbosePkgLists

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
#SigLevel = Optional TrustedOnly

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
$ uname -m
x86_64

$ file libvdpau.so.304.60 
libvdpau.so.304.60: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

Offline

#4 2012-11-01 00:27:39

mrunion
Member
From: Jonesborough, TN
Registered: 2007-01-26
Posts: 1,938
Website

Re: [SOLVED] libvdpau.so.1: wrong ELF class: ELFCLASS32

1) You have a 64-bit system with a 32-bit library.
2) Did you manually install the nVidia drivers/libraries from nVidia's website? You should only use pacman -S nvidia nvidia-utils libvdpau to install the nVidia drivers.


Matt

"It is very difficult to educate the educated."

Offline

#5 2012-11-01 21:33:09

tokumei
Member
Registered: 2012-10-25
Posts: 8

Re: [SOLVED] libvdpau.so.1: wrong ELF class: ELFCLASS32

mrunion wrote:

1) You have a 64-bit system with a 32-bit library.
2) Did you manually install the nVidia drivers/libraries from nVidia's website? You should only use pacman -S nvidia nvidia-utils libvdpau to install the nVidia drivers.

I installed nvidia, nvidia-utils, and libvdpau with pacman.  I just tried re-installing them, and now this message is returned:

ldconfig: libraries libvdpau.so.1 and libvdpau.so.304.60 in directory /usr/lib have same soname but different type.

I decided to try this (possibly a bad idea?)

# rm -f /usr/lib/libvdpau*

And then re-installing them again, mplayer works as expected.

Offline

Board footer

Powered by FluxBB