Jump to content

Goatflakes

Members
  • Posts

    3
  • Joined

  • Last visited

    Never

About Goatflakes

  • Birthday 01/01/1900

Goatflakes's Achievements

Dirt

Dirt (1/9)

0

Reputation

  1. Wait a minute... -.-" the LD_LIBRARY_PATH gack should be put into ~/.bashrc or better yet make a shell script to run the technic launcher that sets that variable.
  2. Re: Technic SSP on arch Linux/Linux Minecraft Grey Screen of Death It's a 32/64 bit mismatch. Here is the ass end of your log: [05:10:34] [sEVERE] java.lang.UnsatisfiedLinkError: /technicssp/bin/natives/liblwjgl.so: /technicssp/bin/natives/liblwjgl.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) [05:10:34] [sEVERE] at java.lang.ClassLoader$NativeLibrary.load(Native Method) [05:10:34] [sEVERE] at java.lang.ClassLoader.loadLibrary0(Unknown Source) [05:10:34] [sEVERE] at java.lang.ClassLoader.loadLibrary(Unknown Source) [05:10:34] [sEVERE] at java.lang.Runtime.load0(Unknown Source) [05:10:34] [sEVERE] at java.lang.System.load(Unknown Source) [05:10:34] [sEVERE] at org.lwjgl.Sys$1.run(Sys.java:69) [05:10:34] [sEVERE] at java.security.AccessController.doPrivileged(Native Method) [05:10:34] [sEVERE] at org.lwjgl.Sys.doLoadLibrary(Sys.java:65) [05:10:34] [sEVERE] at org.lwjgl.Sys.loadLibrary(Sys.java:81) [05:10:34] [sEVERE] at org.lwjgl.Sys.<clinit>(Sys.java:98) [05:10:34] [sEVERE] at org.lwjgl.opengl.Display.<clinit>(Display.java:132) [05:10:34] [sEVERE] at net.minecraft.client.Minecraft.a(Minecraft.java:260) [05:10:34] [sEVERE] at net.minecraft.client.Minecraft.run(Minecraft.java:624) [05:10:34] [sEVERE] at java.lang.Thread.run(Unknown Source) I have been bitten by this bug serveral times, usually whenever I reinstall Minecraft. The problem is that when running under 64 bit Java LWJGL tries to load the 32 bit native libraries called lib*.so instead of the 64 bit native libraries called lib*64.so. The solution is simple just open a terminal, cd to the location of the libraries (~/.techniclaucher/tekkit/bin/natives for me, replace the "tekkit" part with where ever the laucher puts the SSP modpack) and then run this command for f in lib*64.so; do mv $f `basename $f 64.so`.so; done This will trash your 32 bit Linux LWJGL libraries, so if you want to save them do this first for f in lib{jinput-linux,lwjgl,openal}.so; do mv $f `basename $f .so`32.so; done Then you will probably get this fuckup: [00:13:15] [sEVERE] java.lang.UnsatisfiedLinkError: /tekkit/bin/natives/liblwjgl.so: libjawt.so: cannot open shared object file: No such file or directory [00:13:15] [sEVERE] at java.lang.ClassLoader$NativeLibrary.load(Native Method) [00:13:15] [sEVERE] at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928) [00:13:15] [sEVERE] at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825) [00:13:15] [sEVERE] at java.lang.Runtime.load0(Runtime.java:792) [00:13:15] [sEVERE] at java.lang.System.load(System.java:1059) [00:13:15] [sEVERE] at org.lwjgl.Sys$1.run(Sys.java:69) [00:13:15] [sEVERE] at java.security.AccessController.doPrivileged(Native Method) [00:13:15] [sEVERE] at org.lwjgl.Sys.doLoadLibrary(Sys.java:65) [00:13:15] [sEVERE] at org.lwjgl.Sys.loadLibrary(Sys.java:81) [00:13:15] [sEVERE] at org.lwjgl.Sys.<clinit>(Sys.java:98) [00:13:15] [sEVERE] at org.lwjgl.opengl.Display.<clinit>(Display.java:132) [00:13:15] [sEVERE] at net.minecraft.client.Minecraft.a(Minecraft.java:260) [00:13:15] [sEVERE] at net.minecraft.client.Minecraft.run(Minecraft.java:624) [00:13:15] [sEVERE] at java.lang.Thread.run(Thread.java:722) Let's see if I can find it $ locate libjawt.so /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjawt.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libjawt.so Nope that's nasty assed openjdk shit, which is allergic to minecraft :< $ sudo updatedb [sudo] password for Goatflakes: UberSecurePa$$word:p $ locate libjawt.so /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjawt.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libjawt.so /usr/lib/jvm/jdk1.7.0_03/jre/lib/amd64/libjawt.so That's better. So I just need to add /usr/lib/jvm/jdk1.7.0_03/jre/lib/amd64 to the path that ld.so searches. So I put this at the end of my ~/.bashrc so it will be run whenever I have a "interactive shell" export LD_LIBRARY_PATH="/usr/lib/jvm/jdk1.7.0_03/jre/lib/amd64" then run my ~/.bashrc to run that command under this particular shell, seeing as it only ran the old ~/.bashrc . ~/.bashrc Then launch Technic Launcher And... it works! If this works for you, but then doesn't when you latter try to run Minecraft/the Technic Launcher from a script or something, then your best bet is to put the following line in it, before the command to run the launcher: export LD_LIBRARY_PATH="/usr/lib/jvm/jdk1.7.0_03/jre/lib/amd64" replace /usr/lib/... with where ever you found libjawt.so. This is because you can't guarantee that ~/.bashrc will run for non-interactive shells. Instead it expands $BASH_ENV and runs whatever file that names. But how to set $BASH_ENV? o.o SOOOO just put it into the script itself. Strangely I didn't get this bug when I first played Tekkit on my new Linux lappy, but then suddenly I did :< IDK what was going on there, maybe the launcher originally had a version of LWJGL that didn't have this bug, then it "upgraded" to one that did, suddenly causing everything to stop working? ^O^ As a general technique looking at the bottom of an error dump will generally be more productive that looking at the top, because the bottom is where the fuckup is EDIT: I had mistakenly put ~/.login instead of ~/.bashrc. ~/.login is only run for "login" shells (which makes sense) but things like terminal windows aren't :s. ~/.bashrc is run for interactive shells. So I changed it to that. And because if you run it from a launcher or script or something, that isn't an interactive shell, so I added a note just to set the needed environment variable in the damn launch script >.<
×
×
  • Create New...