学习Mainline之U-Boot编译
记录:学习Mainline之U-Boot编译
安装Toolchain
apt-get install gcc-arm-linux-gnueabihf
如果安装的是arm-linux-gnueabihf-gcc-5 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
这个版本,恭喜你,这个版本有BUG没办法编译的,
需要去linaro 重新下载一个,然后解压
安装 Device-tree Compiler
apt-get install device-tree-compiler
获取Mainline U-Boot源代码
git clone git://git.denx.de/u-boot.git
defconfig 文件
defconfig 文件有些在u-boot中自带,有些没有
在configs/
中可以查看已有的 defconfig 文件,命名规则是<board_name>_defconfig
我使用的是BananaPi M2+,u-boot中没有自带 defconfig 文件,需要自行添加
在linux-sunxi.org/Banana_Pi_M2中找到对应的 defconfig 文件,下载然后丢进configs/
里
配置
在编译之前需要生成用于编译配置文件
make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfig
如
make CROSS_COMPILE=arm-linux-gnueabihf- Sinovoip_BPI_M2_plus_defconfig
如果使用linaro的编译器CROSS_COMPILE=
需要填写编译器的位置,如CROSS_COMPILE=/home/user/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
编译
make CROSS_COMPILE=arm-linux-gnueabihf-
记在最后
编译成功后,会在U-Boot源码目录下生成一个名为u-boot-sunxi-with-spl.bin
的文件,这个文件就是我们最后需要的.
如果要烧进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
特别感谢 大姐姐
标签: 无标签