This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625-Q1: Linux Docker Issue

Part Number: AM625-Q1
Other Parts Discussed in Thread: AM62P

Following on from:

6.1. TI Apps Launcher - User Guide — Processor SDK AM62x Documentation

 

Running on:

Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS

sudo docker pull ghcr.io/texasinstruments/debian-arm64:latest
latest: Pulling from texasinstruments/debian-arm64
Digest: sha256:ac1578aedd404a67416e902c75a79708ee6f4b0c2fc0b11b3bab1c243e44e835
Status: Image is up to date for ghcr.io/texasinstruments/debian-arm64:latest
ghcr.io/texasinstruments/debian-arm64:latest

sudo docker run --platform linux/arm64 -it -v ${TI_APPS_LAUNCHER_REPO}:/root ghcr.io/texasinstruments/debian-arm64 bash

exec /usr/bin/bash: exec format error

Is there a solutoion for this?  It appear to be a cross platform compilation error?

  • Following on, I have managed to get past the initial problem using the following:

    sudo apt update
    sudo apt install docker.io qemu-user qemu-user-static binfmt-support
    sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

    sudo docker run -it --platform=linux/arm64 etc....

    The next problem is as follows:

    root@1354382fce98:~/ti-apps-launcher# make -C build

    make: Entering directory '/root/ti-apps-launcher/build'
    [ 0%] Built target ti-apps-launcher_autogen_timestamp_deps
    [ 4%] Automatic MOC for target ti-apps-launcher
    AutoMoc: /root/ti-apps-launcher/backend/includes/camera.h:31:1: warning: Property declaration gst_pipeline has neither an associated QProperty<> member, nor a READ accessor function nor an associated MEMBER variable. The property will be invalid.
    [ 4%] Built target ti-apps-launcher_autogen
    [ 9%] Generating qrc_ti-apps-launcher.cpp
    Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
    Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
    If this causes problems, reconfigure your locale. See the locale(1) manual
    for more information.
    [ 14%] Building CXX object CMakeFiles/ti-apps-launcher.dir/ti-apps-launcher_autogen/mocs_compilation.cpp.o
    [ 19%] Building CXX object CMakeFiles/ti-apps-launcher.dir/ti-apps-launcher.cpp.o
    [ 23%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/appsmenu.cpp.o
    [ 28%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/arm_analytics.cpp.o
    [ 33%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/benchmarks.cpp.o
    make[2]: *** [CMakeFiles/ti-apps-launcher.dir/build.make:227: CMakeFiles/ti-apps-launcher.dir/backend/benchmarks.cpp.o] Segmentation fault (core dumped)
    make[1]: *** [CMakeFiles/Makefile2:90: CMakeFiles/ti-apps-launcher.dir/all] Error 2
    make: *** [Makefile:136: all] Error 2

    Any advice in order to be able to build this? We are keen to use the QT6 and therefore would like a solution.

    The previous version I used was ti-processor-sdk-linux-am62xx-evm-10.01.10.04 and the ti-apps-launcher available at the time. This all worked locally using the linux-devkit and compiled ok.

  • Following on again, I can now get to the compiled file, however when running the ti-apps-launcher on the hardware (using AM62X) at RT_BUILD=0, the program does not run and drops back to the terminal screen on the display.

    The image:  tisdk-default-image-am62xx-evm-11.01.05.03.rootfs.wic.xz  — 856516 K, with the ti-apps-launcher already in it worked OK.

    I now receive the following warning but it does complete:

    After copying the ti-apps-launcher file the the usr/bin folder on the embedded platform, after it has tried to run the file, the size is now 0Bytes

    root@1a8df85982a9:~/ti-apps-launcher# make -C build
    make: Entering directory '/root/ti-apps-launcher/build'
    [ 0%] Built target ti-apps-launcher_autogen_timestamp_deps
    [ 4%] Built target ti-apps-launcher_autogen
    [ 9%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/camera.cpp.o
    /root/ti-apps-launcher/backend/camera.cpp: In member function 'void Camera::get_camera_info(std::map<std::__cxx11::basic_string<char>, std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >&)':
    /root/ti-apps-launcher/backend/camera.cpp:40:39: warning: ignoring attributes on template argument 'int (*)(FILE*)' [-Wignored-attributes]
    40 | unique_ptr<FILE, decltype(&pclose)> pipe(popen(command.c_str(), "r"), pclose);
    | ^
    [ 14%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/deviceinfo.cpp.o
    [ 19%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/gpu_performance.cpp.o
    [ 23%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/live_camera.cpp.o
    /root/ti-apps-launcher/backend/live_camera.cpp: In member function 'void LiveCamera::liveCamera_get_camera_info(std::map<std::__cxx11::basic_string<char>, std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >&)':
    /root/ti-apps-launcher/backend/live_camera.cpp:40:39: warning: ignoring attributes on template argument 'int (*)(FILE*)' [-Wignored-attributes]
    40 | unique_ptr<FILE, decltype(&pclose)> pipe(popen(command.c_str(), "r"), pclose);
    | ^
    [ 28%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/run_cmd.cpp.o
    [ 33%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/settings.cpp.o
    [ 38%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/stats.cpp.o
    [ 42%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/topbar.cpp.o
    [ 47%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/wifi.cpp.o
    [ 52%] Building CXX object CMakeFiles/ti-apps-launcher.dir/utils/perf_stats.cpp.o
    /root/ti-apps-launcher/utils/perf_stats.cpp: In function 'void perfStatsDdrStatsReadCounters(uint32_t*, uint32_t*, uint32_t*, uint32_t*)':
    /root/ti-apps-launcher/utils/perf_stats.cpp:131:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
    131 | cnt_sel[0] = (volatile uint32_t *)(base + 0x0f300000);
    | ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:132:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
    132 | cnt0[0] = (volatile uint32_t *)(base + 0x0f300104);
    | ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:133:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
    133 | cnt1[0] = (volatile uint32_t *)(base + 0x0f300108);
    | ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:134:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
    134 | cnt2[0] = (volatile uint32_t *)(base + 0x0f30010C);
    | ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:135:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
    135 | cnt3[0] = (volatile uint32_t *)(base + 0x0f300110);
    | ~~~~~^~~~~~~~~~~~
    [ 57%] Building CXX object CMakeFiles/ti-apps-launcher.dir/configs/platform.cpp.o
    [ 61%] Building CXX object CMakeFiles/ti-apps-launcher.dir/qrc_ti-apps-launcher.cpp.o
    [ 66%] Linking CXX executable ti-apps-launcher
    [100%] Built target ti-apps-launcher

  • The subject expert is currently OoO for Thanksgiving holiday. Please expect a delayed response...

  • Hi Andrew,
    On my setup, I am currently at commit ebf367f of ti-apps-launcher repo.
    At my end, I do see the warnings you showed:

    root@ae3a5f28f180:~/ti-apps-launcher# make -C build
    make: Entering directory '/root/ti-apps-launcher/build'
    [  0%] Built target ti-apps-launcher_autogen_timestamp_deps
    [  4%] Automatic MOC for target ti-apps-launcher
    AutoMoc: /root/ti-apps-launcher/backend/includes/camera.h:31:1: warning: Property declaration gst_pipeline has neither an associated QProperty<> member, nor a READ accessor function nor an associated MEMBER variable. The property will be invalid.
    [  4%] Built target ti-apps-launcher_autogen
    [  9%] Generating qrc_ti-apps-launcher.cpp
    Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
    Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
    If this causes problems, reconfigure your locale. See the locale(1) manual
    for more information.
    [ 14%] Building CXX object CMakeFiles/ti-apps-launcher.dir/ti-apps-launcher_autogen/mocs_compilation.cpp.o
    [ 19%] Building CXX object CMakeFiles/ti-apps-launcher.dir/ti-apps-launcher.cpp.o
    [ 23%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/appsmenu.cpp.o
    [ 28%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/arm_analytics.cpp.o
    [ 33%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/benchmarks.cpp.o
    [ 38%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/camera.cpp.o
    /root/ti-apps-launcher/backend/camera.cpp: In member function 'void Camera::get_camera_info(std::map<std::__cxx11::basic_string<char>, std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >&)':
    /root/ti-apps-launcher/backend/camera.cpp:40:39: warning: ignoring attributes on template argument 'int (*)(FILE*)' [-Wignored-attributes]
       40 |     unique_ptr<FILE, decltype(&pclose)> pipe(popen(command.c_str(), "r"), pclose);
          |                                       ^
    [ 42%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/deviceinfo.cpp.o
    [ 47%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/gpu_performance.cpp.o
    [ 52%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/live_camera.cpp.o
    /root/ti-apps-launcher/backend/live_camera.cpp: In member function 'void LiveCamera::liveCamera_get_camera_info(std::map<std::__cxx11::basic_string<char>, std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >&)':
    /root/ti-apps-launcher/backend/live_camera.cpp:40:39: warning: ignoring attributes on template argument 'int (*)(FILE*)' [-Wignored-attributes]
       40 |     unique_ptr<FILE, decltype(&pclose)> pipe(popen(command.c_str(), "r"), pclose);
          |                                       ^
    [ 57%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/run_cmd.cpp.o
    [ 61%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/settings.cpp.o
    [ 66%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/stats.cpp.o
    [ 71%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/topbar.cpp.o
    [ 76%] Building CXX object CMakeFiles/ti-apps-launcher.dir/backend/wifi.cpp.o
    [ 80%] Building CXX object CMakeFiles/ti-apps-launcher.dir/utils/perf_stats.cpp.o
    /root/ti-apps-launcher/utils/perf_stats.cpp: In function 'void perfStatsDdrStatsReadCounters(uint32_t*, uint32_t*, uint32_t*, uint32_t*)':
    /root/ti-apps-launcher/utils/perf_stats.cpp:131:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
      131 |         cnt_sel[0] = (volatile uint32_t *)(base + 0x0f300000);
          |                                            ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:132:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
      132 |         cnt0[0]    = (volatile uint32_t *)(base + 0x0f300104);
          |                                            ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:133:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
      133 |         cnt1[0]    = (volatile uint32_t *)(base + 0x0f300108);
          |                                            ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:134:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
      134 |         cnt2[0]    = (volatile uint32_t *)(base + 0x0f30010C);
          |                                            ~~~~~^~~~~~~~~~~~
    /root/ti-apps-launcher/utils/perf_stats.cpp:135:49: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
      135 |         cnt3[0]    = (volatile uint32_t *)(base + 0x0f300110);
          |                                            ~~~~~^~~~~~~~~~~~
    [ 85%] Building CXX object CMakeFiles/ti-apps-launcher.dir/configs/platform.cpp.o
    [ 90%] Building CXX object CMakeFiles/ti-apps-launcher.dir/qrc_ti-apps-launcher.cpp.o
    [ 95%] Linking CXX executable ti-apps-launcher
    [100%] Built target ti-apps-launcher
    make: Leaving directory '/root/ti-apps-launcher/build'

    But I get a working binary:

    root@ae3a5f28f180:~/ti-apps-launcher# ls -l build/
    total 37176
    -rw-r--r-- 1 root root    69833 Dec  1 05:59 CMakeCache.txt
    drwxr-xr-x 8 root root     4096 Dec  1 06:08 CMakeFiles
    -rw-r--r-- 1 root root    25023 Dec  1 05:59 Makefile
    -rw-r--r-- 1 root root     2898 Dec  1 05:59 cmake_install.cmake
    -rw-r--r-- 1 root root 31270203 Dec  1 06:01 qrc_ti-apps-launcher.cpp
    -rwxr-xr-x 1 root root  6690032 Dec  1 06:08 ti-apps-launcher
    -rw-rw-r-- 1 root root     3506 Dec  1 05:59 ti-apps-launcher.qrc.depends
    drwxr-xr-x 4 root root     4096 Dec  1 06:00 ti-apps-launcher_autogen
    root@ae3a5f28f180:~/ti-apps-launcher# file build/ti-apps-launcher
    build/ti-apps-launcher: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=7e9ef82e9f733e62405fea7ee196cf085abed154, for GNU/Linux 3.7.0, not stripped

    Please verify the approximate file size and type from the above log. 
    I added the following for AM62P in CMakeLists:

    add_compile_definitions(SOC_AM62P=1) # if target is AM62P

    Please make sure you have added that for AM62x.

    I was able to validate the binary working by copying it into /usr/bin and running 'systemctl start ti-apps-launcher'.

    Please cross check that your file was copied correctly, you should not have a 0 byte binary post copying/running.

  • Hi Divyansh,

    Thanks for getting back to me on this issue.  It turns out the build had in fact worked and the binary could be executed on our platform (the AM62X).  The binary had become corrupted on copying to the SDCard, but it does now work.  

    However, we have been in discussion with qt.io and may move on to using the Boot2Qt from them directly (this uses a BSP that TI/QT.io must have put together).  There seems to be some issues with the repo version using QT 6.8 and the V11 SDK using V6.9 and also the build time taken via the docker is very slow and not ideal for development.  I am sure TI are probably working towards a new version using the latest QT 6.10 and perhaps considering reverting to the method of compilation used under V10 SDK (this was relatively fast as it was all done locally).

    Thanks,

    Andrew

  • Hi Andrew,

    We partnered with Qt for Boot2Qt but we were not involved in the development and it was front-ended by Qt developers.

    Regards,
    Krunal