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*