1、 从gitee上拉取对 Nano 进行了适配的 u-boot:
git clone https://gitee.com/LicheePiNano/u-boot.git
2、 切换分支
cd u-boot
git checkout nano-v2018.01
3、 选择配置文件
#编译SD卡启动的uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig
#spi-flash启动的uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- f1c100s_nano_uboot_defconfig
成功如下:
4、 进行可视化配置
1、输入配置指令
make ARCH=arm menuconfig
2、选择如图选项配置启动参数,该参数根据不同的芯片而定,本项目使用芯片为f1c100s。
3、输入如下参数
load mmc 0:1 0x80008000 zImage;load mmc 0:1 0x80C00000 suniv-f1c100s-licheepi-nano.dtb;bootz 0x80008000 - 0x80C00000
4、设置bootargs传参
console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 rw
5、选择save后退出
5、开始编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
6、编译完成后,在u-boot根目录下,有文件 u-boot-sunxi-with-spl.bin,即编译成功
PS:简易脚本,根据个人需求编写修改
#!/bin/bash
v_ARCH=arm
v_CROSS_COMPILE=/usr/local/arm-linux-gcc/bin/arm-linux-gnueabi-
Comfig_FILE=licheepi_nano_defconfig
HzgConfig_File=config_backup.config
echo -e "defconfig file : licheepi_nano_defconfig"
read -p "Clean Or Not [Y/N](You can entry 'q' tu exit!):" YN
while [[ "$YN" != "q" && "$YN" != "Q" && "$YN" != "Y" && "$YN" != "y" && "$YN" != "N" && "$YN" != "n" ]]
do
read -p "Clean Or Not [Y/N](You can entry 'q' tu exit!):" YN
done
if [[ "$YN" == "Y" || "$YN" == "y" ]];then
sudo make clean
echo -e "clean over"
elif [[ "$YN" == "q" || "$YN" == "Q" ]];then
exit 1
fi
read -p "Use config_backup file Or Not [Y/N](You can entry 'q' tu exit!):" YN
while [[ "$YN" != "q" && "$YN" != "Q" && "$YN" != "Y" && "$YN" != "y" && "$YN" != "N" && "$YN" != "n" ]]
do
read -p "Use config_backup file Or Not [Y/N](You can entry 'q' tu exit!):" YN
done
if [[ "$YN" == "Y" || "$YN" == "y" ]];then
echo -e "sudo cp $HzgConfig_File .config"
sudo cp $HzgConfig_File .config
if [[ $? != 0 ]];then
echo "cp error, quit!"
exit 1
fi
elif [[ "$YN" == "N" || "$YN" == "n" ]];then
echo -e "sudo make ARCH=$v_ARCH CROSS_COMPILE=$v_CROSS_COMPILE $Comfig_FILE"
sudo make ARCH=$v_ARCH CROSS_COMPILE=$v_CROSS_COMPILE $Comfig_FILE
echo -e "defconfig over"
sudo make ARCH=$v_ARCH menuconfig
elif [[ "$YN" == "q" || "$YN" == "Q" ]];then
exit 1
fi
read -p "Compile Or Not [Y/N]:" YN
while [[ "$YN" != "Y" && "$YN" != "y" && "$YN" != "N" && "$YN" != "n" ]]
do
read -p "Compile Or Not [Y/N](You can entry 'q' tu exit!):" YN
done
if [[ "$YN" == "Y" || "$YN" == "y" ]];then
make ARCH=$v_ARCH CROSS_COMPILE=$v_CROSS_COMPILE -j8
fi