Problem with using Qt for industrial hardware's interface and Linux
Hello!
NOTE: JUMP TO HERE if you don't want to know the context ;)
In recent days I came about a situation that a company is facing regarding using Qt for developing the UI of one of their products. This product is an electrical current analyzer that needs to capture data in real time and plot it efficiently on a pretty graphical interface that by now is using Qwt. I hope you guys may give some help on this :)
In a first moment, the company was willing to develop a Qt interface in embedded Linux using a hardware architecture compounding of two microprocessors that would talk to each other, with one of them running the Qt interface alongside other works. But thanks to financial and strategical reasons, they decided to change the architecture leaving one processor for each group of work, that is one processor only for leading with the interface.
While dealing with this, they found a problem: Linux. Unfortunately, embedded Linux provided not to be the best option to be used, since that would probably require additional DDR memory etc. in order for the system to work, making the PCB more expensive, while it would be better to have a processor with a more suitable system to run the interface. Three options appear: either run Qt in a lighter Linux, or run Qt in a different, lighter operating system (or in no operation system at all) or else stop using Qt.
My questions are regarding the two first options:
HERE
1) Which embedded Linux versions are there that are supported by Qt and that are very light versions of it?
2) Is it possible to run Qt without an underlying operating system? (such as when you run a microprocessor with a simple C file with main() method, without any Embedded Linux or related installed)
3) Which other operating systems are there that are not Linux and that could fit the job and don't require to acquire Digia's Qt commercial license? (I'm aware that Qt Embedded Enterprise Edition from Digia holds support for Qt in 3 real-time operating systems, but to pay something should be avoided).
Btw, since this will be a commercial product, is it mandatory for the company to acquire Qt's commercial license, that is, pay something to Digia just because of this?
Thanks,
Momergil
Re: Problem with using Qt for industrial hardware's interface and Linux
What do you consider a "very light version" of embedded Linux? Qt needs a framebuffer (linuxfb, directfb or similar) to be able to show its UI somewhere, as for the rest it really depends which parts of Qt functionality you need, surely a bunch of libraries will be needed as well.
As for the second question, Qt needs some drivers and libraries. You'd have to provide them all in a single large blob to be able to even think about running it without an operating system.
You could go for any U*ix system that is not Linux (e.g. QNX) but I don't really see what benefits it might bring you. I think you should first answer my initial question.
About licencing costs -- if you can use Qt LGPL then you don't have to pay anything. If not (as for "running Qt without an operating system") then unless your software is LGPL-compatible by itself, you'll surely need a commercial licence.
Re: Problem with using Qt for industrial hardware's interface and Linux
Quote:
Originally Posted by
wysota
What do you consider a "very light version" of embedded Linux? Qt needs a framebuffer (linuxfb, directfb or similar) to be able to show its UI somewhere, as for the rest it really depends which parts of Qt functionality you need, surely a bunch of libraries will be needed as well.
Hello wysota and thanks for the reply!
By a "very light version" of embedded Linux, in practical terms, I mean to have a embedded Linux kernel that would only have the necessary to make the Qt application work, removing everything else that would only consume memory without being strictly needed. Now I know that to have such a thing probably would mean to edit the Linux kernel in accordance with the developed Qt-based interface software, which would undesirably consume time and money. So instead of editing the Linux kernel, one would prefer an already existing (and tested/validated by the community) light Linux kernel, that is, one that had removed from as many as features possible but would still be valid for running Qt applications (for example, considering what you told me, still having linuxfb, etc.).
Thanks,
Momergil
Re: Problem with using Qt for industrial hardware's interface and Linux
For embedded systems one usually wants to tailor the kernel to what is required by this particular system. You can start with some standard distro such as Yocto but sooner or later you will have to start modifying it by adding/removing features.