GlueGen & Jogl on Beaglebone Black

classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

GlueGen & Jogl on Beaglebone Black

Wouter
Hi,

I’m working on a project where I need to get MT4J running on a Beaglebone Black. Since MT4J needs Jogl and GlueGen, I've come here seeking help. Getting Jogl & GlueGen running is the only issue left, so I'm very anxious to get it done :-)

• Is it possible what I’m trying to do? Can Jogl, GlueGen be run on the ARM A8 of a BBB?
• Could you give me some pointers in to how to get it running?

I don’t mind doing extensive research on the matter, I’ve gotten quite a long way with the BBB, but I don’t want to waste company time either. Developing libraries for the BBB would be way out of the scope of my research, that’s why I’m hoping you could point to an existing solution.

In any case thanks already for all the work you’ve put online!

For anyone interested in the Beaglebone microcontroller, here's my research:
http://quad-research.blogspot.be/
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
Maybe needed to mention:

BBB:
-The BBB comes with Linux Angstrom
-Java is already installed: Java(TM) SE Embedded Runtime Environment (build 1.7.0_51-b13)
-X11-server is installed for remote desktop

Desktop system:
-Windows 7 64bit
-Eclipse for java development
-Java JRE & JDK: Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Sven Gothel
Administrator
On 01/21/2014 04:18 PM, Wouter [via jogamp] wrote:

> Maybe needed to mention:
>
> BBB:
> -The BBB comes with Linux Angstrom
> -Java is already installed: Java(TM) SE Embedded Runtime Environment (build
> 1.7.0_51-b13)
> -X11-server is installed for remote desktop
>
> Desktop system:
> -Windows 7 64bit
> -Eclipse for java development
> -Java JRE & JDK: Java(TM) SE Runtime Environment (build 1.7.0_51-b13)

We are already capable running JOGL, and hence GlueGen on ARM platforms.
I _was_ tested beagleboard, pandaboard, raspberry-pi ..

We provide builds for armv6 (armv6) and armv7-hardfloat (armv6hf),
which shall run well on those platforms.

The name in brackets is used in our jar files ..

Note-1: On beagle- and pandaboard we assume a running X11 server,
since OpenGL-ES is accessed via GLX/X11.

Note-3: These is a GL hack sometimes installed to impl. desktop GL2 via Ti's OpenGL-ES.
This does _not_ work! Please uninstall or move those hacked libGL files out of the way.
Mesa-GL (software) can be installed in parallel and are working ofc.

Check latest aggregated builds:
  <http://jogamp.org/deployment/archive/master/?C=M;O=D>
e.g.:
  <http://jogamp.org/deployment/archive/master/gluegen_761-joal_511-jogl_1200-jocl_903/jar/>

Download:
  <http://jogamp.org/deployment/archive/master/gluegen_761-joal_511-jogl_1200-jocl_903/archive/jogamp-all-platforms.7z>

and test .., i.e. see:
  <http://jogamp.org/wiki/index.php/Jogl_FAQ#Use_and_test_Autobuilds>
  <http://jogamp.org/wiki/index.php/Jogamp_Versioning_and_Releases#Runtime_Version_Check>

Disclaimer: I have _not_ tested on the beagleboard lately ..




signature.asc (911 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
Thanks for the reply!

Will debian or ubuntu be better suited for this than the stock angstrom distro?

Gr,
Wouter
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
In reply to this post by Sven Gothel
Hi!

So I followed your instructions. I got the latest jogl autobuild for all platforms on both my windows pc and my BBB.

I get the test running on both systems, but only by providing absolute paths to the jars (any idea why this is?).

The test completes fully on my windows system, but on the BBB it yields an error. Full test log output at the bottom.

I can't seem to get around this... any help is more than welcome!

Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/java/jdk1.7.0_51/jre/lib/arm/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory

-------------------
Test.log:


/usr/java/jdk1.7.0_51/bin//java
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode)
LIBXCB_ALLOW_SLOPPY_LOCK:
LIBGL_DRIVERS_PATH:
LIBGL_DEBUG:
java
forceES2    false
forceES3    false
forceGL3    false
forceGL4ES3 false
-----------------------------------------------------------------------------------------------------
Platform: LINUX / Linux 3.8.13-bone32 (3.8.13), arm (arch), EABI_GNU_ARMEL, 1 cores
MachineDescription: runtimeValidated true, littleEndian true, 32Bit true, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    4 / 4
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 8 / 8
  pointer 4 / 4, page    4096
