BPI-R3开发板 - 启动介绍

一. 前言

        BPI-R3开发板支持从SPI-NOR,SPI-NAND,SD卡和eMMc启动。官方WiKi也有发布对应的镜像文件,例如mtk-bpi-r3-SD-WAN1-SFP1-20220928-single-image.img,single-image表示可以用于直接烧写到启动设备中;openwrt-mediatek-mt7986-BPI-R3-NAND-WAN1-SFP1-squashfs-sysupgrade.bin则是openwrt固件,里面只有内核和跟文件系统,可以用于openwrt web升级,不能用于直接烧写到启动设备。

二. 启动介绍

        由于官方Wiki对于启动这块已经讲的非常详细了,这里就不详细介绍启动了。下面以一个具体的情景来讲解下启动:当SPI-NOR里面的镜像被破坏了,如何通过SD卡恢复?

1. 烧写镜像到SD卡

        在官方Wiki发布的镜像中下载打包镜像,找到mtk-bpi-r3-SD-WAN1-SFP1-20220928-single-image.img,使用bpi-tools工具将镜像烧写到SD卡。

2. 烧写镜像到SPI-NOR

        将C跳帽向下拉,让SPI-NOR有效。将SD卡插入板的卡槽,启动板子。运行fdisk -l,将会看到如下(后面部分省略):

root@OpenWrt:/# fdisk -l
Disk /dev/mtdblock0: 32 MiB, 33554432 bytes, 65536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
The backup GPT table is not on the end of the device.


Disk /dev/mmcblk0: 7.39 GiB, 7935623168 bytes, 15499264 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2BD17853-102B-4500-AA1A-8A21D4D7984D

Device         Start    End Sectors  Size Type
/dev/mmcblk0p1    34   8191    8158    4M Linux filesystem
/dev/mmcblk0p2  8192   9215    1024  512K Linux filesystem
/dev/mmcblk0p3  9216  13311    4096    2M Linux filesystem
/dev/mmcblk0p4 13312  17407    4096    2M Linux filesystem
/dev/mmcblk0p5 17408  58367   40960   20M Linux filesystem
/dev/mmcblk0p6 58368  78847   20480   10M Linux filesystem
/dev/mmcblk0p7 78848 209919  131072   64M Linux filesystem

...........
...........
...........

        可以看到,此时/dev/mtdblock0的大小是32M,正是SPI-NOR。使用如下指令擦除全部内容:

# 512 blocks (1 block = 64 KB)
flash_erase /dev/mtd0 0 512 

        在官方Wiki找到链接下载mtk-bpi-r3-mac80211-image-20220720.zip压缩包,解压后找到mtk-bpi-r3-NOR-WAN1-RJ45-20220720-single-image.bin。通过如下命令将镜像烧写到SPI-NOR:

cd /tmp
# tftp从电脑将image传到板子
tftp -gr mtk-bpi-r3-NOR-WAN1-RJ45-20220720-single-image.bin 192.168.1.100
# 通过dd命令烧写image到SPI-NOR
dd if=mtk-bpi-r3-NOR-WAN1-RJ45-20220720-single-image.bin of=/dev/mtdblock0

3. 从SPI-NOR启动板子

        将板子断电,将A,B,C和D跳帽全部往下拉,板子上电,板子将从SPI-NOR启动。

三. 总结

        本文主要介绍了当SPI-NOR中的程序被破坏时,如何恢复其中的程序。主要首先是通过SD卡启动系统,再将镜像传入到系统,烧写到SPI-NOR。如果需要烧写到SPI-NAND,将跳帽C置为反方向即可。如果要烧写到eMMC,则需要从SPI-NOR启动后,传入eMMC的镜像,烧写到eMMC。操作步骤类似。

猜你喜欢

转载自blog.csdn.net/to_be_better_wen/article/details/129780367
今日推荐