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.

AM5746: Require to install Python 3.7 in context of Processor SDK 06.02.00.81

Part Number: AM5746

Hello,

Processor SDK 06.02.00.81 installs Python 3.5.

I am required to install Python 3.7.

Can you please provide guidance on how to achieve this in the context of the Processor SDK.  Thank you.

  • Hi Richard,

    The python version is provided by the Yocto's oe-core, and the current Processor SDK 6.02 uses the "thud" version of the Yocto which provides Python version 3.5.

    Our next version of the Processor SDK release based on 7.x will be picking up the "zeus" version of the Yocto that integrates 3.7 version of Python. 

    With that, I believe that  you will need to wait for a newer version of the Processor SDK or use a bleeding edge version which is not yet released. The third option is to attempt to update the python recipes alone but I think its not a straight forward. 

    Let me know if you have any follow up questions.

    Regards

    Karthik

  • Hello Karthik,

    Could I please have guidance on how to use the bleeding edge in the context of the Processor SDK and still be in a supportable position?

    thank you

    Richard Elberger

  • Hi Richard,

    You can build the latest of the zeus using the below commands. Please note that you need to download the newer versions of the GCC-ARM Toolchain, the versions are referenced in the commands below.

    Note that since this is bleeding edge, you will see may see some occasional instabilities.

    git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk
    cd tisdk/
    ./oe-layertool-setup.sh -f configs/arago-zeus-config.txt
    cd build/
    vi conf/local.conf
    . conf/setenv
    export PATH=/sdk/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin:/sdk/tools/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin:$PATH
    TOOLCHAIN_BASE=/sdk/tools MACHINE=j7-evm bitbake -k tisdk-rootfs-image

    Regards

    Karthik

  • Hello Karthik,

    Unfortunately, there are more open issues now.  Using the same arm compiler toolchain, I get these errors:

    ERROR: Failed to obtain external Arm toolchain version: Execution of '/home/X/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc -v' failed: command not found
    

    I setup the toolchain like it tells me in the Processor SDK:

    export TOOLCHAIN_PATH_ARMV7=$HOME/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
    export TOOLCHAIN_PATH_ARMV8=$HOME/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu

    Then I spent time going through http://arago-project.org/wiki/index.php/Setting_Up_Build_Environment

    Checking your command line, I have a couple questions:

    • What is TOOLCHAIN_BASE?  It is not defined in the documentation?
    • Where did you get the compiler? It is not documented to take that flavor?

  • Also, I don't know if it makes a difference but the machine definition is MACHINE = "am57xx-evm", not J7.

  • Hi Richard,

    The TOOLCHAIN_BASE is the environment variable that points to the base folder that contains the toolchain chain. You can see the usage from my example above. It will be updated in the SDK documentation when we have the SDK released on the latest zeus.

    The compiler can be downloaded from here: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads/9-2-2019-12, please make sure that you download the ARMv7 and ARMv8 versions of the compiler. This will again be part of the SDK documentation. Sorry, should have provided this to you earlier.

    Yes, absolutely, the machine that you need to use is MACHINE=am57xx-evm. At the moment, I do not have a physical possession of the am57xx-evm and hence tried my build with the j7-evm. But please go ahead and build for am57xx-evm and let me know if everything is fine.

    Regards

    Karthik

  • Thank you for your help.  do_rootfs is failing and I will resolve that through another route  but your help certainly got me on the right path!

  • Hello Karthik,

    For completeness, this is the current failure on the arago zeus branch. Note that this is all successful on Poky and some other hw platforms for zeus.

    bitbake -r conf/am574x_iot_greengrass.conf arago-base-tisdk-image
    NOTE: Started PRServer with DBfile: /src/tisdk/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 44587, PID: 15470
    WARNING: /src/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/meta/external-arm-secondary-sdk-toolchain.bb: Variable key PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} (external-arm-sdk-toolchain) replaces original key PREFERRED_PROVIDER_binutils-cross-canadian- (external-arm-secondary-sdk-toolchain).
    WARNING: /src/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/meta/external-arm-secondary-sdk-toolchain.bb: Variable key PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} (external-arm-sdk-toolchain) replaces original key PREFERRED_PROVIDER_gcc-cross-canadian- (external-arm-secondary-sdk-toolchain).
    WARNING: /src/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/meta/external-linaro-secondary-sdk-toolchain.bb: Variable key PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} (external-arm-sdk-toolchain) replaces original key PREFERRED_PROVIDER_binutils-cross-canadian- (external-arm-secondary-sdk-toolchain).
    WARNING: /src/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/meta/external-linaro-secondary-sdk-toolchain.bb: Variable key PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} (external-arm-sdk-toolchain) replaces original key PREFERRED_PROVIDER_gcc-cross-canadian- (external-arm-secondary-sdk-toolchain).
    Parsing recipes: 100% |##########################################| Time: 0:00:29
    Parsing of 3160 .bb files complete (0 cached, 3160 parsed). 4441 targets, 499 skipped, 0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies
    NOTE: Multiple providers are available for virtual/java-native (cacao-native, jamvm-native)
    Consider defining a PREFERRED_PROVIDER entry to match virtual/java-native
    NOTE: Multiple providers are available for virtual/java-initial-native (cacao-initial-native, jamvm-initial-native)
    Consider defining a PREFERRED_PROVIDER entry to match virtual/java-initial-native

    Build Configuration:
    BB_VERSION = "1.44.0"
    BUILD_SYS = "x86_64-linux"
    NATIVELSBSTRING = "ubuntu-18.04"
    TARGET_SYS = "arm-linux-gnueabi"
    MACHINE = "am57xx-evm"
    DISTRO = "arago"
    DISTRO_VERSION = "2020.03"
    TUNE_FEATURES = "arm armv7a vfp thumb neon callconvention-hard"
    TARGET_FPU = "hard"
    meta-arago-distro
    meta-arago-extras = "zeus:54e2384494a2432e7f865c593b545e812887401f"
    meta-browser = "HEAD:5f365ef0f842ba4651efe88787cf9c63bc8b6cb3"
    meta-qt5 = "zeus:852e279a45da2b68719fecdaad3573b2ada9558c"
    meta-selinux = "zeus:44d760413920ba440439b8bc7c2a71ca26cd7a2d"
    meta-virtualization = "zeus:1bb515609594215aaf950555211e18c6c9a8e308"
    meta-networking
    meta-python
    meta-oe
    meta-gnome
    meta-filesystems = "zeus:9e60d30669a2ad0598e9abf0cd15ee06b523986b"
    meta-ti = "zeus:f6e024415b42adaa0d6ca04da83c86dcf92dfd87"
    meta-linaro-toolchain
    meta-optee = "zeus:a414b5555301d0c80facb6dc5a5badbc69036131"
    meta = "zeus:26b13f59385c1ed871aee7653c3ee7241affca38"
    meta-aws = "zeus:0ee0bd1e711e89fccad45aa87c1f889431d9c391"
    meta-java = "zeus:95d56a63cdbf1ed9db99a1f02075568fd45a668b"

    Initialising tasks: 100% |#######################################| Time: 0:00:02
    Sstate summary: Wanted 1752 Found 0 Missed 1752 Current 0 (0% match, 0% complete)
    NOTE: Executing Tasks
    NOTE: Setscene tasks completed
    WARNING: icu-native-64.2-r0 do_fetch: Failed to fetch URL download.icu-project.org/.../icu4c-64_2-src.tgz, attempting MIRRORS if available
    WARNING: external-arm-toolchain-2019.12-r0 do_package: QA Issue: external-arm-toolchain: Files/directories were installed but not shipped in any package:
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/unwind.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdbool.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdint.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdatomic.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/arm_fp16.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdalign.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdint-gcc.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/arm_cmse.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/ISO_Fortran_binding.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stddef.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdnoreturn.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/mmintrin.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdfix.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/openacc.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/gcov.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/stdarg.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/iso646.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/arm_neon.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/arm_acle.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/float.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/varargs.h
    /usr/lib/gcc/arm-linux-gnueabi/9.2.1/include/unwind-arm-common.h
    Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
    external-arm-toolchain: 22 installed and not shipped files. [installed-vs-shipped]
    WARNING: gnutls-3.6.13-r0.arago0 do_package: QA Issue: gnutls-src has an incompatible license. Excluding from packaging. [incompatible-license]
    WARNING: gnutls-3.6.13-r0.arago0 do_package: QA Issue: gnutls-dbg has an incompatible license. Excluding from packaging. [incompatible-license]
    WARNING: gnutls-3.6.13-r0.arago0 do_package: QA Issue: gnutls-openssl has an incompatible license. Excluding from packaging. [incompatible-license]
    WARNING: gnutls-3.6.13-r0.arago0 do_package: QA Issue: gnutls-staticdev has an incompatible license. Excluding from packaging. [incompatible-license]
    WARNING: gnutls-3.6.13-r0.arago0 do_package: QA Issue: gnutls-dev has an incompatible license. Excluding from packaging. [incompatible-license]
    WARNING: gnutls-3.6.13-r0.arago0 do_package: QA Issue: gnutls-doc has an incompatible license. Excluding from packaging. [incompatible-license]
    WARNING: gnutls-3.6.13-r0.arago0 do_package: QA Issue: gnutls-bin has an incompatible license. Excluding from packaging. [incompatible-license]
    WARNING: external-arm-toolchain-2019.12-r0 do_package_qa: QA Issue: external-arm-toolchain: /sbin/ldconfig is owned by uid 623486203, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]
    WARNING: gcc-arm-9.2-r2019.12 do_package: QA Issue: gcc: Files/directories were installed but not shipped in any package:
    /usr/bin/arm-linux-gnueabi-arm-none-linux-gnueabihf-g++
    /usr/bin/arm-linux-gnueabi-arm-none-linux-gnueabihf-gcc-ar
    /usr/bin/arm-linux-gnueabi-arm-none-linux-gnueabihf-gcc-ranlib
    /usr/bin/arm-linux-gnueabi-arm-none-linux-gnueabihf-gcc
    /usr/bin/arm-linux-gnueabi-arm-none-linux-gnueabihf-gcc-nm
    Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
    gcc: 5 installed and not shipped files. [installed-vs-shipped]
    WARNING: openjdk-8-native-242-r0 do_populate_sysroot: File '/src/tisdk/build/arago-tmp-external-arm-toolchain/work/x86_64-linux/openjdk-8-native/242-r0/recipe-sysroot-native/usr/lib/jvm/openjdk-8-native/jre/lib/amd64/libfreetype.so.6' from openjdk-8-native was already stripped, this will prevent future debugging!
    WARNING: arago-base-tisdk-image-1.0-r0 do_rootfs: docker-ce.postinst returned 1, marking as unpacked only, configuration required on target.
    ERROR: arago-base-tisdk-image-1.0-r0 do_rootfs: Postinstall scriptlets of ['docker-ce'] have failed. If the intention is to defer them to first boot,
    then please place them into pkg_postinst_ontarget_${PN} ().
    Deferring to first boot via 'exit 1' is no longer supported.
    Details of the failure are in /src/tisdk/build/arago-tmp-external-arm-toolchain/work/am57xx_evm-linux-gnueabi/arago-base-tisdk-image/1.0-r0/temp/log.do_rootfs.
    ERROR: Logfile of failure stored in: /src/tisdk/build/arago-tmp-external-arm-toolchain/work/am57xx_evm-linux-gnueabi/arago-base-tisdk-image/1.0-r0/temp/log.do_rootfs.11944
    ERROR: Task (/src/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/images/arago-base-tisdk-image.bb:do_rootfs) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 5502 tasks of which 1 didn't need to be rerun and 1 failed.
    NOTE: Writing buildhistory
    NOTE: Writing buildhistory took: 2 seconds

    Summary: 1 task failed:
    /src/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/images/arago-base-tisdk-image.bb:do_rootfs
    Summary: There were 17 WARNING messages shown.
    Summary: There was 1 ERROR message shown, returning a non-zero exit code.

    ===========================================================================================================

    The following is the conf file used for building, after having added in the meta-aws and meta-java layers to the build:

    cat conf/am574x_iot_greengrass.conf
    MACHINE = "am57xx-evm"
    IMAGE_INSTALL_append = " greengrass"

    And you can see the RDEPENDS here

    https://github.com/aws/meta-aws/blob/zeus/recipes-greengrass/greengrass-core/greengrass_1.10.1.bb

  • Hi Richard,

    As discussed last week, TI is moving forward with dunfell instead of zeus for the upcoming SDK - dunfell has python 3.8 included in it.

    We discussed that this introduces additional challenges to integrate greengrass since it currently does not support Python 3.8.

    Let us revisit this when we have the dependencies in place and lets work offline and come back to this E2E to summarize at a later time.

    Regards

    Karthik