Platform: Java Version: 1.7.0_51 (1.7.0u51), VM: Java HotSpot(TM) Client VM, Runtime: Java(TM) SE Runtime Environment
Platform: Java Vendor: Oracle Corporation, http://java.oracle.com/, JavaSE: true, Java6: true, AWT enabled: true
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.common
Extension Name: com.jogamp.common
Specification Title: GlueGen Java Bindings Generator
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: GlueGen Run-Time
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.4-rc-20140122
Implementation Build: 2.1-b763-20140122
Implementation Branch: origin/master
Implementation Commit: efb7c478fda04336292104b10c3adf985d59b173
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: javax.media.opengl
Extension Name: javax.media.opengl
Specification Title: Java Bindings for OpenGL API Specification
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: Java Bindings for OpenGL Runtime Environment
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.4-rc-20140122
Implementation Build: 2.1-b1204-20140122
Implementation Branch: origin/master
Implementation Commit: dff056e512f2ec732fadb24c3ed8176626ab5c27
-----------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/java/jdk1.7.0_51/jre/lib/arm/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
        at java.lang.Runtime.load0(Runtime.java:795)
        at java.lang.System.load(System.java:1062)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872)
        at java.lang.Runtime.loadLibrary0(Runtime.java:849)
        at java.lang.System.loadLibrary(System.java:1088)
        at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
        at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.loadLibraries(Toolkit.java:1646)
        at java.awt.Toolkit.<clinit>(Toolkit.java:1668)
        at jogamp.nativewindow.jawt.JAWTJNILibLoader$1.run(JAWTJNILibLoader.java:58)
        at java.security.AccessController.doPrivileged(Native Method)
        at jogamp.nativewindow.jawt.JAWTJNILibLoader.<clinit>(JAWTJNILibLoader.java:52)
        at jogamp.nativewindow.jawt.JAWTUtil.<clinit>(JAWTUtil.java:299)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at javax.media.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:327)
        at javax.media.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:323)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:323)
        at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1545)
        at javax.media.opengl.GLProfile.access$100(GLProfile.java:76)
        at javax.media.opengl.GLProfile$1.run(GLProfile.java:155)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:123)
        at javax.media.opengl.GLProfile.getDefaultDevice(GLProfile.java:1837)
        at com.jogamp.opengl.JoglVersion.getDefaultOpenGLInfo(JoglVersion.java:116)
        at com.jogamp.newt.opengl.GLWindow.main(GLWindow.java:925)
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Xerxes Rånby
2014-01-24 11:07, Wouter [via jogamp] skrev:
> Hi!
>
> So I followed your instructions. I got the latest jogl autobuild for all platforms on both my windows pc and my BBB.
>
great!

> I get the test running on both systems, but only by providing absolute paths to the jars (any idea why this is?).
please post the relative command line you use, on linux/unix you may need to use ./ to indicate the current folder in order to specify correct relative paths.


