C
Troubleshooting
See also the list of Known Issues.
General Issues
I have problems deploying/launching the application in Qt Creator
Check that the device is properly connected to the development host via USB or Ethernet (depending on the device). See Connectivity Issues.
I have problems deploying/launching a Qt or Qt Quick example application
Because of a technical peculiarity in qmake
, it is not possible to get correct deployment setup for any application that is placed inside a Qt source code tree.
The workaround is to copy the example sources to a location outside the Qt source tree, and open this copy of the example application instead.
I have problems launching or running applications on hardware after updating the SDK
Remember to repeat the process of updating also your device with the latest version of Boot to Qt software stack. See the Boot to Qt software stack Installation Guide for your target device.
Booting BD-SL-i.MX6 stops with '6x_bootscript not found' error
Check the U-Boot version number. It should start with either 2012
or 2013
. If it is 2009.xx
, an upgrade of the bootloader is required. For more information, see:
- http://boundarydevices.com/6q_bootscript/
- http://boundarydevices.com/switching-u-boot-versions-on-i-mx6/
How do I update NVIDIA image to Jetson TX1 if the device does not boot?
This topic is valid only for Qt 5.9. For later Qt versions, see NVIDIA Jetson TX2 Guide.
If booting NVIDIA Jetson TX1 fails with an error message FDT creation failed! hanging...### ERROR ### Please RESET the board ###, you may need to update the NVIDIA image in your Jetson TX1 device.
Note: NVIDIA image flashing is supported only in Linux.
To update the NVIDIA image, follow the instructions provided by NVIDIA in http://developer2.download.nvidia.com/embedded/L4T/r24_Release_v2.1/BSP/l4t_quick_start_guide.txt.
Note: In the NVIDIA instructions, you are asked to download the latest L4T release package for your developer system. Download the packages:
- http://developer.nvidia.com/embedded/dlc/l4t-jetson-tx1-driver-package-24-2-1
- http://developer.nvidia.com/embedded/dlc/l4t-sample-root-filesystem-24-2-1
Flash the device with the NVIDIA image before you try to boot the Boot to Qt image.
Recording data fails with Qt's CPU Usage Analyzer.
When you use CPU Usage Analyzer with the i.MX6 devices, the Linux kernel may randomly fail to record data after some time. You can try if editing the event table helps CPU Usage Analyzer to record data properly. For example, you can use the cpu-clock
software
event. You must remember to reboot the device after you have edited the events. For more information, see CPU Usage Analyzer Troubleshooting.
Terminating application. Error running process: Process crashed
When terminating an application from Qt Creator, you may see the message Terminating application. Error running process: Process crashed. This is normal and does not indicate a problem in your code; a SIGTERM signal is sent to the application, and Qt interprets it as a crash.
Mouse or touch input does not work
See Customization.
Note: On Embedded Linux hotplugging is usually supported for mouse and keyboard devices.
Application stops with 'EGLFS: OpenGL windows cannot be mixed with others.'
OpenGL and Qt Quick 2 applications can only have one fullscreen window existing at a time. Trying to create another OpenGL window, or trying to mix an OpenGL window with a raster one will display the above message and abort the application.
Note: For raster windows (software rendered content based on QWidget or QPainter), there is no such limitation.
I cannot edit the contents of appcontroller.conf on the device
The file system where this file is located may be mounted as read-only.
See Customization.
How to enable C++11 features
To enable C++11 features in the compiler, add CONFIG += c++11 to the .pro file.
I cannot start the Qt virtual keyboard. What can I do to make it appear?
In some environments, like in VirtualBox, drivers are not be properly set up when they are installed. This causes problems for Qt Virtual Keyboard as the keyboard screen is not visible at all or the topmost part of the keyboard screen is black.
You can solve this issue by forcing your application to use Qt Quick 2D Renderer:
export QMLSCENE_DEVICE=softwarecontext
How can I run a script on my target device when I click the run button in Qt Creator?
If you are developing with Qt for Device Creation 5.8 or earlier, you can add a custom deploy step Custom Remote Command (via adb shell) as instructed in Developing with Qt for Device Creation 5.8 or Earlier.
if you are developing with Qt for Device Creation 5.9 or later, you can add a custom deploy step Custom Remote Command as instructed in Developing with Qt for Device Creation 5.9 or Later.
When you add the custom remote command, remember to include a full path to your script in the remote command. Also, ensure that your script has enough execute permissions.
How can I set a remote deploy directory for my application?
The remote deploy directory depends on the value of qmake INSTALLS variable that you set in your project's .pro or .pri file.
In order to deploy to /my/installation/directory, add the following code to your .pro file, :
target.path = /my/installation/directory INSTALLS += target
If you use .pri file, you can define as follows:
target.path = /opt/$${TARGET}/bin
I get an error: "EGL Error: Could not create the EGL surface: error = 0x3003".
The error may appear if Qt cannot create a new surface due to the target device screen being used by some other application. When you deploy an application with Qt Creator, you should not see this error as the appcontroller ensures that the application is deployed properly. Thus in case of an EGL error, you should consider if you can use Qt Creator for deploying your application.
If you do not use Qt Creator for deploying applications, you must ensure yourself that the target device screen is not used by any other application. For example, Boot to Qt Demo Launcher must not be running on the device. You can also check if updating the EGLFS related environment variables helps. For more information, see http://doc.qt.io/qt-5/embedded-linux.html#eglfs.
Boot to Qt is set to automatically start the application but the application isn't showing up
If you encounter this issue, consider the following steps:
- In a terminal, log into the target device via SSH
- Run the following commands:
systemctl status qtlauncher systemctl status b2qt
- The resulting logs may help to identify the issue
Connectivity Issues
I cannot connect to my embedded target device via USB
- Linux
Check that you have set an udev rule as instructed in Setting up USB Access to Embedded Devices.
Note: There are different udev rules for Qt 5.8 and older, and for Qt 5.9 and newer.
- Windows
You may need to install or update the Android Debug Bridge (ADB) if you are using Qt 5.8 or older. You can check whether a driver is already installed when a device is attached via the Device Manager. If you haven't installed any driver there should be an USB Function Filesystem under Other devices. If this is the case you have to install the USB driver by the following steps:
- Open Other devices > USB Function Filesystem.
- Switch to the Driver tab and click Update Driver.
- Do not let windows search automatically for an updated driver, but select "Browse My Computer for driver software".
- Select "Let me pick from a list of device drivers on my computer".
- Open "Have Disk..."
- Install the driver that is located at <Android-SDK-Tools-install-dir>\extras\google\usb_driver\android_winusb.inf
If you already have an Android ADB Interface under Android Device you may need to update the driver. This can be achieved by running the previous steps on the Android Device > Android ADB Interface.
- Linux/Windows/macOS
If all the steps above have been done and USB Ethernet has been configured according to Setting Up USB Ethernet on Target Device you may need to take logs from the target device to report a new bug or contact Qt support.
If you are using Qt 5.9 or newer include QDB log file. You will find the log file from
%APPDATA%\qdb\qdb.log
on Windows and from~/.local/share/qdb/qdb.log
on Linux and from~/.Library/Application Support/qdb/qdb.log
on macOS.
adb fails with "error: more than one device and emulator"
You have to specify which device you want adb
to talk to, using adb's -s <serial-number>
option. Use the following command to find to see the serial number of the connected devices:
<INSTALL_DIR>/Tools/b2qt/adb devices
What are the user and password to access my embedded Linux device?
Embedded Linux devices can be accessed using user root
and an empty password.
I get an error: "Connection error: Timeout waiting for reply from server."
The error may appear in Qt Creator even if the target device is shown as "Ready to use" with green.
To solve the issue, you can check that your host computer is configured to fetch an IP by DHCP for the newly discovered interfaces. Alternatively, you can configure it manually to the matching subnet. You should use 172.16.58.2/30 as a configuration if it is the only Boot to Qt device connected to the host and if the IP is not already part of some other network on the host.
Available under certain Qt licenses.
Find out more.