【问题标题】:"File format not recognized" when building Petalinux app构建 Petalinux 应用程序时出现“文件格式无法识别”
【发布时间】:2019-05-14 20:39:12
【问题描述】:

我正在使用 Petalinux 2017.2 和随附的工具为 Zynq ZC702 开发板构建 Linux 映像。我正在尝试使用 bitbake 配方将预编译的可执行文件添加到我的 rootfs。

SUMMARY = "Demo on ARM-Linux"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = " \
    file://Demo1.out \
        "

FILES_${PN} = " \
    /home/root/Demo/ \
    /home/root/Demo/Demo1.out \
        "

S = "${WORKDIR}"

do_install() {
    install -d ${D}/home/root/Demo
    install -m 0755 ${S}/Demo1.out ${D}/home/root/Demo
}

当我尝试使用包含我的应用程序构建 rootfs 时,我收到此错误:

ERROR: demo-1.0-r0 do_package: objcopy failed with exit code 1 (cmd was 'arm-xilinx-linux-gnueabi-objcopy' --only-keep-debug '/home/common/peta_proj_2017.2_secure/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/demo/1.0-r0/package/home/root/Demo/Demo1.out' '/home/common/peta_proj_2017.2_secure/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/demo/1.0-r0/package/home/root/Demo/.debug/Demo1.out'):
arm-xilinx-linux-gnueabi-objcopy:/home/common/peta_proj_2017.2_secure/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/demo/1.0-r0/package/home/root/Demo/Demo1.out: File format not recognized
ERROR: demo-1.0-r0 do_package: Function failed: split_and_strip_files

我认为 objcopy 对我为 arm-linux-gnueabihf 编译的文件存在问题,但我已经知道它可以工作,因为我已经尝试在 Linux 启动并测试后手动将其复制到 rootfs。我会尝试使用 arm-xilinx-linux-gnueabi 工具链重新编译它,但它缺少一些我需要的库。我不知道为什么要为此操作调用 objcopy 。我想要的只是将文件移动到 rootfs,但由于某种原因,它正在做所有这些额外的工作。有没有办法让 bitbake 忽略文件的格式?

【问题讨论】:

    标签: embedded-linux yocto bitbake zynq petalinux


    【解决方案1】:

    看起来问题在于 objcopy 正在尝试剥离符号,并且正如您所说,使用的工具链与用于构建它的工具链不同。

    你可以尝试设置:

    INHIBIT_PACKAGE_STRIP="1"

    某处(可能在您的 local.conf 中)。

    它应该跳过构建系统尝试从二进制文件中删除调试符号的步骤,因此可能不会调用 objcopy。

    1 [https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#var-INHIBIT_PACKAGE_STRIP]1

    【讨论】:

    • 当我将此行添加到我的 local.conf 并构建时,我得到“[INFO] building project [INFO] sourcing bitbake ERROR: Failed to source bitbake ERROR: Failed to build project”。还有其他地方可以添加吗,例如我需要剥离的特定 bitbake 文件?
    • 显然我只是在 1 周围缺少引号。您可能需要编辑答案以包含它们。不过,我的问题的第二部分仍然存在:是否可以只为特定的 bitbake 文件临时打开此选项?
    • 您可以使用配方文件中的设置,然后它只会影响该配方。
    猜你喜欢
    • 2022-01-17
    • 2019-05-25
    • 2013-06-12
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多