>
> The test completes fully on my windows system, but on the BBB it yields an error. Full test log output at the bottom.
>
> I can't seem to get around this... any help is more than welcome!
>
> Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/java/jdk1.7.0_51/jre/lib/arm/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory
>
> -------------------
> Test.log:
> ...
> Implementation Commit: dff056e512f2ec732fadb24c3ed8176626ab5c27
> -----------------------------------------------------------------------------------------------------
> Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/java/jdk1.7.0_51/jre/lib/arm/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory
>         at java.lang.ClassLoader$NativeLibrary.load(Native Method)
>         at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
>         at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
>         at java.lang.Runtime.load0(Runtime.java:795)
>         at java.lang.System.load(System.java:1062)
>         at java.lang.ClassLoader$NativeLibrary.load(Native Method)
>         at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
>         at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872)
>         at java.lang.Runtime.loadLibrary0(Runtime.java:849)
>         at java.lang.System.loadLibrary(System.java:1088)
>         at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
>         at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.awt.Toolkit.loadLibraries(Toolkit.java:1646)
>         at java.awt.Toolkit.<clinit>(Toolkit.java:1668)
>         at jogamp.nativewindow.jawt.JAWTJNILibLoader$1.run(JAWTJNILibLoader.java:58)

That error originate from missing libXext on your system
libXext is required for your JDK installation on your beaglebone black to operate correctly.. the error will trigger for all java awt applications using
Toolkit.getDefaultToolkit(); unless you install the X11 libXext library.
http://docs.oracle.com/javase/7/docs/api/java/awt/Toolkit.html#getDefaultToolkit%28%29
This is a JDK bug.. it may be good if the JDK installation reverted to headless awt use if this library is not found instead of throwing the exception. this can be fixed in OpenJDK if you report in the issue to them.
Please note that Toolkit.getDefaultToolkit() is only allowed to Throw AWTError, thus if it instead throws a UnsatisfiedLinkError it is an violation of the JDK 7 spec.


You can solve this on a BBB debian/ubuntu systems by installing the libxext6 package or pass -Djava.awt.headless=true to java in order to explicitly tell JDK installation that you are not running on a AWT enabled system.

Cheers
Xerxes





Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
Hi!

Thanks for the reply! It got my a step further :-D

This is the essential part of the test script I altered:
CLASSPATH=/root/Desktop/JOGL/jogamp-all-platforms/jar/gluegen-rt.jar:/root/Desktop/JOGL/jogamp-all-platforms/jar/jogl-all.jar
D_ARGS="-Djava.awt.headless=true"
X_ARGS="-Dsun.java2d.noddraw=true -Dsun.java2d.opengl=false"
java $X_ARGS $ARGS_NEWT $D_ARGS com.jogamp.newt.opengl.GLWindow 2>&1 | tee -a $logfile

The strange thing is: the libXext.so.6 file is on the BBB, I can find it in the Java JDK file structure...
So I used your VM argument, and got another error:

libX11.so.6: cannot open shared object file

Test.log:
/usr/java/jdk1.7.0_51/bin//java
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode)
LIBXCB_ALLOW_SLOPPY_LOCK:
LIBGL_DRIVERS_PATH:
LIBGL_DEBUG:
java
forceES2    false
forceES3    false
forceGL3    false
forceGL4ES3 false
-----------------------------------------------------------------------------------------------------
Platform: LINUX / Linux 3.8.13-bone32 (3.8.13), arm (arch), EABI_GNU_ARMEL, 1 cores
MachineDescription: runtimeValidated true, littleEndian true, 32Bit true, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    4 / 4
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 8 / 8
  pointer 4 / 4, page    4096
