Questions about qt for embedded development
-
Hi, I am totally new to Qt, after reading something online, I have a basic idea about Qt, but not very clear.
I have a PC104 CPU card, which has vortex86dx cpu(which is a CPU compitible with i586) and 256M or 512M RAM. I want to put linux on it and run a Qt GUI application which mainly communicate with USB and ethernet port.
I know that Ubuntu for desktop cannot be installed on my CPU card because of limited memory. But Ubuntu has an alternate CD which can install Ubuntu on it. This installation is only a command line version Ubuntu without graphic interface. I know Qt for embedded can run on linux with framebuffer. So my question is that if this command line Ubuntu support framebuffer and if a QT GUI app can run on it. If Ubuntu is not ok, which linux is ok for this purpose?
Another thing is that if I can put most development testing and debuging jobs on a desktop PC and recompile the code for the target CPU card until final stage? or I need the desktop PC as a host to debug the target CPU card? In another word, what's the best way for the development job?
thanks for help.
-
welcome to devnet
I have used Qt on embedded devices before. However, there are some bits and pieces of understanding missing on my side. Anyhow ...
You need a linux OS on your embedded board and you need to find also a distribution of c++ compiler for that board. Ideally this compiler is a cross-compiler and you operate this on your desktop.
Personally I am not sure if you have to stick to specific compilers or if most of those cross-compilers are general anyhow. I have used at that time "CodeSourcery toolchain":http://elinux.org/Toolchains Check there for dependencies and requirements of embedded linux. You have to search for some other webpages to complete your understanding.
After your decision when you know the cross-compiler you can use an installation of Qt and environment on your desktop and do your development. You can compile with the cross-compiler on the desktop OS (e.g. Ubuntu) and upload your SW to the embedded board and run it there.
What you need to do in addition to installing the desktop Qt is to do your own compilation of the libs with the cross-compiler. You will do this compilation on your desktop.
You can also do the debugging of your embedded app from your desktop. From personal experience it is more a pain than direct debugging because need to transfer all the time the information forward and back to the app on embedded board and the debugger on the desktop. Personally I prefer to do the debugging, if possible on the desktop. This implies that you need to setup the tool-chains for desktop and embedded system in parallel.Hope this helps. Good luck.
-
To answer your first question;
It doesn't have to do with ubuntu itself, framebuffer support should be enabled in your kernel and then some parameters have to be appended to grub (if you'd like to have a custom resolution, color depth, etc) I don't use Ubuntu but I found this, it might help: "Ubuntu wiki: Framebuffer":https://wiki.ubuntu.com/FrameBuffer
For development jobs, it's a better way to have the dev done on your host PC by emulating the target board (qemu) and building apps with a cross-toolchain and then install them on your target.