为Arm设备交叉编译fw_printenv

起因

有时候设备上没有fw_printenv,又不方便安装,比如安卓系统,想要查看和修改uboot的env。 为了方便使用,采用静态链接。

静态编译

使用的是uboot的源代码,其tools/env/下有fw_printenv的源代码。同样需要安装交叉编译工具链,可参考上一篇。

make envtools ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LDFLAGS="-static" HOSTLDFLAGS="-static"

编译出来只有fw_printenv,fw_setenv只要做一个软链接即可:

ln -s fw_printenv fw_setenv

修改interpreter

对于有ld-linux-armhf.so.3的情况下,也可以不静态编译,只要修改interpreter即可:

patchelf --set-interpreter /lib/ld-linux-armhf.so.3 fw_printenv

最后修改于 2026-07-17