Platform: Java Version: 1.7.0_51 (1.7.0u51), VM: Java HotSpot(TM) Client VM, Runtime: Java(TM) SE Runtime Environment
Platform: Java Vendor: Oracle Corporation, http://java.oracle.com/, JavaSE: true, Java6: true, AWT enabled: false
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.common
Extension Name: com.jogamp.common
Specification Title: GlueGen Java Bindings Generator
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: GlueGen Run-Time
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.4-rc-20140122
Implementation Build: 2.1-b763-20140122
Implementation Branch: origin/master
Implementation Commit: efb7c478fda04336292104b10c3adf985d59b173
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: javax.media.opengl
Extension Name: javax.media.opengl
Specification Title: Java Bindings for OpenGL API Specification
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: Java Bindings for OpenGL Runtime Environment
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.4-rc-20140122
Implementation Build: 2.1-b1204-20140122
Implementation Branch: origin/master
Implementation Commit: dff056e512f2ec732fadb24c3ed8176626ab5c27
-----------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/jogamp_0000/file_cache/jln8985919863876484746/jln1078105223975542120/libnativewindow_x11.so: libX11.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
        at java.lang.Runtime.load0(Runtime.java:795)
        at java.lang.System.load(System.java:1062)
        at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:530)
        at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
        at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:96)
        at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:414)
        at jogamp.nativewindow.NWJNILibLoader.access$000(NWJNILibLoader.java:39)
        at jogamp.nativewindow.NWJNILibLoader$1.run(NWJNILibLoader.java:49)
        at jogamp.nativewindow.NWJNILibLoader$1.run(NWJNILibLoader.java:41)
        at java.security.AccessController.doPrivileged(Native Method)
        at jogamp.nativewindow.NWJNILibLoader.loadNativeWindow(NWJNILibLoader.java:41)
        at jogamp.nativewindow.x11.X11Util.initSingleton(X11Util.java:121)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.jogamp.common.util.ReflectionUtil.callMethod(ReflectionUtil.java:322)
        at com.jogamp.common.util.ReflectionUtil.callStaticMethod(ReflectionUtil.java:344)
        at javax.media.nativewindow.NativeWindowFactory.initSingletonNativeImpl(NativeWindowFactory.java:207)
        at javax.media.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:371)
        at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1545)
        at javax.media.opengl.GLProfile.access$100(GLProfile.java:76)
        at javax.media.opengl.GLProfile$1.run(GLProfile.java:155)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:123)
        at javax.media.opengl.GLProfile.getDefaultDevice(GLProfile.java:1837)
        at com.jogamp.opengl.JoglVersion.getDefaultOpenGLInfo(JoglVersion.java:116)
        at com.jogamp.newt.opengl.GLWindow.main(GLWindow.java:925)
Exception in thread "NativeWindowFactory_ShutdownHook" java.lang.UnsatisfiedLinkError: jogamp.nativewindow.x11.X11Util.shutdown0()V
        at jogamp.nativewindow.x11.X11Util.shutdown0(Native Method)
        at jogamp.nativewindow.x11.X11Util.shutdown(X11Util.java:222)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.jogamp.common.util.ReflectionUtil.callMethod(ReflectionUtil.java:322)
        at com.jogamp.common.util.ReflectionUtil.callStaticMethod(ReflectionUtil.java:344)
        at javax.media.nativewindow.NativeWindowFactory.shutdownNativeImpl(NativeWindowFactory.java:297)
        at javax.media.nativewindow.NativeWindowFactory.shutdown(NativeWindowFactory.java:278)
        at javax.media.nativewindow.NativeWindowFactory$2$1.run(NativeWindowFactory.java:173)
        at java.lang.Thread.run(Thread.java:744)
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Xerxes Rånby
This post was updated on .
2014-01-24 12:03, Wouter [via jogamp] skrev:
> Hi!
>
> Thanks for the reply! It got my a step further :-D
>
> This is the essential part of the test script I altered:
> CLASSPATH=/root/Desktop/JOGL/jogamp-all-platforms/jar/gluegen-rt.jar:/root/Desktop/JOGL/jogamp-all-platforms/jar/jogl-all.jar
> D_ARGS="-Djava.awt.headless=true"
> X_ARGS="-Dsun.java2d.noddraw=true -Dsun.java2d.opengl=false"
> java $X_ARGS $ARGS_NEWT $D_ARGS com.jogamp.newt.opengl.GLWindow 2>&1 | tee -a $logfile
>
> The strange thing is: the libXext.so.6 file is on the BBB, I can find it in the Java JDK file structure...
> So I used your VM argument, and got another error:
>
> libX11.so.6: cannot open shared object file

> ...
> Implementation Commit: dff056e512f2ec732fadb24c3ed8176626ab5c27
> -----------------------------------------------------------------------------------------------------
> Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/jogamp_0000/file_cache/jln8985919863876484746/jln1078105223975542120/libnativewindow_x11.so: libX11.so.6: cannot open shared object file: No such file or directory

