NanoPi Zero2/zh

From FriendlyELEC WiKi
Jump to: navigation, search

English

Contents

1 介绍

Overview
Front
Back
Case
Case
Case
Case
  • NanoPi-Zero2是友善电子团队面向创客、嵌入式爱好者,电子艺术家、发烧友等群体推出的又一款完全开源的掌上创客神器。

2 NanoPi Zero2资源特性

  • 主芯片: 瑞芯微 RK3528A
    • CPU: 四核 ARM Cortex-A53
    • GPU: ARM Mali-450 GPU
    • VPU: 支持4K H265/H264 60fps解码,1080p H265/H264 60fps编码
  • 内存: 1GB/2GB LPDDR4/LPDDR4X
  • 闪存: 支持eMMC模块
  • 以太网: 一个原生千兆以太网
  • 无线网络: 一个M.2 Key-E 2230接口,支持PCIe无线网卡
  • USB接口:
    • 一个USB2.0 Host A型口
    • 一个USB-C接口,支持Device模式,可用于线刷eMMC
  • 一个microSD卡槽
  • 一个30-pin FPC GPIO接口
  • 调试: 3.3V调试串口,波特率为1500000bps
  • 指示灯: 2个GPIO控制的LED(SYS & LED1)
  • 其它:
    • 一个2 Pin 1.27/1.25mm 低功耗RTC备份电池接口
    • 具有RESET按键, RECOVERY按键, 和MASK按键
  • 供电: DC 5V/2A, 可通过USB-C或2.54mm排针接口供电
  • PCB尺寸: 45*45*1.2mm
  • 工作环境温度: 0℃ to 80℃

3 接口布局和尺寸

3.1 接口布局

NanoPi Zero2 Layout

  • 8-Pin 2.54mm 排针 & Debug UART
调试串口是3.3V电平, 1500000bps
Pin# Assignment 描述 Pin# Assignment 描述
1 GND 0V 2 VCC5V0_SYS 5V电源输出/输入
3 UART2DBG_TX 调试串口输出 4 VCC5V0_SYS 5V电源输出/输入
5 UART2DBG_RX 调试串口输入 6 GND 0V
7 VCC_3V3 3.3V电源输出 8 GND 0V
VCC5V0_SYS系直接与USB-C 5V相连。
VCC_3V3是系统3.3V电源, 同时被分配到M.2 Key-E, eMMC, SD, 30-pin GPIO, Ethernet等模块. 若要从此引脚取电,建议不要超过300mA。
  • M.2 Key-E
M.2 Key-E包含PCIe信号,支持PCIe wifi,以及NVMe SSD等PCIe外设(需要额外转接板)。
  • 30-Pin FPC GPIO
这是一个0.5mm FPC 连接器。

NanoPi Zero2 GPIO

VCC5V0_SYS系直接与USB-C 5V相连。由于连接器不支持大电流,不建议从此处给板子供电。
VCC_3V3是系统3.3V电源, 同时被分配到M.2 Key-E, eMMC, SD, 30-pin GPIO, Ethernet等模块. 若要从此引脚取电,建议不要超过300mA。
  • USB 接口
USB2.0 A口具有0.95A过流保护功能。
  • RTC
RTC备份电流为0.25μA TYP (VDD =3.0V, TA =25℃).
连接器型号:Molex 53398-0271 或兼容
  • 电源
裸板峰值功耗为5W。
要估算整体功耗,除裸板功耗之外,还应考虑 eMMC模块、M.2模块、USB外围设备和GPIO板的功耗。

4 快速入门

4.1 准备工作

要开启你的NanoPi Zero2新玩具,请先准备好以下硬件

  • NanoPi Zero2
  • MicroSD卡/TF卡: Class10或以上的 8GB SDHC卡
  • 一个USB Type-C接口的外接电源,建议使用传统5V/3A及以上的电源适配器
  • 如果需要开发与编译,则需要一台可以联网的电脑,推荐安装Ubuntu 20.04 64位系统,并使用下面的脚本初始化开发环境, 也可以使用Docker容器:

4.2 经测试可选用的TF卡

请参考: TF Cards We Tested

4.3 调试串口参数配置

使用以下串口参数:

波特率 1500000
数据位 8
奇偶校验 None
停止位 1
流控制 None

4.4 安装系统

4.4.1 下载固件

4.4.1.1 官方固件

访问此处的下载地址下载固件文件 (位于网盘的"01_系统固件"目录):
下表列出了所有官方固件,文件名中的XYZ代表文件的不同用途,其含义如下:

  • sd: 安装系统到TF卡时使用
  • eflasher: 需要通过TF卡烧写系统到eMMC时使用
  • usb: USB线刷时使用
图标 文件名 版本 描述 内核版本
Debian-icon.svg rk3528-XYZ-debian-bookworm-core-6.1-arm64-YYYYMMDD.img.gz bookworm Debian12 精简版固件,没有桌面, 仅命令行 6.1.y
Ubuntu-icon.svg rk3528-XYZ-ubuntu-noble-core-6.1-arm64-YYYYMMDD.img.zip noble 精简版64位Ubuntu系统固件,基于Ubuntu core 24.04构建 6.1.y
Openmediavault250.png rk3528-XYZ-openmediavault-6.1-YYYYMMDD.img.gz Shaitan OpenMediaVault NAS系统,基于Debian12构建 6.1.y
Openwrt-icon.svg rk3528-XYZ-friendlywrt-21.02-YYYYMMDD.img.gz 21.02 FriendlyWrt, 基于OpenWrt 21.02 6.1.y
Openwrt-icon.svg rk3528-XYZ-friendlywrt-21.02-docker-YYYYMMDD.img.gz 21.02 预装了Docker的FriendlyWrt, 基于OpenWrt 21.02 6.1.y
Openwrt-icon.svg rk3528-XYZ-friendlywrt-23.05-YYYYMMDD.img.gz 23.05 FriendlyWrt, 基于OpenWrt 23.05 6.1.y
Openwrt-icon.svg rk3528-XYZ-friendlywrt-23.05-docker-YYYYMMDD.img.gz 23.05 预装了Docker的FriendlyWrt, 基于OpenWrt 23.05 6.1.y
Other Image
Linux-tux.svg rk3528-XYZ-multiple-os-YYYYMMDD-25g.img.gz - 内含了多个操作系统的eMMC烧写文件,方便测试各个OS
4.4.1.2 工具软件(可选)

访问 此处的下载链接 下载所需要的工具软件 (位于网盘的"05_工具软件"目录).

文件名 描述
win32diskimager.rar 用于将映象文件写入SD卡
SD Card Formatter 用于清空SD卡中的引导数据
RKDevTool_Release_v2.84.zip 瑞芯微的刷机工具,USB线刷系统时需要使用此工具

4.4.2 通过TF卡运行系统

操作步骤如下:

  • 准备一张8G或以上容量的TF卡;
  • 访问此处的下载地址下载需要的固件(位于"01_系统固件/01_SD卡固件"目录);
  • 下载烧写工具 win32diskimager (位于"05_工具软件"目录),或者选用你喜爱的工具;
  • 解压 .gz 格式的压缩文件得到 .img 格式的镜像文件;
  • 在Windows下以管理员身份运行 win32diskimager,在界面上选择你的SD卡盘符,选择解压后的固件文件,点击 Write 按钮烧写到SD卡;
  • 将SD卡从电脑端弹出,插入NanoPi-Zero2的microSD卡槽;
  • 连接NanoPi-Zero2的电源,系统会从TF卡启动, 某些型号可能需要按下Power键才会启动;

4.4.3 烧写系统到eMMC

4.4.3.1 方法1: 用TF启动卡进行自动烧写

此方法是通过SD卡启动一个小型的Linux系统, 借助名为EFlasher的工具来烧写固件到eMMC。

