安装 Toolchain
apt-get install gcc-arm-linux-gnueabihf
安装完查看一下gcc-arm-linux-gnueabihf的版本号,arm-linux-gnueabihf-gcc-5 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609这个版本有BUG,没办法编译Mainline U-Boot,需要去linaro重新下载一个, 然后解压
**
**
安装 Device-tree Compiler
apt-get install device-tree-compiler
**
**
**
获取 Mainline U-Boot 源代码**
git clone git://git.denx.de/u-boot.git
**
**
**
配置**
在编译之前需要生成用于编译配置文件
make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfig
<board_name>_defconfig处选择自己板子的defconfig,有些在 u-boot 中自带, 有些没有
可以在u-boot/configs/中可以查看已有的 defconfig 文件
编译
make CROSS_COMPILE=arm-linux-gnueabihf-
如果使用非安装的编译器CROSS_COMPILE=需要填写编译器的位置, 如CROSS_COMPILE=/home/user/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
编译成功后
编译成功后, 会在 U-Boot 源码目录下生成一个名为u-boot-sunxi-with-spl.bin的文件, 这个文件就是我们可以烧进卡里的u-boot
烧写
如果要烧进 TF 卡使用, 需要写到卡的8KiB处:
sudo dd if=<u-boot-sunxi-with-spl.bin 文件> of=<你的 TF 卡设备目录> bs=1024 seek=8
#如 sudo dd if=./u-boot/u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
参考
- http://linux-sunxi.org/Toolchain
- http://linux-sunxi.org/Device_Tree
- http://linux-sunxi.org/Banana_Pi_M2%2B
- https://github.com/torvalds/linux
特别感谢 大姐姐 的技术支持!