please double check that the X11 server installation on your beagle board black actually work.
try run some X11 gui applications like xeyes and xterm in order to check that xorg is installed correctly then try
run some native opengl es application like es2gears to check that the beagle board black ångstrom system got the power vr SGX opengl es drivers installed.

libX11.so.6 will be installed using Ångstrom if you run
opkg update
opkg upgrade
opkg install angstrom-x11-base-depends

I have not found any good documentation if the power vr SGX opengl es drivers are available/working using Ångstrom.

https://groups.google.com/forum/#!msg/beagleboard/bPrO73EbNSo/1DwnuXfz8joJ


There is some partial documentation on how to get the opengl es drivers working under Ubuntu:
http://elinux.org/BeagleBoardUbuntu#SGX_Video_Acceleration

Thus please verify that xorg (x11) and OpenGL ES drivers are correctly installed on your beagle board black before using jogamp.jogl.

good luck
Xerxes
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
Hi!

I'll get right on verifying that, thanks :-)

I'm using Ubuntu btw, with xfce4, so isn't that already using opengl?

Greetings from Belgium!
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
In reply to this post by Xerxes Rånby
xeyes and xterm both work.

Can't seem to find es2gears very easily...

Going trough the stuff on elinux now, let's hope it works!
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Xerxes Rånby
2014/1/24 Wouter [via jogamp] <ml-node+s762907n4031325h38@n3.nabble.com>
> xeyes and xterm both work.
>
> Can't seem to find es2gears very easily...
>
> Going trough the stuff on elinux now, let's hope it works!
>

the Ubuntu package mesa-utils-extra containins the EGL/GLES2 mesa demos such as es2gears

sudo apt-get install mesa-utils-extra

Also try es2_info that will print the driver version in use.
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
Hi,

yeah came across mesa, trying to install it manually, but building didn't succeed. your command seems to work though, thx
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
In reply to this post by Xerxes Rånby
ALRAAAAIT

Got es2gears running, quite slow, but it's running :-D

This is the es2_info output:

root@arm:~/Desktop/mesa-demos-8.1.0# es2_info
libEGL warning: GLX/DRI2 is not supported
EGL_VERSION: 1.4 (DRI2)
EGL_VENDOR: Mesa Project
EGL_EXTENSIONS:
    EGL_KHR_surfaceless_context
EGL_CLIENT_APIS: OpenGL OpenGL_ES OpenGL_ES2 OpenGL_ES3
GL_VERSION: OpenGL ES 2.0 Mesa 9.2.1
GL_RENDERER: Software Rasterizer
GL_EXTENSIONS:
    GL_EXT_blend_minmax, GL_EXT_multi_draw_arrays,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_compression_dxt1,
    GL_EXT_texture_format_BGRA8888, GL_OES_depth24, GL_OES_element_index_uint,
    GL_OES_fbo_render_mipmap, GL_OES_mapbuffer, GL_OES_rgb8_rgba8,
    GL_OES_standard_derivatives, GL_OES_stencil8, GL_OES_texture_3D,
    GL_OES_texture_npot, GL_OES_depth_texture, GL_OES_packed_depth_stencil,
    GL_EXT_texture_type_2_10_10_10_REV, GL_OES_get_program_binary,
    GL_APPLE_texture_max_level, GL_EXT_discard_framebuffer,
    GL_EXT_read_format_bgra, GL_NV_fbo_color_attachments,
    GL_OES_vertex_array_object, GL_ANGLE_texture_compression_dxt3,
    GL_ANGLE_texture_compression_dxt5, GL_EXT_texture_rg,
    GL_EXT_unpack_subimage, GL_NV_draw_buffers, GL_NV_read_buffer,
    GL_EXT_map_buffer_range
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
In reply to this post by Xerxes Rånby
Seems like everything's set, no? But still libX11.so.6 is not to be found...
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Xerxes Rånby
In reply to this post by Wouter
Wouter wrote
ALRAAAAIT

