Skip to content

Mobile and Embedded

The forum for developing everything embedded: Linux, WinCE, Symbian, MeeGo... you name it.
14.1k Topics 62.4k Posts
  • Discovery BT LE with adapter off on Android

    Unsolved
    1
    0 Votes
    1 Posts
    34 Views
    No one has replied
  • Video playback lagging in qt app running on rasp pi 4

    Unsolved
    2
    0 Votes
    2 Posts
    61 Views
    jsulmJ
    @Gautham-G-B Just to make sure I understand correctly: do you show only one video at given time or several?
  • The module "positioning" is missing in ios qt?

    4
    0 Votes
    4 Posts
    2k Views
    osirisgothraO
    Its funny, modules such as these even though they are not mentioned as dependencies, they often "go together", I myself assume if one is installed the other is, but it seems that is not the case and you must specifically ask for each of these per each version to have them installed and available: webkit/engine->webkit/enginewidgets->positioning, all in the maintenence tool but hiding under the <version>->extensions group. Also note that QT does minimal or no set-up of your environment when it comes to runtime libraries. You will find more often than not that you have to either put these libraries into your system's library install folders OR (what I prefer to do) tell your library config tool about the additional locations. Example: For Linux 64-bit debian distributions: /etc/ld.so.conf.d/x86_64-linux-gnu.conf holds locations of all 64-bit libraries. Note there are some naming and directory structure requirements for complex hardware architecture requirements such as sub-archetecture (for example, under x86, we have emt64, mmx, etc) please see your system's ld.so(8) manpage for your system's specific understanding of that (yes the manpages can and will differ from system to system).
  • Qt6 CMake install java files

    Solved
    3
    0 Votes
    3 Posts
    350 Views
    M
    Ok instead of copying (and purging) all needed subproject java source files, I solved this issue by having a function in my root projects cmake that append to a global variable: function(include_java_sources PATH) # Create variable for additional subfolders for plugin sources message(STATUS "including extra java sources from path: ${PATH}") set_property(GLOBAL APPEND PROPERTY JAVA_SRC_DIRS "\"${PATH}\"") endfunction() which I call for each subproject to include the needed source directories. Those variable then later gets parsed and inserted into an additional build.gradle file: # Include supproject java source directories get_property(java_dirs GLOBAL PROPERTY JAVA_SRC_DIRS) #message(STATUS "ALL_JAVA_SRC_DIRS: " ${java_dirs}) # Join the paths into a comma-separated string or Gradle list and write to a .gradle file string(JOIN ", " gradle_joined ${java_dirs}) file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/android/java_dirs.gradle" "ext.extraJavaDirs = [${gradle_joined}]") And finally in my root project build.gradle file I can utilize this and forward it to the project sourceSets: // import generated java_dirs.gradle if present def extraPathsFile = new File(rootDir, "java_dirs.gradle") if (extraPathsFile.exists()) { apply from: extraPathsFile println("Reading extra Java Dirs: " + extraJavaDirs) } ... java.srcDirs = [extraJavaDirs, qtAndroidDir + '/src', 'src', 'java']
  • Qt Android MediaPlayer for .mp3 files not working

    Solved
    6
    0 Votes
    6 Posts
    238 Views
    M
    seems like this was actually a bug and should be fixed in Qt6.10: https://bugreports.qt.io/browse/QTBUG-138057 So for no I am using .wav files instead and wait for Qt to release 6.10 stable
  • Is it possible to make a Qt Android app with a UI into a foreground service?

    Unsolved
    7
    0 Votes
    7 Posts
    241 Views
    J
    @jsulm QT Android extras module was removed in QT 6. I have tried to make this work by adding a Java class for the service part. When I called startForegroundService(), I got this error from Android W/Qt JAVA : A QtService tried to start in the same process as an initiated QtActivity. That is not supported. This results in the service functioning as an Android Service detached from Qt. The manifest was set up to handle a foreground service, and all the permissions the app needed running as a forground service. When I researched this error, I found nothing useful from Google, but ChatGpt gave this explanation: "you’ve declared your Qt-based service to run in the same Linux process as your QtActivity, so Qt will refuse to spin up its own event loop inside the service. Instead your stub will simply behave like a plain Java Service and won’t hook into the Qt C++ world—so all of your C++ “keep-alive” logic never runs, and Android kills the process once the UI goes away.... Every QtService must live in its own process. " That was why I posted here, to ask if it is possible to make a QT 6.8.3 app run as a foreground service under Android. If nobody has done it, or know how to successfully do it, then I just have to move on to plan B.
  • Qt6::Multimedia. It fails to build for iOS SImulator target

    Unsolved
    7
    0 Votes
    7 Posts
    660 Views
    N
    I had to add this to CMakeLists.txt: https://doc.qt.io/qt-6/qt-add-ios-ffmpeg-libraries.html
  • 0 Votes
    3 Posts
    173 Views
    aha_1980A
    @houyawei It may sound silly, but can you try to run the project from a shorter file path?
  • 0 Votes
    6 Posts
    316 Views
    SGaistS
    Another workaround I could see (but it's just an idea) is to have a transparent layer between the popup and the rest of the application so you don't have add that disabling logic everywhere.
  • How to display output from Qt Android service process in QtCreator?

    Solved
    11
    0 Votes
    11 Posts
    1k Views
    C
    @piervalli Oh, that's new, I'll try it out. Thanks!
  • How To Add Dependency On androidx.exifinterface.media.ExifInterface

    Solved
    2
    0 Votes
    2 Posts
    174 Views
    KenAppleby 0K
    Putting additional dependencies directly in the android/build.gradle file is the correct way to do it, apparently. This will only be overwritten if you generate templates again.
  • QtQuick with rotary encoder to navigate Menu and adjust Slider, SpinBox etc

    Unsolved
    1
    0 Votes
    1 Posts
    71 Views
    No one has replied
  • 0 Votes
    3 Posts
    208 Views
    JKSHJ
    @TP850 Have you installed Qt for Android yet?
  • [Need Help]: Qt5.15 support iOS TLS 1.3

    Solved
    9
    0 Votes
    9 Posts
    631 Views
    C
    Thanks @hskoglund @SGaist @JKSH Now solved, and build qt can communicate with TLS 1.3 server. After link with OpenSSL, need load cert files to support, system default one will be blank. Cheers. thanks all!
  • Qt 6.9.1 Android App Not Initialising and Not Obeying Safe Areas

    Solved
    4
    0 Votes
    4 Posts
    285 Views
    KenAppleby 0K
    It seems this is QTBUG-135808. Also the updateNativeActivity issue is benign and unrelated.
  • Remote debugging using QT Creator

    Unsolved
    4
    0 Votes
    4 Posts
    384 Views
    aha_1980A
    @Nikolay-Levun We don't use Raspberry (Toradex Apalis instead) but doing exactly what you described: local front panel operation, display and remote debugging from Qt Creator. So that should be working. Regards
  • install Qt for android

    Unsolved
    15
    0 Votes
    15 Posts
    2k Views
    M
    Hello, I also had a really hard time installing Android with Qt. In fact, Qt itself causes a big mess during the Android setup. As of now, we are at Qt 6.9.0 (Qt 10.0.0 preview). You shouldn't check Qt 6.9.0/Android; instead, check something like Qt 6.9.0/MinGW to develop for Windows, and also check Qt 6.5.x/Android to develop Android applications. Otherwise, Qt forces us to install SDKs that don't seem to be compatible yet—specifically, it forcibly installs "Android Build SDK: android-35." For now, it's "Android Build SDK: android-33" that works without issues.
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    14 Views
    No one has replied
  • qtcreator 15 changing android application name breaks build

    Solved
    3
    0 Votes
    3 Posts
    316 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).