MineCraft on 410c


#1

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.


#2

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.


#3

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.


#4

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


#6

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.


#7

@ljking
https://www.96boards.org/blog/minecraft-dragonboard/


#8

hi @ric96,

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


#9

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.


#10

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.


#11

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.


#12

@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


#13

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. @ndec 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.


#14

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


#15

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.


#16

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.