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.

If using the emulator, see Requirements for Emulator.

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:

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:

Flash the device with the NVIDIA image before you try to boot the Boot to Qt image.

I see a firewall warning message on Windows after starting the emulator

On Windows, you may see a firewall warning message after starting the emulator for the first time. The warning message says that some emulator features are blocked on local and remote networks. User is asked to allow or cancel the connections.

You need to update the firewall settings:

  1. Select Firewall Settings for your network.
  2. Select Advanced settings.
  3. Select Inbound rules.
  4. Remove all entries of emulator.exe.
  5. Start the emulator.
  6. When the firewall warning message appears, allow all connections.

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.

Something crashed!

The following command shows the system log:

<INSTALL_DIR>/Tools/b2qt/adb logcat

Note: 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.

Connectivity Issues

I cannot connect to my hardware device via USB

If you are using 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.

In case you need to report a new bug or contact Qt support, include a QDB log file if you are using Qt 5.9 or newer. You will find the log file from %APPDATA%\qdb\qdb.log on Windows and ~/.local/share/qdb/qdb.log on Linux.

Additionally on 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:

  1. Open Other devices > USB Function Filesystem).
  2. Switch to the Driver tab and click Update Driver.
  3. Do not let windows search automatically for an updated driver, but select "Browse My Computer for driver software".
  4. Select "Let me pick from a list of device drivers on my computer".
  5. Open "Have Disk..."
  6. 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.

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

The emulator cannot connect to the Internet

By default, the VirtualBox is configured to use a host-only network, so external connections do not work in the emulator.

You may be able to enable Internet connectivity with another virtual network adapter in NAT mode by adapting these instructions.

The emulator is stuck in Waiting for display data or fails to start properly

Check the output of the following command:

<INSTALL_DIR>/Tools/b2qt/adb devices

If the emulator (192.168.56.101) is not listed there, try connecting to it:

<INSTALL_DIR>/Tools/b2qt/adb connect 192.168.56.101

If the emulator is already listed, try disconnecting it:

<INSTALL_DIR>/Tools/b2qt/adb disconnect 192.168.56.101

And then close the emulator and retry.

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.