为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