Hi again everybody, I'm attaching an .bbappend that I use to get right EGL libraries on /opt/VIVANTE-fb. Remembering that I'm using Dizzy release of Yocto.
Best regards, - dhs 2015-07-08 17:37 GMT-03:00 Daniel. <danielhi...@gmail.com>: > 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* > -- *"Do or do not. There is no try"* *Yoda Master*