Hi everybody!

I finally got it working! Here is what I have to do:

Build fsl-image-gui on Yocto. I'm using Dizzy release, no
DISTRO_FEATURES_removed was used. After that I have to move this libraries
to image, I create a directory on rootfs, /opt/VIVANTE-fb, and add it to
LD_LIBRARY_PATH, more on this below. The libraries I have to use was this
ones:

[geckos@csi24 build_x11]$ find
tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/imx-gpu-viv/ -name
"*[-.]fb.so"
tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/imx-gpu-viv/1_5.0.11.p4.4-hfp-r0/imx-gpu-viv-5.0.11.p4.4-hfp/gpu-core/usr/lib/libGLESv2-fb.so
tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/imx-gpu-viv/1_5.0.11.p4.4-hfp-r0/imx-gpu-viv-5.0.11.p4.4-hfp/gpu-core/usr/lib/libVIVANTE-fb.so
tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/imx-gpu-viv/1_5.0.11.p4.4-hfp-r0/imx-gpu-viv-5.0.11.p4.4-hfp/gpu-core/usr/lib/
libVIVANTE.fb.so
tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/imx-gpu-viv/1_5.0.11.p4.4-hfp-r0/imx-gpu-viv-5.0.11.p4.4-hfp/gpu-core/usr/lib/libEGL-fb.so
tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/imx-gpu-viv/1_5.0.11.p4.4-hfp-r0/imx-gpu-viv-5.0.11.p4.4-hfp/gpu-core/usr/lib/libGAL-fb.so
tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/imx-gpu-viv/1_5.0.11.p4.4-hfp-r0/imx-gpu-viv-5.0.11.p4.4-hfp/gpu-core/usr/lib/
libGAL_egl.fb.so

I copied they to /opt/VIVANTE-fb and have to create some soft links. The
libraries are the same as the above, but without -fb and .fb in their
names. Here is what's looks like:
root@varsomimx6:/opt/VIVANTE-fb# ls -l
total 26900
lrwxrwxrwx 1 root root       11 Jul  8 19:41 libEGL.so -> libEGL.so.1
-rwxr-xr-x 1 root root   552721 Jul  8 19:16 libEGL.so.1
lrwxrwxrwx 1 root root       11 Jul  8 19:39 libEGL.so.1.0 -> libEGL.so.1
-rwxr-xr-x 1 root root  4671490 Jul  8 19:16 libGAL.so
-rwxr-xr-x 1 root root    86183 Jul  8 19:33 libGAL_egl.so
-rwxr-xr-x 1 root root  4426838 Jul  8 19:16 libGLESv2.so
-rwxr-xr-x 1 root root 17797204 Jul  8 19:16 libVIVANTE.so
root@varsomimx6:/opt/VIVANTE-fb#

I also explode the jdk to image's /opt folder and the java samples. Here is
the ones used:
jdk-8u60-ea-bin-b21-linux-arm-vfp-hflt-23_jun_2015.tar.gz
javafx_samples-8_0_0-ea-linux.zip

Then I compile the javafx. I'm using this JDK
(jdk-8u60-ea-bin-b22-linux-x64-01_jul_2015.tar.gz). I have to setup
JAVA_HOME and JDK_HOME to the right place as everybody has to do, also
removed the jfxrt.jar. I just run the script to get the toolchain for
armv6hf, also I copy the mxcfb.h to the toolchain, I don't know if this is
needed to get iMX.6 support but I did it anyway. This file can be found at
Yocto's sysroot (build_x11/tmp/sysroots/), here is how is it:
[geckos@csi24 crosslibs]$ find . -name "mxcfb.h"
./armv6hf-02/usr/include/linux/mxcfb.h

After that I just compiled the javafx as in wiki:
$ gradle -PCOMPILE_TARGETS=armv6hf

Then copy the sdk to my image, since I'm using NFS I did it this way:
sudo cp -a build/armv6hf-sdk/ /srv/nfs/rootfs/opt/

This puts it on /opt/armv6hf-sdk of my rootfs. I changed the script that
Jörg provided, now it looks like this:
root@varsomimx6:~# cat java-fb.sh
#!/bin/sh

export LD_LIBRARY_PATH=/opt/VIVANTE-fb/

/opt/jdk1.8.0_60/bin/java \
-Xms128m \
-Xmx128m \
-Dprism.verbose=true \
-Dglass.platform=Monocle \
-Dembedded=monocle \
-Dmonocle.input.touchRadius=1 \
-Dmonocle.platform.traceConfig=true \
-Djava.ext.dirs=/opt/armv6hf-sdk/rt/lib/ext \
$@


And then run the sample, here is its outputs:
root@varsomimx6:~# ./java-fb.sh -jar
/opt/javafx-samples-8.0.0-ea/BouncingBalls.
jar
Prism pipeline init order: es2 sw
Using native-based Pisces rasterizer
Using dirty region optimizations
Using system sized mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2_monocle
    succeeded.