Got es2gears running, quite slow, but it's running :-D

This is the es2_info output:

root@arm:~/Desktop/mesa-demos-8.1.0# es2_info
...
EGL_CLIENT_APIS: OpenGL OpenGL_ES OpenGL_ES2 OpenGL_ES3
GL_VERSION: OpenGL ES 2.0 Mesa 9.2.1
GL_RENDERER: Software Rasterizer     <----
please note that this is only using the ARM CPU to do all rendering,
JogAmp JOGL can use this as well but it will be slow by design since it is not using the capabilities of your device.

you need to obtain and install the Power VR SGX OpenGL ES drivers if you want to use hardware acceleration.

Cheers
Xerxes
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Xerxes Rånby
In reply to this post by Wouter
Wouter wrote
Seems like everything's set, no? But still libX11.so.6 is not to be found...
thats really odd.. libX11.so.6 should be available

try run
ldd /usr/bin/xeyes
to see where libX11.so.6 is installed on your system

which version of java did you use?
please report
java -version

from your beagle bone black..

if libX11.so.6 is not found by java then make sure that the system include the library path that contains libX11.so.6 in
/etc/ld.so.conf
or
/etc/ld.so.conf.d/armhf-linux-gnu.conf
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
In reply to this post by Xerxes Rånby
Ah ok, I considered this quite a win :-)

But you're right, software rendering isn't going to cut it. I need the MT4J demos to run, so hardware rendering will probably be essential

http://www.youtube.com/watch?v=ZhMUnm4HSYg

Those drivers were downloading, it's about 2GB for the whole kernel. Let's see what that gives us...

Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Xerxes Rånby
Wouter wrote
Ah ok, I considered this quite a win :-)

But you're right, software rendering isn't going to cut it. I need the MT4J demos to run, so hardware rendering will probably be essential

http://www.youtube.com/watch?v=ZhMUnm4HSYg

Those drivers were downloading, it's about 2GB for the whole kernel. Let's see what that gives us...
Cool, so you plan to make MT4J running on the BeagleBone Black?

http://www.mt4j.org/mediawiki/index.php/Downloads <- heads up that MT4J uses an outdated version of jogl 1 . some porting work will be required to update MT4J to work using jogl 2 from jogamp and to make the code OpenGL ES compatible before it can be used on embedded systems such as the beagle bone black.

I recommend you to checkout the source-code
http://code.google.com/p/mt4j/source/checkout
possibly clone it to git and the update the framework to use Jogl 2 from JogAmp.

We have used the "Jake2" java quake2 port in the past as a demonstration on how to update a legacy Jogl 1 application to Jogl 2.
http://jogamp.org/git/?p=users/sgothel/jake2.git;a=log
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Wouter
Would using the old jogl be an option? To avoid extra work... I've spend quite some time on this already and can't invest much more company time on it.

Might Arduino be better suited for this task, to your opinion?
Reply | Threaded
Open this post in threaded view
|

Re: GlueGen & Jogl on Beaglebone Black

Sven Gothel
Administrator
On 01/24/2014 04:25 PM, Wouter [via jogamp] wrote:
> Would using the old jogl be an option? To avoid extra work... I've spend quite
> some time on this already and can't invest much more company time on it.

It will be harder to backport 4+ years of GlueGen/JOGL v2.*
development to JOGL v1.* - than porting an application to use
our new JogAmp modules .. trust me :)

>
> Might Arduino be better suited for this task, to your opinion?

Dunno ..
I tested w/ Debian + Ubuntu.

For both you need to follow the Ti-Omap Beagleboard pages,
which will lead you to install the specific
Linux Kernel + Omap modules incl. firmware (BLOBS).

However, all this does not explain the libX11.so issue ..

Do a:
  unzip <some-path>jogl-all-natives-linux-armv6.jar
     this extracts libnativewindow_x11.so

  ldd -v <some-path>/libnativewindow_x11.so

should show some reason for missed dependencies ..

~Sven



signature.asc (894 bytes) Download Attachment
12