Difference between revisions of "NanoPi R4S/zh"

From FriendlyARM WiKi
Jump to: navigation, search
(updated by API)
 
(44 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[NanoPi R4S|English]]
 
[[NanoPi R4S|English]]
  
==Introduction==
+
==介绍==
[[File:NanoPi_R4S-1GB_Overview.jpg|thumb|Overview]]
+
[[File:NanoPi_R4S-1GB_Overview.jpg|thumb|300px|Overview]]
[[File:NanoPi_R4S-1GB_01B.jpg|thumb|Front]]
+
[[File:NanoPi_R4S-1GB_01B.jpg|thumb|300px|Front]]
[[File:NanoPi_R4S-1GB_Back.jpg|thumb|Back]]
+
[[File:NanoPi_R4S-1GB_Back.jpg|thumb|300px|Back]]
[[File:NanoPi_R4S-4GB_Front.jpg|thumb|Front]]
+
[[File:NanoPi_R4S-4GB_Front.jpg|thumb|300px|Front]]
[[File:NanoPi_R4S-4GB_Back.jpg|thumb|Back]]
+
[[File:NanoPi_R4S-4GB_Back.jpg|thumb|300px|Back]]
*The NanoPi R4S is a RK3399 SoC based ARM board.
+
* NanoPi R4S(以下简称R4S)是友善电子团队最新推出的一款实现满速率双千兆的、完全开源的Iot应用神器。
 +
* NanoPi R4S 使用RK3399 CPU,有两个千兆网口和两个USB3.0接口,最大4G DDR4内存,友善电子团队为NanoPi R4S专门移植了OpenWrt系统,支持Docker CE, 完全开源,用于企业物联网二次开发,个人定制NAS,家庭物联网网关等。
  
==Hardware Spec==
+
==NanoPi R4S资源特性==
 
* SoC: Rockchip RK3399
 
* SoC: Rockchip RK3399
 
** CPU: big.LITTLE,Dual-Core Cortex-A72(up to 2.0GHz) + Quad-Core Cortex-A53(up to 1.5GHz)
 
** CPU: big.LITTLE,Dual-Core Cortex-A72(up to 2.0GHz) + Quad-Core Cortex-A53(up to 1.5GHz)
Line 31: Line 32:
 
* Power supply: DC 5V/3A, via USB-C connector or Pin header
 
* Power supply: DC 5V/3A, via USB-C connector or Pin header
 
* PCB: 8 Layer, 66 mm x 66 mm
 
* PCB: 8 Layer, 66 mm x 66 mm
*Ambient Operating Temperature: -20℃ to 70℃
+
* Temperature measuring range: 0℃ to 80℃
  
==Diagram, Layout and Dimension==
+
==接口布局和尺寸==
===Layout===
+
===接口布局===
[[File:NanoPi_R4S_Layout.jpg |thumb|600px|NanoPi R4S Layout]]
+
[[File:NanoPi_R4S_Layout.jpg |thumb|300px|NanoPi R4S Layout]]
[[File:NanoPi_R4S_4GB_Layout.jpg |thumb|600px|NanoPi R4S Layout]]
+
[[File:NanoPi_R4S_4GB_Layout.jpg |thumb|300px|NanoPi R4S Layout]]
 
* '''2x5-pin header'''
 
* '''2x5-pin header'''
 
::{| class="wikitable"
 
::{| class="wikitable"
Line 44: Line 45:
 
|1    || VDD_5V  ||2    || VDD_3.3V
 
|1    || VDD_5V  ||2    || VDD_3.3V
 
|-
 
|-
|3    || VDD_5V      ||4    || I2C3_SDA
+
|3    || VDD_5V      ||4    ||GPIO4_C0/I2C3_SDA(3V)
 
|-  
 
|-  
|5    || GND    ||6    || I2C3_SCL
+
|5    || GND    ||6    || GPIO4_C1/I2C3_SCL(3V)
 
|-
 
|-
|7    || SPI1_CLK     ||8    || SPI1_MOSI
+
|7    || GPIO1_B1/SPI1_CLK   ||8    || GPIO1_B0/SPI1_TXD/UART4-TX
 
|-
 
|-
|9    || SPI1_CS      ||10    || SPI1_MISO
+
|9    || GPIO1_B2/SPI1_CSn ||10    || GPIO1_A7/SPI1_RXD/UART4-RX
 
|}
 
|}
  
Line 83: Line 84:
 
::#Power Input : 5V/3A, via USB Type-C(USB PD Specification is not supported) or Pin1&Pin2 of the 2x5-pin header
 
::#Power Input : 5V/3A, via USB Type-C(USB PD Specification is not supported) or Pin1&Pin2 of the 2x5-pin header
  
