gpt4 book ai didi

yocto - 在 BitBake 配方中可靠地确定机器架构

转载 作者:行者123 更新时间:2023-12-04 07:22:53 27 4
gpt4 key购买 nike

我正在为一个需要了解底层机器微体系结构的包编写配方。换句话说,我想要一个字符串,例如 aarch64arm64对于 64 位 Arm 系统,和 x86_64对于 64 位 Intel 系统。
到目前为止,我已经确定:

  • MACHINE - 这似乎是什么meta-*层作者决定命名他们的机器并且可能包含架构,也可能不包含。例如,beaglebone没有用。
  • MACHINE_ARCH - 这似乎与我正在寻找的很接近。然而,以this以 BSP 层为例,进行快速搜索,似乎没有在任何地方设置此变量。只从几个包中读取。
  • TUNE_PKGARCH - 可能是迄今为止最好的选择。但是,这个变量是什么格式的?使用了哪些架构命名约定?此外,前面提到的 BSP 层似乎也没有在任何地方设置它。

  • 我会认为以明确定义的格式了解机器架构很重要,但它似乎并不那么简单。有什么建议吗?

    最佳答案

    我习惯用 uname -m 来做这件事(Windows 粉丝可以使用 SET processor 的输出),所以对于我在 Yocto 来说,它最终是一个折腾:

  • 根据 TARGET_ARCH 的 super 手册条目:
  • TARGET_ARCH

    The target machine's architecture. The OpenEmbedded build system supports many
    architectures. Here is an example list of architectures supported. This list is by
    no means complete as the architecture is configurable:

    arm
    i586
    x86_64
    powerpc
    powerpc64
    mips
    mipsel
    uname -m好一点,因为您还获得了子架构信息。从我现在可以访问的机器:
    Intel-based Nuc build system:  x86_64
    ARM embedded system: armv7l
    Raspberry Pi 4B: aarch64
  • 我发现 GNU automake ( native )和 libtool (可用于目标)包计算名为 UNAME_MACHINE_ARCH 的有用变量。如果您正在使用 libtool已经或愿意接受它只是为了为您完成此操作:-@),您可以通过这种方式解决。在构建的树中查找名为 config.guess 的文件.
  • 您可能比 libtool 更通用通过使用 Yocto BUILD_ARCH :
  • BUILD_ARCH

    Specifies the architecture of the build host (e.g. i686). The OpenEmbedded build
    system sets the value of BUILD_ARCH from the machine name reported by the uname
    command.
    因此,请根据项目的情况使用这些并做出自己的选择。

    关于yocto - 在 BitBake 配方中可靠地确定机器架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68382140/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com