UnsatisfiedLinkError: wrong ELF class

The public knowledge pool and discussion forum of the OWS community. Do not post confidential information here!
jelabarre59
Posts: 2
Joined: 11 Sep 2023, 20:25

UnsatisfiedLinkError: wrong ELF class

Post by jelabarre59 »

Trying to bring up a Remote Console for a Lenovo TS200 server.

I managed to finally get past the unsigned JAR file messages (hopefully not putting the rest of my system at risk in the process), but now I'm hitting a problem with OpenWebStart trying to run the JAR files.

eventually after a long LONG wait it starts to run the remote console application. At which point it fails with a "wrong ELF class" message.

====================================================================
[ITW-CORE][2023-10-24 14:13:06.095 EDT][WARN ][net.adoptopenjdk.icedteaweb.manifest.ManifestAttributesChecker] This application does not specify a Codebase in its manifest. Please verify with the applet''s vendor. Continuing. See: http://docs.oracle.com/javase/7/docs/te ... eploy.html for details.
[ITW-CORE][2023-10-24 14:13:06.095 EDT][WARN ][net.adoptopenjdk.icedteaweb.manifest.ManifestAttributesChecker] This application does not specify a Codebase in its manifest. Please verify with the applet''s vendor. Continuing. See: http://docs.oracle.com/javase/7/docs/te ... eploy.html for details.
[ITW-CORE][2023-10-24 14:13:06.116 EDT][WARN ][net.sourceforge.jnlp.JNLPFile] Application title was not found in manifest. Check with application vendor
[ITW-CORE][2023-10-24 14:13:06.116 EDT][WARN ][net.sourceforge.jnlp.JNLPFile] Application title was not found in manifest. Check with application vendor
[ITW-CORE][2023-10-24 14:13:06.125 EDT][INFO ][net.sourceforge.jnlp.cache.NativeLibraryStorage] Activate native: http://192.168.3.92/aessrp/avctIBMViewer.jar
[ITW-CORE][2023-10-24 14:13:06.127 EDT][INFO ][net.sourceforge.jnlp.cache.NativeLibraryStorage] Activate native: http://192.168.3.92/aessrp/avctKVMIOLinux.jar
[ITW-CORE][2023-10-24 14:13:06.136 EDT][INFO ][net.sourceforge.jnlp.cache.NativeLibraryStorage] Activate native: http://192.168.3.92/aessrp/avctVMLinux.jar
[ITW-CORE][2023-10-24 14:13:06.139 EDT][INFO ][net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader] Added permissions for 3 jars
[ITW-CORE][2023-10-24 14:13:06.150 EDT][INFO ][net.sourceforge.jnlp.Launcher] Starting application [com.avocent.ibmc.kvm.Main] ...
[ITW-CORE][2023-10-24 14:13:06.169 EDT][INFO ][net.sourceforge.jnlp.Launcher] Invoking main() with args: [ip=192.168.3.92, helpurl=http://192.168.3.92/aessrp/help/contents.html, user=0x72D7BE90, passwd=, apcp=1, version=2, kmport=3900, vport=3900, title=192.168.3.92-Video Viewer]
10/24/2023 02:13:06:616: User login response: 3
OpenJDK 64-Bit Server VM warning: You have loaded library /tmp/netx-native-22207/libavctKVMIO.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Failed to load native keyboard library.
java.lang.UnsatisfiedLinkError: /tmp/netx-native-22207/libavctKVMIO.so: /tmp/netx-native-22207/libavctKVMIO.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1830)
at java.lang.Runtime.loadLibrary0(Runtime.java:843)
at java.lang.System.loadLibrary(System.java:1136)
at com.avocent.kvm.nativekeyboard.g.b(Unknown Source)
at com.avocent.kvm.nativekeyboard.g.<init>(Unknown Source)
at com.avocent.ibmc.kvm.IBMcViewerObjectFactory.getKeyboardSupport(Unknown Source)
at com.avocent.a.a.i.startApp(Unknown Source)
at com.avocent.ibmc.kvm.IBMViewerMainController.startApp(Unknown Source)
at com.avocent.ibmc.kvm.Main.runApp(Unknown Source)
at com.avocent.ibmc.kvm.Main.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:406)
at net.sourceforge.jnlp.Launcher.access$300(Launcher.java:71)
at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:660)
====================================================================

I can't change the JAR files, the IMM is at the last firmware level made, so what's there is what I'm stuck with.

Running Fedora 38, java version java-1.8.0-openjdk-1.8.0.382.b05-2.fc38.x86_64

Stephan Classen
Posts: 232
Joined: 27 Mar 2020, 09:55

Re: UnsatisfiedLinkError: wrong ELF class

Post by Stephan Classen »

This sounds like the libavctKVMIO.so is a 32-bit library and you are currently running a 64-bit JVM.
OWS for Linux only supports 64-bit VMs. So if the 32/64 bit mismatch is the root of the problem your only option is to get a a 64-bit version of libavctKVMIO.so

jelabarre59
Posts: 2
Joined: 11 Sep 2023, 20:25

Re: UnsatisfiedLinkError: wrong ELF class

Post by jelabarre59 »

Well, that's not going to happen. The firmware for this system was last updated in 2010 or 2011. Short of finding the source code hidden somewhere, and then a hack to call a local recompiled version rather than the version on the server's IMM. I guess I wasted my time hunting down the Virtual Media Key, since I can't make use of it (and I wanted to put this machine in another location where the circuit isn't already maxed out).

Post Reply