在Arch Linux编译镜像时出现错误

我从官方github页面克隆了最新(1.0.7)的源代码并且运行build.sh milkv-duo编译,但是在编译时出现错误。以下是出现错误的日志:

  [TARGET] br-rootfs-pack
make -C /home/FC8E/duo-buildroot-sdk/buildroot-2021.05 milkv-duo_musl_riscv64_defconfig BR2_TOOLCHAIN_EXTERNAL_PATH=/home/FC8E/duo-buildroot-sdk/host-tools/gcc/riscv64-linux-musl-x86_64
make[1]: 进入目录“/home/FC8E/duo-buildroot-sdk/buildroot-2021.05”
mkdir -p /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config -C support/kconfig -f Makefile.br conf
make[2]: 进入目录“/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/support/kconfig”
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config -DCONFIG_=\"\"  -MM *.c > /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/.depend 2>/dev/null || :
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config -DCONFIG_=\"\"   -c conf.c -o /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/conf.o
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config -DCONFIG_=\"\"  -I. -c /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/zconf.tab.c -o /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/zconf.tab.o
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config -DCONFIG_=\"\"   /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/conf.o /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/zconf.tab.o  -o /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/conf
rm /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/build/buildroot-config/zconf.tab.c
make[2]: 离开目录“/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/support/kconfig”
  GEN     /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/Makefile
#
# configuration written to /home/FC8E/duo-buildroot-sdk/buildroot-2021.05/output/milkv-duo_musl_riscv64/.config
#
make[1]: 离开目录“/home/FC8E/duo-buildroot-sdk/buildroot-2021.05”
/home/FC8E/duo-buildroot-sdk/buildroot-2021.05/utils/brmake -j20 -C /home/FC8E/duo-buildroot-sdk/buildroot-2021.05
Done in 8s  (error code: 2)
make: *** [Makefile:584:br-rootfs-pack] 错误 2

*FC8E是用户名
尽管之前Github和社区上有人提出了类似问题,但是他们的编译平台(wsl和ubuntu)和具体情况与我不同,因此他们的解决方案对我来说没有作用
系统平台:Arch linux x86_64(Kernel: 6.6.10-arch1-1)

以上是我的编译环境,编译没有发生问题。编译rootfs阶段出问题大概率是依赖装漏了,我之前就是漏依赖出的问题。

sudo apt install -y pkg-config build-essential ninja-build automake autoconf libtool wget curl git gcc libssl-dev bc slib squashfs-tools android-sdk-libsparse-utils jq python3-distutils scons parallel tree python3-dev python3-pip device-tree-compiler ssh cpio fakeroot libncurses5 flex bison libncurses5-dev genext2fs rsync unzip dosfstools mtools tcl openssh-client cmake expect

sdk说明文件给了依赖,虽然是ubuntu的,但相较于archlinux也就是包名略有差别(没有lib前缀、dev后缀或者没版本号),再者就是archlinux的包相对不像ubuntu打得那么碎,我的建议是检查一遍依赖,用yay或者paru检索会更好,可能有个包源里没打要aur,不过我记不太清了。

1 Like