在参考https://github.com/johnnyfan1979/public_doc/blob/main/documentation/DE25_Nano/DE25%20Nano%20Build%20Linux%20image%20from%20scratch.md 制作DE25-Nano 的image的时候遇到报错:

lib/display_options.c: In function ‘print_freq’:
lib/display_options.c:61:9: internal compiler error: Illegal instruction
61 | unsigned long d = 1e9;
| ^~~~~~~~
CC drivers/mtd/spi/sf_probe.o
CC drivers/mtd/spi/spi-nor-ids.o
CC fs/ubifs/recovery.o
CC drivers/mtd/spi/spi-nor-core.o
CC fs/ubifs/replay.o
0x741a7dc4251f ???
./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://bugs.linaro.org/> for instructions.
make[1]: *** [scripts/Makefile.build:256: lib/display_options.o] Error 1
make: *** [Makefile:1921: lib] Error 2
make: *** Waiting for unfinished jobs....

 

Screenshot from 2025-12-07 21-18-31

 

可能是之前下载的ARM 工具链(gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu)编译时使用了某些当前 CPU 不支持的指令集(可能是 AVX2、AVX512 等)。

 

解决办法:使用系统自带的交叉编译器

 

# 1. 安装 Ubuntu 自带的 ARM 交叉编译器
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

# 2. 设置环境变量
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
export PATH=/usr/bin:$PATH  # 确保使用系统编译器

# 3. 清理并重新构建 U-Boot
cd /home/doreen/DE25_Nano_A5_sdmmc/u-boot-socfpga
make distclean
make socfpga_agilex5_de25_nano_defconfig
make -j $(nproc)