如果有连接HDMI显示器, 可通过图形界面观察烧写进度, 也可以通过板载LED灯来掌握烧写进度:

进度

SYS灯 (红灯)

上电开机

长亮

系统启动

慢闪

正在烧写

快闪

烧写完成

慢闪

默认情况下烧写是上电自动开始的,所以要注意备份eMMC里的数据,如果不想自动,可以使用文件名含"multiple-os"字样的固件,在界面上手动选择要烧写的系统。

4.4.3.1.1 烧写官方固件到eMMC

详细操作步骤如下:

  • 准备一张8G或以上容量的SDHC卡;
  • 访问此处的下载地址下载需要的固件(位于"01_系统固件/02_SD卡刷机固件(SD-to-eMMC)"目录)和烧写工具win32diskimager(位于"05_工具软件"目录);
  • 解压 .gz 格式的压缩文件得到 .img 格式的镜像文件;
  • 在Windows下以管理员身份运行 win32diskimager,在界面上选择你的SD卡盘符,选择解压后的固件文件,点击 Write 按钮烧写到SD卡;
  • 将SD卡从电脑端弹出,插入NanoPi-Zero2的microSD卡槽;
  • 连接NanoPi-Zero2的电源,系统会从SD卡启动,并自动启动 EFlasher 烧写工具将系统安装到 eMMC;
  • 烧写完成后,从NanoPi-Zero2弹出SD卡,NanoPi-Zero2会自动重启并从eMMC启动你刚刚烧写的系统;
4.4.3.1.2 烧写第三方固件(镜像文件)到eMMC

1) 从网盘上下载文件名带 eflasher 字样的任意固件(位于"01_系统固件/02_SD卡刷机固件(SD-to-eMMC)"目录), 解压后烧进TF卡;
2) 重新拨插一次TF卡, PC上会出现一个名为FriendlyARM的盘符(Linux下是FriendlyARM目录), 将 .raw 或者 .gz 结尾的固件复制进去 (注:如果你的文件为 .img 格式那么请改名为 .raw 格式);
3) 编辑TF卡上的 eflasher.conf 配置文件, 修改 autoStart= 后面的值指定为你的固件文件名, 例如:

autoStart=openwrt-rockchip-armv8_nanopi-ext4-sysupgrade.img.gz

除了第三方固件,亦支持文件名带 "-sd-" 字样的官方固件文件, 例如: rk3NNN-sd-friendlywrt-21.02-YYYYMMDD.img.gz
4) 安全弹出TF卡, 将TF卡放在NanoPi-Zero2上上电启动, 会自动烧写你的固件, 通过板载 LED 灯来了解安装进度;

4.4.3.2 方法2: 在网页上烧写

使用烧写了FriendlyWrt固件的TF卡启动NanoPi-Zero2, 登录FriendlyWrt页面, 在网页菜单上点击 "系统" -> "eMMC刷机助手" 进入eMMC刷机助手界面, 点击界面上的 "选择文件" 按钮, 选择你要刷写的文件 (官方固件选用文件名有"-sd-"的文件), 亦可选择第三方固件, 文件支持 .gz 格式的压缩文件, 或者以 .img 作为扩展名的raw格式。

选择文件后, 点击 “上传并烧写” 按钮, 开始上传并烧写, 如下图所示:
Friendlywrt-emmctools2-cn.png
烧写完成后,请弹出SD卡,设备会自动重启, 并从eMMC引导新系统,可留意指示灯的状态, 在系统状态灯闪烁,同时网卡状态灯亮起时,表示系统启动完成, 如果eMMC安装的系统是 FriendlyWrt, 则可以通过点击“进入首页”进入FriendlyWrt管理页面。
官方固件需要选用文件名带 "-sd-" 字样的镜像文件, 例如: rk3NNN-sd-friendlywrt-21.02-YYYYMMDD.img.gz, 压缩文件只支持gz格式, 如果文件太大, 可以先压缩成gz格式再上传。

