Building Qt for ARMv6l
-
Hello,
I'm looking to build Qt applications for this device: PAX S920 -> www.pax.com.cn/Upload/百富产品/Mobile/S920_ENG-14033279322.pdf
This device is an ARMv6l where the processor has no VFP/FPU and has no HW acceleration for GFX, so all we have is access to /dev/fb linux framebuffer device which doesn't have X11 or any kind of Window Manager.
The final objective is to have Qt and QtWebKit running on this device in a full-screen application where it has nothing more than a browser control rendering HTML web apps.
I've read numerous tutorials and docs about building Qt and QtWebkit but none of them, worked for this device. I've tried to hire multiple contractors to do that work but none made progress.
Can someone point me to correct steps, docs or any tutorial in order to achieve the following:
- Build Qt for ARMv6l
- Make sure it work with linux framebuffer (/dev/fb) without dependencies on X11 and any dependency with OpenGL (since there is no HW acceleration)
- Build QtWebKit
The major reason I'm looking for QTWebKit instead of QtWebEngine is because QTWebEngine is based on Chromium which has the following problems for my case:
- Bigger footprint than WebKit
- Chromium is based on V8, which requires VFP/FPU so it doesn't work on our device
- Unless QtWebEngine implement something else (like the Ozone layer on Chromium), Chromium doesn't support linux Framebuffer
Here is basic information about the device:
http://imageshack.com/a/img923/9276/3Zl3xf.png
I really appreciate any help.
Thank you!
Best regards,
Gutemberg -
hi
(note)
the link PAX S920 dont seem to work,. -
@Gutemberg
Yes that a bit odd. I wonder if the 百富产品 play a part.Sadly Im not into arm. However I briefly discussed the case with our
local Qt Champion and he expressed concern if the device has enough horsepower
to handle webkit. (64 MB ram is not much). Just wanted to mention it. -
@Gutemberg
ok so u seen a Qt that worked fine on the same spec device?
Well that should guarantee that u most likely can have the same.
Do you know if it was Qt 4 or 5? -
@mrjj Qt 5.
Also, its not intended to run full blow websites and neither video or other multimedia content on our device.
The idea is that application developers can code the apps using modern web frameworks hence why we want a modern web engine. It is just "simple" payment applications with small screens, hence the small resource usage on those "sites".
-
@Gutemberg
Ok. it sounds reasonable.
Good luck with it. sounds like interesting project. -
@Gutemberg
well its seems to be mutiple disciplines into play as u want a custom Qt with very tight requirements but I bet
hard work and lots of asking here will enable u to build it.Is it for a commercial product line or just a for fun project?
-
@mrjj It is for a commercial project. At first we are aiming this PAX device since it is the more "flexible" device in the payment industry but we want to get other players supported as well (like Verifone, Ingenico, etc.).
Like I said, I tried to hire people just to build Qt for the device but no success. I found lots of people that know QML and development FOR Qt but none that actually cross compiled it for an embedded device.
-
Hi. Basically if you want to crosscompile qt you can do this in 2 ways:
- If you have a proper toolchain and rootfs with development files, you can download qt sources and crosscompile it. I think that a good point to start is with begginsers guide for raspberry pi. Probably you will have to change some options in qmake.conf for this processor.
- Build your own image and sdk with yocto project.
Qt Company have also Qt for device creation so you can ask them directly about commercial version for this device.
There are not much information about this device on internet (sdk, linux version etc..) so for now i can't help more. -
@tomasz3dk Thanks for get back. We cannot create an image for the device. We can only create applications for it. And yes, we have a toolchain with sysroot here. Tutorials like that one is one of the multiple ones around the web that points to specific PI build. There is no docs or tutorial for general ARM devices.
I updated the post with basic information of the device processor.
Thanks
-
@Gutemberg
Hi upload is broken here at forum ;(
please use external site and paste link here. -
@mrjj thanks!
@tomasz3dk here is the CPU info http://imageshack.com/a/img923/9276/3Zl3xf.png
-
Ok good news!
I got Qt 5.8-beta compiled (didn't tried QtWebkit yet and previous versions don't compile, dunno why)! -> I'll post a complete step-by-step here once I got everything to work.
Sent to the device just the libQt5Core and a HelloWorld app that just write a line to the console I built with QtCreator and this is the output:
/data/opt/helloconsole $ ./HelloConsole A newer kernel is required to run this binary. (__kernel_cmpxchg64 helper)
Any idea on what can be? As the image I posted here, the kernel is 3.0.56...
Thanks
-
@Gutemberg said in Building Qt for ARMv6l:
__kernel_cmpxchg64
Does this happen with a plain C++ hello world application without Qt?
Here something about this issue: http://uhurumkate.blogspot.de/2014/07/a-newer-kernel-is-required-to-run-this.html
It should work with kernel >= 3.1