Exploring possible Point Of Sale Solutions.
I was wondering it someone can share his experiences and solutions related to using Linux/X/and QML?
I want to tear away from Windows so this leave me with
- Linux and some X11 desktop
- Android 4.4 or 5
My hardware might be Arm or Intel Atom. Do you have any suggestions what would work better to use it with QML?
If I would go with option 1.what desktop is the most stable and the lightest from your experience?
My intention is to start QML app in full screen mode and use would not be able to exit from it. It would be the only visible app running visible to users. Also it has to be touch screen?
Any ideas? Points? Links? Where would you start?
I would go with Linux. More features work there than on Android.
The traditional choice for embedded stuff is Yocto, but any other will do. Even Ubuntu, although heavy, will work nicely here. If you really have the choice between ARM and x86, then I would vote 100% for x86. It is faster, and it is easier to find precompiled software for it. You do not really need X11: Qt supports eglfs and Wayland, too.
My preference was also going with linux but wanted others opinion?
As far as eglfs and Wayland as you mention. How do you build and set them up? Is there anything unusual one must do before build/install/setup? Do you have any handy documentation / links describing the process. What I am specifically interested is how to start eglfs or Wayland with out any desktop icons / menu etc. Just bare minimum to run QML full screen as only application.
Also any preference between mentioned eglfs and Wayland. One better then other? Why?
You can check out Qt Company's "Boot to Qt" product - it's probably the easiest solution here. But it costs, of course :-)
Setting Qt up for eglfs or Wayland is harder than for standard, desktop Linux. But actually deploying embedded Linuxes is harder, too.
Here is some initial info from the documentation: "link":http://doc.qt.io/qt-5/embedded-linux.html.
As for the difference between eglfs and Wayland. The former seems to suit your needs better. eglfs is not a windowing system: you just get a single surface to draw on, no windows, no icons, etc. So, usually, you just run a single application on it, and it displays itself full-screen with no option to close or minimize it. Sounds very similar to what you asked for :-) Wayland is a windowing system (intending to replace Xorg in the future), so it is more heavy-weight.
Hope this helps a bit. Somebody else will need to jump in with more technical details, as I've only worked with embedded Yocto and Ubuntu myself, and even then I was not responsible for configuration stuff - just app development.
For the technical details, it will depend on what hardware you'll work with and what linux distribution you'll be running on. Current integrator generally provides customers with pre-built root filesystem and toolchain to build software for their platform so you are less likely to have to play with kernel configuration as well as complete bottom up software deployment.
I'd second sierdzio suggestion about Boot to Qt. Indeed it will cost you something but you'll have a ready made and supported software platform so you'll be able to concentrate on your application development rather than distribution setup, handling, debugging etc. But that decision is up to you, be sure to weight the cost vs time to market you are targeting.
Thank you guys,
I ma reading about QPA now. I would like to stay away from Android for now. So what I ma looking into in Yocto/Linaro distro. Now where can I find good info on how to build and setup my board to run QML in full screen mode. I have Rock Pro, rPI, beagle and Intel Atom.
Do you mean you have 3 different boards since the last one is processor brand ?
SGuest. Last one I was referring to Intel board http://www.intel.com/content/www/us/en/motherboards/desktop-motherboards/desktop-board-di510mo.html
Are there any specific packages I have to download from repo (if available) beside qt packages itself?
It depends on what you'll be running on that board and if you are going to compile natively or not.