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.
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++17 features
To enable C++17 features in the compiler, add CONFIG += c++17 to the .pro file.
How can I run a script on my target device when I click the run button in Qt Creator?
You can add a custom deploy step Custom Remote Command as instructed in Deploying Applications to Generic Remote Linux Devices.
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 Startup Screen must not be running on the device. You can also check if updating the EGLFS related environment variables helps. For more information, see 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.
- Windows
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.
You should include a QDB log file to your support request. 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.