LicheePi4A镜像刷写教程
此页面是 LicheePi4A 镜像刷写教程,如想获取其它镜像刷写教程请从下面的表格中点击链接进行查看。
支持设备 | |
---|---|
Milk-V pioneer | 刷写教程 |
注意!
在查看此教程前,请对照下面的图片确认手中板卡是否和图片一致,请在确认一致后再继续按照教程操作。
演示环境介绍
此教程中所有镜像刷写的相关操作都使用以下环境:
- 系统及版本: Ubuntu 22.04.5 LTS
- 架构: x86_64
- LicheePi4A 板卡规格 16G RAM + 128G eMMC
在此环境中,本教程中的所有操作都是可复现的。在下面我们提供了一些未经官方验证,但可以进行刷写的环境,在下面环境中进行镜像刷写遇到问题请参考此页提交issue。
启动方式介绍
LicheePi4A 目前支持两种启动方式,分别是从SD card 启动和从 eMMC 启动,对于两种不同的启动方式,此教程中都有进行说明,请根据自己所需的刷写方式点击进行跳转查看。
从SD card 启动
注意!从sd卡启动不需要改变拨码开关!按照eMMC拨码开关进行设置!
拨码开关存在于板卡下方,需要取出板卡后才能看到,正确设置应为两个按钮全部对准下方。
注意! 部分早期版本的 LicheePi4A 板卡没有拨码开关。
准备工作
获取 SD card 镜像
从以下链接下载 LicheePi4A 以 sdcard-
为前缀的 SD card 启动系统镜像:
20240720镜像使用的是5.10内核,目前5.10内核处于较为成熟的状态,在视频的编解码以及各种应用上表现都更加稳定。
20250110镜像使用的是6.6内核,6.6内核可能会出现一些未知的问题,已知的有视频方面卡顿以及usb失去供电等问题,目前正在修复当中。
请在看完上述说明后,根据需求选择相应的镜像。
以下以20250110镜像为例进行演示:
请注意,下载后的zst文件压缩包约为1.4GB,请在下载时确认本地最少留有12GB的剩余空间,以保证后续的下载和解压不会出现空间不足的情况。
如果是通过网页浏览,点击链接下载,浏览器会自动拉起文件下载,请进行确认,保证文件下载到本地。
如果想通过命令行进行下载,有许多种方式例如:wget、curl等,在这里我们选择 wget 作为下载工具。
在演示环境中,wget通常会预装,如果没有安装 wget 的情况下请使用以下命令进行安装
sudo apt install wget
请注意,sudo命令执行时需要用户输入密码进行确认才可执行,请确保自己知道密码后再执行此命令,后续不再赘述。
在安装成功后可以在命令行中执行以下命令进行镜像压缩包下载
wget https://mirror.iscas.ac.cn/revyos/extra/images/lpi4a/20250110/sdcard-lpi4a-20250110_151339.img.zst
下载完成后会得到名为 sdcard-lpi4a-20250110_151339.img.zst 的文件,此文件并不是最终镜像文件,而是一个压缩包,需要解压镜像压缩包 sdcard-lpi4a-20250110_151339.img.zst 才可得到最终的镜像文件 sdcard-lpi4a-20250110_151339.img。
在上述的演示环境中,zst文件压缩包有多种方式进行解压,例如zstd、tar、7z。此教程只列举其中一种。通过命令行使用 zstd 工具进行解压,此方式需要我们先在系统中安装 zstd 软件包,再进行解压。
如果不知道系统中是否已经安装 ztsd,请执行下面的命令,此命令是通过查看 zstd 版本的命令,通过回显可以判断系统是否已经预装 ztsd 软件包。
zstd --version
如果正常回显版本号证明已安装成功,例如下面的回显表示 zstd 已安装:
*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***
如果回显没有版本号的情况下,请通过命令行安装zstd,
sudo apt update
sudo apt install zstd
在安装完 zstd 后,我们便可对镜像文件进行解压。请注意,注意解压后的文件大小约为10.2GB,解压时请注意本地存储空间是否足够!
sudo unzstd sdcard-lpi4a-20250110_151339.img.zst
最后会得到 sdcard-lpi4a-20250110_151339.img 文件。至此,演示环境下镜像文件获取成功。
硬件准备
准备MicroSD 读卡器和一张MicroSD 卡,目前 MicroSD 卡存在兼容性问题,RevyOS 提供了目前已测试过的 MicroSD 卡列表。
如果您使用的 MicroSD 卡不在已知可用的列表上,出现无法正确刷写镜像和刷写后无法启动镜像的问题,请参考此页提交issue,并尝试参考从 eMMC 启动镜像的刷写教程进行镜像刷写。
烧录方式介绍
如果您选择从SD card 启动,可以选择使用两种不同的方式将镜像烧录到 MicroSD 卡中。一种是通过图形界面软件烧录,一种是通过命令行使用dd命令在命令行进行烧录。
使用BalenaEtcher写入镜像到 MicroSD 卡
从官网获取烧录工具 BalenaEtcher https://etcher.balena.io/,下载时请根据本机情况选择文件进行下载。根据演示环境中的说明,选择Etcher for Linux x64 (64-bit) (zip)进行下载并解压安装。
把 SD 卡插入读卡器,并将其插入电脑。
运行 BalenaEtcher用于写入镜像到SD 卡。 在 BalenaEtcher 窗口中, 首先点击 "Flash from file" 来选择镜像文件。 选择完镜像文件后在第二栏选择需要写入的设备。 两项都选择完以后点击"Flash"写入镜像。 在等待一段时间后会显示烧录已完成。
使用dd写入镜像
dd 是 Linux 和类 Unix 系统中的一个功能强大的命令行工具,主要用于按指定大小和格式复制文件或数据,一般会预装在系统中。
使用 dd 命令写入镜像需要根据以下步骤进行
首先需要查看设备列表,在插入 SD 卡前后分别运行以下命令,找到 SD 卡对应的设备名:
lsblk
SD 卡的设备名可能是 /dev/sda 或 /dev/mmcblk0,在演示环境中,在执行lsblk
后确认sd卡分区为/dev/sda
。
在写入镜像前,需要卸载 SD 卡的挂载分区,如果有多个分区请逐一卸载:
sudo umount /dev/sda1
如果没有分区被挂载,umount 命令会显示not mounted
,这时无需进一步操作。
在卸载分区后,建议运行sudo sync
命令,确保所有数据已同步。
在执行完上述步骤后即可进行刷写,在刷写前请保证您在 of=
设置了正确的设备,在演示环境中,sd卡识别为sda,of=
后请根据自身设备分区进行填写。
sudo dd if=./sdcard-lpi4a-20250110_151339.img of=/dev/sda bs=4M status=progress
在刷写完成后,也请执行sudo sync
命令,保证数据已同步,然后需要确认sd卡是未挂载状态下,这两点执行完成后才可拔出sd卡,插入到开发板中。
通过SD卡启动系统
在写入镜像完成后将SD 卡插入如图所示卡槽中。
需要先将hdmi线(如果有外接显示器需求)进行连接,然后将随箱附赠的USB-A接口到USB-C接口的数据线中的C口一端接入到开发板上,另一端接入至少5V2A 输出的 USB 电源上,即可启动。
从 eMMC 启动
从eMMC启动镜像时,刷写镜像的途径分为连接串口与不连接串口两种情况,其中进行的操作有些许区别,在此将两种方式一起进行介绍。
请注意!从eMMC启动应当先取出 SD Card!
准备工作
硬件准备
安装镜像刷写工具
从 eMMC 启动需要将 u-boot 文件、boot 文件以及 root 文件通过 fastboot 工具刷入eMMC中,所以需要先确认是否已安装 fastboot。
如果不知道系统中是否已经安装 fastboot ,请执行下面的命令,此命令是通过查看 fastboot 版本的命令,通过回显可以判断系统是否已经预装 fastboot 软件包。
fastboot --version
如果正常回显版本号证明已安装成功,例如下面的回显表示 fastboot 已安装:
fastboot version 28.0.2-debian
Installed as /usr/lib/android-sdk/platform-tools/fastboot
如果回显没有版本号的情况下,请通过命令行安装 fastboot
sudo apt install fastboot
sudo apt install fastboot
安装串口控制台工具
通过串口连接时需要串口控制台进行监控,串口控制台软件有很多,例如 minicom
, screen
,picocom
等软件,在这里我们选择 minicom 来进行演示。
sudo apt install minicom
在安装完成后可以使用查看 minicom 版本的命令来确认是否成功安装
minicom -version
获取镜像
从以下链接下载 LicheePi4A 的系统镜像:
请注意!
LicheePi4A 不同的内存版本 uboot 镜像不通用,请根据您的核心板的板卡版本选择对应镜像
内存存储组合 | 对应的uboot镜像 |
---|---|
8G RAM + 8G eMMC | u-boot-with-spl-lpi4a-main_8gemmc.bin |
8G RAM + 32G eMMC | u-boot-with-spl-lpi4a-main.bin |
16G RAM | u-boot-with-spl-lpi4a-16g-main.bin |
如果无法确认核心板的规格,可以扫描核心板上的二维码进行查看。LicheePi4A板卡发售时,在核心板上会有一张二维码贴纸,在扫描后会显示核心板的内存+存储配置。
例如 16G RAM + 128G eMMC 扫描后显示如下
确认好板卡规格后使用 wget 下载 uboot、boot以及root文件
sudo wget u-boot-with-spl-lpi4a-16g-main.bin
sudo wget boot-lpi4a-20250110_151339.ext4.zst
sudo wget root-lpi4a-20250110_151339.ext4.zst
下载完成后使用 unzstd
命令解压 root 和 boot 文件
unzstd boot-lpi4a-20250110_151339.ext4.zst
unzstd root-lpi4a-20250110_151339.ext4.zst
文件解压完成后就得到了刷写 eMMC 镜像的所需文件了。
写入镜像到eMMC(不接入串口)
按住板卡上的BOOT键后,接入电脑。板卡会进入刷写模式
写入镜像到eMMC(接入串口)
使用 minicom
首先从终端打开 minicom,进入串口控制台。
sudo minicom
如果需要指定使用的串口设备(例如常见的 USB 转串口设备使用的 ttyUSB0
),可以使用
sudo minicom -D /dev/ttyUSB0
使用 screen
从终端打开 screen
, /dev/ttyUSB0
为您使用的设备, 115200
为波特率
sudo screen /dev/ttyUSB0 115200
如图所示将串口与板卡进行连接,usb端接入电脑。板卡上的Type-C接口通过USB-Type-C线连接到电脑。
连接串口,红色圈内(从左往右第一排第二个)为 GND,黄色圈内(第一排第五个)为 TX,绿色圈内(第二排第五个)为 RX。与主机应遵循TX到RX,RX到TX,GND到GND的接线。
接入后在串口控制台中按任意按键打断自动启动,出现下面的 uboot 命令行 (见最后一行)
在串口控制台窗口中输入
fastboot usb 0
会显示
Light LPI4A 16G# fastboot usb 0
dwc3_gadget_start maximum_speed:5 revision:0x5533330b
dwc3_gadget_start DWC3_DCFG:0x80804
即表示可以使用 fastboot 刷写,随后另起一个窗口进行镜像刷写。
正式刷写
以下命令均为在镜像文件下载文件夹路径内,注意文件路径和文件名。
使设备进入 u-boot fastboot
如果 lsusb
结果不是 ID 1234:8888 Brain Actuated Technologies USB download gadget
,运行下面的命令
fastboot flash ram u-boot-with-spl-lpi4a-16g.bin # 替换为您的型号对应的 uboot 镜像
fastboot reboot
sleep 1
刷写镜像
fastboot flash uboot u-boot-with-spl-lpi4a-16g.bin
fastboot flash boot boot-lpi4a-20240720_171951.ext4
fastboot flash root root-lpi4a-20240720_171951.ext4
fastboot 会显示刷写进度,如果连接了串口,在串口控制台中可以看到具体进度(下图以刷写
boot,大小为 92886476 Bytes为例,可在 cmd_parameter: boot, imagesize: 92886476
处查看刷入的内容)。
刷写完成后拔掉电脑与板卡连接的USB-Type-C线,接入电源线便可直接启动进入系统。
可能出现的问题
如果 lsusb
中存在 download 设备,但fastboot
命令仍然卡在 < waiting for any device >
,可以尝试使用 sudo
运行 fastboot
命令。
用户登录
- 登录账户:debian
- 账户密码:debian