Skip to content

Mobile and Embedded

The forum for developing everything embedded: Linux, WinCE, Symbian, MeeGo... you name it.
14.1k Topics 62.3k Posts
  • [Need Help]: Qt5.15 support iOS TLS 1.3

    Unsolved
    2
    0 Votes
    2 Posts
    64 Views
    JKSHJ
    You could... Install the OpenSSL development libraries Rebuild the Qt libraries from source Add the OpenSSL library folder to your project's DYLD_LIBRARY_PATH See: General information about building Qt 5.15 from source code on macOS: https://doc.qt.io/qt-5/macos-building.html Instructions on how to make Qt Network use OpenSSL: https://doc.qt.io/qt-5/ssl.html#enabling-and-disabling-ssl-support
  • qtcreator 15 changing android application name breaks build

    Solved
    3
    0 Votes
    3 Posts
    76 Views
    S
    hey man thanks for the tip, that led me in the right direction. The fix was to close the project, delete my build directory AND my CMakeLists.txt.user file, then reopen the project and choose the build kits again. All good now I will mark this as resolved.
  • QtWayland compositor very bad performance

    Unsolved wayland weston qt 5.8.0 qtwayland glmark2
    6
    0 Votes
    6 Posts
    3k Views
    N
    Sorry, yes, good points. # ./sgx_check.sh WSEGL settings [default] WindowSystem=libpvrDRMWSEGL.so DefaultPixelFormat=RGB888 #DefaultPixelFormat=RGB565 ------ ARM CPU information processor : 0 model name : ARMv7 Processor rev 2 (v7l) BogoMIPS : 597.60 Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x3 CPU part : 0xc08 CPU revision : 2 Hardware : Generic OMAP36xx (Flattened Device Tree) Revision : 0000 Serial : 0000000000000000 ------ SGX driver information Version SGX_DDK sgxddk 1.17@4948957 (release) dm37xx_linux System Version String: SGX revision = 125 ------ Framebuffer settings mode "1280x720" geometry 1280 720 1280 720 32 timings 0 0 0 0 0 0 0 accel true rgba 8/16,8/8,8/0,0/0 endmode Frame buffer device information: Name : omapdrmdrmfb Address : (nil) Size : 3686400 Type : PACKED PIXELS Visual : TRUECOLOR XPanStep : 1 YPanStep : 1 YWrapStep : 0 LineLength : 5120 Accelerator : No ------ Rotation settings 0 ------ PVR Module information Module Size Used by pvrsrvkm 393216 2 ------ Boot settings console=ttyO0,115200n8 rootwait=1 rw ubi.mtd=7,512 rootfstype=ubifs root=ubi0:compu-XXXX mtdoops.mtddev=omap2.nand earlyprintk=ttyO0,115200n8 nohlt omapfb.rotate=0 vram=40M omapfb.vram=20M,1:1M,2:1M omapfb.vrfb=y cma=64MB 5 ------ Linux Kernel version Linux compu-XXXX 5.10.168-1-ctx-g991c5ce91e #1 SMP PREEMPT Fri Apr 7 09:34:04 UTC 2023 armv7l GNU/Linux ------ Weston.ini [core] require-input=false idle-timeout=0 gbm-format=xrgb8888 #gbm-format=rgb565 [output] name=DPI-1 [libinput] touchscreen_calibrator=true calibration_helper=/bin/echo [shell] locking=false animation=none panel-position=none close-animation=none startup-animation=none focus-animation=none ------ /etc/profile.d/qt_env.sh #!/bin/sh ### QT Environment Variables ### # export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="rotate=180" export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt export QT_QPA_EGLFS_KMS_CONFIG=/etc/qt6/eglfs_kms_cfg.json #export QT_QPA_EGLFS_INTEGRATION=eglfs_kms export QT_QPA_EGLFS_ALWAYS_SET_MODE=1 export QT_WAYLAND_SHELL_INTEGRATION=xdg-shell # SECCOMP-BPF Sandbox does not work due to unexpected FUTEX_UNLOCK_PI call # from the pthread implementation. Disable this feature temporarily until # those issues are resolved. export QTWEBENGINE_CHROMIUM_FLAGS="--disable-seccomp-filter-sandbox" export QT_QPA_EGLFS_INTEGRATION=none export QSG_RHI_PREFER_SOFTWARE_RENDERER=0 export QT_WIDGETS_RHI_BACKEND=opengl export QT_WIDGETS_HIGHDPI_DOWNSCALE=1 export QT_WIDGETS_RHI=1 export QT_OPENGL_NO_SANITY_CHECK=1 export QT_QPA_PLATFORM="wayland-egl" export QT_WAYLAND_CLIENT_BUFFER_INTEGRATION="linux-dmabuf-unstable-v1" export QT_WAYLAND_HARDWARE_INTEGRATION="linux-dmabuf-unstable-v1" export QT_WAYLAND_SERVER_BUFFER_INTEGRATION="linux-dmabuf-unstable-v1" export QT_WAYLAND_SHELL_INTEGRATION="xdg-shell" export QT_WAYLAND_TEXT_INPUT_PROTOCOL="zwp_text_input_v1" --- Version info: # weston --version weston 10.0.2 nsions string: EGL_EXT_client_extensions EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless GBM platform: MESA: info: Loaded libpvr_dri_support.so EGL API version: 1.4 EGL vendor string: Mesa Project EGL version string: 1.4 EGL client APIs: OpenGL_ES EGL extensions string: EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_yuv_surface EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_WL_bind_wayland_display EGL_IMG_cl_image Configurations: bf lv colorbuffer dp st ms vis cav bi renderable supported id sz l r g b a th cl ns b id eat nd gl es es2 vg surfaces --------------------------------------------------------------------- 0x01 32 0 8 8 8 8 0 0 0 0 0x34325241-- a y y win,pb 0x02 32 0 8 8 8 8 0 0 4 1 0x34325241-- a y y win,pb 0x03 32 0 8 8 8 8 24 8 0 0 0x34325241-- a y y win,pb 0x04 32 0 8 8 8 8 24 8 4 1 0x34325241-- a y y win,pb 0x05 24 0 8 8 8 0 0 0 0 0 0x34325258-- y y y win,pb 0x06 24 0 8 8 8 0 0 0 4 1 0x34325258-- y y y win,pb 0x07 24 0 8 8 8 0 24 8 0 0 0x34325258-- y y y win,pb 0x08 24 0 8 8 8 0 24 8 4 1 0x34325258-- y y y win,pb 0x09 16 0 5 6 5 0 0 0 0 0 0x36314752-- y y y win,pb 0x0a 16 0 5 6 5 0 0 0 4 1 0x36314752-- y y y win,pb 0x0b 16 0 5 6 5 0 24 8 0 0 0x36314752-- y y y win,pb 0x0c 16 0 5 6 5 0 24 8 4 1 0x36314752-- y y y win,pb MESA: info: Unloaded libpvr_dri_support.so Wayland platform: MESA: info: Loaded libpvr_dri_support.so EGL API version: 1.4 EGL vendor string: Mesa Project EGL version string: 1.4 EGL client APIs: OpenGL_ES EGL extensions string: EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_present_opaque EGL_EXT_swap_buffers_with_damage EGL_EXT_yuv_surface EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_WL_bind_wayland_display EGL_WL_create_wayland_buffer_from_image EGL_IMG_cl_image Configurations: bf lv colorbuffer dp st ms vis cav bi renderable supported id sz l r g b a th cl ns b id eat nd gl es es2 vg surfaces --------------------------------------------------------------------- 0x01 32 0 8 8 8 8 0 0 0 0 0x00-- a y y win,pb 0x02 32 0 8 8 8 8 0 0 4 1 0x00-- a y y win,pb 0x03 32 0 8 8 8 8 24 8 0 0 0x00-- a y y win,pb 0x04 32 0 8 8 8 8 24 8 4 1 0x00-- a y y win,pb 0x05 24 0 8 8 8 0 0 0 0 0 0x00-- y y y win,pb 0x06 24 0 8 8 8 0 0 0 4 1 0x00-- y y y win,pb 0x07 24 0 8 8 8 0 24 8 0 0 0x00-- y y y win,pb 0x08 24 0 8 8 8 0 24 8 4 1 0x00-- y y y win,pb MESA: info: Unloaded libpvr_dri_support.so --- QT Settings: export QT_QPA_PLATFORM="wayland-egl" export QT_WAYLAND_SHELL_INTEGRATION="xdg-shell" export QT_WIDGETS_RHI=1 export QT_WIDGETS_RHI_BACKEND=opengl Results (All taken with the PVRTune server running for looking at the results) Running (Qt 6.8.3): rhiwindow on Weston compositor: ~3.5 fps rhiwindow on QT Fancy compositor: ~3 fps rhiwindow in sway compositor : 0.5 fps. ~2.3 fps when pvrtune is not running rhiwindow without compositor, using EGLFS: 35 fps Note: Looks like GLES2 doesn't connect fully in Sway: 00:00:01.840 [wlr] [render/gles2/renderer.c:704] Failed to create GLES2 renderer calculator (maximized): Weston : ~1/4 second delay in reaction to touch. Quickly pressing a number 5 times takes 12 seconds to resolve all 5 presses (counting from end of the last touch). QT Fancy compositor: ~1/4 s delay in reaction, 5 numbers takes 5 seconds to resolve all presses. Note that maximization of the calculator fails, so this is not as large as the Weston example. Error: Can't configure xdg_toplevel with an invalid size QSize(-1, -1) Sway: Several seconds between press and response. Sway: Run WITHOUT any RHI components (unset the QT_RHI... variables): ~1/4 second delay in response, ~1 second to resolve all presses. Not utilizing GPU at all. When I turn off PVTune, no noticable delay in either case. I think this actually indicates to me that there is a problem in my EGL setup with QT, more than the compositor, because in the pure-GPU case of using sway without RHI, we are very fast. However, it should be noted that the weston-simple-egl application gets around 30 fps when fullscreened, and 60fps when about 1/2 size and does utilize the GPU. I will post this information in the PVR forum, as it could be a problem with my PowerVR EGL connection... but it's odd to me that the simple-egl test application in Weston works perfectly well. that QT with EGLFS (no compositor) is substantially faster, and I get ~35 FPS when running rhiwindow and see good GPU utilization. So it's not QT->EGL, and it's not Weston->EGL, it's QT-><any Compositor>->EGL which has a slowdown, even further in simple applications like the calculator than pure-cpu rendering. EDIT: I wrote up a post to debug the EGL/PowerVR side here: https://forums.imgtec.com/t/qt-slow-to-connect-to-pvr-using-weston/4167/2 What I noticed while writing it was that there is a big difference in performance between QT having to change the calculator number or not. (Pressing "clear" 5x was at least twice as fast as pressing a number 5x).
  • qt6.8.3 IOS build fails for examples

    Unsolved
    1
    0 Votes
    1 Posts
    42 Views
    No one has replied
  • Issues rendering sample apps in the AVD following the 'Getting Started guide'

    Unsolved
    3
    1 Votes
    3 Posts
    362 Views
    M
    @Valeriy-Y. found the solution for this: Adding to AndroidEmulator startup args (AVD Arguments button): -gpu host. Source: https://developer.android.com/studio/run/emulator-acceleration#accel-graphics
  • Android Emulator broken

    Unsolved
    5
    0 Votes
    5 Posts
    265 Views
    M
    Thanks! That solves the problem! And the link was just there on the AVD arguments page. Why didn't I find this myself.
  • Problem when using OpenSSL in the phone

    Unsolved
    8
    0 Votes
    8 Posts
    522 Views
    M
    @Ronel_qtmaster I recently had the same problem using Qt6.9: E/linker (21919): library "/system/lib/libcrypto.so" ("/system/lib/libcrypto.so") needed or dlopened by "/data/app/com.company.app--EodNGlgEtHINhQ6rIRNedQ==/lib/arm64/libQt6Core_arm64-v8a.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/com.company.app--EodNGlgEtHINhQ6rIRNedQ==/lib/arm64:/data/app/com.company.app--EodNGlgEtHINhQ6rIRNedQ==/base.apk!/lib/arm64-v8a", permitted_paths="/data:/mnt/expand:/data/data/com.company.app"] W/qt.tlsbackend.ossl(21919): Failed to load libssl/libcrypto. W/AudioCapabilities(21919): Unsupported mime audio/ac4 W/AudioCapabilities(21919): Unsupported mime audio/x-ima W/qt.network.ssl(21919): No functional TLS backend was found W/qt.network.ssl(21919): No TLS backend is available ... and stumbled across your posted Link: https://github.com/KDAB/android_openssl (I also think the same information are present in the official Qt doc: https://doc.qt.io/qt-6/android-openssl-support.html) However I either used the command add_android_openssl_libraries(${PROJECT_NAME}) wrong or did forget something because I get an error when running CMake that this is not a known command: CMake Error at CMakeLists.txt:279 (add_android_openssl_libraries): [cmake] Unknown CMake command "add_android_openssl_libraries". I also tried to add the extra libraries as mentioned set_target_properties(<target_name> PROPERTIES QT_ANDROID_EXTRA_LIBS "<path_to_libs_dir>/libcrypto_3.so" "<path_to_libs_dir>/libssl_3.so" ) like set_target_properties(${PROJECT_NAME} PROPERTIES QT_ANDROID_EXTRA_LIBS "${SSL_ROOT_PATH}/ssl_3/${CMAKE_ANDROID_ARCH_ABI}/libcrypto_3.so" "${SSL_ROOT_PATH}/ssl_3/${CMAKE_ANDROID_ARCH_ABI}/libssl_3.so" ) but this only led to CMake Error at CMakeLists.txt:274 (set_target_properties): [cmake] set_target_properties called with incorrect number of arguments. when trying to run it. However this post https://forum.qt.io/topic/160405/cmake-equivalent-for-qmake-s-android_extra_libs/3 made me aware that The values in QT_ANDROID_EXTRA_LIBS need to be separated by a semicolon. and also without a newline in between which finally made me come up with # Android for TLS backend include(${ANDROID_SDK_ROOT}/android_openssl/CMakeLists.txt) # this sets OPENSSL_ROOT_DIR and ANDROID_EXTRA_LIBS however I seem to need set *QT_*ANDROID_EXTRA_LIBS set_target_properties(${PROJECT_NAME} PROPERTIES QT_ANDROID_EXTRA_LIBS "${SSL_ROOT_PATH}/ssl_3/${CMAKE_ANDROID_ARCH_ABI}/libcrypto_3.so;${SSL_ROOT_PATH}/ssl_3/${CMAKE_ANDROID_ARCH_ABI}/libssl_3.so" ) or even just # Android for TLS backend set_target_properties(${PROJECT_NAME} PROPERTIES QT_ANDROID_EXTRA_LIBS "${ANDROID_SDK_ROOT}/android_openssl/ssl_3/${CMAKE_ANDROID_ARCH_ABI}/libcrypto_3.so;${ANDROID_SDK_ROOT}/android_openssl/ssl_3/${CMAKE_ANDROID_ARCH_ABI}/libssl_3.so" ) Is this a bug in Qt/QtCreator or just an error in the documentation? Where could I report this?
  • Qt6 CMake install java files

    Unsolved
    2
    0 Votes
    2 Posts
    112 Views
    M
    I managed to come up with a workaround (which I would like to have only temporary xD) Instead of trying to compile my additional subproject .java files directly to the build folder, I can move it to QT_ANDROID_PACKAGE_SOURCE_DIR directory -> where they then get copied to the build folder autmatically. This essentially works but I do not want those files to be present in my root project dir so I added those to my .gitignore tried to add a custom command after build to delete those files: For each folder I add a variable appends the given path and in my root project's CMake I have if (ANDROID) # Collect all registered plugin folders and clean after build after linking subdirectories get_property(ALL_JAVA_PLUGIN_DIRS GLOBAL PROPERTY JAVA_CLEANUP_DIRS) message(STATUS "ALL_JAVA_PLUGIN_DIRS: ${ALL_JAVA_PLUGIN_DIRS}") foreach(DIR_TO_DELETE ${ALL_JAVA_PLUGIN_DIRS}) message(STATUS "Adding custom command for deleting: ${DIR_TO_DELETE}") add_custom_command( TARGET ${ROOT_PROJECT} POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo "Deleting: ${DIR_TO_DELETE}" COMMAND ${CMAKE_COMMAND} -E remove_directory ${DIR_TO_DELETE} COMMENT "Cleaning up plugin java folder after build: ${DIR_TO_DELETE}" ) endforeach() endif () Sadly this does not really work reliable :/ Every time after a successful build (when I think this should be triggered) I see neither the echo command, nor the comment anywhere in the logs and the files still remain, but on the other hand, sometimes in between it seems that the files get purged thus making my build fail xD Is anyone aware of another approach / solution to this? Am I the only one having this problem, maybe I have something wonky with my project setup? :-s Essentially I am just searching for successor of "INSTALLS" for QMake which I can apply to CMake
  • How to automatically launch iOS app with parameters

    Locked Solved
    9
    0 Votes
    9 Posts
    2k Views
    M
    Note that for Android 12 and later, you need some extra steps for URLs like https://example.org/register to be picked up by your app and not a web browser. See https://developer.android.com/training/app-links. You now need to host an assetlinks JSON file under /.well-known/assetlinks.json and point your AndroidManifest.xml at this. See https://developer.android.com/training/app-links/verify-android-applinks. You can host the assetlinks on GitHub pages if you don't have your own server. In our case, iOS doesn't care about the change of domain because we only look at the query parameters in the URL.
  • QML TextEdit, validator, regex with \pL — how to do it?

    Unsolved
    6
    0 Votes
    6 Posts
    345 Views
    B
    @zvoopz Right, that's what I do in my non-QML widget code. For my QML code, exposing a C++ object class may be the best solution, if only because QRegularExpressionValidator can do an intelligent "fixup" that would let me accept a paste while filtering out any invalid characters, but it's odd to me that [a] TextEdit still doesn't have a validator property, and [b] QML is still stuck on ECMA 7th edition, which is now nine years old.
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    17 Views
    No one has replied
  • install Qt for android

    Unsolved
    14
    0 Votes
    14 Posts
    731 Views
    S
    [image: bd77a633-65c6-44df-b91f-4ae101671b0e.png]
  • Qt Android activity creation problem on Java update

    Unsolved java activity androidqt qt5.12.x gradle
    2
    0 Votes
    2 Posts
    589 Views
    M
    Newer versions of Android are able to read native libs directly from the apk without extracting them if they are stored uncompressed in the apk. This is done to save disk space on the device, and the new default during apk creation, but Qt 5.12 does not handle this. To compress native libs again add android:extractNativeLibs="true" in AndroidManifest.xml to the application tag.
  • Button over QVideoWidget

    Solved
    24
    0 Votes
    24 Posts
    3k Views
    QtFriend2024Q
    One Solution Without QML I've figured a way to get the QVideoWidget to stack behind QPushButton and QLabel in a Widgets application without using QML - the camera has to be started before the stacking order is set. Otherwise, the QVideoWidget gets forced to the front no matter what you do. This worked for me.
  • QML Android Layout Artifacts on Orientation Change - Intermittent Issues

    Unsolved
    1
    0 Votes
    1 Posts
    75 Views
    No one has replied
  • qt.bluetooth.windows: Could not await descriptor read result

    Unsolved
    1
    0 Votes
    1 Posts
    69 Views
    No one has replied
  • Qt6.8 for Android,Unable to create the template

    Unsolved
    10
    0 Votes
    10 Posts
    675 Views
    L
    When creating a project, selecting "Qt Quick Application (compat)" to generate a .pro-based project allows normal template creation under the "Build Android APK" option. However, choosing "Qt Quick Application" with CMake (generating CMakeLists.txt) causes the issue. This suggests the problem relates to legacy .pro (qmake) vs modern CMake build systems in Qt Android packaging.
  • Yocto and patches. How are they applied? Can I patch a patch?

    Unsolved
    1
    0 Votes
    1 Posts
    108 Views
    No one has replied
  • 1 Votes
    2 Posts
    168 Views
    A
    Found out this is a known bug: https://bugreports.qt.io/browse/QTBUG-136493
  • iOS -ObjC link option leads to "duplicate symbol" for QtCore.framework

    Solved
    2
    0 Votes
    2 Posts
    169 Views
    M
    I actually found a solution to my problem :DDD In fact this was a bug in Qt since 6.7.3: https://bugreports.qt.io/browse/QTBUG-135978?gerritReviewStatus=Open which now seems to be fixed https://codereview.qt-project.org/c/qt/qtbase/+/643588 A workaround for now suggest here https://bugreports.qt.io/browse/QTBUG-132412 is to Configure with cmake 3.29+ and the extra -DQT_FORCE_CMP0156_TO_NEW=ON option. which I did by setting the policy in my root project cmake file right before find_package: # Enable CMP0156 explicitly to prevent duplicate symbol errors when using -ObjC linker flag if (POLICY CMP0156) message(STATUS "Setting CMP0156 policy to NEW...") set(QT_FORCE_CMP0156_TO_NEW ON CACHE BOOL "Force CMake policy CMP0156 to NEW behavior for Qt6") elseif () message(ERROR "CMP0156 policy not available! Please switch to cmake 3.29+ and Qt6.9") endif ()