4.4.3.3 方法3: 通过USB烧写
4.4.3.3.1 USB烧写步骤1: 安装USB驱动和工具

网盘的tools目录下载瑞芯微的USB驱动: DriverAssitant_v5.12.zip, 解压后安装;
在相同目录下, 下载瑞芯微开发工具: RKDevTool_Release_v2.84.zip, 解压后备用;

4.4.3.3.2 USB烧写步骤2: 将NanoPi-Zero2与电脑连接, 并进入刷机模式

按住Mask按键不放, 用USB数据线, 将NanoPi-Zero2与电脑进行连接, 保持按住Mask键, 状态灯亮起3秒后即可松开;
Zero2-usbflash.jpg

4.4.3.3.3 USB烧写步骤3: 开始烧写

固件格式一般有两种格式, 一种是单个的image文件, 通常第三方固件会使用这种打包方式, 另一种是多个分区镜像, FriendlyELEC的固件采用这种方式, 下面分别对这两种格式的固件进行说明:

  • 选项1: 烧写打包成单个image文件的固件

在电脑上双击 RKDevTool_Release_v2.84 目录下的 RKDevTool.exe 启动瑞芯微开发工具, 与电脑连接正常的情况下, 瑞芯微开发工具界面上会显示 "发现一个Maskrom设备";
在瑞芯微开发工具界面上, 点击 “升级固件”, 再点击 “固件” 按钮, 选择你要烧写的image文件, 点击 “升级” 然后等待烧写完成即可, 完成后设备会自动重启, 并从eMMC启动你刚刚安装的系统;

  • 选项2: 烧写由多个分区镜像组成的固件

根据需要到网盘上下载对应的压缩包(位于"01_系统固件/03_USB线刷固件(USB-to-eMMC)"目录), 在电脑上解压: 解压后, 可以看到固件目录下已内置了瑞芯微开发工具和预设好的配置文件, 双击 RKDevTool.exe 启动瑞芯微开发工具, 界面上会显示 "发现一个Maskrom设备", 点击界面上的“执行”按钮, 稍等片刻即可完成烧写, 完成后设备会自动重启, 并从eMMC启动你安装的系统;

5 FriendlyCore的使用

5.1 FriendlyCore默认帐户

  • 普通用户:
   用户名: pi
   密码: pi
  • Root用户:
   用户名: Root用户:
   密码: fa

5.2 更新软件包

$ sudo apt-get update

5.3 配置网络

5.3.1 设置静态IP地址

默认已将 eth0 配置成 dhcp 自动获取IP地址,要更改配置,可以修改这个文件:

vi /etc/network/interfaces.d/eth0

比如修改成静态IP地址,如下所示:

auto eth0
iface eth0 inet static
    address 192.168.1.231
    netmask 255.255.255.0
    gateway 192.168.1.1

5.3.2 设置DNS

还需要修改如下文件加入DNS的配置:

vi /etc/systemd/resolved.conf

例如设置为192.168.1.1:

[Resolve]
DNS=192.168.1.1

再用以下命令重新启动systemd-resolved服务:

sudo systemctl restart systemd-resolved.service
sudo systemctl enable systemd-resolved.service

5.3.3 设置使用另一个网络接口

要配置另一个网口, 例如eth1,可以在 /etc/network/interfaces.d/ 下复制 eth0 成 eth1,然后编辑eth1, 把其中的eth0改为eth1, 根据需要指定网络配置:

cp /etc/network/interfaces.d/eth0 /etc/network/interfaces.d/eth1
vi /etc/network/interfaces.d/eth1

5.4 连接WiFi

先用以下命令检查一下系统是否有安装Network-Manager:

which nmcli

如果有安装Network-Manager, 则参考此链接的方法连接WiFi: Use NetworkManager to configure network settings/zh, 如果没有安装, 则参考如下方法配置WiFi,
输入以下命令查询一下WiFi的网络接口,wlan开头的就是WiFi:

ifconfig -a

默认情况下是wlan0,在/etc/network/interfaces.d/目录下新建一个与网络接口同名的配置文件 ,以wlan0为例,用vi命令新建以下文件:

sudo vi /etc/network/interfaces.d/wlan0

wlan0文件的内容如下:

auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid YourWiFiESSID
wpa-ap-scan 1
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
wpa-key-mgmt WPA-PSK
wpa-psk YourWiFiPassword

其中,YourWiFiESSID和YourWiFiPassword请替换成你要连接的无线AP名称和密码, 保存文件后输入以下命令, 或者重启以应用配置:

sudo systemctl daemon-reload
sudo systemctl restart networking

需要注意的是,如果你的SD卡在多个硬件上运行,WiFi的网络接口可能会被重命名为wlan1, wlan2等,你可以通过清空这个文件的内容并重启让它恢复为默认值:/etc/udev/rules.d/70-persistent-net.rules。

5.5 安装内核头文件

sudo dpkg -i /opt/linux-headers-*.deb


6 Debian Core的使用

6.1 帐户与密码

普通用户:
    用户名: pi
    密码: pi

Root用户:
    默认没有设置root密码,可通过sudo passwd root命令配置root密码

6.2 查看IP地址

由于Debian Bullseye主机名默认为硬件型号, 所以可以使用ping命令来获得IP地址: ping NanoPi-Zero2
Debian Bullseye使用network-manager管理网络, 网口默认配置成DHCP自动获取IP地址 (包括有多网口的设备)。

6.3 通过ssh登录Debian

使用以下命令:ssh pi@NanoPi-Zero2
默认密码为pi

6.4 更新软件包

6.4.1 更换软件源为国内镜像源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.org
sudo sed -i -e 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo sed -i -e 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update

6.5 更改时区

6.5.1 检查当前时区

timedatectl

6.5.2 列出所有时区

timedatectl list-timezones

6.5.3 设置时区 (比如上海)

sudo timedatectl set-timezone Asia/Shanghai

替换内核下面的两个文件,重新编译内核:
kernel/logo.bmp
kernel/logo_kernel.bmp
或者使用脚本来操作,如下所示:

  • 下载脚本
git clone https://github.com/friendlyarm/sd-fuse_rk3399.git -b kernel-4.19 --single-branch
cd sd-fuse_rk3399
  • 编译内核并重新打包固件
convert files/logo.jpg -type truecolor /tmp/logo.bmp
convert files/logo.jpg -type truecolor /tmp/logo_kernel.bmp
sudo LOGO=/tmp/logo.bmp KERNEL_LOGO=/tmp/logo_kernel.bmp ./build-kernel.sh debian-bookworm-core-arm64
sudo ./mk-sd-image.sh debian-bookworm-core-arm64
sudo ./mk-emmc-image.sh debian-bookworm-core-arm64

6.6.1 恢复出厂设置

在终端上执行如下命令:

sudo firstboot && sudo reboot

6.7 在Debian系统上安装Docker

请参考此链接: How to Install Docker on Debian/zh

7 如何编译系统

稍后提供 ...

8 备份文件系统并创建SD映像(将系统及应用复制到另一块开发板)

8.1 备份根文件系统

开发板上执行以下命令,备份整个文件系统(包括OS与数据):

sudo passwd root
su root
cd /
tar --warning=no-file-changed -cvpzf /rootfs.tar.gz \
    --exclude=/rootfs.tar.gz --exclude=/var/lib/docker/runtimes \
    --exclude=/etc/firstuser --exclude=/etc/friendlyelec-release \
    --exclude=/usr/local/first_boot_flag --one-file-system /

注:备份时,如果系统中有挂载目录,最后会出现一个错误提示信息,可以无视它,我们本来就是要忽略这些目录

8.2 从根文件系统制作一个可启动的SD卡

