Difference between revisions of "NanoPi R5S/zh"
(updated by API) |
(updated by API) |
||
Line 185: | Line 185: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====开始编译==== | ====开始编译==== | ||
− | 下面的命令是编译不带docker的版本, 如需要编译带docker的版本, | + | 下面的命令是编译不带docker的版本, 如需要编译带docker的版本, 请将'''rk3568.mk'''替换为'''rk3568-docker.mk''': |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
./build.sh rk3568.mk | ./build.sh rk3568.mk | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 会编译所有组件(包含u-boot, kernel 和 friendlywrt)并生成sd卡镜像文件,再执行以下命令,可生成用于安装系统到emmc运行的镜像文件: | + | 会编译所有组件(包含u-boot, kernel 和 friendlywrt)并生成sd卡镜像文件,再执行以下命令,可生成用于安装系统到emmc运行的镜像文件(eflahser固件): |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
./build.sh emmc-img | ./build.sh emmc-img |
Revision as of 03:35, 14 June 2022
Contents
- 1 介绍
- 2 NanoPi R5S资源特性
- 3 接口布局和尺寸
- 4 快速入门
- 5 FriendlyWrt的使用
- 5.1 FriendlyWrt简介
- 5.2 首次开机的初始化
- 5.3 帐户与密码
- 5.4 登录FriendlyWrt
- 5.5 建议的安全性设置
- 5.6 切换WAN口至其他物理网口
- 5.7 更改LAN口的IP地址
- 5.8 安全的关机操作
- 5.9 恢复出厂设置
- 5.10 安装软件包
- 5.11 FriendlyWrt的一些常见问题
- 5.12 禁用IPv6
- 5.13 配置移远EC20(4G模块)拨号上网
- 5.14 使用USB2LCD查看IP和温度
- 5.15 如何使用USB WiFi
- 5.16 玩转Docker应用
- 5.17 挂载smbfs共享资源
- 5.18 使用sdk编译软件包
- 5.19 使用 GitHub Actions 编译 FriendlyWrt
- 5.20 Compile u-boot,kernel or friendlywrt
- 6 FriendlyCore的使用
- 7 如何编译系统
- 8 初始化NVME固态硬盘和USB移动硬盘
- 9 Link to Rockchip Resources
- 10 手册原理图等开发资料
- 11 更新日志
- 11.1 2024-10-16
- 11.2 2024-06-14
- 11.3 2024-06-06
- 11.4 2024-04-21
- 11.5 2024-03-15
- 11.6 2024-01-31
- 11.7 2023-12-23
- 11.8 2023-12-01
- 11.9 2023-11-13
- 11.10 2023-10-31
- 11.11 2023-09-09
- 11.12 2023-08-15
- 11.13 2023-07-19
- 11.14 2023-07-01
- 11.15 2023-06-25
- 11.16 2023-06-16
- 11.17 2023-06-09
- 11.18 2023-06-06
- 11.19 2023-06-02
- 11.20 2023-05-26
- 11.21 2023-05-21
- 11.22 2023-05-15
- 11.23 2023-05-05
- 11.24 2023-04-26
- 11.25 2023-03-24
- 11.26 2023-02-10
- 11.27 2023-01-09
- 11.28 2022-12-04
- 11.29 2022-09-06
- 11.30 2022-08-03
- 11.31 2022-07-27
- 11.32 2022-07-04
- 11.33 2022-06-22
- 11.34 2022-06-21
- 11.35 2022-06-15
- 11.36 2022-06-14
- 11.37 2022-05-16
1 介绍
NanoPi R5S(简称”R5S”)是友善电子团队设计出品的一款双2.5G+千兆三网口的开发板, 它采用瑞心微RK3568B2作为主控处理器, 配备2GB/4GB LPDDR4x内存,和8GB eMMC闪存,并支持TF卡启动和运行FriendlyWrt等系统。
R5S接口丰富,布局紧凑,主板尺寸只有90x62mm,可选配安装一体化CNC氧化铝外壳。它带有1个HDMI输出接口,可运行Android, Buildroot和Ubuntu桌面等系统,也可以用作极客喜欢的命令行模式;并且可解码播放4K60p H.265/H.264等格式视频。
R5S还带有1个M.2 NVME固态硬盘接口,和2个USB 3.0接口,并支持USB C口PD快充电源供电,外接移动硬盘时无需担心供电不足,是照片和视频爱好者便携存储和处理的利器。
简言之,R5S集多网口、轻NAS和视频播放于一体,同时适合学习物联网开发, 发掘、探索打造自己独具一格的玩法。
2 NanoPi R5S资源特性
- SoC: Rockchip RK3568B2
- CPU: Quad-core ARM Cortex-A55 CPU, up to 2.0GHz
- GPU: Mali-G52 1-Core-2EE,supports OpenGL ES 1.1, 2.0, and 3.2, Vulkan 1.0 and 1.1, OpenCL 2.0 Full Profile
- VPU: 4KP60 H.265/H.264/VP9 video decoder, 1080P60 H.264/H.265 video encoder
- NPU: Support 0.8T
- RAM: 2GB LPDDR4X
- Flash: 8GB eMMC
- Ethernet: one Native Gigabit Ethernet, and two PCIe 2.5Gbps Ethernet
- USB: two USB 3.2 Gen 1 Type-A ports
- HDMI:
- support HDMI1.4 and HDMI2.0 operation
- support up to 10 bits Deep Color modes
- support up to 1080p@120Hz and 4096x2304@60Hz
- support 3-D video formats
- PCIe: M.2 Key M, PCIe2.1 x1, support NVME, PCIe WiFi etc
- microSD: support UHS-I
- GPIO:
- 12-pin 0.5mm FPC connector
- up to 1x SPI, up to 3x UARTs, up to 4x PWMs, up to 8x GPIOs
- SD/MMC/SDIO/I2S:
- 2x8-pin 1.27mm connector
- Compatible with SDIO3.0 protocol
- Compatible with SD3.0, MMC ver4.51
- 4bits data bus widths
- 1x I2S with 2x SDO and 3x SDI
- Debug: one Debug UART, 3 Pin 2.54mm header, 3.3V level, 1500000bps
- LEDs: 4 x GPIO Controlled LED (SYS, WAN, LAN1, LAN2)
- others:
- 2 Pin 1.27/1.25mm RTC battery input connector for low power RTC IC HYM8563TS
- MASK button for eMMC update
- one 5V Fan connector
- Power supply: USB-C, support PD, 5V/9V/12V input
- PCB: 8 Layer, 62x90x1.6mm
- Ambient Operating Temperature: 0℃ to 70℃
3 接口布局和尺寸
3.1 接口布局
- 12-pin GPIO
Pin# GPIO SPI UART PWM POWER Description 1 VCC3V3_SYS 3.3V power output 2 VCC3V3_SYS 3.3V power output 3 GPIO3_C3 SPI1_CLK_M1 UART5_RX_M1 3.3V level 4 GND 5 GPIO3_C2 SPI1_MISOI_M1 UART5_TX_M1 3.3V level 6 GPIO3_A1 SPI1_CS0_M1 3.3V level 7 GPIO3_C1 SPI1_MOSI_M1 3.3V level 8 GND 9 GPIO4_C5 UART9_TX_M1 PWM12_M1 3.3V level 10 GPIO4_C6 UART9_RX_M1 PWM13_M1 3.3V level 11 GPIO3_C4 UART7_TX_M1 PWM14_M0 3.3V level 12 GPIO3_C5 UART7_RX_M1 PWM15_IR_M0 3.3V level
- 2x8-pin SDIO/I2S
Pin# GPIO SD/MMC/SDIO I2S POWER Description 1 VCC5V0_SYS 5V power output 2 VCC5V0_SYS 5V power output 3 GPIO3_C6 SDMMC2_D0_M0 I2S1_MCLK_M1 1.8V level 4 GPIO3_C7 SDMMC2_D1_M0 I2S1_SCLK_TX_M1 1.8V level 5 GND 6 GND 7 GPIO3_D0 SDMMC2_D2_M0 I2S1_LRCK_TX_M1 1.8V level 8 GPIO3_D3 SDMMC2_CLK_M0 I2S1_SDI1_M1 1.8V level 9 GND 10 GND 11 GPIO3_D1 SDMMC2_D3_M0 I2S1_SDO0_M1 1.8V level 12 GPIO3_D2 SDMMC2_CMD_M0 I2S1_SDI0_M1 1.8V level 13 GND 14 GND 15 GPIO3_D5 SDMMC2_PWREN_M0 I2S1_SDI3_M1 1.8V level 16 GPIO3_D4 SDMMC2_DET_M0 I2S1_SDI2_M1 1.8V level
- 调试串口
- 3.3V level signals, 1500000bps
Pin# Assignment Description 1 GND 0V 2 UART2DBG_TX output 3 UART2DBG_RX intput
- USB Port
- Each USB 3.2 Gen 1 port has 1.4A overcurrent protection.
- RTC
- RTC backup current is 0.25μA TYP (VDD =3.0V, TA =25℃).
- Connector P/N: Molex 53398-0271
4 快速入门
4.1 准备工作
要开启你的NanoPi R5S新玩具,请先准备好以下硬件
- NanoPi R5S主板
- MicroSD卡/TF卡: Class10或以上的 8GB SDHC卡
- 一个USB-C接口外接电源 (要求10W及以上规格),支持PD协议的电源适配器
- 一台电脑,需要联网,建议使用Ubuntu 18.04 64位系统
4.2 经测试可选用的TF卡
请参考: TF Cards We Tested
4.3 经我们测试过的PD电源适配器
请参考: PD Power Adapters We Tested
4.4 调试串口参数配置
使用以下串口参数:
波特率 | 1500000 |
数据位 | 8 |
奇偶校验 | None |
停止位 | 1 |
流控制 | None |
4.5 安装系统
4.5.1 通过TF卡运行系统
访问此处的下载地址下载需要的固件文件(位于"01_系统固件/01_SD卡固件"目录)和烧写工具(位于"05_工具软件"目录):
固件文件 | |
rk3568-sd-friendlywrt-21.02-YYYYMMDD.img.gz | FriendlyWrt系统固件,基于OpenWrt 21.02构建,内核版本 5.10.y |
rk3568-sd-friendlywrt-21.02-docker-YYYYMMDD.img.gz | 预装了Docker的FriendlyWrt系统固件,基于OpenWrt 21.02构建,内核版本 5.10.y |
rk3568-sd-friendlywrt-22.03-YYYYMMDD.img.gz | FriendlyWrt系统固件,基于OpenWrt 22.03构建,内核版本 5.10.y |
rk3568-sd-friendlywrt-22.03-docker-YYYYMMDD.img.gz | 预装了Docker的FriendlyWrt系统固件,基于OpenWrt 22.03构建,内核版本 5.10.y |
rk3568-sd-androidtv-YYYYMMDD.img.zip | Android TV 系统固件 |
rk3568-sd-android12-YYYYMMDD.img.zip | Android Tablet 系统固件 |
rk3568-sd-debian-bullseye-core-5.10-arm64-YYYYMMDD.img.gz | Debian11 精简版固件,没有桌面, 仅命令行,内核版本 5.10.y |
rk3568-sd-debian-bullseye-minimal-5.10-arm64-YYYYMMDD.img.gz | Debian11 系统固件,LXDE桌面, 不预装推荐软件包, 支持GPU/VPU硬件加速,内核版本 5.10.y |
rk3568-sd-debian-bullseye-desktop-5.10-arm64-YYYYMMDD.img.gz | Debian11 完整版固件,LXDE桌面, 预装推荐软件包, 支持GPU/VPU硬件加速,内核版本 5.10.y |
rk3568-sd-friendlycore-focal-5.10-arm64-YYYYMMDD.img.gz | 精简版64位FriendlyCore系统固件,基于Ubuntu core 20.04构建,内核版本 5.10.y |
其他固件 | |
Github Actions云编译版本 | FriendlyWrt |
Flash Utility: | |
win32diskimager.rar | Windows utility. Under Linux users can use "dd" |
详细操作步骤如下:
- 准备一张8G或以上容量的TF卡;
- 下载并解压镜像文件 xxx.img.gz 和工具 win32diskimager;
- 在Windows下以管理员身份运行 win32diskimager,在界面上选择你的SD卡盘符,选择解压后的固件文件,点击 Write 按钮烧写到SD卡; 或者在 Linux下使用 dd 命令将 xxx.img 写入 SD卡;
- 将SD卡从电脑端弹出,插入NanoPi-R5S的microSD卡槽;
- 连接NanoPi-R5S的电源,系统会从TF卡启动;
4.5.2 烧写系统到eMMC
4.5.2.1 方法1: 在网页上烧写
使用烧写了FriendlyWrt固件的TF卡启动NanoPi-R5S, 登录FriendlyWrt页面, 在网页菜单上点击 "系统" -> "eMMC刷机助手" 进入eMMC刷机助手界面, 点击界面上的 "选择文件" 按钮, 选择你要刷写的文件 (官方固件以rk3568-sd开头), 亦可选择第三方固件, 文件支持 .gz 格式的压缩文件, 或者以 .img 作为扩展名的raw格式。
选择文件后, 点击 “上传并烧写” 按钮, 开始上传并烧写, 如下图所示:
烧写完成后,请弹出SD卡,设备会自动重启, 并从eMMC引导新系统,可留意指示灯的状态, 在系统状态灯闪烁,同时网卡状态灯亮起时,表示系统启动完成, 如果eMMC安装的系统是 FriendlyWrt, 则可以通过点击“进入首页”进入FriendlyWrt管理页面。
需要注意的是, 如果烧写的是FriendlyElec的固件, 网页烧写需要选用文件名带 "-sd-" 字样的镜像文件, 类拟如下的文件名:
rk3568-sd-friendlywrt-21.02-YYYYMMDD.img.gz |
rk3568-sd-friendlywrt-21.02-docker-YYYYMMDD.img.gz |
rk3568-sd-friendlywrt-22.03-YYYYMMDD.img.gz |
rk3568-sd-friendlywrt-22.03-docker-YYYYMMDD.img.gz |
第三方固件由于命名不规则,你需要确认的是:此固件支持从eMMC启动,如果文件格式是7z、zip或者rar格式, 需要先解压缩, 如果文件太大无法写入, 可以先压缩成 .gz 格式再尝试。
4.5.2.2 方法2: 用TF启动卡进行自动烧写
4.5.2.2.1 烧写系统固件到eMMC
- 此方法是通过SD卡启动一个小型的Linux系统, 然后自动运行一个名为EFlasher的工具来将固件烧写到eMMC中。
- 可以连接HDMI显示器, 通过图形界面来了解进展, 但不是必需的, 可以通过LED灯来掌握烧写进度。
- 默认情况下烧写是自动开始的,如果要改为手动,可以使用文件名含"multiple-os"字样的固件文件,EFlasher会停留在系统选择界面,需要使用鼠标来选择你要烧写的系统。
访问此处的下载地址下载eMMC烧写所需的文件及工具:
固件文件 | |
rk3568-eflasher-friendlywrt-21.02-YYYYMMDD.img.gz | FriendlyWrt系统固件,基于OpenWrt 21.02构建,内核版本 5.10.y |
rk3568-eflasher-friendlywrt-21.02-docker-YYYYMMDD.img.gz | 预装了Docker的FriendlyWrt系统固件,基于OpenWrt 21.02构建,内核版本 5.10.y |
rk3568-eflasher-friendlywrt-22.03-YYYYMMDD.img.gz | FriendlyWrt系统固件,基于OpenWrt 22.03构建,内核版本 5.10.y |
rk3568-eflasher-friendlywrt-22.03-docker-YYYYMMDD.img.gz | 预装了Docker的FriendlyWrt系统固件,基于OpenWrt 22.03构建,内核版本 5.10.y |
rk3568-eflasher-debian-bullseye-core-5.10-arm64-YYYYMMDD.img.gz | Debian11 精简版固件,没有桌面, 仅命令行,内核版本 5.10.y |
rk3568-eflasher-debian-bullseye-minimal-5.10-arm64-YYYYMMDD.img.gz | Debian11 系统固件,LXDE桌面, 不预装推荐软件包, 支持GPU/VPU硬件加速,内核版本 5.10.y |
rk3568-eflasher-debian-bullseye-desktop-5.10-arm64-YYYYMMDD.img.gz | Debian11 完整版固件,LXDE桌面, 预装推荐软件包, 支持GPU/VPU硬件加速,内核版本 5.10.y |
rk3568-eflasher-androidtv-YYYYMMDD.img.gz | Android TV 系统固件 |
rk3568-eflasher-android12-YYYYMMDD.img.gz | Android12 系统固件 |
rk3568-eflasher-ubuntu-focal-desktop-5.10-arm64-YYYYMMDD.img.gz | Ubuntu 20.04固件, LXQT桌面,支持GPU/VPU硬件加速, 内核版本 5.10.y |
rk3568-eflasher-friendlycore-focal-5.10-arm64-YYYYMMDD.img.gz | 64位FriendlyCore系统固件,基于Ubuntu core 20.04构建,内核版本 5.10.y,预装了Qt5.10 |
其他固件文件: | |
rk3568-eflasher-multiple-os-YYYYMMDD-25g.img.gz | 包含了多个操作系统的固件文件,启动时需要连接显示器和鼠标,在界面上选择要烧写的操作系统 |
Flash Utility: | |
win32diskimager.rar | Windows utility. Under Linux users can use "dd" |
详细操作步骤如下:
- 准备一张8G或以上容量的SDHC卡;
- 下载并解压 固件文件rk3568-eflasher-OSNAME-YYYYMMDD.img.gz 和 工具win32diskimager;
- 在Windows下以管理员身份运行 win32diskimager,在界面上选择你的SD卡盘符,选择解压后的EFlasher固件,点击 Write 按钮烧写到SD卡; 或者在 Linux下使用 dd 命令将 rk3568-eflasher-OSNAME-YYYYMMDD.img 写入 SD卡;
- 将SD卡从电脑端弹出,插入NanoPi-R5S的microSD卡槽;
- 连接NanoPi-R5S的电源,系统会从SD卡启动,并自动启动 EFlasher 烧写工具将系统安装到 eMMC, 可连接HDMI设备来查看进度, 也可以通过板载 LED 灯来了解安装进度:
进度 | SYS灯 (红灯) | LAN灯(绿灯) | WAN灯(绿灯) |
---|---|---|---|
上电开机 | 长亮 | 灭 | 灭 |
系统启动 | 慢闪 | 灭 | 灭 |
正在烧写 | 快闪 | 灭 | 灭 |
烧写完成 | 慢闪 | 长亮 | 长亮 |
- 烧写完成后,切断电源,然后从NanoPi-R5S端弹出SD卡,重新上电开机,NanoPi-R5S会从eMMC启动你刚刚烧写的系统;
4.5.2.2.2 烧写Flash镜像文件到eMMC
- 自动烧写(默认行为)
1) 从网盘上下载文件名带 eflasher 字样的任意固件, 解压后烧进TF卡;
2) 重新拨插一次TF卡, PC上会出现一个名为FriendlyARM的盘符(Linux下是FriendlyARM目录), 将 .img 或者 .gz结尾的固件复制进去;
3) 编辑TF卡上的 eflasher.conf 配置文件, 修改 autoStart= 后面的值指定为你的固件文件名, 例如:
autoStart=openwrt-rockchip-armv8_nanopi-ext4-sysupgrade.img.gz
支持文件名带 "-sd-" 字样的镜像文件, 如下所示:
rk3568-sd-friendlywrt-22.03-YYYYMMDD.img.gz |
rk3568-sd-friendlywrt-22.03-docker-YYYYMMDD.img.gz |
rk3568-sd-friendlywrt-21.02-YYYYMMDD.img.gz |
rk3568-sd-friendlywrt-21.02-docker-YYYYMMDD.img.gz |
rk3568-sd-friendlycore-focal-5.10-arm64-YYYYMMDD.img.gz |
4) 安全弹出TF卡, 将TF卡放在NanoPi-R5S上上电启动, 会自动烧写你的固件, 通过板载 LED 灯来了解安装进度;
- 关闭自动烧写
如需要关闭自动烧写, 参考上一章节, 编辑flasher.conf配置文件中的autoStart值, 将其清空即可:
autoStart=
在这种使用场景下, 系统启动后, 会停留在选择固件的界面上, 需要连接HDMI显示器以及USB鼠标, 通过UI操作来进行固件烧写;
4.5.2.3 方法3: 通过USB烧写
4.5.2.3.1 步骤1: 安装USB驱动和工具
从网盘的tools目录下载瑞芯微的USB驱动: DriverAssitant_v5.1.1.zip, 解压后安装;
在相同目录下, 下载瑞芯微开发工具: RKDevTool_Release_v2.84.zip, 解压后备用;
4.5.2.3.2 步骤2: 将NanoPi-R5S与电脑连接, 并进入刷机模式
1) 断开NanoPi-R5S上连接的USB和电源线, 弹出TF卡;
2) 按住Mask按键不放, 插上电源, 保持按住Mask键, 状态灯亮起3秒后即可松开;
3) 用USB A-to-A数据线 (也叫USB公对公数据线), 将NanoPi-R5S与电脑进行连接, 连接方法参照下图, 需要连接靠近外侧的USB端口:
4.5.2.3.3 步骤3: 烧写固件到eMMC
固件格式一般有两种格式, 一种是单个的image文件, 通常第三方固件会使用这种打包方式, 另一种是多个分区镜像, FriendlyELEC的固件采用这种方式, 下面分别对这两种格式的固件进行说明:
- 选项1: 烧写打包成单个image文件的固件
在电脑上双击 RKDevTool_Release_v2.84 目录下的 RKDevTool.exe 启动瑞芯微开发工具, 与电脑连接正常的情况下, 瑞芯微开发工具界面上会显示 "发现一个Maskrom设备";
在瑞芯微开发工具界面上, 点击 “升级固件”, 再点击 “固件” 按钮, 选择你要烧写的image文件, 点击 “升级” 然后等待烧写完成即可, 完成后设备会自动重启, 并从eMMC启动你刚刚安装的系统;
- 选项2: 烧写由多个分区镜像组成的固件
根据需要到网盘上下载对应的压缩包, 在电脑上解压:
固件文件 | |
rk3568-usb-friendlywrt-21.02-YYYYMMDD.zip | FriendlyWrt系统固件,基于OpenWrt 21.02构建,内核版本 5.10.y |
rk3568-usb-friendlywrt-21.02-docker-YYYYMMDD.zip | 预装了Docker的FriendlyWrt系统固件,基于OpenWrt 21.02构建,内核版本 5.10.y |
rk3568-usb-friendlywrt-22.03-YYYYMMDD.zip | FriendlyWrt系统固件,基于OpenWrt 22.03构建,内核版本 5.10.y |
rk3568-usb-friendlywrt-22.03-docker-YYYYMMDD.zip | 预装了Docker的FriendlyWrt系统固件,基于OpenWrt 22.03构建,内核版本 5.10.y |
rk3568-usb-debian-bullseye-core-arm64-YYYYMMDD.zip | Debian11 精简版固件,没有桌面, 仅命令行,内核版本 5.10.y |
rk3568-usb-debian-bullseye-minimal-arm64-YYYYMMDD.zip | Debian11 系统固件,LXDE桌面, 不预装推荐软件包, 支持GPU/VPU硬件加速,内核版本 5.10.y |
rk3568-usb-debian-bullseye-desktop-arm64-YYYYMMDD.zip | Debian11 完整版固件,LXDE桌面, 预装推荐软件包, 支持GPU/VPU硬件加速,内核版本 5.10.y |
rk3568-usb-androidtv-YYYYMMDD.img.zip | Android TV 系统固件 |
rk3568-usb-android12-YYYYMMDD.img.zip | Android12 系统固件 |
rk3568-usb-ubuntu-focal-desktop-5.10-arm64-YYYYMMDD.zip | Ubuntu 20.04固件, LXQT桌面,支持GPU/VPU硬件加速, 内核版本 5.10.y |
rk3568-usb-friendlycore-focal-5.10-arm64-YYYYMMDD.zip | 精简版64位FriendlyCore系统固件,基于Ubuntu core 20.04构建,内核版本 5.10.y,预装了Qt5.10 |
解压后, 可以看到固件目录下已内置了瑞芯微开发工具和预设好的配置文件, 双击 RKDevTool.exe 启动瑞芯微开发工具, 界面上会显示 "发现一个Maskrom设备", 点击界面上的“执行”按钮, 稍等片刻即可完成烧写, 完成后设备会自动重启, 并从eMMC启动你安装的系统;
4.6 eMMC与TF卡的启动优先级说明 (救砖办法)
默认情况下, 会优先从 TF卡启动系统, 但并不是所有条件下都是这样, 本节内容将详细说明所有情况;
引用Rockchip官方文档[1]的描述,系统引导程序(Loader)分为以下2种:
1) U-Boot TPL/SPL (即upsream U-Boot, 也叫主线U-Boot)
2) Rockchip MiniLoader
需要留意的是:
1) FriendlyELEC发布的所有Rom均采用的都是第2种,即Rockchip MiniLoader
2) 第三方固件通常采用的是第1种, 即 U-Boot TPL/SPL
以下情况将总是从 eMMC 启动 (意味着无法通过TF卡烧写系统了):
1) 如果eMMC里的系统, 或者TF卡里的系统是采用第一种Loader类型U-Boot TPL/SPL的, 上电将总是从 eMMC启动;
2) eMMC内的系统并没有适配NanoPi-R5S, 也就是说Loader压根就是坏的;
这时, 可以用如下方法让NanoPi-R5S从TF卡启动系统, 进行系统重装或Flash擦除:
1) 插入一张烧写有FriendlyWrt系统的TF卡 (制作方法请参考上面的章节);
2) 按下Maskrom按键, 并上电开机 (或短接Maskrom触点);
3) 重要: 上电后默数4秒左右立即松开Maskrom按键;
4) NanoPi-R5S将会从TF卡启动FriendlyWrt系统;
5) 用网线连接电脑到NanoPi-R5S的LAN网口, 在电脑上输入网址 http://192.168.2.1 进入FriendlyWrt管理页面, 使用系统菜单中的eMMC刷机工具重新烧写系统到 eMMC;
6) 如果你仅仅想清除eMMC上的数据, 可以上传一个内容全是零的img文件刷进eMMC, 该文件在电脑上可以用如下命令生成, 因eMMC刷机工具在烧写系统时会先对eMMC进行全面擦除, 所以img文件的大小是不重要的:
dd if=/dev/zero of=~/empty.img bs=8M count=1
或者, 进入命令终端, 输入以下命令尝试清除eMMC上的 Loader:
dd if=/dev/zero of=/dev/mmcblk2 bs=8M count=25
常见问题:
如果用TF卡启动系统后,发现系统检测不到eMMC,可能的原因是上电后按下Markrom键太长时间, 正确方法是按住4秒立即松开;
请确认你使用了最新固件(日期2022-07-25之后的固件), 然后重新操作一次;
总结如下:
eMMC当前系统 | TF卡当前系统 | 启动优先级 |
---|---|---|
无系统 | 任意固件 | TF卡 |
FriendlyELEC的固件 | FriendlyELEC的固件 | TF卡 |
FriendlyELEC的固件 | 采用主线U-boot的固件 | eMMC |
采用主线U-boot的固件 | FriendlyELEC的固件 | eMMC |
采用主线U-boot的固件 | 采用主线U-boot的固件 | eMMC |
5 FriendlyWrt的使用
5.1 FriendlyWrt简介
FriendlyWrt是友善电子基于OpenWrt定制的系统,完全开源,用于企业物联网二次开发,个人定制NAS等。
5.2 首次开机的初始化
首次上电开机,系统需要做以下一些初始化工作:
1)扩展根文件系统
2)初始化设置(会执行/root/setup.sh)
所以第一次开机需要等待片刻(约2~3分钟),再对FriendlyWrt进行设置,可以在openwrt网页上进入ttyd终端,当提示符显示为 root@FriendlyWrt 表示系统已经初始化完成。
root@FriendlyWrt
5.3 帐户与密码
默认的密码是password(某些版本是空密码),请设置或更改一个较安全的密码用于web登录与ssh登录,建议在将NanoPi-R5S连接到互联网之前完成此设置。
5.4 登录FriendlyWrt
将电脑连接到 NanoPi-R5S 的LAN口,如果电脑没有网口,可将无线AP的LAN口与NanoPi-R5S的LAN口相连接,电脑再通过WiFi连接到无线AP,在电脑浏览器上输入以下网址即可进入FriendlyWrt管理页面:
- http://friendlywrt/
- http://192.168.2.1/
- http://[fd00:ab:cd::1]
以上是NanoPi-R5S的LAN口地址,WAN口会从你的主路由器动态获取IP地址。
5.5 建议的安全性设置
以下设置事项非常建议在将 NanoPi-R5S 接入互联网之前完成,因为在空密码或弱密码的状态下将NanoPi-R5S接入互联网,极易受到网络攻击。
- 设置一个安全的密码
进入 系统->管理权 界面设置密码。
- 禁止从wan访问ssh,更换端口
进入 系统->管理权->SSH访问,将接口限制为 lan,将端口设置为其他非常用端口,例如 23333。
- 检查防火墙设置
根据实际情况调整设置
5.6 切换WAN口至其他物理网口
默认情况下, WAN绑定在千兆的网口上, 如果需要将WAN改绑到2.5G的物理网口上, 可参考如下操作, 操作完成后, 最边上的2.5G网口(eth2)将作为WAN口:
- 将网线连接到中间的物理网口(即eth1), 在电脑浏览器上输入 192.168.2.1 进入 FriendlyWrt 页面;
- 首页进入“网络”->"接口", 点击"设备", 在设备列表上, 点击 "br-lan" 边上的 "配置" 按钮, 找到"网桥端口", 点击弹出下拉菜单, 取消 "以太网适配器: eth2" 的钩选, 点击"保存", 这一步是把 eth2 从LAN中释放出来;
- 首页进入“网络”->"接口", 点击"接口", 在接口列表上, 点击 "WAN" 边上的“编辑”按钮, 找到”设备”一栏, 选择 "eth2", 点击"保存";
- 再点击 "WAN6" 边上的“编辑”按钮进行同样的操作, 找到”设备”一栏, 选择 "eth2", 点击"保存";
- 首页进入“网络”->"接口", 点击"设备", 在设备列表上, 点击 "br-lan" 边上的 "配置" 按钮, 找到"网桥端口", 点击弹出下拉菜单, 增加钩选 "以太网适配器: eth0" 的钩选, 点击"保存", 这一步是把 eth0添加到 LAN;
- 最后点击 FriendlyWrt 最底部的“保存并应用”按钮保存设置即可, 设置完成后, eth2是WAN, eth0和eth1是LAN;
5.7 更改LAN口的IP地址
1) 菜单栏导航到:"网络" -> "接口", 点击“LAN”右边的“编辑”按钮;
2) 在“常规设置”页面上找到“IPv4 地址”, 输入新的IP地址 (例如192.168.11.1), 然后点击“保存”, 再点击“保存并应用”;
3) 在弹出的“连接更改“询问界面上, 选择"Apply and revert on connectivity loss";
4) 稍等片刻, 在电脑的浏览器上输入新的地址登录 FriendlyWrt;
5.8 安全的关机操作
进入"服务"->"终端",输入poweroff命令敲回车,待led灯熄灭,再拔开电源。
5.9 恢复出厂设置
进入"系统"->"备份/升级",点击“执行重置“按钮,在弹出的询问界面上点击“确定”,设备会重启并擦除data分区, 所有的设置和数据都会被清除, 并恢复至出厂时的状态。
恢复出厂设置也可以通过命令行来操作, 进入“服务”-》“终端”界面, 输入如下命令:
firstboot && reboot
5.10 安装软件包
5.10.1 设置第三方软件源
进入菜单”系统“-》”软件包“, 在界面上点击”okpg配置“按钮, 在新弹出的界面上, 更改/etc/opkg/distfeeds.conf的文件内容即可,
比如要切换至国内腾讯源, 可以替换成如下内容, 然后点击 “保存” 按钮:
src/gz openwrt_base https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/base src/gz openwrt_luci https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/luci src/gz openwrt_packages https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/packages src/gz openwrt_routing https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/routing src/gz openwrt_telephony https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/telephony src/gz friendlywrt_packages file://opt/packages
- 注意, friendlywrt_packages需要保留, 否则会缺少一些系统依赖;
- 如果你使用的是 friendlywrt 21.02 的固件, 则将上面的 23.05.4 替换成 21.02.5;
- CPU架构可选择 aarch64_cortex-a53和aarch64_generic这两种;
- 通过命令行切换国内源:
sed -i -e 's/downloads.openwrt.org/mirrors.cloud.tencent.com/g' /etc/opkg/distfeeds.conf opkg update
5.10.2 在线安装软件包
回到”软件包“界面, 点击 “更新列表” 更新软件包信息, 更新完成后, 就可以在“筛选器”一栏中输入软件包的关键字, 搜索软件包安装了。
5.10.3 安装离线ipk软件包
在”软件包“界面上点击“上传软件包“, 定位你本地的ipk文件, 上传并安装即可。
5.11 FriendlyWrt的一些常见问题
- 无法拨号上网
- 进入“网络“->“防火墙“,将 “WAN区域“ 的“入站数据“,“出站数据“与“转发“均设置为 “接受”;
- 如仍无法上网,可尝试关闭IPV6;
- 拨号成功,但没有外网流量
- 进入"服务"->"终端",输入fw4 reload尝试重新加载一次防火墙设置;
- 无法开机,LED灯不亮
- 尝试更换电源适配器和电缆,推荐使用 5V/2A 以上规格的电源供应;
- 注意,部分Type-C接口的快速充电器会有延迟,可能需要几秒钟才开始提供电量;
- 做二级路由时,电脑无法连接互联网
- 如果你的主网络是IPv4,而NanoPi-R5S工作在IPv6,电脑有可能无法连接互联网,建议关闭IPv6 (本WiKi后面有介绍方法),或将主路由切换到IPv6;
- 如果你有问题,或有更好的建议,欢迎发送邮件到 techsupport@friendlyarm.com;
5.12 禁用IPv6
要关掉 IPv6,可在ssh终端输入如下命令:
. /root/setup.sh disable_ipv6 reboot
待NanoPi-R5S重启完毕,电脑也需要重新插拨一下网线(或重启网络端口)以便重新获得IP地址。
5.13 配置移远EC20(4G模块)拨号上网
- 进入“网络“->“接口“;
- 点击 “WAN6“ 后面的 “删除“, 点击 "保存及应用";
- 点击 “WAN“ 后面的 “编辑“,在 “设备“ 下拉选单中选择 "以太网适配器:wwan0",在“协议”下拉选单中选择“QMI蜂窝”,然后点击“切换协议“;
- 在“调制解调器设备“下拉选单中选择”/dev/cdc-wdm0“,如果是中国联通,在“APN“中填入3gnet,如果是中国移动则填入cmnet,填写完成后,如下图所示:
- 点击“保存”关闭界面,最后点击下方的“保存并应用",FriendlyWrt后台会进行拨号上网,拨号成功的状态如下所示:
- 连接到Lan的设备将可以连接互联网,如有WiFi模块,可进入“无线”界面开启无线AP功能,通过无线接入的设备亦可连接到互联网。
5.14 使用USB2LCD查看IP和温度
在终端输入如下命令设置lcd2usb服务开机自动启动:
. /root/setup.sh init_lcd2usb poweroff
将USB2LCD模块Plug到 NanoPi-R5S 的USB接口再开机,IP地址和CPU温度将显示在LCD上:
5.15 如何使用USB WiFi
5.15.1 如何在终端使用命令查询USB无线网卡型号
(1) 点击“服务>ttyd”进入FriendlyWrt的命令行界面
(2) 在开发板没有插入任何USB设备时输入以下命令以查看挂在USB主线上的现有设备
lsusb
(3) 插入USB WiFi,再次输入以下命令
lsusb
可以看到多出一个设备,ID为0BDA:C811
(4) 以“0BDA:C811”或“VID_0BDA&PID_C811”作为关键词在搜索引擎上搜索,搜索结果显示VID_0BDA&PID_C811的对应WIFI芯片为Realtek 8811CU
5.15.2 如何使用USB WiFi作为AP
(1) 把USB WiFi插入NanoPi-R5S的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:
注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号
(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启NanoPi-R5S
(3) 点击“网络>无线”进入配置无线WiFi界面
(4) 点击“编辑”按钮可编辑WiFi设置
(5) 在“接口配置”中可设置WiFi 模式和SSID等,然后点击到“无线安全”项可修改加密方式和WiFi密码,默认密码为password,设置完成后点击“保存”
(4) 配置完成后使用手机端或电脑端搜索对应SSID的WiFi即可
5.15.3 常见的USB WiFi问题及应对方法
1) 建议在关机状态下插入usb wifi, 再上电开机,FriendlyWrt会自动生成配置文件 /etc/config/wireless,如果没有生成,通过 ifconfig -a 看看有没有 wlan0,如果没有 wlan0,通常是没有驱动。
2) 如果 ifconfig -a 能看到 wlan0,但是热点没有正常工作,可以尝试更改 频道 和 国家代号,不合适的国家代号也会导致 WiFi 不工作。
3) 某些USB WiFi(例如MTK MT7662)默认工作在CD-ROM模式,需要经过usb_modeswitch来进行切换,可以尝试自行添加 usb_modeswitch 配置到以下目录:/etc/usb_modeswitch.d 。
5.15.4 更改系统默认的WiFi热点配置
FriendlyWrt默认会为USB WiFi设置国家、热点名称等参数,目的是尽量的做到即插即用,但这不能保证所有的模块都能兼容此设置,你可以通过修改以下文件,来更改这些行为:
/lib/wifi/mac80211.sh
5.16 玩转Docker应用
5.16.1 Docker使用:安装JellyFin影音服务器
请参考: How to setup JellyFin media system on NanoPi-R2S/zh
5.16.2 Docker使用:安装个人网盘nextcloud
mkdir /nextcloud -p docker run -d -p 8888:80 --name nextcloud -v /nextcloud/:/var/www/html/ --restart=always --privileged=true arm64v8/nextcloud
安装完成后,使用8888端口进行访问。
5.16.3 使用外接硬盘来扩展Docker可用空间
- 先停止docker服务:
/etc/init.d/dockerd stop
- 把原来的/opt目录改个名, 建一个空的/opt目录:
mv /opt /opt-old && mkdir /opt
- 参考章节“8 初始化NVME固态硬盘和USB移动硬盘”, 将你的硬盘格式化为ext4, 然后挂载至 /opt 目录:
- 输入命令 "mount | grep /opt" 确实一下硬盘被正常挂载到 /opt 下:
root@FriendlyWrt:~# mount | grep /opt /dev/nvme0n1p1 on /opt type ext4 (rw,relatime) root@FriendlyWrt:~#
- 把原来 /opt 目录下的文件复制到新的 /opt 目录:
cp -af /opt-old/* /opt/ && rm -rf /opt-old
- 操作完后, 重启
reboot
- 重启后, 进入"Docker"->"概览"页面, 查看"Docker根目录"这一行的信息, 可以确认Docke空间已扩容:
5.16.4 Docker的常见问题与解决办法
5.16.4.1 无法访问Docker提供的网络服务
解决办法:
- 进入 "防火墙" 的设置,把 "转发" 设置成 "接受";
- 关闭 ”软件流量分载“;
5.17 挂载smbfs共享资源
mount -t cifs //192.168.1.10/shared /movie -o username=xxx,password=yyy,file_mode=0644
5.18 使用sdk编译软件包
5.18.1 安装编译环境
在64位的Ubuntu (版本18.04+)下载并运行如下脚本: How to setup the Compiling Environment on Ubuntu bionic
5.18.2 在网盘上下载并解压sdk
sdk位于网盘的toolchain目录,解压后,需要先下载feeds软件包:
tar xvf openwrt-sdk-*-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64.tar.xz # 路径太长会导致有些包编译出错,所以这里改一下目录名 mv openwrt-sdk-*-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64 sdk cd sdk ./scripts/feeds update -a ./scripts/feeds install -a
5.18.3 将软件包编译并打包成ipk文件
此处以mwarning的示例作为演示,下载例子的源代码(共3个分别为example1, example2, example3),并拷到package目录:
git clone https://github.com/mwarning/openwrt-examples.git cp -rf openwrt-examples/example* package/ rm -rf openwrt-examples/
再通过以下命令进入配置菜单:
make menuconfig
在菜单中选中以下我们要编译的软件包(默认实际上已经选中):
"Utilities" => "example1" "Utilities" => "example3" "Network" => "VPN" => "example2"
退出配置菜单的界面,在提示是否保存设置时需要选择Yes,然后执下以下命令,分别编译这三个软件包:
make package/example1/compile V=99 make package/example2/compile V=99 make package/example3/compile V=99
编译成功后,可以在bin目录下找到ipk文件,如下所示:
$ find ./bin -name example*.ipk ./bin/packages/aarch64_generic/base/example3_1.0.0-220420.38257_aarch64_generic.ipk ./bin/packages/aarch64_generic/base/example1_1.0.0-220420.38257_aarch64_generic.ipk ./bin/packages/aarch64_generic/base/example2_1.0.0-220420.38257_aarch64_generic.ipk
5.18.4 将编译生成的ipk安装到NanoPi上
可以用scp命令将ipk文件上传到NanoPi上:
cd ./bin/packages/aarch64_generic/base/ scp example*.ipk root@192.168.2.1:/root/
然后用opkg命令进行安装他们:
cd /root/ opkg install example3_1.0.0-220420.38257_aarch64_generic.ipk opkg install example1_1.0.0-220420.38257_aarch64_generic.ipk opkg install example2_1.0.0-220420.38257_aarch64_generic.ipk
5.19 使用 GitHub Actions 编译 FriendlyWrt
项目地址: https://github.com/friendlyarm/Actions-FriendlyWrt
5.20 Compile u-boot,kernel or friendlywrt
- Refer to:
6 FriendlyCore的使用
6.1 FriendlyCore默认帐户
- 普通用户:
用户名: pi 密码: pi
- Root用户:
用户名: Root用户: 密码: fa
6.2 更新软件包
$ sudo apt-get update
6.3 配置网络
6.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
另外两个网口设置了静态IP地址, 设置如下:
eth1: 192.168.2.1
eth2: 192.168.3.1 (注:如果有第三个网口的话)
6.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
6.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
6.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。
6.4.1 重点支持的WIFI型号
6.4.1.1 M.2 WiFi Module
- RTL8822CE
6.4.1.2 Usb Dongle
- RTL8821CU (Vid: 0BDA, Pid: C811) (测试样品:TP-Link TL-WDN5200H)
- RTL8812AU (Vid: 0BDA, Pid: 8812)
- MediaTek MT7662 (Vid: 0E8D, Pid: 7612) (测试样品:COMFAST CF-WU782AC V2)
6.5 安装内核头文件
sudo dpkg -i /opt/linux-headers-*.deb
6.6 配置状态灯
先确定一下系统是否已经存在leds初始化的服务:
sudo systemctl status leds
如果已经存在leds服务, 则通过编辑如下文件改变状态灯的默认行为:
/etc/init.d/leds.sh
早期的固件由于没有leds服务, 需要参考以下指南手动配置状态灯, 首先, 设置开机自动加载以下内核模块:
modprobe ledtrig-netdev echo ledtrig-netdev > /etc/modules-load.d/ledtrig-netdev.conf
下面的脚本代码将状态灯与网卡相关联, 需要加入到开机自动运行的脚本中:
echo netdev > /sys/class/leds/wan_led/trigger echo eth0 > /sys/class/leds/wan_led/device_name echo 1 > /sys/class/leds/wan_led/link echo netdev > /sys/class/leds/lan1_led/trigger echo eth1 > /sys/class/leds/lan1_led/device_name echo 1 > /sys/class/leds/lan1_led/link echo netdev > /sys/class/leds/lan2_led/trigger echo eth2 > /sys/class/leds/lan2_led/device_name echo 1 > /sys/class/leds/lan2_led/link
7 如何编译系统
7.1 编译 Openwrt/Friendlywrt
7.1.1 下载源代码
FriendlyWrt有两个版本, 请根据需要进行选择.
7.1.1.1 版本FriendlyWrt 21.02.3
mkdir friendlywrt21-rk3568 cd friendlywrt21-rk3568 git clone https://github.com/friendlyarm/repo --depth 1 tools tools/repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v21.02 \ -m rk3568.xml --repo-url=https://github.com/friendlyarm/repo --no-clone-bundle tools/repo sync -c --no-clone-bundle
7.1.1.2 版本FriendlyWrt 22.03.0-rc3
mkdir friendlywrt22-rk3568 cd friendlywrt22-rk3568 git clone https://github.com/friendlyarm/repo --depth 1 tools tools/repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v22.03 \ -m rk3568.xml --repo-url=https://github.com/friendlyarm/repo --no-clone-bundle tools/repo sync -c --no-clone-bundle
7.1.2 开始编译
下面的命令是编译不带docker的版本, 如需要编译带docker的版本, 请将rk3568.mk替换为rk3568-docker.mk:
./build.sh rk3568.mk
会编译所有组件(包含u-boot, kernel 和 friendlywrt)并生成sd卡镜像文件,再执行以下命令,可生成用于安装系统到emmc运行的镜像文件(eflahser固件):
./build.sh emmc-img
对项目进行过修改后, 需要重新打包sd卡镜像, 可执行如下命令:
./build.sh sd-img
7.2 单独编译u-boot
./build.sh uboot
7.3 单独编译kernel
./build.sh kernel
7.4 单独编译friendlywrt
./build.sh friendlywrt
或者进入friendlywrt目录, 按标准openwrt的命令操作, 上面的命令出现错误时, 可尝试使用以下命令单线程编译:
cd friendlywrt make -j1 V=s
7.5 更多文档
8 初始化NVME固态硬盘和USB移动硬盘
8.1 检查是否检测到了硬盘
安装好硬盘后, 上电开机, 在终端上输入以下命令:
cat /proc/partitions
看到有 nvme0n1 设备的节点,说明NVME固态硬盘已经成功被识别到了:
major minor #blocks name 1 0 4096 ram0 259 0 125034840 nvme0n1
看到有 sda 设备的节点,说明USB移动硬盘已经成功被识别到了:
179 105 30646767 mmcblk0p9 8 0 3907018584 sda 8 1 3907017543 sda1
8.2 给硬盘重新分区并格式化为ext4格式
为了简化操作, 我们会将硬盘整个空间分成一个分区, 如果你用的是NVME固态硬盘, 输入以下命令进行操作:
(echo g; echo n; echo p; echo 1; echo ""; echo ""; echo w; echo q) | fdisk /dev/nvme0n1 mkfs.ext4 /dev/nvme0n1p1
如果要对USB移动硬盘进行操作, 输入以下命令:
(echo g; echo n; echo p; echo 1; echo ""; echo ""; echo w; echo q) | fdisk /dev/sda mkfs.ext4 /dev/sda1
8.3 硬盘的自动挂载
8.3.1 在FriendlyWrt系统下挂载
在FriendlyWrt菜单中, 点击"系统"->"挂载点"界面, 在页面底部的"挂载点"的区域中, 点击"新增"按钮, 在UUID一栏中,选择你的硬盘分区, NVME固态硬盘选择 /dev/nvme0n1p1, 如果是USB移动硬盘, 则选择 /dev/sda1, 然后钩选"已启动“, 填写挂载硬盘的目标位置, 本例中选择将 NVME固态硬盘 挂载到 /mnt 目录, 如下图所示:
点击"Save"按钮保存设置, 挂载完成后界面会列出所挂载的硬盘, 如下图所示:
8.3.2 在FriendlyCore系统下挂载
首先,我们需要了解分区的Block ID,用blkid查看, NVME固态硬盘输入如下命令查看:
blkid /dev/nvme0n1p1
USB移动固态硬盘输入如下命令查看:
blkid /dev/sda1
输入信息如下所示, 我们需要的是UUID:
/dev/sda1: UUID="de29e869-f442-414a-8dc4-9c47c05b229f" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="b026f952-01"
然后需要把 UUID 添加到 /etc/fstab 文件中去,为了挂载本例中使用的硬盘,/etc/fstab内容如下所示:
UUID=de29e869-f442-414a-8dc4-9c47c05b229f /media/mydisk ext4 defaults 0 0
硬盘将挂载到 /media/mydisk 目录,这个目录默认是不存在的,我们用以下命令手动创建它,并设置为普通用户可以读写:
mkdir -p /media/mydisk chmod 777 /media/mydisk
接下来就可以输入mount命令,测试一下是否能正常挂载了:
mount /media/mydisk
如果成功挂载, 接下来我们关机测试一下,看下次开机是否会自动挂载:
reboot
8.4 为硬盘设置网络共享
8.4.1 提升硬件挂载目录的权限
为了方便普通用户的读取, 进入终端, 输入以下命令先提升硬件挂载目录的权限:
chmod 777 /mnt
8.4.2 FriendlyWrt下设置网络共享
进入 “服务” -> "网络共享" 菜单, 在页面底部的 “共享目录” 区域, 点击 “新增” 按钮, 分别填写 "名称" 与 "路径" 为 mnt 和 /mnt, 其他默认, 点击 "保存并应用" 即可.
8.4.3 在电脑上访问共享
在Windows电脑上输入以下地址访问共享目录:
\\192.168.2.1\mnt
在Ubuntu/Mac电脑上使用以下地址访问共享目录:
smb://192.168.2.1/mnt
在询问身份验证时, 输入如下信息:
连接方式: 已注册用户
用户名: root
域: WORKGROUP
密码: password
8.5 本机上进行硬盘速度测试
8.5.1 NVME固态硬盘速度测试
8.5.1.1 写入速度
测试命令:
dd if=/dev/zero of=/mnt/deleteme.dat bs=32M count=64 oflag=direct,nonblock
结果如下:
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 6.74925 s, 318 MB/s
8.5.1.2 读取速度
测试命令:
dd if=/mnt/deleteme.dat of=/dev/null bs=32M count=64 iflag=direct,nonblock
结果如下:
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 5.18329 s, 414 MB/s
8.5.2 USB移动机械硬盘速度测试
8.5.2.1 写入速度
测试命令:
dd if=/dev/zero of=/mnt/deleteme.dat bs=32M count=64 oflag=direct,nonblock
结果如下:
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 20.3973 s, 105 MB/s
8.5.2.2 读取速度
测试命令:
dd if=/mnt/deleteme.dat of=/dev/null bs=32M count=64 iflag=direct,nonblock
结果如下:
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 18.9168 s, 114 MB/s
9 Link to Rockchip Resources
10 手册原理图等开发资料
- Schematic: NanoPi_R5S_2204_SCH.PDF
- PCB CAD File:NanoPi_R5S_2204_DXF.zip
11 更新日志
11.1 2024-10-16
11.1.1 新系统
- 新增系统 Proxmox VE
11.1.2 Linux内核
- 内核默认开启KVM
11.1.3 Linux系统
- 更新Buidroot系统到linux-5.10-gen-rkr8
- 更新Debian bullseye系统到linux-5.10-gen-rkr8 (更新mpp/xserver/rkaiq/gsteamer-rockchip/rga2/libv4l-rkmpp等软件包)
- 更新Ubuntu focal desktop系统中的rockchip硬件相关软件包 (同Debian bullseye)
- 升级Chromium到最新版本(stable版本129),相比上一版提升50%,支持GPU加速和视频硬解加速,支持HiDPI分辨率
- 更新FriendlyWrt到openwrt-23.05.05版本
11.1.4 其他
- eflasher卡刷固件支持选择目标存储设备,可将Linux系统根分区安装至M.2硬盘或U盘 (但仍需eMMC/TF卡引导)
- eflasher可通过配置文件定制内核启动参数
- 更新ramdisk支持btrfs文件系统 (可使用sd-fuse_rk3568打包btrfs的固件)
- 更新ramdisk提升文件系统修复的兼容性
11.2 2024-06-14
11.2.1 Android
- 增加PWM风扇的支持
- 增强了HDMI输出的兼容性
- 增加支持Intel RealSense Depth Camera,通过配置内核选项CONFIG_USB_VIDEO_CLASS_REALSENSE来启用
- 更新了Android视频解码的支持
11.3 2024-06-06
11.3.1 Linux内核
- 同步原厂内核更新到 6.1.57
- 增加NVMe hardware monitoring的支持,可通过/sys/class/hwmon节点查看NVMe设备的温度
- 调整rknpu (v0.9.3) 为模块,方便更新或版本更换
- 增加了一个简单驱动用于查询输入电源的电压 (节点:/sys/class/power_supply/simple-vin/voltage_now)
- 增加支持Intel RealSense Depth Camera,通过配置内核选项CONFIG_USB_VIDEO_CLASS_REALSENSE来启用
- 修复rga3失败时导致系统异常的问题
- 修改内核配置LSM, 增加apparmor,selinux
11.3.2 Debian11 Desktop
- 同步原厂debian版本到linux-5.10-gen-rkr7.1
- 更新基础库libmali,mpp,rga2,npu,gstreamer等到新版本
- 更新网页浏览器chromeium到新版本
11.3.3 Ubuntu Focal Desktop
- 增加多语言的支持(含中文)
- 修正开机后再连接显示屏有可能会无显示的问题
- 更新基础库libmali,mpp,rga2,npu,gstreamer等到新版本
11.3.4 其他
- sd-fuse_rk3568 支持在arm64平台下打包固件
11.4 2024-04-21
11.4.1 OpenMediaVault
- 更新到 7.0.5-1
- 更新到 Debian12
11.5 2024-03-15
11.5.1 Ubuntu focal desktop
- 修正蓝牙无法使用的问题
11.6 2024-01-31
11.6.1 Debian/Ubuntu/FriendlyCore/Buildroot
- 增加 adb 的支持
11.6.2 Android 12 & Android TV
- 增加 wifidisplay (no hdcp) 的支持
- 增加无线网卡rtl8822ce与rtl8812au的Wi-Fi direct特性支持
11.6.3 FriendlyWrt
- rtl8822ce增加无线中断模式的支持
11.7 2023-12-23
11.7.1 Android 12 & Android TV
- 修复USB摄像头预览异常的问题
- 修复PS5手柄无法使用的问题
- 改进HDMI输出非16:9分辨率的支持
- 更新SDK为 Rockchip Anroid12.1 rkr14.2
11.7.2 FriendlyWrt
- 修复eMMC Tools对256G eMMC的兼容性问题
11.8 2023-12-01
11.8.1 FriendlyWrt
- 更新到 OpenWrt 23.05.2
11.9 2023-11-13
11.9.1 Debian/Ubuntu/FriendlyCore
- 更新npu驱动到0.9.2,修正已知问题
11.10 2023-10-31
11.10.1 增加新系统
- 增加NAS系统 OpenMediaVault,基于Debian11构建,使用6.1内核
11.10.2 Debian/Ubuntu/FriendlyCore
- 更新到 6.1 内核
11.10.3 FriendlyWrt
- 更新到 6.1 内核
- 更新到 openwrt-23.05
11.11 2023-09-09
11.11.1 Android 12
- 增加硬件库支持 (Click to view details)
- 增加OTA and virtual A/B分区支持
11.12 2023-08-15
- 更新 buildroot 到新版本 linux-5.10-gen-rkr5.1
11.13 2023-07-19
11.13.1 Debian/Ubuntu/Android
- 修复RTL9210 enclosures速度下降的问题
11.13.2 Ubuntu Focal Desktop
- 增加Ubuntu 20.04桌面系统,使用LXQT轻量化桌面
11.13.3 FriendlyCore
- 修正HDMI显示问题
11.14 2023-07-01
11.14.1 Debian11
- 更新到Rockchip sdk版本linux-5.10-gen-rkr5, 升级gpu与xserver驱动等,提升UI与媒体播放性能
- 内核升级到版本5.10.160
- 修正已知问题
11.15 2023-06-25
11.15.1 Debian11
- 更新软件包 mpp/ffmpeg/gsteamer-rockchip/libv4l-rkmpp/libdrm-cursor
11.15.2 Android TV & Android 12
- 更新至rockchip sdk版本 android-12.1-mid-rkr14
- 内核升级到以下版本 5.10.160
- 增加MediaTek MT7921网卡的支持 (仅WiFi可用)
11.16 2023-06-16
11.16.1 Debian11更新
- 更新到Rockchip sdk版本linux-5.10-gen-rkr4.1
- 改善了UI性能与视频播放性能
- 桌面切换至XFCE
- 增加 MediaTek MT7921 无线网卡的支持
- 一些易用性方面的调整, 修正已知问题
11.17 2023-06-09
11.17.1 FriendlyWrt更新
- 增加 MediaTek MT7921 无线网卡的支持
11.18 2023-06-06
11.18.1 Android TV & Android 12更新
- 增加支持SD卡空间自动扩容,通过SD卡运行Android时,能使用完整的SD卡存储空间
11.19 2023-06-02
11.19.1 Android TV & Android 12更新
- 修正红外遥控器与蓝牙遥控器上的Home键不响应的问题
11.20 2023-05-26
11.20.1 Debian11更新
- 优化r8125网卡驱动的性能与稳定性
11.20.2 FriendlyWrt更新
- 更新 v22.03 到新版本 openwrt-22.03.5
- 更新 v21.02 到新版本 openwrt-21.02.7
- 优化r8125网卡驱动的性能与稳定性
11.21 2023-05-21
11.21.1 Debian11更新
- 更新到Rockchip sdk版本linux-5.10-gen-rkr4
- 为了流畅性,将桌面切换至LXDE
11.22 2023-05-15
11.22.1 FriendlyCore Focal
- 增加Qt 5.10支持
11.23 2023-05-05
11.23.1 Android更新
- 增加USB蓝牙模块rtl8761bu, 以及RTL8822CE内置蓝牙的支持
11.24 2023-04-26
11.24.1 FriendlyWrt更新
- 更新 v22.03 到新版本 openwrt-22.03.4
- 更新 v21.02 到新版本 openwrt-21.02.6
11.25 2023-03-24
- 修正某些情况下Android Tablet及Android TV无法启动的问题
11.26 2023-02-10
11.26.1 Android更新
- 首次发布rk3568的android tv
- android支持从sd卡直接启动
- 修复在某些情况下hdmi无信号输出需拨插一次才能恢复的问题
- 支持通过android界面启用usb a端口的adb功能
11.26.2 新增 Debian11
分为以下三个版本:
- Debian11 Core: 仅命令行
- Debian11 Minimal: LXDE桌面,精简版
- Debian11 Desktop: LXDE桌面,完整版
11.27 2023-01-09
11.27.1 Android更新说明:
- 修正了Android12无法在NanoPi-R5C上运行的问题
- Android系统下增加USB WiFi模块与M.2 WiFi模块的支持 (型号: RTL8822CE/RTL8812AU/MediaTek MT7662)
- 更新SDK为Rockchip android-12.1-mid-rkr12
11.27.2 FriendlyCore更新说明:
- 优化了开机服务
11.28 2022-12-04
11.28.1 FriendlyWrt:
- 修正存储空间某些情况下无法扩展的问题
- 加强eMMC刷机工具的刷机稳定性
- 增加NanoPi-R5C的支持
11.29 2022-09-06
11.29.1 FriendlyWrt更新说明:
- 增加Fullcone NAT支持 (默认开启)
- 版本升级到 22.03.0 正式版
11.30 2022-08-03
11.30.1 FriendlyWrt更新说明:
- 升级FriendlyWrt至最新版本22.03-rc6
11.31 2022-07-27
11.31.1 FriendlyWrt:
- 增加NAS菜单分类
- 加入wg驱动模块
- 调整配置, docker版本与非docker版本特性除docker外完全相同
11.32 2022-07-04
11.32.1 FriendlyWrt & FriendlyCore更新说明:
- 通过整合原厂的pci-e驱动更新,改善了pci-e稳定性
11.32.2 Debian 10(buster) Desktop (首次发布)
- 桌面环境采用 LXDE, 多种主题可选, 简洁美观, 占用资源少
- 提供基于 Mali GPU 的 OpenGL 支持
- 支持Rockhip MPP视频硬编和硬解码
- 预装基于mpv的Kodi, SMPlayer播放器, 支持4K视频硬解码
- 预装Chromium浏览器, 支持vpu/gpu硬件加速 (视频硬解限h264/mp4格式)
- 支持安装Plex Server, wps等应用, 玩法丰富
11.33 2022-06-22
11.33.1 FriendlyWrt更新说明:
- 升级内核版本到 5.10.110
11.34 2022-06-21
11.34.1 FriendlyWrt更新说明:
11.34.1.1 eMMC刷机助手
- 增加支持烧写用rockchip firmware格式打包的固件
- 烧写固件时增加擦除eMMC的动作, 加强兼容性
11.35 2022-06-15
11.35.1 FriendlyCore:
- 默认初始化eth1, eth2网口的IP为192.168.2.1, 192.168.3.1
- 增加了网卡的中断设置
11.36 2022-06-14
11.36.1 FriendlyWrt更新说明:
- 优化了网络性能, 修正上一版本固件tx性能不佳的问题
- 改善了软件包的兼容性
- 增加支持 “恢复出厂设置”
- eMMC烧写增加gz格式固件文件的校验
- 提供FriendlyWrt官方稳定版本 21.02.3, 版本22.03.0仍可用并会持续更新, 可根据软件包的需求情况进行选择
- 其他一些细节调整: 默认设置时区设置为上海、去掉lcd2usb、改进安全性设置、调优sysctl参数、修正docker防火墙设置等
11.37 2022-05-16
首次发布