将 bash 脚本复制为 Bitbake 配方时遇到问题

问题描述 投票:0回答:1

我正在尝试使用 Bitbake 配方为我的 Yocto 设置为 DE10-Nano 构建 U-boot-socfpga。

我有一个 bash 脚本,可以构建一个工作的

u-boot-with-spl.sfp
文件。

python2 $UBOOT_DIR/arch/arm/mach-socfpga/cv_bsp_generator/cv_bsp_generator.py \
        -i $HDL_DIR/projects/cn0540/de10nano/hps_isw_handoff/system_bd_sys_hps/ \
        -o $UBOOT_DIR/board/altera/cyclone5-socdk/qts
    (
        cd $UBOOT_DIR
        export CROSS_COMPILE=arm-linux-gnueabihf-
        make socfpga_cyclone5_defconfig
        make -j8
    )

该脚本正在使用 u-boot-socfpga_v2022.10

我写的 Bitbake 食谱是:

LICENSE="CLOSED"
PROVIDES = "virtual/bootloader"
 
I_SWEAR_TO_MIGRATE_TO_PYTHON3 = "yes"
 
inherit pythonnative deploy uboot-extlinux-config uboot-config
DEPENDS += "python-native u-boot-mkimage-native bison-native bc-native dtc-native flex-native"
DEPENDS += "swig-native"
 
EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
 
SRC_URI = "git://github.com/altera-opensource/u-boot-socfpga.git;branch=socfpga_v2022.10;protocol=https"
#2022.10
SRCREV = "b1598f9fda404684e726f4138aa2650d8742397a"
#SRCREV ?= "${AUTOREV}"
 
HANDOFF_FILES_DIR = "${THISDIR}/files/handoff_files/"
UBOOT_SCR = "u-boot.scr"
SPL_BINARY = "u-boot-with-spl.sfp"
 
FILES:${PN} = "/boot ${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}"
#FILES:${PN}-extlinux = "${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}"
 
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
 
UBOOT_CONFIG[cyclone5-socdk] = "socfpga_cyclone5_defconfig"
 
do_compile() {
    python ${S}/arch/arm/mach-socfpga/cv_bsp_generator/cv_bsp_generator.py \
        -i ${HANDOFF_FILES_DIR} \
        -o ${S}/board/altera/cyclone-socdk/qts
 
    oe_runmake -C ${S} socfpga_cyclone5_defconfig
    oe_runmake -C ${S}
 
    mkimage -C none -A arm -T script -d ${THISDIR}/files/u-boot.cmd ${B}/${UBOOT_SCR}
}
 
do_install() {
    install -D -m 644 ${B}/${UBOOT_SCR} ${D}/boot/${UBOOT_SCR}
 
    install -m 644 ${S}/${SPL_BINARY} ${D}/boot/${SPL_BINARY}
 
    install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}
}
 
do_deploy() {
    rm -f ${DEPLOYDIR}/${SPL_BINARY}
    install -m 644 ${S}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_BINARY}
 
    install -m 644 ${B}/${UBOOT_SCR} ${DEPLOYDIR}/${UBOOT_SCR}
 
    install -m 644 ${UBOOT_EXTLINUX_CONFIG} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}
}
 
IMAGE_BOOT_FILE:append = "${UBOOT_SCR}"
addtask deploy before do_build after do_compile

该配方确实创建了一个

u-boot-with-spl.sfp
文件,但在设备上测试时,没有给出任何输出。

我尝试过设置

EXTRA_OEMAKE += "CROSS_COMPILE=arm-linux-gnueabihf-"
但我在 make 中得到了
arm-linux-gnueabihf-gcc: was not found
的错误。

我还尝试进入 git 文件夹获取配方,并手动调用

export CROSS_COMPILE=arm-linux-gnueabihf-
make socfpga_cyclone5_defconfig
make -j8

但这也产生了一个 u-boot 文件,在测试时没有输出。

我的环境是否缺少某些东西?

bash cross-compiling yocto bitbake u-boot
1个回答
0
投票

我在

do_compile
部分有一个拼写错误。

cv_bsp_generator.py
的输出目录应该是
${S}/board/altera/cyclone5-socdk/qts

我还实施了@skandigraun建议的更改

© www.soinside.com 2019 - 2024. All rights reserved.