Only support RK3328/RK3399/RK3568/RK3566/RK3588


9 Linux操作系统的常见操作

9.1 Linux系统下使用adb

9.1.1 buildroot系统下开启adb功能

开机自动开启

mv /etc/init.d/K50usbdevice /etc/init.d/S50usbdevice
reboot

临时开启

usbdevice-wrapper start

9.1.2 ubuntu和debian系统下开启adb功能

开机自动开启

sudo systemctl enable usbdevice
sudo reboot

临时开启

usbdevice-wrapper start

9.1.3 如何连接

使用adb时,与电脑相连接的端口与usb线刷的端口相同。

9.2 安装内核头文件

sudo dpkg -i /opt/archives/linux-headers-*.deb

10 救砖办法

如何固件没有正确安装,导致开发板变砖,而且可能没有机会通过SD卡重新安装固件,这时,就需要进入Maskrom模式,通过擦除存储设备的办法救砖。

10.1 Windows用户

10.1.1 下载所需文件

  • 获取所需工具:访问这里,在 05_Tools 目录中找到 RKDevTool_v3.19_for_window.zip, DriverAssitant_v5.12.zip 下载到本地
  • 安装Rockchip USB驱动和RKDevTool: 解压 DriverAssitant_v5.12.zip 安装Rockchip USB驱动, 解压 RKDevTool_v3.19_for_window.zip 获得 Rockchip烧写工具 RKDevTool
  • 获取loader: 访问这里,进入CPU型号对应的tools目录,下载 MiniLoaderAll.bin

10.1.2 进入Maskrom模式擦除存储设备

  • 使用USB数据线将NanoPi-Zero2与电脑相连接
  • 在电脑上启动 RKDevTool
  • 将NanoPi-Zero2断开电源,按住 MASK 键,连接电源,当看到界面下方显示 Found One MASKROM Device 时松开按键, 如下图所示:

Rkdevtool found one maskrom device.png

  • RKDevTool 界面上点击 Advanced Function 选项卡
  • Boot 编辑框中选择 MiniLoaderAll.bin,然后点击 Download 按钮
  • 选中 EMMC,点 Switch Storage,再点击 ErashAll 按钮擦除eMMC

Rkdevtool erase emmc.png

  • 至此,NanoPi-Zero2恢复至初始状态,可以正常通过SD卡或eMMC引导系统了

10.2 Linux/Mac用户

10.2.1 下载所需文件

  • 获取所需工具:访问这里,在 05_Tools 目录中找到 upgrade_tool_v2.30_for_linux.tgz (或Mac用户选upgrade_tool_v2.25_for_mac.tgz) 下载到本地
  • 获取loader: 访问这里,进入CPU型号对应的tools目录,下载 MiniLoaderAll.bin

10.2.2 安装upgrade_tool工具

以下命令以Linux为例,Mac用户只有文件和目录名略有不同:

tar xzf upgrade_tool_v2.30_for_linux.tgz
cd upgrade_tool_v2.30_for_linux
sudo cp upgrade_tool /usr/local/sbin/
sudo chmod 755 /usr/local/sbin/upgrade_tool

10.2.3 进入Maskrom模式擦除存储设备

  • 使用USB数据线将NanoPi-Zero2与电脑相连接
  • 将NanoPi-Zero2断开电源,按住 MASK 键,连接电源,4秒后松开按键
  • 用如下命令检查连接:
upgrade_tool LD

显示类似 "DevNo=1 Vid=0x2207,Pid=0x350b,LocationID=13 Mode=Maskrom SerialNo=" 的内容表示已检测到设备。

  • 用如下命令擦除eMMC:
upgrade_tool EF MiniLoaderAll.bin
  • 至此,NanoPi-Zero2恢复至初始状态,可以正常通过SD卡或eMMC引导系统了

11 资源链接

11.1 原理图和数据手册

12 更新日志

12.1 2024-09-04

首次发布