Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raspberry Pi Installation #10

Open
cbradburne opened this issue Sep 24, 2020 · 19 comments
Open

Raspberry Pi Installation #10

cbradburne opened this issue Sep 24, 2020 · 19 comments
Labels
bug Something isn't working

Comments

@cbradburne
Copy link

Describe the bug
Can't get GrizzlyTime-2.3.0 to run on Raspberry Pi

To Reproduce
Steps to reproduce the behavior:
A fresh Rasbian installation on a RPi 4.
Installed Java with "sudo apt install default-jdk"
Run "java -jar GrizzlyTime-2.3.0-Java11.jar"
See log below.

Expected behavior
GrizzlyTime-2.3.0 to run

Log File
OpenJDK Server VM warning: You have loaded library /home/pi/.openjfx/cache/11.0.2/libprism_es2.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 ', or link it with '-z noexecstack'.
Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)
at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:205)
at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:185)
at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:157)
at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52)
at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:68)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.prism.es2.ES2Pipeline.(ES2Pipeline.java:50)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.base/java.lang.Thread.run(Thread.java:834)
Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)
at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:205)
at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:185)
at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:157)
at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52)
at com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:42)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.prism.sw.SWPipeline.(SWPipeline.java:41)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.base/java.lang.Thread.run(Thread.java:834)
Graphics Device initialization failed for : es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
... 1 more
Exception in thread "main" java.lang.RuntimeException: No toolkit found
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:834)

Desktop (please complete the following information):
Raspbian GNU/Linux 10

@cbradburne cbradburne added the bug Something isn't working label Sep 24, 2020
@Daltz333
Copy link
Member

Thats a new one. Give me a bit to do some investigation. You have a display server setup right? And your using the full version of Raspbian, not the lite version?

@Daltz333
Copy link
Member

You could also try using the bellsoft Java.

@cbradburne
Copy link
Author

Full version with a screen.
I'll give bellsoft Java a look into. I really appreciate your help. Covid restrictions mean we have a different exit door to the entrance door so our usual in/out board is of no use. Trying to set up 2(or more) raspberries, one at each door.
Thanks!!

@cbradburne
Copy link
Author

ooh you're a star!! Almost there. I can get all the way to the main screen, but it only shows a small center section of the app.

@Daltz333
Copy link
Member

Small center section of the app, hmmm. Is your display resolution set correctly? Additionally, you can try pressing "escape" or the "f11" key. What size is your display?

@cbradburne
Copy link
Author

Screenshot 2020-09-25 at 18 14 12
This is after I've pressed F11

800x480 resolution

@Daltz333
Copy link
Member

What's the normal look like?

@cbradburne
Copy link
Author

Raspi.mp4.zip
Here's the entire process in a screencast.

Loading,
Press F11,
Press escape.

@Daltz333
Copy link
Member

I'm. Very weird. Does this change with a different/higher resolution monitor? I've only tested with an RPi3

@cbradburne
Copy link
Author

Grizzly-maximise.mp4.zip

ok, so, it looks like I can resize the first splash screen, and that re-sizing does seem to carry over to the main screen. I just can't change the size when it gets to the main screen. Still doesn't allow fullscreen.
grizzly-FS2.mp4.zip

@Daltz333
Copy link
Member

Daltz333 commented Sep 25, 2020

The fullscreen issue is a known bug for Linux. Not sure exactly why.

@cbradburne
Copy link
Author

After lots of trial and error (my lack of knowledge) I've managed to compile your code myself. In Constants.java I've changed:
//window constants
public static final boolean kWindowResizable = false;

to

//window constants
public static final boolean kWindowResizable = true;

This enables fullscreen.
Grizzly Fullscreen.mp4.zip

@Daltz333
Copy link
Member

Interesting. I had locked the screen resize ability previously as it can cause funky behavior when resizing. So the fullscreen works as intended with that patch? Is the normal minimized view working fine?

@cbradburne
Copy link
Author

Other than a few bits being hidden due to the low resolution screen I'm using, yes. The app centers every time I resize the app, and the app keeps working.

The only odd behaviour, is that the opening splash screen is blank (white). I doubt it's related but you never know. It's always been white on Raspbian, even before I started messing around :)

@Daltz333
Copy link
Member

Yeah, that's a Linux specific thing. I suspect the image isn't being displayed right in the pathing. Works fine on windows.

@cbradburne
Copy link
Author

I've just compiled for MacOS and Windows with kWindowResizable = true;
All working fine, MacOS 10.15.7 (latest current release) and Windows 10.

There's no splash screen at all on MacOS. Windows splash screen is just white. I'll have a look in to the splash screen, but it doesn't stop the functionality.

Note, this is all tested with Java11

@memtech3
Copy link

memtech3 commented Jan 5, 2022

are there any updates to this issue? 5892 wants to use GrizzlyTime on a pi for this season

@Daltz333
Copy link
Member

Daltz333 commented Jan 6, 2022

You can use the workarounds listed above. It also does work, but full screen can be a bit funky. @prateekma used on a RPi AFAIK

Edit: Asked him via discord and it did work on RPi with fullscreen

@memtech3
Copy link

memtech3 commented Jan 6, 2022

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants