Hello.
I'm trying run Embedded Wizard UI application for i.MX 6 using OpenGL ES 2.0 and fbdev (Linux framebuffer device) and OpenGL ES 2.0 and Wayland.
I use following links:
https://doc.embedded-wizard.de/getting-started-imx6-opengl-fbdev?v=11.00
https://doc.embedded-wizard.de/getting-started-imx6-opengl-wayland?v=11.00
But i have no standard NXP SABRE Carrier Board.
I have Phytec phyFlex PBA-B-01 Carrier board.
This Phytec phyFlex carrier board have own "Yogurt (Phytec Base Distribution) BSP-Yocto-i.MX6-PD20.1.0 phyflex-imx6-1" firmware.
I'm able to build Software - fbdev on my host machine, got binary for target iMX6 Arm device and successfully run it on target device.
1) As i mentioned abouve - Phytec phyFlex carrier board have own "Yogurt (Phytec Base Distribution) BSP-Yocto-i.MX6-PD20.1.0 phyflex-imx6-1" firmware.
Then i made own system image using these links:
https://doc.embedded-wizard.de/getting-started-imx6-opengl-fbdev?v=11.00
https://doc.embedded-wizard.de/getting-started-imx6-opengl-wayland?v=11.00
Then flashed this firmware to SD card, tried to load firmware but failed while loading.
So i used standard "Yogurt (Phytec Base Distribution) BSP-Yocto-i.MX6-PD20.1.0 phyflex-imx6-1" firmware (looks liek this system have NO needed library libEGL.so with fbGetDisplayByIndex and fbCreateWindow functions)
2) But when i try to build OpenGL-fbdev application on host computer, i got undefined reference to `fbGetDisplayByIndex' and undefined reference to `fbCreateWindow' errors.
It looks like there are i.MX Framebuffer (FB) API functions calls in my source code:
#ifdef EGL_API_FB
nativeDisplayType = fbGetDisplayByIndex( 0 );
#endif
#if (defined EGL_API_FB)
else if ( strstr( eglVendor, "Vivante" ))
{
eglNativeWindowType = fbCreateWindow( nativeDisplayType, 0, 0, 0, 0 );
}
#endif
I use standard Yocto SDK and i belive that library libEGL.so have no fbGetDisplayByIndex and fbCreateWindow functions.
Then successfully built binary file using gpu-viv-bin-mx6q-fb component taken from here:
http://tardis.tiny-vps.com/aarm/packages/g/gpu-viv-bin-mx6q-fb/
I changed libEGL.so.1 and libGAL.so libraries on host computer and build was successful.
3) I run binary file on on target IMX6 Arm computer (Phytec phyFlex i.MX6) and got:
./EmbeddedWizard-Linux-OpenGL-fbdev: symbol lookup error: ./EmbeddedWizard-Linux-OpenGL-fbdev: undefined symbol: fbGetDisplayByIndex
I changed libEGL.so.1 and libGAL.so libraries on target IMX6 Arm computer (Phytec phyFlex i.MX6).
After that i copied binary file to target imx6 computer, run it and got segmentation fault.
4) I'm able to build OpenGL ES 2.0 and Wayland of binary file (after making Wayland compatible SDK and installing it on host machine), then i copied binary file to target imx6 computer, run it and got:
./EmbeddedWizard-Linux-OpenGL-Wayland./EmbeddedWizard-Linux-OpenGL-Wayland: error while loading shared libraries: libwayland-client.so.0: cannot open shared object file: No such file or directory
My questions:
- what im doing wrong ?
- may be my main mistake is to run Embedded Wizard UI application on Phytec phyFlex board, not NXP SABRE board ?
- could you give me advices please ?
Thank you in advance.