==Get Started==
+
===全球唯一的以太网Mac地址 (EUI-48)===
===Essentials You Need===
+
NanoPi-R4S拥有一个全球唯一的Mac地址,默认分配给Cpu内置的以太网卡(rtl8211e),接口名为eth0,该以太网口在PCB上的标注为LAN2,在外壳标注为WAN,在FriendlyWrt系统下默认已分配给WAN口。<br />
Before starting to use your NanoPi R4S get the following items ready
+
可在FriendlyWrt网页首页查看Mac地址:<br />
* NanoPi R4S
+
[[File:R4s-friendlywrt-macaddress.png|300px]]<br />
* MicroSD Card/TF Card: Class 10 or Above, minimum 8GB SDHC
+
在命令行查看:<br />
* MicroUSB 5V/2A power adapter
+
[[File:Friendlywrt-macaddress-ifconfig.png|300px]]<br />
* A host computer running Ubuntu 18.04 64-bit system
+
如何确定一个地址是否是全球唯一的Mac地址:
 +
* 查看地址的第一个字节,如果bit 2为1则表示此地址仅在本地使用,非全球唯一。
 +
==快速入门==
 +
===准备工作===
 +
要开启你的NanoPi R4S新玩具,请先准备好以下硬件
 +
* NanoPi R4S主板
 +
* MicroSD卡/TF卡: Class10或以上的 8GB SDHC卡
 +
* 一个USB Type-C接口的外接电源,建议使用传统5V/3A及以上的电源适配器(注:部分QC/PD快速充电器可能存在兼容性问题),可选用以下或类拟规格的电源适配器:
 +
**[https://www.friendlyarm.com/index.php?route=product/product&path=73&product_id=238 5V 4A Power Adapter]
 +
* 如果需要开发与编译,则需要一台可以联网的电脑,推荐安装Ubuntu 18.04 64位系统,并使用下面的脚本初始化开发环境: <br />
 +
**[https://github.com/friendlyarm/build-env-on-ubuntu-bionic How to setup the Compiling Environment on Ubuntu bionic]<br />
  
===Install OS===
+
===安装系统===
====Download Image Files====
+
====下载系统固件====
Go to [http://download.friendlyarm.com/nanopir4s download link] to download the image files under the officail-ROMs directory and the flashing utility under the tools directory:<br />
+
首先访问[http://download.friendlyarm.com/nanopir4s 下载地址]下载需要的固件文件(officail-ROMs目录)和烧写工具(tools目录):<br />
  
 
::{| class="wikitable"
 
::{| class="wikitable"
 
|-
 
|-
|colspan=2|Image Files:
+
|colspan=2|固件文件:
 
|-
 
|-
|rk3399-sd-friendlycore-focal-4.19-arm64-YYYYMMDD.img.zip || Based on UbuntuCore 20.04 and Linux-4.19 Kernel
+
|rk3399-sd-friendlycore-lite-focal-4.19-arm64-YYYYMMDD.img.zip || 基于UbuntuCore 20.04 Linux-4.19 Kernel
 
|-
 
|-
|rk3399-sd-friendlywrt-5.4-YYYYMMDD.img.zip || Based on OpenWrt and Linux-5.4 Kernel
+
|rk3399-sd-friendlywrt-5.10-YYYYMMDD.img.zip || 基于OpenWrt 和 Linux-5.10 Kernel
 
|-
 
|-
 
|colspan=2|Flashing Utility:   
 
|colspan=2|Flashing Utility:   
 
|-
 
|-
|win32diskimager.rar || Windows utility. Under Linux users can use "dd"
+
|win32diskimager.rar || Windows 下的启动卡制作工具,在Linux下可使用dd命令代替
 
|-  
 
|-  
 
|}
 
|}
{{BurnOS-Allwinner|NanoPi-R4S}}
+
 
{{FriendlyWrt19|NanoPi-R4S}}
+
{{BurnOS-Allwinner/zh|NanoPi-R4S}}
===Serial port debug===
+
{{FriendlyWrt19/zh|NanoPi-R4S}}
Connect to NanoPi R4S with screen :
+
{{OfficialUbuntuCore/zh|NanoPi-R4S}}
 +
===串口调试===
 +
用screen登入串口调试:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
screen /dev/ttyUSB0 1500000 8N1
 
screen /dev/ttyUSB0 1500000 8N1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==编译 FriendlyWrt==
==Compile FriendlyWrt==
+
===下载源代码===
===Download Code===
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
mkdir friendlywrt-rk3399
 
mkdir friendlywrt-rk3399
 
cd friendlywrt-rk3399
 
cd friendlywrt-rk3399
repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v19.07.4 -m rk3399.xml --repo-url=https://github.com/friendlyarm/repo  --no-clone-bundle
+
repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v19.07.5 -m rk3399.xml --repo-url=https://github.com/friendlyarm/repo  --no-clone-bundle
 
repo sync -c  --no-clone-bundle
 
repo sync -c  --no-clone-bundle
 
</syntaxhighlight>
 
</syntaxhighlight>
===1-key Compile===
+
===一键编译并生成固件===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
./build.sh nanopi_r4s.mk
 
./build.sh nanopi_r4s.mk
 
</syntaxhighlight>
 
</syntaxhighlight>
All the components (including u-boot, kernel, and friendlywrt) are compiled and the sd card image will be generated.
+
会编译所有组件(包含u-boot, kernel 和 friendlywrt)并生成sd卡镜像文件。
{{OfficialUbuntuCore|NanoPi-R4S}}
+
===单独重新编译u-boot,kernel或friendlywrt===
 +
<syntaxhighlight lang="bash">
 +
./build.sh uboot
 +
./build.sh kernel
 +
./build.sh friendlywrt
 +
</syntaxhighlight>
 +
===重新打包成固件===
 +
<syntaxhighlight lang="bash">
 +
./build.sh sd-img
 +
</syntaxhighlight>
 +
* 想了解更多细节,请参考以下链接:
 +
** [[How to Build FriendlyWrt/zh]]
 +
 
 +
==编译 FriendlyCore-Focal ==
 +
{{RK3399-DevEnv/zh|NanoPi-R4S}}
 +
===简易方式为FriendlyCore-Focal系统编译内核与uboot===
 +
====下载工具与固件====
 +
下载脚本与friendlycore-focal系统的映象文件,映象文件也可以在网盘的images-for-eflasher目录找到:
 +
<syntaxhighlight lang="bash">
 +
git clone https://github.com/friendlyarm/sd-fuse_rk3399.git -b kernel-4.19
 +
cd sd-fuse_rk3399
 +
wget http://112.124.9.243/dvdfiles/RK3399/images-for-eflasher/friendlycore-focal-arm64-images.tgz
 +
tar xvzf friendlycore-focal-arm64-images.tgz
 +
</syntaxhighlight>
 +
====编译内核====
 +
下载内核源代码并编译,编译完成后会自动更新 friendlycore-focal-arm64 目录下的相关映象文件,包括文件系统中的内核模块:
 +
<syntaxhighlight lang="bash">
 +
git clone https://github.com/friendlyarm/kernel-rockchip --depth 1 -b nanopi4-v4.19.y kernel-rk3399
 +
KERNEL_SRC=$PWDkernel-rk3399 ./build-kernel.sh friendlycore-focal-arm64
 +
</syntaxhighlight>
 +
====编译uboot====
 +
下载uboot源代码并编译,编译完成后会自动更新 friendlycore-focal-arm64 目录下的相关映象文件:
 +
<syntaxhighlight lang="bash">
 +
git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi4-v2017.09
 +
UBOOT_SRC=$PWD/uboot-rockchip ./build-uboot.sh friendlycore-focal-arm64
 +
</syntaxhighlight>
 +
====生成新固件====
 +
将friendlycore-focal-arm64目录下的映象文件重新打包成sd卡固件:
 +
<syntaxhighlight lang="bash">
 +
./mk-sd-image.sh friendlycore-focal-arm64
 +
</syntaxhighlight>
 +
命令完成后,固件位于out目录,可以用 dd 命令制作sd启动卡,举例说明:
 +
<syntaxhighlight lang="bash">
 +
dd if=out/rk3399-sd-friendlycore-focal-4.19-arm64-YYYYMMDD.img of=/dev/sdX bs=1M
 +
</syntaxhighlight>
 +
===普通方式为FriendlyCore-Focal系统编译kernel与uboot===
 +
====编译 FriendlyCore-Focal 内核4.19版本源代码====
 +
<syntaxhighlight lang="bash">
 +
git clone https://github.com/friendlyarm/kernel-rockchip --depth 1 -b nanopi4-v4.19.y kernel-rockchip
 +
cd kernel-rockchip
 +
make distclean
 +
touch .scmversion
 +
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
 +
make ARCH=arm64 CROSS_COMPILE=aarch64-linux- nanopi4_linux_defconfig
 +
make ARCH=arm64 CROSS_COMPILE=aarch64-linux- nanopi4-images
 +
</syntaxhighlight>
 +
编译完成后会生成 kernel.img 和 resource.img 这两个文件,可使用工具[https://github.com/friendlyarm/sd_update-bin sd_update]烧写它们到TF卡或eMMC上。
 +
 
 +
====编译 FriendlyCore-Focal uboot-2017.09 源代码====
 +
<syntaxhighlight lang="bash">
 +
[ -d rkbin ] || git clone https://github.com/friendlyarm/rkbin
 +
(cd rkbin && git reset 25de1a8bffb1e971f1a69d1aa4bc4f9e3d352ea3 --hard)
 +
git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi4-v2017.09
 +
cd uboot-rockchip
 +
make distclean
 +
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
 +
./make.sh nanopi4
 +
</syntaxhighlight>
  
==Make Your Own OS Image==
+
编译完成后会生成 uboot.img、trust.img 和 rk3399_loader_v1.24.126.bin这3个文件,其中rk3399_loader_v1.24.126.bin需要重命名为MiniLoaderAll.bin,可使用工具[https://github.com/friendlyarm/sd_update-bin sd_update]烧写它们到TF卡或eMMC上。
* Please refre this link:
+
===制作用于量产的启动卡或者烧写文件===
** [https://github.com/friendlyarm/sd-fuse_rk3399/tree/kernel-5.4.y sd-fuse_rk3399]
+
如果要自已做启动卡,定制文件系统,或制作用于批量生产的img文件,可参考这个github仓库:<br />
 +
[https://github.com/friendlyarm/sd-fuse_rk3399/tree/kernel-4.19 sd-fuse_rk3399]<br />
  
 
==Link to Rockchip Resources==
 
==Link to Rockchip Resources==
 
{{Link_to_RK3399_datasheet}}
 
{{Link_to_RK3399_datasheet}}
 +
==资源链接==
 +
===手册原理图等开发资料===
 +
* 原理图
 +
** [https://wiki.friendlyarm.com/wiki/images/0/06/NanoPi-R4S-1GB-2008-Schematic.pdf NanoPi-R4S-1GB-2008-Schematic.pdf] [https://wiki.friendlyarm.com/wiki/images/c/c2/NanoPi-R4S-4GB-2008-Schematic.pdf NanoPi-R4S-4GB-2008-Schematic.pdf]
  
==Schematic, PCB CAD File==
+
* PCB尺寸图
*Schematic:  [https://wiki.friendlyarm.com/wiki/images/0/06/NanoPi-R4S-1GB-2008-Schematic.pdf NanoPi-R4S-1GB-2008-Schematic.pdf] [https://wiki.friendlyarm.com/wiki/images/c/c2/NanoPi-R4S-4GB-2008-Schematic.pdf NanoPi-R4S-4GB-2008-Schematic.pdf]
+
** [https://wiki.friendlyarm.com/wiki/images/a/ab/NanoPi_R4S_1GB_2008_dxf.zip NanoPi_R4S_1GB_2008_dxf.zip] [https://wiki.friendlyarm.com/wiki/images/1/18/NanoPi_R4S_4GB_2008_dxf.zip NanoPi_R4S_1GB_2008_dxf.zip]
*PCB CAD File:[https://wiki.friendlyarm.com/wiki/images/a/ab/NanoPi_R4S_1GB_2008_dxf.zip NanoPi_R4S_1GB_2008_dxf.zip] [https://wiki.friendlyarm.com/wiki/images/1/18/NanoPi_R4S_4GB_2008_dxf.zip NanoPi_R4S_1GB_2008_dxf.zip]
+
==已知问题及解决办法==
 +
** Q: 绿联18W QC快充头无法供电?
 +
** A: 它需要等待几秒钟才能上电,有一个QC握手过程,用普通5V/3A充电头,或者其他快充头例如绿联30W没有发现此问题。
 +
==更新日志==
 +
===2020-12-24===
 +
* FriendlyWrt更新至官方稳定版本 19.07.5

Latest revision as of 03:37, 30 December 2020

English

Contents

1 介绍

Overview
Front
Back
Front
Back
  • NanoPi R4S(以下简称R4S)是友善电子团队最新推出的一款实现满速率双千兆的、完全开源的Iot应用神器。
  • NanoPi R4S 使用RK3399 CPU,有两个千兆网口和两个USB3.0接口,最大4G DDR4内存,友善电子团队为NanoPi R4S专门移植了OpenWrt系统,支持Docker CE, 完全开源,用于企业物联网二次开发,个人定制NAS,家庭物联网网关等。

2 NanoPi R4S资源特性

  • SoC: Rockchip RK3399
    • CPU: big.LITTLE,Dual-Core Cortex-A72(up to 2.0GHz) + Quad-Core Cortex-A53(up to 1.5GHz)
    • GPU: Mali-T864 GPU,supports OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11, and AFBC
    • VPU: 4K VP9 and 4K 10bits H265/H264 60fps decoding, Dual VOP, etc
  • PMU: RK808-D PMIC, cooperated with independent DC/DC, enabling DVFS, software power-down, RTC wake-up, system sleep mode
  • RAM: 1GB DDR3/4GB LPDDR4
  • Flash: no Onboard eMMC
  • Ethernet: one Native Gigabit Ethernet, and one PCIe Gigabit Ethernet
  • USB: two USB 3.0 Type-A ports
  • Pin header extension interface
    • 2x5-pin header: SPI x 1, I2C x 1
    • 4-pin header: USB 2.0
  • microSD Slot x 1
  • Debug: one Debug UART, 3 Pin 2.54mm header, 3V level, 1500000bps
  • LEDs: 1 x power LED and 3 x GPIO Controlled LED (SYS, LAN, WAN)
  • others:
    • 2 Pin 1.27/1.25mm RTC battery input connector
    • one User Button
    • one 5V Fan connector
  • Power supply: DC 5V/3A, via USB-C connector or Pin header
  • PCB: 8 Layer, 66 mm x 66 mm
  • Temperature measuring range: 0℃ to 80℃

3 接口布局和尺寸

3.1 接口布局

NanoPi R4S Layout
NanoPi R4S Layout
  • 2x5-pin header
Pin# Assignment Pin# Assignment
1 VDD_5V 2 VDD_3.3V
3 VDD_5V 4 GPIO4_C0/I2C3_SDA(3V)
5 GND 6 GPIO4_C1/I2C3_SCL(3V)
7 GPIO1_B1/SPI1_CLK 8 GPIO1_B0/SPI1_TXD/UART4-TX
9 GPIO1_B2/SPI1_CSn 10 GPIO1_A7/SPI1_RXD/UART4-RX
  • 4-pin header
1 2 3 4
VDD_5V USB_DM USB_DP GND
  • Debug UART Pin Spec
3V level signals, 1500000bps
Pin# Assignment Description
1 GND 0V
2 UART2DBG_TX output
3 UART2DBG_RX intput
  • USB Port
Each USB 3.0 port has 2A overcurrent protection.
  • RTC
RTC backup current is 27uA.
Connector P/N: Molex 53398-0271
Notes
  1. Power Input : 5V/3A, via USB Type-C(USB PD Specification is not supported) or Pin1&Pin2 of the 2x5-pin header

3.2 全球唯一的以太网Mac地址 (EUI-48)

NanoPi-R4S拥有一个全球唯一的Mac地址,默认分配给Cpu内置的以太网卡(rtl8211e),接口名为eth0,该以太网口在PCB上的标注为LAN2,在外壳标注为WAN,在FriendlyWrt系统下默认已分配给WAN口。
可在FriendlyWrt网页首页查看Mac地址:
R4s-friendlywrt-macaddress.png
在命令行查看:
Friendlywrt-macaddress-ifconfig.png
如何确定一个地址是否是全球唯一的Mac地址:

  • 查看地址的第一个字节,如果bit 2为1则表示此地址仅在本地使用,非全球唯一。

4 快速入门

4.1 准备工作

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

  • NanoPi R4S主板
  • MicroSD卡/TF卡: Class10或以上的 8GB SDHC卡
  • 一个USB Type-C接口的外接电源,建议使用传统5V/3A及以上的电源适配器(注:部分QC/PD快速充电器可能存在兼容性问题),可选用以下或类拟规格的电源适配器:
  • 如果需要开发与编译,则需要一台可以联网的电脑,推荐安装Ubuntu 18.04 64位系统,并使用下面的脚本初始化开发环境:

4.2 安装系统

4.2.1 下载系统固件

首先访问下载地址下载需要的固件文件(officail-ROMs目录)和烧写工具(tools目录):

固件文件:
rk3399-sd-friendlycore-lite-focal-4.19-arm64-YYYYMMDD.img.zip 基于UbuntuCore 20.04 和 Linux-4.19 Kernel
rk3399-sd-friendlywrt-5.10-YYYYMMDD.img.zip 基于OpenWrt 和 Linux-5.10 Kernel
Flashing Utility:
win32diskimager.rar Windows 下的启动卡制作工具,在Linux下可使用dd命令代替

4.2.2 烧写Linux系统

4.2.2.1 烧写到TF卡
  • FriendlyCore / FriendlyWrt 等系统都属于 Linux 系统,所以它们的烧写方法是一样。
  • 将 Linux 系统固件和烧写工具 win32diskimager.rar 分别解压,在 Windows 下插入TF卡(限4G及以上的卡),以管理员身份运行烧写工具 win32diskimager,在烧写工具 win32diskimager 的界面上,选择你的TF卡盘符,选择Linux 系统固件,点击 Write 按钮烧写。


成功烧写后,会看到如下界面:
win32disk-finish

  • 当制作完成TF卡后,拔出TF卡插入 BOOT 卡槽,上电启动(注意,这里需要5V/2A的供电),你可以看到STAT灯闪烁,这时你已经成功启动系统。;

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-R4S连接到互联网之前完成此设置。

5.4 连接网络

用网线连接NanoPi-R4S的WAN口到你的主路由器,默认将从你的主路由器通过DHCP自动获取IP地址,请登入你的路由器后台查看并记住NanoPi-R4S的IP地址。

5.5 登录FriendlyWrt

将电脑连接到 NanoPi-R4S 的LAN口,如果电脑没有网口,可将无线AP的LAN口与NanoPi-R4S的LAN口相连接,电脑再通过WiFi连接到无线AP,在电脑浏览器上输入以下网址即可进入FriendlyWrt管理页面:

以上是NanoPi-R4S的LAN口地址,WAN口会从你的主路由器动态获取IP地址。

5.6 建议的安全性设置

以下设置事项非常建议在将 NanoPi-R4S 接入互联网之前完成,因为在空密码或弱密码的状态下将NanoPi-R4S接入互联网,极易受到网络攻击。

  • 设置一个安全的密码

进入 系统->管理权 界面设置密码。

  • 禁止从wan访问ssh,更换端口

进入 系统->管理权->SSH访问,将接口限制为 lan,将端口设置为其他非常用端口,例如 23333。

  • 只允许本地设备访问luci

编辑 /etc/config/uhttpd,将原来的0.0.0.0和[::]地址改为本地lan的地址,例如:

	# HTTP listen addresses, multiple allowed
	list listen_http	192.168.2.1:80
	list listen_http	[fd00:ab:cd::1]:80
 
	# HTTPS listen addresses, multiple allowed
	list listen_https	192.168.2.1:443
	list listen_https	[fd00:ab:cd::1]:443

完成后重启服务:

/etc/init.d/uhttpd restart

5.7 安全的关机操作

进入ttyd终端,输入poweroff命令敲回车,待led灯熄灭,再拔开电源。

5.8 安装软件包

5.8.1 更新可用软件包列表

安装软件前,先更新可用软件包列表:

$ opkg update

5.8.2 查看可安装的软件包

$ opkg list

5.8.3 查看已安装的软件

$ opkg list-installed

5.8.4 安装软件

$ opkg install <包各称>

5.8.5 删除软件

$ opkg remove <包各称>

5.9 FriendlyWrt的一些常见问题

  • 无法拨号上网
    • 进入“网络“->“防火墙“,将 “WAN区域“ 的“入站数据“,“出站数据“与“转发“均设置为 “接受”;
    • 如仍无法上网,可尝试关闭IPV6;
  • 无法开机,LED灯不亮
    • 尝试更换电源适配器和电缆,推荐使用 5V/2A 以上规格的电源供应;
    • 注意,部分Type-C接口的快速充电器会有延迟,可能需要几秒钟才开始提供电量;
  • 做二级路由时,电脑无法连接互联网
    • 如果你的主网络是IPv4,而NanoPi-R4S工作在IPv6,电脑有可能无法连接互联网,建议关闭IPv6 (本WiKi后面有介绍方法),或将主路由切换到IPv6;
  • 如果你有问题,或有更好的建议,欢迎发送邮件到 techsupport@friendlyarm.com;

5.10 让FriendlyWrt重新生成网络设置

此方法会触发 FriendlyWrt 重新识别硬件型号,并生成 /etc/config 下的网络配置,类拟但不完全等效于恢复出厂设置:

rm -f /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_*
reboot

/root/setup.sh 初始化脚本会在下次开机时再次被执行,所以你可以通过此途径来调试 /root/setup.sh 脚本.

5.11 禁用IPv6

要关掉 IPv6,可在ssh终端输入如下命令:

sed -i -e "s/DISABLE_IPV6=0/DISABLE_IPV6=1/g" /root/setup.sh
rm -f /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_*
reboot

待NanoPi-R4S重启完毕,电脑也需要重新插拨一下网线(或重启网络端口)以便重新获得IP地址。

5.12 使用USB2LCD查看IP和温度

将USB2LCD模块Plug到 NanoPi-R4S 的USB接口再开机,IP地址和CPU温度将显示在LCD上:


5.13 如何使用USB WiFi

5.13.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.13.2 如何使用USB WiFi作为AP

(1) 把USB WiFi插入NanoPi-R4S的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:
R2swrt+usbwifi-08.jpg
注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号

(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启NanoPi-R4S

(3) 点击“网络>无线”进入配置无线WiFi界面

(4) 点击“编辑”按钮可编辑WiFi设置

(5) 在“接口配置”中可设置WiFi 模式和SSID等,然后点击到“无线安全”项可修改加密方式和WiFi密码,默认密码为password,设置完成后点击“保存”

(4) 配置完成后使用手机端或电脑端搜索对应SSID的WiFi即可

5.14 玩转Docker应用

5.14.1 Docker使用:安装JellyFin影音服务器

请参考: How to setup JellyFin media system on NanoPi-R2S/zh

5.14.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.15 挂载smbfs共享资源

mount -t cifs //192.168.1.10/shared /movie -o username=xxx,password=yyy,file_mode=0644



5.16 使用sdk编译软件包

5.16.1 安装编译环境

在64位的Ubuntu (版本18.04+)下载并运行如下脚本: How to setup the Compiling Environment on Ubuntu bionic

5.16.2 在网盘上下载并解压sdk

sdk位于网盘的toolchain目录,解压后,需要先下载feeds软件包:

tar xvf ~/dvd/FriendlyELEC-NanoPiR4S/toolchain/friendlywrt-kernel-5.x.y/openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64.tar.xz
# 路径太长会导致有些包编译出错,所以这里改一下目录名
mv openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64 sdk
cd sdk
./scripts/feeds update -a
./scripts/feeds install -a


5.16.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_cortex-a53/base/example2_0.1-1_aarch64_cortex-a53.ipk
./bin/packages/aarch64_cortex-a53/base/example3_0.1-1_aarch64_cortex-a53.ipk
./bin/packages/aarch64_cortex-a53/base/example1_0.1-1_aarch64_cortex-a53.ipk

5.16.4 将编译生成的ipk安装到NanoPi上

可以用scp命令将ipk文件上传到NanoPi上:

cd ./bin/packages/aarch64_cortex-a53/base/
scp example*.ipk root@192.168.2.1:/root/

然后用opkg命令进行安装他们:

cd /root/
opkg install example2_0.1-1_aarch64_cortex-a53.ipk
opkg install example3_0.1-1_aarch64_cortex-a53.ipk
opkg install example1_0.1-1_aarch64_cortex-a53.ipk

6 FriendlyCore的使用

6.1 FriendlyCore默认帐户

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

6.2 更新软件包

$ sudo apt-get update

6.3 配置网络

默认已将 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

还需要修改如下文件加入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

要配置另一个网口 eth1,可以在 /etc/network/interfaces.d/ 下新增一个 eth1 文件,配置格式可以参考 eth0。

6.4 编译内核头文件安装包

git clone https://github.com/friendlyarm/kernel-rockchip -b nanopi-r2-v5.10.y
tar xvzf /path/to/rk3328/images-for-eflasher/friendlycore-lite-focal-arm64-images.tgz
KERNEL_SRC=$PWD/kernel-rockchip MK_HEADERS_DEB=1 ./build-kernel.sh friendlycore-lite-focal-arm64

6.5 串口调试

用screen登入串口调试:

screen /dev/ttyUSB0 1500000 8N1

7 编译 FriendlyWrt

7.1 下载源代码

mkdir friendlywrt-rk3399
cd friendlywrt-rk3399
repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v19.07.5 -m rk3399.xml --repo-url=https://github.com/friendlyarm/repo  --no-clone-bundle
repo sync -c  --no-clone-bundle

7.2 一键编译并生成固件

./build.sh nanopi_r4s.mk

会编译所有组件(包含u-boot, kernel 和 friendlywrt)并生成sd卡镜像文件。

7.3 单独重新编译u-boot,kernel或friendlywrt

./build.sh uboot
./build.sh kernel
./build.sh friendlywrt

7.4 重新打包成固件

./build.sh sd-img

8 编译 FriendlyCore-Focal

8.1 搭建编译环境

建议使用64位的Ubuntu 18.04系统,需要安装如下软件包:

sudo apt-get -y install bison g++-multilib git gperf libxml2-utils make python-networkx zip
sudo apt-get -y install flex curl libncurses5-dev libssl-dev zlib1g-dev gawk minicom
sudo apt-get -y install openjdk-8-jdk
sudo apt-get -y install exfat-fuse exfat-utils device-tree-compiler liblz4-tool
sudo apt-get -y install android-tools-fsutils
sudo apt-get -y install swig
sudo apt-get -y install python-dev python3-dev

8.2 安装交叉编译器

8.2.1 安装aarch64-linux-gcc 6.4

该编译器可用来编译Linux系统的内核和u-boot,用以下命令下载并安装:

git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
cd prebuilts/gcc-x64
cat toolchain-6.4-aarch64.tar.gz* | sudo tar xz -C /

然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:

export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin:$PATH
export GCC_COLORS=auto

执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:

. ~/.bashrc

这个编译器是64位的,不能在32位的PC Linux系统上运行,安装完成后,用以下命令可以验证是否安装成功:

aarch64-linux-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-linux-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/6.4-aarch64/libexec/gcc/aarch64-cortexa53-linux-gnu/6.4.0/lto-wrapper
Target: aarch64-cortexa53-linux-gnu
Configured with: /work/toolchain/build/aarch64-cortexa53-linux-gnu/build/src/gcc/configure --build=x86_64-build_pc-linux-gnu
--host=x86_64-build_pc-linux-gnu --target=aarch64-cortexa53-linux-gnu --prefix=/opt/FriendlyARM/toolchain/6.4-aarch64
--with-sysroot=/opt/FriendlyARM/toolchain/6.4-aarch64/aarch64-cortexa53-linux-gnu/sysroot --enable-languages=c,c++
--enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-cpu=cortex-a53
...
Thread model: posix
gcc version 6.4.0 (ctng-1.23.0-150g-FA)

8.3 简易方式为FriendlyCore-Focal系统编译内核与uboot

8.3.1 下载工具与固件

下载脚本与friendlycore-focal系统的映象文件,映象文件也可以在网盘的images-for-eflasher目录找到:

git clone https://github.com/friendlyarm/sd-fuse_rk3399.git -b kernel-4.19
cd sd-fuse_rk3399
wget http://112.124.9.243/dvdfiles/RK3399/images-for-eflasher/friendlycore-focal-arm64-images.tgz
tar xvzf friendlycore-focal-arm64-images.tgz

8.3.2 编译内核

下载内核源代码并编译,编译完成后会自动更新 friendlycore-focal-arm64 目录下的相关映象文件,包括文件系统中的内核模块:

git clone https://github.com/friendlyarm/kernel-rockchip --depth 1 -b nanopi4-v4.19.y kernel-rk3399
KERNEL_SRC=$PWDkernel-rk3399 ./build-kernel.sh friendlycore-focal-arm64

8.3.3 编译uboot

下载uboot源代码并编译,编译完成后会自动更新 friendlycore-focal-arm64 目录下的相关映象文件:

git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi4-v2017.09
UBOOT_SRC=$PWD/uboot-rockchip ./build-uboot.sh friendlycore-focal-arm64

8.3.4 生成新固件

将friendlycore-focal-arm64目录下的映象文件重新打包成sd卡固件:

./mk-sd-image.sh friendlycore-focal-arm64

命令完成后,固件位于out目录,可以用 dd 命令制作sd启动卡,举例说明:

dd if=out/rk3399-sd-friendlycore-focal-4.19-arm64-YYYYMMDD.img of=/dev/sdX bs=1M

8.4 普通方式为FriendlyCore-Focal系统编译kernel与uboot

8.4.1 编译 FriendlyCore-Focal 内核4.19版本源代码

git clone https://github.com/friendlyarm/kernel-rockchip --depth 1 -b nanopi4-v4.19.y kernel-rockchip
cd kernel-rockchip
make distclean
touch .scmversion
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
make ARCH=arm64 CROSS_COMPILE=aarch64-linux- nanopi4_linux_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux- nanopi4-images

编译完成后会生成 kernel.img 和 resource.img 这两个文件,可使用工具sd_update烧写它们到TF卡或eMMC上。

8.4.2 编译 FriendlyCore-Focal uboot-2017.09 源代码

[ -d rkbin ] || git clone https://github.com/friendlyarm/rkbin
(cd rkbin && git reset 25de1a8bffb1e971f1a69d1aa4bc4f9e3d352ea3 --hard)
git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi4-v2017.09
cd uboot-rockchip
make distclean
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
./make.sh nanopi4

编译完成后会生成 uboot.img、trust.img 和 rk3399_loader_v1.24.126.bin这3个文件,其中rk3399_loader_v1.24.126.bin需要重命名为MiniLoaderAll.bin,可使用工具sd_update烧写它们到TF卡或eMMC上。

8.5 制作用于量产的启动卡或者烧写文件

如果要自已做启动卡,定制文件系统,或制作用于批量生产的img文件,可参考这个github仓库:
sd-fuse_rk3399

9 Link to Rockchip Resources

10 资源链接

10.1 手册原理图等开发资料

11 已知问题及解决办法

    • Q: 绿联18W QC快充头无法供电?
    • A: 它需要等待几秒钟才能上电,有一个QC握手过程,用普通5V/3A充电头,或者其他快充头例如绿联30W没有发现此问题。

12 更新日志

12.1 2020-12-24

  • FriendlyWrt更新至官方稳定版本 19.07.5