MineCraft on 410c

As an interesting experiment I decided to see if Minecraft would run on the 410c. I downloaded the Minecraft jar file and started it up with the command:

linaro@linaro-alip:~/Downloads$ java -jar Minecraft.jar

This starts up the launcher without any issues. I then logged in to the Minecraft server and tried to play the game. It happily downloads a lot of stuff, but eventually it gives up with the following error:

OpenJDK 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
Exception in thread "main" java.lang.UnsatisfiedLinkError: 
/home/linaro/.minecraft/versions/1.12.2/1.12.2-natives-1479527162357/liblwjgl.so: 
/home/linaro/.minecraft/versions/1.12.2/1.12.2-natives-1479527162357/liblwjgl.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:1941)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at org.lwjgl.Sys$1.run(Sys.java:72)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
        at org.lwjgl.Sys.loadLibrary(Sys.java:96)
        at org.lwjgl.Sys.<clinit>(Sys.java:117)
        at bib.I(SourceFile:2825)
        at net.minecraft.client.main.Main.main(SourceFile:38)

It looks like they are trying to load a 32-bit file on a 64-bit machine. Is there some way to force Java into 32-bit mode, or convince Minecraft that we have a 64-bit machine?

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other post may not reflect the opinions of my employer.

Great experiment !

I suppose liblwjgl is unconditionally downloaded in its 32-bit version, I suggest trying to build/install aarch64 liblwjgl and replace it in the minecraft path, liblwjgl-java pkg is also available via apt.
An alternative could be to run a 32-bit JVM, but it would be a half-victory.

I suppose liblwjgl is unconditionally downloaded in its 32-bit version,
I suggest trying to build/install aarch64 liblwjgl and replace it in the
minecraft path, liblwjgl-java pkg is also available via apt.
An alternative could be to run a 32-bit JVM, but it would be a half-victory.

TBH if the launcher is grabbing binaries then its probably grabbing IA32
binaries anyway… so finding a way to substitute them will be needed.

Got it to work on my end, I’ll have a blog ready soon…

1 Like

Thanks @ric96

I am looking forward to your blog post to see what I need to do differently.

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other post may not reflect the opinions of my employer.

@ljking
Full PC Version of Minecraft on Dragonboard 410c - 96Boards

1 Like

hi @ric96,

why did you have to recompile liblwjgl from source? Why would the Debian package not work? have you tried it?

I did try installing liblwjgl-java, but that didn’t help. Also I followed similar guides to run minecraft on rpi and nvidia jetson tk1 and both of them either compiled it from source or downloaded precompiled ordinariness separately.

Great! what about performances on your side ? It looks ‘playable’ …
I assume this desktop version use OPENGL only (non ES). Would be interesting to see how the pocket edition would run as well :wink:

You can have some gpu stats in /sys/kernel/debug/dri/0/perf btw.

ok, thanks… i don’t like very much the wiki as it is… i am hoping we can find a better solution with existing packages, or fix the packages… there is no obvious reason (so far) why it should be different from x86 installation.

@Loic
10-15 fps tops at 800x480p with EVERYTHING set to their lowest settings

/sys/kernel/debug/dri/0/perf

%BUSY	ALUACTIVE	ALUFULL
 61.1%	   27.33	   46.80
 71.0%	   28.54	   48.79
 70.7%	   32.72	   56.51
 68.7%	   30.75	   52.88
 57.5%	   25.52	   44.01
 52.3%	   22.36	   38.49
 58.5%	   25.17	   43.60
 63.7%	   28.72	   50.01
 79.3%	   33.58	   58.33
 58.3%	   27.14	   47.04
 63.5%	   29.15	   50.84
 63.1%	   24.17	   41.95
 57.8%	   29.21	   50.81

Hi Sahaj:

I followed your instructions pretty closely, only difference is I started with daily build #305 instead of the 17.09 release. It is closer to running. I am getting a seg fault in libGLX.so now. @anon91830841 and @loic you might want to take a look at this.

Picked up JAVA_TOOL_OPTIONS: -Dgnu.io.rxtx.SerialPorts=/dev/tty96B0
Picked up _JAVA_OPTIONS: -Djava.library.path=/home/linaro/.minecraft/natives
OpenJDK 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
[20:52:32] [Client thread/INFO]: Setting user: CK35
[20:52:42] [Client thread/INFO]: LWJGL Version: 2.9.4
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000ffff740a5818, pid=6463, tid=0x0000ffff98aec200
#
# JRE version: OpenJDK Runtime Environment (8.0_151-b12) (build 1.8.0_151-8u151-b12-1-b12)
# Java VM: OpenJDK 64-Bit Server VM (25.151-b12 mixed mode linux-aarch64 compressed oops)
# Problematic frame:
# C  [libGLX.so.0+0xd818]
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/linaro/.minecraft/hs_err_pid6463.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

I’ll go back and reflash the board with 17.09 release and see what happens.

Yes I got that too on the daily build. I do not know what’s happening there but will take a look when possible. Hopefully it’s not a compatibility issue with mesa 17.x

Hi @ric96

I went back and tried it on 17.09. Your instructions work perfectly. Thank you.

Any projection when you might make it work on the daily build?

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other post may not reflect the opinions of my employer.

Awesome!

Currently my db410c is busy running tests for upcoming project/blog series, but as soon as I get the chance. Even I am curious as to why its not working.