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.

PROCESSOR-SDK-AM64X: SDK-9.01: yocto meta-tisdk layer and multilib

Part Number: PROCESSOR-SDK-AM64X
Hello TI Team,

we need multilib (lib32/arm32-toolchain) for linux (ti-processor-sdk-linux-rt-am64xx-evm-09.01.00.08) in yocto and have activated it accordingly.

In meta-tisdk yocto layer in meta-tisdk/recipes-core/systemd/systemd_%.bbappend the build process of the rootfs image aborts with an error message, because apparently in multilib for arm64 "base_libdir" is set to /lib64 and for arm32 the "base_libdir" is set to /lib.
The systemd folder must be located in /lib/systemd/system and not in /lib64/systemd/system.

meta-tisdk/recipes-core/systemd/systemd_%.bbappend:
do_install:append() {
    install -d ${D}${base_libdir}
    install -m 0644 ${WORKDIR}/systemd-networkd-wait-online.service ${D}${base_libdir}/systemd/system/
}

Wouldn't it have to be "systemd_unitdir" instead of "base_libdir" for it to be compatible with multilib. Can you fix this in the meta-tisdk layer or do you know a workaround?

do_install:append() {
    install -d ${D}${systemd_unitdir}/system
    install -m 0644 ${WORKDIR}/systemd-networkd-wait-online.service ${D}${systemd_unitdir}/system/
}

Regards,
Alex
  • Hi Alexander,

    Wouldn't it have to be "systemd_unitdir" instead of "base_libdir" for it to be compatible with multilib. Can you fix this in the meta-tisdk layer or do you know a workaround?

    do_install:append() {
        install -d ${D}${systemd_unitdir}/system
        install -m 0644 ${WORKDIR}/systemd-networkd-wait-online.service ${D}${systemd_unitdir}/system/
    }

    I supposed you have tried/experimented with this change, and have this is working for you now (I mean not just building it without errors, but also systemd operates and runs as expected)?

    Regards, Andreas

  • Hi Andreas,

    yes, I have tried/tested it with these changes and it works so far.

    For example, it is also implemented in meta-tisdk/recipes-multimedia/pulseaudio/pulseaudio-service.bb and in the yocto meta-openembedded layer.

    We use a customized AM64x based board and also our own yocto layer and pull the other yocto layers (meta-tisdk ,...) via the kas or repo tool.

    Regards, Alex
  • Hi Alexander,

    yes, I have tried/tested it with these changes and it works so far.

    Thanks' that's great to know. multilib support is something that comes up from time to time, and it sounds like your finding will help folks trying to do that with SDK v9.1/v9.2. I'm checking with the development team if we can get this into the official https://git.ti.com/cgit/ti-sdk-linux/meta-tisdk/ as unlike some of the other trees it's not open for public contribution (like meta-ti, meta-arago).

    We use a customized AM64x based board and also our own yocto layer and pull the other yocto layers (meta-tisdk ,...) via the kas or repo tool.

    Probably stating the obvious here but until there's an official fix/improvement you should carry this change in your own layer rather than modifying a TI layer. In fact for your custom board what you should really do is to not use this meta-tisdk (distribution) layer at all and replace it with your own distribution layer.

    Regards, Andreas

    (ref: SITSW-4319)