![]() The perl and python packages are typically already installed in a standard Ubuntu image. The next command pulls in tools needed for building software. Ubuntu has a nifty command to install all the packages needed to build a package – qt5-default in our case: $ sudo apt-get build-dep qt5-default The documentation page Building Qt 5 from Git lists the required packages neatly. And – we need all the Qt dependencies anyway, because we will build Qt both for our Ubuntu machine and for the target hardware. As Qt is quite a kraken, we are done more often than not. When starting with a fresh Ubuntu installation, many packages needed for development are missing.Ī good starting point is to install all the packages needed to build Qt from sources. A well-equipped Windows laptop or PC with VmWare or VirtualBox would do as well. My development machine is a 64-bit Ubuntu 15.10 virtual machine hosted by VmWare Fusion on my Macbook Pro. Setting Up the Development Environment Installing Packages Needed for Building Qt This is pretty good for a low-end device like the i.MX35. Although the i.MX35 does not have OpenGL acceleration, the CPU load comes in at an average of only 27% – with peaks up to 35%. ![]() All the other information – the diesel gauge, the gear info, the speed and the up to five warning indicators at the top – change once a second. The needles of the two dials change every 50ms (20 times per second). Once we have understood the essential steps, it just small adjustments like the path to the C++ compiler, the sysroot path, the Qt modules that can or cannot be built for the target device or the environment variables needed for running the QML app.Ībove is a photo of the home screen of the harvester HMI I have been building for the OPUS A3s (i.MX35). It does not make much of a difference whether we bring up Qt on a Freescale i.MX35/i.MX53/i.MX6, Texas Instruments Jacinto 5/6 or an Nvidia Tegra 2/3. I explain these things in section Building and Running a QML App on the Target.Īlthough my target device is a Wachendorff OPUS A3s with an i.MX35 SoC, most of my explanations apply to every SoC. We must tell the app, which device files send the events for the function keys, the rotary knob and the touches and whether to rotate the touch coordinate system. The fourth and final challenge is to run a sample QML app on the target device, the OPUS A3s. Section Configuring and Building Qt 5.5 from Sources gives the details. The make specs of the Rasperry Pi (another ARM11 SoC) and of the i.MX53 (another Freescale SoC) will be a good reference for the make spec. The third challenge is to create an “mkspec” or “make spec” for a new device, the i.MX35, and to configure and build Qt 5.5 from the GitHub sources for this device. I describe the installation of the toolchain and root file system in the section Setting Up the Development Environment. This can be solved by installing some libraries including the standard C and C++ libraries on the 64-bit Ubuntu development machine. Unfortunately, the 32-bit versions of the gcc compilers do not simply run on a 64-bit system. As Ubuntu 10.10 is not supported any more, I wanted to use at least the lastest 64-bit Ubuntu with long-term support (v14.04) or best the very latest 64-bit Ubuntu (v15.10). The second challenge was that Wachendorff provided a toolchain with 32-bit tools and a 32-bit Ubuntu 10.10. Phew, no Qt commercial license needed and lots of euros saved! In short, QtQuick 2 requires OpenGL but QtQuick 1 does not. But then my personal Qt historian Dario Freddi reminded me that in the olden days QML (Qt 4.8) used to run just with the software renderer and that this feature still lives on in Qt 5.5 with QtQuick 1 and QtDeclarative. My first thought – and the first challenge – was that QML requires OpenGL to work and that the QPA plugin for software rendering is only available under the commercial Qt license. Harvester HMI (QML) running on Wachendorff’s display computer OPUS A3 (i.MX35, no OpenGL).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |