准备一张烧录过系统的SD卡,我的之前用于BPI-M4镜像的烧录。
fdisk -l # 查看SD卡挂载点
块设备名称为/dev/sdb,分成了sdb1和sdb2两个分区。
Docker image
BPI-M5提供了docker环境用于源码的编译。
docker pull sinovoip/bpi-build-linux-4.4:ubuntu16.04
docker run -it --privileged=true --device=/dev/sdb sinovoip/bpi-build-linux-4.4:ubuntu16.04 /bin/bash
# 让容器内的root拥有真正的root权限,并将主机设备映射到容器。
安装bpi-tools
方法一:
curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools|sudo -E bash
方法二:
- 进入github仓库:GitHub - BPI-SINOVOIP/bpi-tools: tools for Banana Pi
- 下载ZIP压缩文件
- 解压缩并配置环境
unzip bpi-tools-master.zip
cp -a bpi-tools-master/* /usr/bin/
命令基本使用
# 1.bpi-copy,例如将镜像写入到EMMC中
sudo bpi-copy xxx.img.zip /dev/mmcblk1
sudo unzip -p xxx.img.zip |pv| of=/dev/mmcblk1 bs=10 status=noxfer
# 2.bpi-bootsel,例如切换U-boot到M5
sudo bpi-bootsel bpi-m5-512b.img.gz /dev/sdb
sudo gunzip -c bpi-m5-512.img.gz | sudo dd of=/dev/sdb bs=512 seek=1
# 3.查看shell脚本源码
# https://github.com/BPI-SINOVOIP/bpi-tools
下载bsp源码
git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp
cd BPI-M5-bsp
git submodule update --init --recursive
这一过程需要较长时间。
官方提供的bsp中包括了kernel、u-boot、rfs和tool chains。
开始编译
./build.sh bpi-m5
可以看到,脚本提供了7个编译选项,这里输入1编译所有。
编译完成后会出现一个名为SD的文件夹,接着将本地文件更新到SD卡中(需要之前安装过bpi-tools)。
更新成功后,取出SD卡插入到BPI-M5开发板上,上电后可以看到M5能够顺利启动。