GLFactory using com.sun.prism.es2.MonocleGLFactory
traceConfig: Trying platform MX6 with class
com.sun.glass.ui.monocle.MX6PlatformFactory
traceConfig: Matched MX6
(X) Got class = class com.sun.prism.es2.ES2Pipeline
Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline
Maximum supported texture size: 8192
Maximum texture size clamped to 4096
Non power of two texture support = true
Maximum number of vertex attributes = 16
Maximum number of uniform vertex components = 672
Maximum number of uniform fragment components = 256
Maximum number of varying components = 44
Maximum number of texture units usable in a vertex shader = 4
Maximum number of texture units usable in a fragment shader = 8
Graphics Vendor: Vivante Corporation
       Renderer: Vivante GC2000
        Version: OpenGL ES 3.0 V5.0.11.p4.25762
 vsync: true vpipe: true
max rectangle texture cell size = 89
wrap rectangle texture = 2 x 2
ES2ResourceFactory: Prism - createStockShader: AlphaTexture_Color.frag
ES2ResourceFactory: Prism - createStockShader: Texture_Color.frag
ES2ResourceFactory: Prism - createStockShader: FillRoundRect_Color.frag
ES2ResourceFactory: Prism - createStockShader:
FillRoundRect_LinearGradient_PAD.frag
ES2ResourceFactory: Prism - createStockShader: Mask_TextureSuper.frag
ES2ResourceFactory: Prism - createStockShader: AlphaOne_Color.frag
ES2ResourceFactory: Prism - createStockShader:
AlphaTexture_RadialGradient.frag
ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag


The touch is working fine, at least the balls are released and paused when
I press it :)

Thank you very much Jörg and Kevin, I really appreciated the help!

Best regards,

- dhs





2015-07-07 18:13 GMT-03:00 Daniel. <danielhi...@gmail.com>:

> Hi all,
>
> I'm still trying to run JavaFX on iMX6 using fsl-image-gui image from
> Yocto Dizzy with DISTRO_FEATURES_remove = "x11 wayland directfb". After
> compiling the image and javafx I tried to run Modena.jar with the script
> provided by Jörg.
>
> I'm facing this exception:
>
> Java HotSpot(TM) Client VM warning: You have loaded library
> /opt/armv6hf-sdk/rt/lib/arm/libjfxwebkit.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
> <libfile>', or link it with '-z noexecstack'.
> Jul 07, 2015 8:32:06 PM javafx.scene.control.Control loadSkinClass
> SEVERE: Failed to load skin 'com.sun.javafx.scene.web.skin.HTMLEditorSkin'
> for control SamplePage$1@1986d5
> java.lang.UnsatisfiedLinkError:
> /opt/armv6hf-sdk/rt/lib/arm/libjfxwebkit.so:
> /opt/armv6hf-sdk/rt/lib/arm/libjfxwebkit.so: wrong ELF class: ELFCLASS64
> (Possible cause: architecture word width mismatch)
>
> So I browse to fresh built sdk, and find this:
> [geckos@csi24 build]$ find . -name "*.so" -exec file {} + | grep x86-64
> ./armv6hf-sdk/rt/lib/arm/libgstreamer-lite.so:       ELF 64-bit LSB shared
> object, x86-64, version 1 (SYSV), dynamically linked,
> BuildID[sha1]=653c81ccc1dfd6fedf946c34a4c2e07d6d3cbed5, not stripped
> ./armv6hf-sdk/rt/lib/arm/libfxplugins.so:            ELF 64-bit LSB shared
> object, x86-64, version 1 (SYSV), dynamically linked,
> BuildID[sha1]=b18524ebc26cd8381b0c33cb2d91a4de68a721fa, not stripped
> ./armv6hf-sdk/rt/lib/arm/libjfxmedia.so:             ELF 64-bit LSB shared
> object, x86-64, version 1 (SYSV), dynamically linked,
> BuildID[sha1]=af8c5754f6a4823ecf22d707b1f604321eb57f22, not stripped
> ./armv6hf-sdk/rt/lib/arm/libjfxwebkit.so:            ELF 64-bit LSB shared
> object, x86-64, version 1 (SYSV), dynamically linked,
> BuildID[sha1]=3143cf3f8ed8d00c2c4048fb835fb3fd86b68f79, stripped
>
> It seems that this libraries ar not being cross compiled, is that normal?
> The another libraries seems good:
> [geckos@csi24 build]$ find . -name "*.so" -exec file {} + | grep ARM
> ./armv6hf-sdk/rt/lib/arm/libglass.so:                ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=8efdb3236c43fc4abaaae956ffba0bfca336c28b, not stripped
> ./armv6hf-sdk/rt/lib/arm/libprism_es2_eglfb.so:      ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=25264a33f919a3a925ef2d2f8ec5d4a10bfbdbf9, not stripped
> ./armv6hf-sdk/rt/lib/arm/libglass_monocle_x11.so:    ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=d1735e47b13e56d58d4e9b7a7f6dee338ccccd9f, not stripped
> ./armv6hf-sdk/rt/lib/arm/libdecora_sse.so:           ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=8052ae5d7f230ee0629743f9ee421371e3522538, not stripped
> ./armv6hf-sdk/rt/lib/arm/libprism_common.so:         ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=658886a9bead9068f4111679e8f5f350386d235b, not stripped
> ./armv6hf-sdk/rt/lib/arm/libjavafx_font.so:          ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=c84058878ffaeebf60be04eb0d138ecf3fdf5cd1, not stripped
> ./armv6hf-sdk/rt/lib/arm/libglass_monocle.so:        ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=ea65233624f7cb0d220ce974aa122866fff659a2, not stripped
> ./armv6hf-sdk/rt/lib/arm/libprism_es2_monocle.so:    ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=6827d044682876f8ace57cfdc3417e026688701c, not stripped
> ./armv6hf-sdk/rt/lib/arm/libprism_sw.so:             ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=eba0d9ddc0bc463e92008e90ded9a3ff17295337, not stripped
> ./armv6hf-sdk/rt/lib/arm/libjavafx_font_pango.so:    ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=be19332b8b460d6e97486cf3d91cf056fefa550b, not stripped
> ./armv6hf-sdk/rt/lib/arm/libjavafx_font_freetype.so: ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=a2e42e950718d3c926ced01a014fa6475347cdf2, not stripped
> ./armv6hf-sdk/rt/lib/arm/libjavafx_iio.so:           ELF 32-bit LSB shared
> object, ARM, EABI5 version 1 (SYSV), dynamically linked,
> BuildID[sha1]=1f879805f5dca1ce97d4d2798b8f40a32eeb547a, not stripped
> [geckos@csi24 build]$
>
> To compile run this:
> gradle -PCOMPILE_TARGETS=armv6hf
>
> Best regards,
> - dhs
>
>
> 2015-07-06 16:47 GMT-03:00 Daniel. <danielhi...@gmail.com>:
>
>> I see, so I'll keep usign armv6hf, I'm compiling a new fsl-image-gui from
>> scratch (have to update yocto) using Dizzy release. What version of Yocto
>> you're using and what image you use for testing?
>>
>> Best regards,
>>
>> - dhs
>>
>> 2015-07-06 10:57 GMT-03:00 Kevin Rushforth <kevin.rushfo...@oracle.com>:
>>
>>>  We do most of our (limited) testing on iMX6 using armv6hf binaries,
>>> but armv7hf should work, too.
>>>
>>> -- Kevin
>>>
>>>
>>>
>>> Daniel. wrote:
>>>
>>> Hi Jörg,
>>>
>>> So did you compile for armv7hf? Where can I get the toolchain for armv7hf??
>>>
>>> Best regards
>>>
>>> - dhs
>>>
>>> 2015-07-05 21:48 GMT-03:00 Daniel. <danielhi...@gmail.com> 
>>> <danielhi...@gmail.com>:
>>>
>>>
>>>
>>>  Hi Jörg, I'm in home right now, tomorrow I'll try it. Thanks for the tip!
>>> - dhs
>>> Em 05/07/2015 18:47, "Jörg Wille" <joerg.wi...@gmail.com> 
>>> <joerg.wi...@gmail.com> escreveu:
>>>
>>>
>>>
>>>  Hi Daniel,
>>> did you try running javafx with monocle? Also sudo is required.
>>> I am also using yocto and using following bash-script to run ui-apps on
>>> i.MX6:
>>> #!/bin/sh
>>> sudo java \
>>> -Xms128m \
>>> -Xmx128m \
>>> -Dprism.verbose=true \
>>> -Dglass.platform=Monocle \
>>> -Dembedded=monocle \
>>> -Dmonocle.input.touchRadius=1 \
>>> -Dmonocle.platform.traceConfig=true \
>>> -Djava.ext.dirs=build/armv7hf-sdk/rt/lib/ext \
>>> -jar $@
>>>
>>> The last line depend whether you have build overlay
>>> <https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX#BuildingOpenJFX-Overlay-JDK8
>>>
>>> (gradle -PCOMPILE_TARGETS=armv7hf zips) or just copied the build path (as
>>> I
>>> do here).
>>>
>>> Are you also using a touch-screen? I stumbled across errors
>>> in monocle/LinuxStatefulMultiTouchProcessor.java. But other than that,
>>> javafx/monocle works on I.MX6.
>>>
>>> Regards,
>>> Jörg
>>>
>>>
>>>
>>>
>>
>>
>> --
>> *"Do or do not. There is no try"*
>>   *Yoda Master*
>>
>
>
>
> --
> *"Do or do not. There is no try"*
>   *Yoda Master*
>



-- 
*"Do or do not. There is no try"*
  *Yoda Master*

Reply via email to