NanoPC-T4/zh

From FriendlyARM WiKi
Jump to: navigation, search

English

Contents

1 介绍

Overview
Front
Back
  • NanoPC-T4不仅是世界上最小的全功能接口RK3399一体化主板, 而且是一款完全开源的高性能计算平台。它的尺寸只有100x64mm,标配4GB LPDDR3内存和16GB闪存, 板载2.4G & 5G双频WiFi模组, 带有标准完整的M.2 PCIe接口, 可直接安装使用NVME SSD高速固态硬盘。NanoPC-T4支持运行Android 7.1和Lubuntu Desktop两种系统,它们均带有GPU和VPU加速处理。
  • NanoPC-T4还带有MIPI-CSI双摄像头接口, MIPI-DSI和eDP双显示接口, HDMI 2.0视频输出口,并具备Type-C/DP,USB 3.0, USB2.0,MicroSD, 千兆以太网口,3.5mm音频输出口,红外接收等常见标准接口,以及AD输入,调试串口,40Pin树莓派兼容扩展口。
  • RK3399内置新一代高端图像处理器Mali-T860, 具有超强的3D处理和超高清H.265/H2.64视频解析能力,并可支持双路摄像头同时输入,双ISP像素处理能力高达800MPix/s。NanoPC-T4非常适合广告机,游戏主机,视频会议,智能监控,集群计算,虚拟现实,机器视觉和计算机视觉等方面的应用,并且是人工智能和深度学习平台的绝佳选择!

2 硬件特性

  • 主控芯片: Rockchip RK3399
    • CPU: big.LITTLE大小核架构,双Cortex-A72大核(up to 2.0GHz)+四Cortex-A53小核结构(up to 1.5GHz)
    • GPU: Mali-T864 GPU,支持OpenGL ES1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11, 支持AFBC(帧缓冲压缩)
    • VPU: 支持4K VP9 and 4K 10bits H265/H264 视频解码,高达60fps, 双VOP显示等视频编解码功能
  • 电源管理单元: RK808-D PMIC, 搭配独立DC/DC, 支持动态调压, 软件关机, 按键开机, RTC唤醒, 睡眠唤醒等功能
  • 内存: 双通道4GB LPDDR3-1866
  • Flash: 16GB eMMC 5.1 Flash
  • 有线网络: 原生千兆以太网
  • Wi-Fi/蓝牙: 802.11a/b/g/n/ac, Bluetooth 4.1 双频Wi-Fi蓝牙模块, 双天线
  • 视频输入: 1个或2个4线MIPI-CSI, 双ISP像素处理能力高达13MPix/s,支持双路摄像头数据同时输入
  • 视频输出
    • HDMI: HDMI 2.0a, 支持4K@60Hz显示,支持HDCP 1.4/2.2
    • DP on Type-C: DisplayPort 1.2 Alt Mode on USB Type-C
    • LCD Interface: 一个eDP 1.3(4 线,10.8Gbps), 一个或2个4线MIPI-DSI
  • Audio Out: 3.5mm 双通道耳机接口, 或者通过HDMI输出
  • Audio In: 板载麦克风
  • USB 2.0: 2个独立的原生USB 2.0 Host A型接口
  • USB 3.0: 1个原生USB 3.0 Host A型接口
  • USB Type-C: 支持USB3.0 Type-C 和 DisplayPort 1.2 Alt Mode on USB Type-C
  • PCIe: 一个 M.2 M-Key PCIe x4 接口, 兼容PCIe 2.1, 双操作模式, 带有M.2 2280模块M3固定螺柱
  • microSD Slot x 1
  • 40Pin GPIO 扩展接口:
    • 2 X 3V/1.8V I2C, up to 1 x 3V UART, 1 X 3V SPI, 1 x SPDIF_TX, up to 8 x 3V GPIOs
    • 1 x 1.8V I2S, 3 x 1.8V GPIOs
  • ADC: 提供3路 1.8V ADC 输入, 5 Pin 2.54mm 排针接口
  • 调试串口: 4 Pin 2.54mm 调试串口, 3V电平, 波特率为1500000
  • 按键: 电源按键, 复位按键, MASKROM按键(BOOT), 系统还原按键
  • LED: 1 x power LED and 1 x GPIO Controled LED
  • 红外接收器: 板载红外接收器, 接受的载波频率为38KHz
  • RTC电池座子: 2 Pin 1.27/1.25mm RTC备份电池接口
  • 散热片和风扇: 2个2.5mm焊接螺柱, 专门用于固定散热片; 3 Pin 12V 支持PWM调节的风扇接口
  • 供电电源: DC 12V/2A
  • PCB: Ten Layer, 100 mm x 64 mm
  • 环境工作温度: -20℃ to 70℃

3 接口布局和尺寸

3.1 接口布局

NanoPC-T4 Layout
  • 40 Pin GPIO引脚定义
Pin# Assignment Pin# Assignment
1 VCC3V3_SYS 2 VCC5V0_SYS
3 I2C2_SDA(3V) 4 VCC5V0_SYS
5 I2C2_SCL(3V) 6 GND
7 GPIO1_A0(3V) 8 GPIO4_C1/I2C3_SCL(3V)
9 GND 10 GPIO4_C0/I2C3_SDA(3V)
11 GPIO1_A1(3V) 12 GPIO1_C2(3V)
13 GPIO1_A3(3V) 14 GND
15 GPIO1_A4(3V) 16 GPIO1_C6(3V)
17 VCC3V3_SYS 18 GPIO1_C7(3V)
19 SPI1_TXD/UART4_TX(3V) 20 GND
21 SPI1_RXD/UART4_RX(3V) 22 GPIO1_D0(3V)
23 SPI1_CLK(3V) 24 SPI1_CSn0(3V)
25 GND 26 GPIO4_C5/SPDIF_TX(3V)
27 I2C2_SDA(1.8V) 28 I2C2_SCL(1.8V)
29 I2S1_LRCK_RX(1.8V) 30 GND
31 I2S1_LRCK_TX(1.8V) 32 I2S_CLK(1.8V)
33 I2S1_SCLK(1.8V) 34 GND
35 I2S1_SDI0(1.8V) 36 I2S1_SDO0(1.8V)
37 GPIO3_D4(1.8V) 38 GPIO3_D5(1.8V)
39 GND 40 GPIO3_D6(1.8V)
  • eDP接口引脚定义
连接器型号: I-PEX-20455-030E
Pin# Assignment Description
1 GND Signal ground
2 EDP_TX3N eDP data lane 3 negative output
3 EDP_TX3P eDP data lane 3 positive output
4 GND Signal ground
5 EDP_TX2N eDP data lane 2 negative output
6 EDP_TX2P eDP data lane 2 positive output
7 GND Signal ground
8 EDP_TX1N eDP data lane 1 negative output
9 EDP_TX1P eDP data lane 1 positive output
10 GND Signal ground
11 EDP_TX0N eDP data lane 0 negative output
12 EDP_TX0P eDP data lane 0 positive output
13 GND Signal ground
14 EDPAUXP eDP CH-AUX positive differential output
15 EDPAUXN eDP CH-AUX negative differential output
16 GND Signal ground
17 VCC3V3_SYS 3.3V Power output for logic
18 VCC3V3_SYS 3.3V Power output for logic
19 I2C4_SDA 3V I2C data signal, Connect to touch panel
20 I2C4_SCL 3V I2C clock signal, Connect to touch panel
21 GPIO1_C4_TP_INT 3V interrupt input, Connect to the interrupt output of touch panel
22 GPIO1_B5_TP_RST 3V output for reseting touch panel, Connect to the reset input of touch panel
23 PWM0_BL 3V PWM output, for LCD backlight dimming. pulled up to VCC3V3_SYS on LCD side.
24 GPIO4_D5_LCD_BL_EN 3V output for turning on/off the LCD backlight
25 GND Backlight ground
26 GND Backlight ground
27 GND Backlight ground
28 VCC12V0_SYS 12V Power output for Backlight Power
29 VCC12V0_SYS 12V Power output for Backlight Power
30 VCC12V0_SYS 12V Power output for Backlight Power
  • MIPI-DSI接口引脚定义
0.5mm FPC 连接器
Pin# Assignment Description
1, 2, 3 VCC5V0_SYS 5V power output
4 GND Return current path
5 I2C4_SDA 3V I2C data signal, Connect to touch panel
6 I2C4_SCL 3V I2C clock signal, Connect to touch panel
7 GND Return current path
8 GPIO1_C4_TP_INT 3V interrupt input, Connect to the interrupt output of touch panel
9 GND Return current path
10 PWM0_BL 3V PWM output, for LCD backlight dimming
11 GND Return current path
12 GPIO4_D5_LCD_BL_EN 3V output for turning on/off the LCD backlight
13 GPIO4_D6_LCD_RST_H 3V output for reseting the LCD module
14 GPIO1_B5_TP_RST 3V output for reseting touch panel, Connect to the reset input of touch panel
15 GND Return current path
16 MIPI_TX0_D3N MIPI DSI negative differential data line transceiver output
17 MIPI_TX0_D3P MIPI DSI positive differential data line transceiver output
18 GND Return current path
19 MIPI_TX0_D2N MIPI DSI negative differential data line transceiver output
20 MIPI_TX0_D2P MIPI DSI positive differential data line transceiver output
21 GND Return current path
22 MIPI_TX0_D1N MIPI DSI negative differential data line transceiver output
23 MIPI_TX0_D1P MIPI DSI positive differential data line transceiver output
24 GND Return current path
25 MIPI_TX0_D0N MIPI DSI negative differential data line transceiver output
26 MIPI_TX0_D0P MIPI DSI positive differential data line transceiver output
27 GND Return current path
28 MIPI_TX0_CLKN MIPI DSI negative differential clock line transceiver output
29 MIPI_TX0_CLKP MIPI DSI positive differential clock line transceiver output
30 GND Return current path
  • MIPI-CSI接口引脚定义
0.5mm FPC 连接器
MIPI-CSI2也可作为MIPI-DSI接口连接LCD显示屏
Pin# MIPI-CSI1 MIPI-CSI2 Description
1 VCC5V0_SYS VCC5V0_SYS 5V Power ouput
2 VCC5V0_SYS VCC5V0_SYS 5V Power ouput
3 GND GND Return current path
4 VCC_CSI_AF2.8V VCC_CSI_AF2.8V 2.8V Power for VCM
5 VCC_CSI_1.2V VCC_CSI_1.2V 1.2V Power for image sensor core circuit
6 VCC1V8_CAM VCC1V8_CAM 1.8V power for I/O circuit
7 VCC_CSI_2.8V VCC_CSI_2.8V 2.8V power for image sensor analog circuit
8 VCC_CSI_1.0V VCC_CSI_1.0V 1.0V Power for image sensor core circuit
9 I2C1_SCL I2C2_SCL 1.8V I2C clock signal
10 I2C1_SDA I2C2_SDA 1.8V I2C data signal
11 MIPI_CSI0_RST MIPI_CSI1_RST reset camera module
12 MIPI_CSI0_PWN MIPI_CSI1_PWN Power down camera module
13 GND GND Return current path
14 GPIO2_B3_CIF_CLKOUTA GPIO2_B3_CIF_CLKOUTA MCLK to camera module
15 GND GND Return current path
16 MIPI_RX0_D3P MIPI_TX1/RX1_D3P MIPI CSI positive differential data line transceiver output
17 MIPI_RX0_D3N MIPI_TX1/RX1_D3N MIPI CSI negative differential data line transceiver output
18 GND GND Return current path
19 MIPI_RX0_D2P MIPI_TX1/RX1_D2P MIPI CSI positive differential data line transceiver output
20 MIPI_RX0_D2N MIPI_TX1/RX1_D2N MIPI CSI negative differential data line transceiver output
21 GND GND Return current path
22 MIPI_RX0_D1P MIPI_TX1/RX1_D1P MIPI CSI positive differential data line transceiver output
23 MIPI_RX0_D1N MIPI_TX1/RX1_D1N MIPI CSI negative differential data line transceiver output
24 GND GND Return current path
25 MIPI_RX0_CLKP MIPI_TX1/RX1_CLKP MIPI CSI positive differential clock line transceiver output
26 MIPI_RX0_CLKN MIPI_TX1/RX1_CLKN MIPI CSI negative differential clock line transceiver output
27 GND GND Return current path
28 MIPI_RX0_D0P MIPI_TX1/RX1_D0P MIPI CSI positive differential data line transceiver output
29 MIPI_RX0_D0N MIPI_TX1/RX1_D0N MIPI CSI negative differential data line transceiver output
30 GND GND Return current path
  • M.2 PCIe接口引脚定义
PCIe Gen 2.1 x4
M.2 Key M Connector for Socket 2/Socket 3 PCIe-based Module, such as PCIe SSD
连接器型号: MDT-420-M-01002
Pin# Assignment Description Pin# Assignment Description
1 GND Return current path 2 VCC3V3_SYS 3.3V Power output
3 GND Return current path 4 VCC3V3_SYS 3.3V Power output
5 PCIE_RX3_N PCIe differential data input signals 6 N/C no connection
7 PCIE_RX3_P PCIe differential data input signals 8 N/C no connection
9 GND Return current path 10 N/C no connection
11 PCIE_TX3N PCIe differential data output signals 12 VCC3V3_SYS 3.3V Power output
13 PCIE_TX3P PCIe differential data output signals 14 VCC3V3_SYS 3.3V Power output
15 GND Return current path 16 VCC3V3_SYS 3.3V Power output
17 PCIE_RX2_N PCIe differential data input signals 18 VCC3V3_SYS 3.3V Power output
19 PCIE_RX2_P PCIe differential data input signals 20 N/C no connection
21 GND Return current path 22 N/C no connection
23 PCIE_TX2N PCIe differential data output signals 24 N/C no connection
25 PCIE_TX2P PCIe differential data output signals 26 N/C no connection
27 GND Return current path 28 N/C no connection
29 PCIE_RX1_N PCIe differential data input signals 30 N/C no connection
31 PCIE_RX1_P PCIe differential data input signals 32 N/C no connection
33 GND Return current path 34 N/C no connection
35 PCIE_TX1N PCIe differential data output signals 36 N/C no connection
37 PCIE_TX1P PCIe differential data output signals 38 DEVSLP/NC internal pull up to VCC3V3_SYS with 10K
39 GND Return current path 40 I2C2_SCL 1.8V I2C clock signal
41 PCIE_RX0_N PCIe differential data input signals 42 I2C2_SDA 1.8V I2C data signal
43 PCIE_RX0_P PCIe differential data input signals 44 GPIO2_A2_PCIE_ALERT# 1.8V GPIO signal
45 GND Return current path 46 N/C no connection
47 PCIE_TX0N PCIe differential data output signals 48 N/C no connection
49 PCIE_TX0P PCIe differential data output signals 50 GPIO2_A4_PCIE_RESET# 1.8V GPIO signal
51 GND Return current path 52 CLKREQ#/NC internal pull down to GND with 0R
53 PCIE_REF_CLKN differential reference clock out for PCIe peripheral 54 GPIO2_A3_PCIE_WAKE# 1.8V GPIO signal
55 PCIE_REF_CLKP differential reference clock out for PCIe peripheral 56 N/C no connection
57 GND Return current path 58 N/C no connection
59 Connector Key Connector Key 60 Connector Key Connector Key
60 Connector Key Connector Key 61 Connector Key Connector Key
62 Connector Key Connector Key 63 Connector Key Connector Key
64 Connector Key Connector Key 65 Connector Key Connector Key
66 Connector Key Connector Key 67 N/C no connection
68 RTC_CLKO_SOC 1.8V 32.768KHz clock output 69 N/C no connection
70 VCC3V3_SYS 3.3V Power output 71 GND Return current path
72 VCC3V3_SYS 3.3V Power output 73 GND Return current path
74 VCC3V3_SYS 3.3V Power output 75 GND Return current path
  • ADC接口引脚定义
ADC输入范围 : 0~1.8V
Pin# Assignment
1 GND
2 VCC_1V8
3 ADC_IN0
4 ADC_IN2
5 ADC_IN3
  • 散热风扇接口引脚定义
连接器型号: BM03B-GHS-TBT
Pin# Assignment Description
1 GND 0V
2 12V 12V output ,controlled by GPIO4_C6/PWM1
3 GPIO2_A6_FAN_TACH connect to tachometer output signal , or float
  • 调试串口引脚定义
3V电平, 波特率1500000bps
Pin# Assignment Description
1 GND 0V
2 VCC5V0_SYS 5V power output
3 UART2DBG_TX output
4 UART2DBG_RX intput
  • 电源接口
  • DC-12V/2A输入, 5.5*2.1mm DC电源接口
DC-007B.png
  • 电源按键
板子处于关机状态时,需要按下电源按键(大于0.5秒,PWR灯亮即可松开)才会开机.
当板子已正常启动,则电源按键的功能与系统有关,例如在安卓系统下,短按进入休眠,或唤醒,长按则显示关机/重启界面.
  • USB接口
USB Type-C 接口具有2A过流保护功能.
USB 3.0 接口具有2A过流保护功能.
两个USB 2.0接口共享2A过流保护, 也就是说2个接口的负载总和不应超过2A, 否则触发保护, 2个接口上的设备都会被切断电源.
  • BOOT按键
按下BOOT按键可以阻止板子从eMMC启动系统; 当板子无法从eMMC和tf卡启动系统时, 板子就会进入MASKROM模式; MASKROM模式下, 可以通过Type-C接口更新板子的系统.
  • RTC
我们实测的RTC备份电流为27uA.
连接器型号: Molex 53398-0271
其他说明
  1. 只能从DC电源接口给板子供电, 其他接口的电源引脚均为输出引脚.
  2. 修改板子为上电即开机的方法(改后不再保修)
  3. 板子原理图: NanoPC-T4-1802-Schematic.pdf

3.2 尺寸

NanoPC-T4 Dimensions

PCB dxf文件, 仅供做产品时结构设计使用: NanoPC-T4_1802_Drawing(dxf).zip

4 快速入门

4.1 准备工作

要开启你的NanoPC-T4,请先准备好以下硬件:

  • NanoPC-T4主板
  • Type-C数据线
  • TF卡: Class10或以上的8GB microSD卡
  • USB转串口适配器(可选,用于调试或PC上进行操作)
  • 一个DC接口的外接电源,要求输出为12V/2A
  • 一台支持HDMI输入的显示器或者电视(或选购LCD配件)
  • 一套USB键盘鼠标,同时连接更多USB的设备时还需要USB HUB
  • 一台电脑,需要联网,建议使用Ubuntu 18.04 64位系统

4.2 烧写系统到eMMC

NanoPC-T4支持三种方式烧写系统到eMMC:

  • 方法1)SD卡脱机烧写,用SD卡启动开发板,通过EFlasher工具进行烧写 (推荐使用此方法)
  • 方法2)通过USB Type-C数据线,在Windows下用Rockchip提供的工具进行烧写
  • 方法3)通过USB Type-C数据线,在Linux下用Rockchip提供的工具进行烧写

建议采用第一种方法进行烧写。

4.2.1 使用SD卡脱机烧写

访问此处的下载地址下载SD卡脱机烧写所需的文件及工具:

Image Files
rk3399-eflasher-android8-YYYYMMDD.img.zip Android8.1 系统固件
rk3399-eflasher-android7-YYYYMMDD.img.zip Android7.1.2 系统固件
rk3399-eflasher-friendlydesktop-bionic-4.4-arm64-YYYYMMDD.img.zip 64位FriendlyDesktop桌面固件(带X-Window),基于Ubuntu Desktop 18.04构建
rk3399-eflasher-friendlycore-bionic-4.4-arm64-YYYYMMDD.img.zip 64位FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core 18.04构建
rk3399-eflasher-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip Lubuntu桌面版固件 (内置Qt 5.10.0)
Flash Utility:
win32diskimager.rar Windows utility. Under Linux users can use "dd"

详细操作步骤如下:

  • 准备一张8G或以上容量的SDHC卡;
  • 下载并解压 固件文件rk3399-eflasher-OSNAME-YYYYMMDD.img.zip 和 工具win32diskimager;
  • 在Windows下以管理员身份运行 win32diskimager,在界面上选择你的SD卡盘符,选择解压后的EFlasher固件,点击 Write 按钮烧写到SD卡; 或者在 Linux下使用 dd 命令将 rk3399-eflasher-OSNAME-YYYYMMDD.img 写入 SD卡;
  • 将SD卡从电脑端弹出,插入NanoPC-T4的microSD卡槽;
  • 长按NanoPC-T4上的Power键直到板上的PWR灯亮,系统会从SD卡启动,并自动启动 EFlasher 烧写工具,你有多种途径可以操作 EFlasher:

方法1: 连接LCD或HDMI显示屏,在图形界面上操作EFlasher,如果屏幕不支持触摸,则需要使用USB鼠标来操作;
方法2: 将开发板通过网线接入局域网,通过 ssh 登录开发板,然后输入命令 eflasher,根据命令行的提示进行操作;(注: ssh登录的用户是root,密码为fa,开发板IP可查看路由器后台获得)
方法3: 通过调试串口登录到串口终端,在终端上输入命令 eflasher 来操作;
方法4: 连接一个lcd2usb配件到NanoPC-T4上,按配件上面的K1键可以选择要烧写的系统,然后按K2键确定烧写,烧写进度会在lcd2usb上显示;

  • 烧写完成后,轻按Power键关机,从NanoPC-T4端弹出SD卡;
  • 长按Power开机,会从eMMC启动你刚刚烧写的系统;

4.2.2 Windows下通过Type-C数据线进行烧写

访问此处的下载地址下载Windows下使用Type-C数据线烧写所需的文件及工具:

Image Files
rk3399-typec-android8-YYYYMMDD.tgz Android 8.1固件
rk3399-typec-android7-YYYYMMDD.tgz Android 7.1.2固件
rk3399-typec-friendlycore-bionic-4.4-arm64-YYYYMMDD.tgz FriendlyCore固件,内置Qt5.10
rk3399-typec-friendlydesktop-bionic-4.4-arm64-YYYYMMDD.tgz FriendlyDesktop固件,自带X Window图形界面
rk3399-typec-lubuntu-desktop-YYYYMMDD.tgz Lubuntu桌面版固件,自带X Window图形界面
Flash Utility:
AndroidTool_Release_v2.54.zip Rockchip提供的Windows下通过Type-C数据线烧写系统的工具
DriverAssitant_v4.5.tgz Rockchip提供的Windows下的USB驱动,使用AndroidTool烧写系统时需要安装此驱动

视频教程:
https://www.bilibili.com/video/av38052562/

详细操作步骤如下:

  • 初次使用时,请先下载DriverAssitant_v4.5.tgz,解压后安装USB驱动;
  • 根据自己的需要下载images-for-eflasher下的系统固件并解压,如Android 7的固件文件是android-nougat-images.tgz,其中固件解压后的文件idbloader.img和info.conf,使用AndroidTool时可忽略。
  • 下载AndroidTool_Release_v2.54.zip 并解压,以管理员身份运行AndroidTool.exe
  • 可根据Android开发工具手册.pdf,导入分区配置即固件中的parameter.txt,然后指定各分区的烧写文件路径,如下图所示:

AndroidTools DI 01.png

  • 连接好电源及HDMI显示设备,连接Type-C数据线到PC,按住Recovery键再长按(1.5秒以上)Power键开机,AndroidTool会显示“发现一个LOADER设备”
    a) 如果eMMC没有烧写过系统或eMMC的系统被擦除或损坏则会显示为MASKROM设备;
    b) 您也可以按住BOOT键再长按Power键开机,同时持续按住BOOT键5秒以上强制进入MASKROM模式;
    c) 如果显示“没有发现设备”,请先检查是否已成功安装驱动,检查Type-C数据线然后按上述方法重新开机,或按住Recovery键再按Reset键;
    d) 另外,如果已成功启动系统,可通过串口、adb或ssh等方式在板子上运行reboot loader重启板子并进入LOADER模式。
  • 点击执行即可下载固件到eMMC,请耐心等待,烧写成功结束后将自动重启。
  • 如果需要更换系统,例如eMMC已经安装了Linux而现在需要烧写Android,需要先对eMMC进行一些擦写操作:

你需要在界面上选择 “升级固件”-〉界面上选择固件 “MiniLoaderAll.bin“,然后点击“擦除Flash”。
Rk-clean-emmc.png

4.2.3 Linux下通过Type-C数据线进行烧写

可访问此处的下载地址下载需要的固件文件及工具。

Image Files
rk3399-typec-android8-YYYYMMDD.tgz Android 8.1固件
rk3399-typec-android7-YYYYMMDD.tgz Android 7.1.2固件
rk3399-typec-friendlycore-bionic-4.4-arm64-YYYYMMDD.tgz FriendlyCore固件,内置Qt5.10
rk3399-typec-friendlydesktop-bionic-4.4-arm64-YYYYMMDD.tgz FriendlyDesktop固件,自带X Window图形界面
rk3399-typec-lubuntu-desktop-YYYYMMDD.tgz Lubuntu桌面版固件,自带X Window图形界面
Flash Utility:
Linux_Upgrade_Tool_1.27.rar Rockchip提供的Linux下通过Type-C数据线更新系统的工具

Linux_Upgrade_Tool是Rockchip提供的Linux下的命令行工具,用于通过Type-C数据线来升级eMMC中的固件,同时还提供了如擦除eMMC、直接读/写eMMC等功能。

  • 安装upgrade_tool: 下载Linux_Upgrade_Tool_1.27.rar后解压即可获得upgrade_tool,然后复制并设置权限
 sudo cp upgrade_tool /usr/local/sbin
 sudo chown root:root /usr/local/sbin/upgrade_tool
 sudo chmod 0755 /usr/local/sbin/upgrade_tool
  • 根据自己的需要下载images-for-eflasher下的系统固件并解压,如Lubuntu的固件文件是lubuntu-desktop-images.tgz
  • 参考“使用AndroidTool”,启动板子并进入LOADER或MASKROM模式;
  • 运行以下命令即可烧写Lubuntu系统并重启:
 sudo upgrade_tool ul MiniLoaderAll.bin
 sudo upgrade_tool di -p parameter.txt
 sudo upgrade_tool di uboot uboot.img
 sudo upgrade_tool di trust trust.img
 sudo upgrade_tool di resource resource.img
 sudo upgrade_tool di kernel kernel.img
 sudo upgrade_tool di boot boot.img
 sudo upgrade_tool di rootfs rootfs.img
 sudo upgrade_tool RD
  • 如果想烧写Android 7到eMMC,可下载固件文件并解压后运行以下命令:
 sudo upgrade_tool ul MiniLoaderAll.bin
 sudo upgrade_tool di -p parameter.txt
 sudo upgrade_tool di uboot uboot.img
 sudo upgrade_tool di trust trust.img
 sudo upgrade_tool di misc misc.img
 sudo upgrade_tool di resource resource.img
 sudo upgrade_tool di kernel kernel.img
 sudo upgrade_tool di boot boot.img
 sudo upgrade_tool di recovery recovery.img
 sudo upgrade_tool di system system.img
 sudo upgrade_tool RD

如果固件中的MiniLoaderAll.bin版本不同,或烧写与eMMC中不同的系统,则可能会遇到无法成功启动的情况,需要擦除eMMC。
先启动板子并进入LOADER,运行以下命令可删除eMMC,如程序显示"Download Boot Start"后超过10s无变化可按Reset键,然后再运行一次以下命令。

 sudo upgrade_tool EF MiniLoaderAll.bin

擦除成功结束后将显示"Erase flash ok."

4.3 快速从SD卡启动

首先访问此处的下载地址下载需要的固件文件:

  • 您需要准备一张8G或以上容量的SDHC卡,该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。
Image Files
rk3399-sd-friendlydesktop-bionic-4.4-arm64-YYYYMMDD.img.zip FriendlyDesktop 桌面版固件,基于Ubuntu 18.04 64位,带LXDE图形桌面
rk3399-sd-friendlycore-bionic-4.4-arm64-YYYYMMDD.img.zip FriendlyCore 系统固件 (内置Qt 5.10.0),基于Ubuntu core
rk3399-sd-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip LUbuntu桌面版固件,自带X Window图形界面
Flash Utility:
win32diskimager.rar Windows utility. Under Linux users can use "dd"
  • 将固件和烧写工具分别解压,在Windows下插入SD卡(限8G及以上的卡),以管理员身份运行 win32diskimager 工具, 在win32diskimager工具的界面上, 选择你的SD卡盘符,选择你要烧写的系统固件,点击 Write 按钮烧写即可。
  • 当制作完成 SD 卡后,拔出 SD 卡插入卡槽,上电启动即可。
  • Android系统不支持从SD卡启动,如果你需要运行Android系统,请购买eMMC配件,然后参考后面的章节内容,将Android系统烧写到eMMC运行。


4.4 串口调试

如果你想查看NanoPC-T4启动时更多详细的信息,或者更直接的对其进行控制,建议连接并使用调试串口。

  • 使用准备好的USB转串口适配器和连接线(需另购),连接开发板:
Pin# 开发板调试串口 USB转串口适配器
1 GND GND
2 VCC5V0_SYS NC (不需要连接)
注: Matrix USB2UART适配器,请将5V ON/OFF切换到OFF
3 UART2DBG_TX RX
4 UART2DBG_RX TX
  • 将USB转串口适配器连接到PC Linux,通常会识别为ttyUSB0,或使用以下命令来确定设备名字:
 dmesg | grep ttyUSB
 ls -l /dev/ttyUSB*
  • 在PC Linux安装minicom,运行minicom,配置串口设备和参数(1500000 Bps, 8N1, 流控无)
 sudo apt-get install minicom
 minicom -s

注意: RK3399调试串口的波特率缺省是1500000,有些适配器可能达不到此速率,还有可能因USB延长线或连接到USB hub出现异常(如乱码),需检查并更换。

5 FriendlyDesktop系统的使用

Friendlydesktop-home.png

Arduino
Firefox
Scratch

FriendlyDesktop 是一个轻量级的Ubuntu桌面环境,其底层基于LXDE桌面构建,具有如下特点:
    最新版本 - 基于Ubuntu 18.04 64位系统构建。
    易于开发 - 兼容FriendlyCore的特性,集成经过优化的Qt5.10, QtCreator和Arduino IDE。
    轻巧 - 只需要很少的CPU资源即可执行顺畅,而且当内存容量充足时表现特别出色。
    省能源 - 它比其他常见的系统需要较少的资源运行相同的工作。
    简朴美 - 借由GTK+ 2,它拥有美观、支持国际化的用户界面。
    使用简单 - 提供用户如微软Windows般的应用程序列表。
    可自定义性 - 用户可以轻易自定义LXDE的外观。
    兼容标准 - 兼容于freedesktop.org标准。
用于友善电子RK3399平台的FriendlyDesktop已经最佳化了对Mali GPU和VPU的支持,系统中已集成X.org驱动,支持Hardware Cursor、OpenGL图形加速等,支持4K硬解视频播放。

5.1 帐户与密码

普通用户:

   用户名: pi
   密码: pi

Root用户:

   用户名: root
   密码: fa

5.2 设置WiFi无线链接

点击FriendlyDesktop右上角的网络图标,选择你要连接的WiFi热点,按界面提示操作即可。

5.3 设置HDMI/DP屏幕分辨率

进入系统菜单 Perferences -> Monitor Settings界面进行设置即可。
推荐分辨率:1920x1080@60Hz

5.4 调节HDMI边界

打开命令行终端,输入命令进行操作,有几个注意事项:
1) 需要登录桌面才能操作,如果Desktop停留在Login是无法设置的;
2) 如果你是在 ssh 登录的终端,请使用与桌面登录相同的用户名,默认是 pi,不能使用root用户,同时,你需要赋值 DISPLAY 变量:

export DISPLAY=:0.0

5.4.1 查询显示器支持哪些分辨率

xrandr -q

输出示例:

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
eDP-1 disconnected primary (normal left inverted right x axis y axis)
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1920x1080     60.00*+  50.00  
   1280x720      60.00    50.00  
   720x576       50.00  
   720x480       59.94

5.4.2 设置分辨率

例如设置为 1920X1080@60Hz:

xrandr --output HDMI-1 --mode 1920x1080 --refresh 60

5.4.3 设节HDMI输出边界

For example, the transformation scaling horizontal coordinates by 0.8, vertical coordinates by 1.04 and moving the screen by 35 pixels right and 19 pixels down:

xrandr --output HDMI1 --transform 0.80,0,-35,0,1.04,-19,0,0,1

5.4.4 开机自动调整

编辑~/.config/autostart/lxrandr-autostart.desktop,将完整的xrandr命令写入到Exec=开头的键中,如下所示:

[Desktop Entry]
Type=Application
Name=LXRandR autostart
Comment=Start xrandr with settings done in LXRandR
Exec=sh -c 'xrandr --output HDMI-1 --mode 1920x1080 --refresh 50 --transform 1.04,0,-35,0,1.05,-30,0,0,1'
OnlyShowIn=LXDE

5.5 设置eDP显示屏旋转

如果要旋转eDP屏的显示,可使用命令xrotate.sh 来旋转90/180/270度。 以root用户运行以下命令,即可顺时钟旋转90度,命令执行过程中,会重启lightdm服务让设置立即生效:

sudo xrotate.sh -m CW -r

其他旋转角度,可以通过运行 xrotate -h 命令获得详细的参数说明。
另外,该命令暂不支持HDMI显示的旋转,用户参考X11的文档,自行编辑 /etc/X11/xorg.conf 配置文件。

注意:硬解视频时,视频窗口并不会跟随屏幕旋转。

5.6 测试OpenGL ES性能

在系统菜单 System Tools 中点击 Terminator 打开命令行终端,输入以下命令即可测试:

taskset -c 4-5 glmark2-es2

Friendlydesktop-glmark-es.png
Friendlydesktop-glmark-es2-score.jpg

5.7 如何播放4K视频

5.7.1 使用Qt硬解播放器播放

FriendlyDesktop预装了Qt播放器Qt5-VideoPlayer,该播放器已经适配Rockchip的gstreamer插件,支持4K视频的硬解播放, 播放器启动方法: 在FriendlyDesktop上打开菜单 Sound & Video,点击 Qt5-VideoPlayer。

在播放器界面上,点击左下角的 Open 按钮加载一个视频文件到右边的播放列表,双击播放列表上的文件开始播放。播放器的界面如下所示,可以设置全屏播放,也可以调节音量:
Friendlydesktop-player.jpg

5.7.2 命令行播放

打开命令行终端,输入以下命令即可测试:

gst-player.sh

默认音频会输出到耳机孔, 可以使用 which gst-player.sh 找到这个脚本的位置,自已定制其播放的行为。

5.8 如何使用USB摄像头

将USB摄像头(比如罗技C270/C920)插入开发板,在FriendlyDesktop上打开菜单 Other,启动 xawtv 程序即可预览摄像头的图像。

5.9 如何通过蓝牙传输文件

在FriendlyDesktop上打开菜单 Preferences,启动 Bluetooth Manager,在界面上点 Search 即可搜索周边的蓝牙设备, 点击你的设备进行配对,配对后即可发送文件,如下图所示:
Friendlydesktop-ble-sendfile.jpg

5.10 安装使用OpenCV

在 FriendlyDesktop 点击菜单 System Tools -> Terminator 打开终端,输入以下命令安装 OpenCV 3.4:

su -
cd /root/
git clone https://github.com/friendlyarm/install-opencv-on-friendlycore
cd install-opencv-on-friendlycore
./install-opencv.sh
cp examples/cv-env.sh /usr/bin/

安装完成后,下面来编译并运行OpenCV人脸识别的例子:

su -
cd /usr/local/share/OpenCV/samples/cpp
g++ -ggdb facedetect.cpp -o facedetect `pkg-config --cflags --libs /usr/local/lib/pkgconfig/opencv.pc`
. setqt5env
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml" --scale=1.3 /usr/local/share/OpenCV/samples/data/data/lena.jpg

例子的运行结果如下图所示:
Friendlydesktop-opencv.png

5.11 开发Qt程序

FriendlyDesktop下提供了重新编译的 Qt 5.10.0,支持RK3399的OpenGL ES和Gstreamer 1.0的硬件加速,同时集成了 QtCreator IDE,已配置好可以直接在开发板上编译并运行程序,如下所示:
Friendlydesktop-qtcreator.png

5.12 访问GPIO/I2C/串口等硬件资源

请参考下面的文档:

5.13 切换音频默认输出设备

5.13.1 设置默认的输出设备

编辑文件 /etc/pulse/default.pa,修改 set-default-sink 的值,值为0时表示从HDMI出声,1则表示从耳机接口出声,如下所示:

set-default-sink 0

5.13.2 播放时临时切换

这种方法仅对当前的播放进程有效:
打开菜单 "Sound & Video" -> "PulseAudio Volume Control", 在界面上点击 "Built-in Audio Stereo" 按钮切换不同的输出设备,比如在HDMI与耳机接口之间切换。

5.14 禁止系统自动休眠

打开命令行终端,输入以下命令:

xset s off
xset -dpms

5.15 播放网络流媒体(或网络摄像头)

打开命令行终端,输入以下命令:

gst-launch-1.0 rtspsrc location="rtsp://admin:12345@192.168.1.120:554/live/main" ! rtph264depay ! decodebin ! rkximagesink

请将 rtsp:// 后面的地址改成真实的地址。


5.16 Linux下使用MIPI摄像头OV13850

摄像头连接方法: 由于Linux系统的内核目前仅配置了 MIPI-CSI1,所以摄像头只能连接在 MIPI-CSI1 接口,如下图所示:
T4-mipi-single-camera.jpg


为了方便测试摄像头,我们提供了一个脚本gst-camera.sh可以在命令行测试摄像头的拍照和录像功能,这个脚本可以用以下命令下载安装:

sudo wget http://112.124.9.243:8888/rk3399/gst-camera.sh -O `which gst-camera.sh`

5.16.1 gst-camera.sh 参数说明

参数 功能
--index或-i 选择要使用的摄像头的序号,可选值为0和1,当同时连接两个摄像头时,指定为1表示要操作第二个摄像头
--mode或-m 指定摄像头的分辨率,比如720P 30FPS 则使用参数为 width=1280,height=720,framerate=30/1
--action或-a 指定命令要执行的动作,可选参数为: preview、photo和video,分别对应预览、拍照和录像
--output或-o 指定输出的文件名,用于拍照和录像时指定输出文件名
--verbose或-v 指定为yes时,会输出调用gst-launch-1.0命令的完整命令行

5.16.2 gst-camera.sh 使用方法

  • 预览图像
gst-camera.sh --action preview
  • 拍照

用以下命令拍照一张照片,存储为文件 1.jpg:

gst-camera.sh --action photo -output 1.jpg
  • 录像并预览

用以下命令启动边预览边录像,存储为视频文件 1.ts,录像时使用了硬件编码:

gst-camera.sh --action video -output 1.ts


  • 显示完整的命令

加入 --verbose yes 的参数,会显示最终的 gsteamer 命令,例如:

gst-camera.sh --action video --output 1.ts --verbose yes

你会得到以下完整的 gsteamer 命令,这对你开发会有帮助:

gst-launch-1.0 rkisp num-buffers=512 io-mode=4 path-iqf=/etc/cam_iq/ov13850.xml \
    ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \
    ! tee name=t t. ! queue ! kmssink t. ! queue ! mpph264enc \
    ! queue ! h264parse ! mpegtsmux ! filesink location=1.ts

5.17 FriendlyDesktop下使用NVME SSD

请查看这篇文文档: Linux-Using-NVME-SSD

6 FriendlyCore的使用

6.1 介绍

FriendlyCore,是一个没有预装X Desktop,基于Ubuntu core构建的系统 (版本: 18.04)。

FriendlyCore的定位是为企业客户提供可直接用于产品的基础OS,Core的含义是指"核心"与"可量产",FriendlyCore与Ubuntu base最小系统的定位不同,FriendlyCore并不只是提供命令行界面,它提供了两种形式的图形界面:
1)针对RK3399优化的Qt 5.10.0,支持GPU和VPU加速,提供QtQuick/QtWebEngine/QtMultimedia/WebGL等Qt模块以及KMS、EGLFS和XCB三种显示插件;
2) 集成Xorg最小系统,可以以最轻量的方式运行X11应用,X11服务器同样支持硬件加速;

FriendlyCore在 RK3399 平台下的其他特性还包括:

  • 支持7寸电容屏HD702,与HDMI同时连接时,可实现双屏异显,或者同步显示
  • 支持 Gstreamer 1.0 多媒体框架
  • 支持命令行和Qt硬解播放器
  • 支持Qt5 WebGL,可以在其他设备上用浏览器上显示Qt界面
  • 支持Qt5 VNC,可以将Qt应用作为VNC Server的形式运行,轻松实现远程控制
  • 支持蓝牙,已预装bluez等相关软件包

6.2 运行FriendlyCore

  • 对于有HDMI接口的板子,如果要在电视上进行操作,您需要连接USB鼠标和键盘。
  • 如果您需要进行内核开发,最好选购一个串口配件,连接了串口,则可以通过串口终端对开发板进行操作。

NanoPC-T4需要使用USB转串口模块,连接方法如下图所示:
T4usb2serialport.jpg

  • FriendlyCore默认帐户:

普通用户:

   用户名: pi
   密码: pi

Root用户:

   用户名: root
   密码: fa

默认会以 pi 用户自动登录,你可以使用 sudo npi-config 命令取消自动登录。

  • 更新软件包:
$ sudo apt-get update

6.3 使用npi-config配置系统

npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下命令即可进入:

$ sudo npi-config

npi-config的显示界面如下所示:
npi-config

6.4 开发Qt程序

FriendlyELEC为RK3399平台移植的 Qt 5.10.0 支持以下显示设备插件:KMS、EGLFS和XCB,这三种插件均支持OpenGL ES和GPU硬件加速,只是调用方式不同,具体如下:

  • KMS – 使用Linux内核的DRM显示接口来渲染界面
  • EGLFS – 使用OpenGL ES接口来渲染界面
  • XCB – 在X11服务器上运行,并集成到X11窗口环境


三种插件所支持的Qt特性会有所不同,请根据你的需求来选择:

插件名称 OpenGL ES QtWebEngine QtMultimedia 视频硬解播放 双屏异显
KMS Yes No Yes No Yes
EGLFS Yes No Yes No No
XCB Yes Yes Yes Yes Yes

建议使用 KMS或XCB 插件。

为了方便用户测试,FriendlyCore平台提供了4个脚本文件用于设置Qt环境变量,分别为:

脚本文件名 作用
/usr/bin/setqt5env-kms 设置kms插件所需要的环境变量
/usr/bin/setqt5env-eglfs 设置eglfs插件所需要的环境变量
/usr/bin/setqt5env-xcb 设置xcb插件所需要的环境变量
/usr/bin/setqt5env-nogui 仅供无界面的Qt程序使用

例如要设置用KMS插件来显示程序界面,可以使用以下命令:

. setqt5env-kms
./apps

(注: .与字母s之间有个空格)

6.4.1 Qt开发环境搭建

FriendlyELEC为RK3399平台提供了两种交叉编译Qt程序的方法:

6.4.2 Qt示例演示

FriendlyCore系统内置了几个很有特色的Qt演示程序,方便测试Qt5的特性,下面分别介绍它们:

6.4.3 Qt Quick示例:CinematicExperience


Qt Quick 是 Qt 提供的一种高级用户界面技术,使用它可轻松地为移动和嵌入式设备创建流畅的用户界面。Qt Quick 应用默认使用 OpenGL ES ,渲染效率很高,你可以用它创建非常炫非常酷非常迷人的界面。
CinematicExperience是一个用Qt Quick实现的影片选择界面。
该例子使用了Qt QML中的界面动态转换、粒子模拟和着色器特效,所以这个示例能体现RK3399的硬件性能与软件优化,在RK3399平台上非常流畅。
在命令行执行以下命令启动该示例:

cd /opt/Qt5_CinematicExperience
./run.sh

界面如下所示:
Qt5-cinematicExperience.gif

6.4.4 Qt WebEngine示例:网页浏览器

Qt WebEngine使用了Chromium作为渲染引挚,对HTML5支持完美。
示例展示的网页浏览器是 Qt5 自带的Demo,运行命令如下:

cd /opt/qt5-brower
./run.sh

界面如下所示:
Qt5-brower.jpg

注:Qt WebEngine在FriendlyCore平台上需要使用Xcb插件来运行。

6.4.5 Qt 双屏异显示例

这是一个比较简单的DEMO,演示了在同时连接HDMI和eDP LCD屏的情况下,用Qt实现两个屏幕显示不同的内容, 用以下命令启动:

cd /opt/qt5-multi-screen-demo
./run.sh

双屏异显的效果如下所示:
Qt5-multi-screen.jpg

6.4.6 Qt Multimedia: 硬解播放器qt5-player

qt5-player播放器已经适配Rockchip的gstreamer插件,支持4K视频的硬解播放。
在命令行执行以下命令启动该示例:

cd /opt/qt5-player
./run.sh

播放器的界面如下所示,可以设置全屏播放,也可以调节音量:
Qt5-player.gif

6.4.7 Qt WebGL示例: nmapper

Qt WebGL允许你在其他设备的网页游览器查看并远程操作运行在开发板上的Qt程序,这个特性使得实现远程控制变得简单。
在运行示例之前,你的开发板需要先连接网络,然后在开发版本执行以下命令:

cd /opt/qt5-nmapper
./run-with-webgl.sh

然后在电脑或者手机上打开网页游览器,在浏览器的地址栏输入开发板的IP地址,应该就能看到Qt界面了,效果如下所示:
Qtwebgl.gif

6.4.8 Qt VNC示例: 智能家居控制界面

Qt VNC允许你将一个应用程序以VNC Server的形式运行,在其他设备上可以使用VNC Client来连接和控制,用QtWidgets或者QML编写的应用都是支持的。
执行以下命令启动:

cd /opt/qt5-smarthome
./run-with-vnc.sh

然后在电脑或者手机上安装并打开VNC viewer软件,输入开发板的IP地址加端口号5900,例如开发板的地址是192.168.1.100,就输入192.168.1.100:5900,连接后应该就能看到界面了,如下图所示:
Qt5smarthomevnc.png

6.4.9 Qt 双USB摄像头示例

本示例演示同时预览两个USB摄像头的图像,请在运行示例之前,先连接好两个USB摄像头和屏幕,一般来说标准的UVC摄像头都可以,不过还是建议使用以下我们测试过的型号:

序号 型号
1 罗技C270
2 罗技C270i
3 罗技C922 Pro

执行以下命令启动:

cd /opt/dual-camera
./run.sh

运行界面以及所使用的摄像头如下图所示:
Qt5dualcamera.jpg

6.5 开机自动运行Qt示例程序

使用npi-config工具进行开启:

sudo npi-config

进入Boot Options -> Autologin -> Qt/Embedded,选择Enable然后重启即可。

6.6 扩展TF卡文件系统

第一次启动FriendlyCore系统时,系统会自动扩展文件系统分区,请耐心等待,TF卡/eMMC的容量越大,需要等待的时间越长,进入系统后执行下列命令查看文件系统分区大小:

df -h

6.7 连接WiFi

无论是SD WiFi还是USB WiFi, 它们的连接方式都是一样的。正基科技的APXX系列芯片属于SD WiFi,另外系统默认也已经支持市面上众多常见的USB WiFi,已测试过的USB WiFi型号如下:

序号 型号
1 RTL8188CUS/8188EU 802.11n WLAN Adapter
2 RT2070 Wireless Adapter
3 RT2870/RT3070 Wireless Adapter
4 RTL8192CU Wireless Adapter
5 小米WiFi mt7601

目前使用 NetworkManager 工具来管理网络,其在命令行下对应的命令是 nmcli,要连接WiFi,相关的命令如下:

  • 切换到root账户
$ su root
  • 查看网络设备列表
$ nmcli dev

注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.

  • 开启WiFi
$ nmcli r wifi on
  • 扫描附近的 WiFi 热点
$ nmcli dev wifi
  • 连接到指定的 WiFi 热点
$ nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0

请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。
连接成功后,下次开机,WiFi 也会自动连接。

更详细的NetworkManager使用指南可参考这篇文章: Use NetworkManager to configure network settings

如果你的USB WiFi无法正常工作, 大概率是因为文件系统里缺少了对应的USB WiFi固件。对于Debian系统, 可以在Debian-WiFi里找到并安装USB WiFi芯片的固件。而对于Ubuntu系统, 则可以通过下列命令安装所有的USB WiFi固件:

$ apt-get install linux-firmware

一般情况下, 各种WiFi芯片的固件都存放在/lib/firmware目录下。


6.8 连接以太网

默认插上网线开机,会自动连接并通过DHCP获取IP地址,如需要配置静态IP地址,请参考 NetworkManager 的相关文档: Use NetworkManager to configure network settings

6.9 访问GPIO/I2C/串口等硬件资源

请参考下面的文档:

6.10 选择系统默认音频设备

如果当前系统存在多个音频设备, 例如HDMI-Audio、3.5mm耳机座、I2S-Codec时, 可以通过下列操作设置系统默认使用的音频设备。

  • 启动板子后,执行以下步骤安装alsa包:
$ apt-get update
$ apt-get install libasound2
$ apt-get install alsa-base
$ apt-get install alsa-utils
  • 安装好需要的库后,查看系统当前所有的声卡设备的序列号。这里假设aplay的输出如下, 并不是真实情况, 请根据实际情况进行相对应的修改:
$ aplay -l
card 0: HDMI
card 1: 3.5mm codec
card 2: I2S codec

上面的信息表示card 0代表HDMI-Audio,card 1代表3.5mm耳机座, card 2代表I2S-Codec,修改配置文件/etc/asound.conf如下表示选择HDMI-Audio:

pcm.!default {
    type hw
    card 0
    device 0
}
 
ctl.!default {
    type hw
    card 0
}

如果将card 0修改为card 1, 则表示选择3.5mm耳机座, 以此类推。
拷贝一首 .wav 格式的音乐到开发板上,播放音乐:

$ aplay /root/Music/test.wav

可以听见从系统默认的音频设备里输出音频。
如果您使用的开发板是H3/H5/H2+系列并且使用的是主线内核,那么更简便的方法是使用npi-config

6.11 运行X11程序

FriendlyCore系统集成了轻量级的Xorg,虽然没有窗口管理器,但是你仍然可以运行单一的X-Windows程序,例如要运行的程序是~/YourX11App,使用以下命令:

. /usr/bin/setqt5env-xcb
startx ~/YourX11App -geometry 1280x800

注意 “.” 与 /usr/bin/setqt5env-xcb 之间有一个空格,另外,-geometry后面的分辨率请更改为你的屏幕的实际分辨率。

6.12 Linux下使用MIPI摄像头OV13850

摄像头连接方法: 由于Linux系统的内核目前仅配置了 MIPI-CSI1,所以摄像头只能连接在 MIPI-CSI1 接口,如下图所示:
T4-mipi-single-camera.jpg


为了方便测试摄像头,我们提供了一个脚本gst-camera.sh可以在命令行测试摄像头的拍照和录像功能,这个脚本可以用以下命令下载安装:

sudo wget http://112.124.9.243:8888/rk3399/gst-camera.sh -O `which gst-camera.sh`

6.12.1 gst-camera.sh 参数说明

参数 功能
--index或-i 选择要使用的摄像头的序号,可选值为0和1,当同时连接两个摄像头时,指定为1表示要操作第二个摄像头
--mode或-m 指定摄像头的分辨率,比如720P 30FPS 则使用参数为 width=1280,height=720,framerate=30/1
--action或-a 指定命令要执行的动作,可选参数为: preview、photo和video,分别对应预览、拍照和录像
--output或-o 指定输出的文件名,用于拍照和录像时指定输出文件名
--verbose或-v 指定为yes时,会输出调用gst-launch-1.0命令的完整命令行

6.12.2 gst-camera.sh 使用方法

  • 预览图像
gst-camera.sh --action preview
  • 拍照

用以下命令拍照一张照片,存储为文件 1.jpg:

gst-camera.sh --action photo -output 1.jpg
  • 录像并预览

用以下命令启动边预览边录像,存储为视频文件 1.ts,录像时使用了硬件编码:

gst-camera.sh --action video -output 1.ts


  • 显示完整的命令

加入 --verbose yes 的参数,会显示最终的 gsteamer 命令,例如:

gst-camera.sh --action video --output 1.ts --verbose yes

你会得到以下完整的 gsteamer 命令,这对你开发会有帮助:

gst-launch-1.0 rkisp num-buffers=512 io-mode=4 path-iqf=/etc/cam_iq/ov13850.xml \
    ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \
    ! tee name=t t. ! queue ! kmssink t. ! queue ! mpph264enc \
    ! queue ! h264parse ! mpegtsmux ! filesink location=1.ts

6.13 FriendlyCore下使用NVME SSD

请查看这篇文文档: Linux-Using-NVME-SSD

7 Lubuntu 系统的使用

看这里: Lubuntu-RK3399
Lubuntu下使用NVME SSD: Linux-Using-NVME-SSD

8 Android8.1 系统的使用

我们为 NanoPC-T4 提供了完善的Android8.1 BSP,代码使用 gitlab.com 平台管理,完全开源,支持GPU加速和VPU硬件加速。
Rk3399android8.png


8.1 使用MIPI摄像头进行拍照和录像

NanoPC-T4在Android系统下,可以搭配 MIPI摄像头CAM1320 进行拍照和录像,操作比较简单,连接摄像头到NanoPC-T4的MIPI接口,开机进入 Android 系统,用系统自带的 Camera 应用即可完成拍照和录像,操作跟 Android 手机是一样的。
NanoPC-T4板上共有两个MIPI接口可以连接两个摄像头分别对应前置摄像头和后置摄像头,其对应关系如下表所示:
MIPI-CSI1 <--> Android 后置摄像头
MIPI-CSI2 <--> Android 前置摄像头

连接方法如下图所示:
T4-mipi-dual-camera.jpg

8.2 Android8.1 硬件访问

开发者可以通过FriendlyThings SDK在Android App中访问和控制主板上的各种硬件资源,比如Uart, SPI, I2C, GPIO等接口,详情可参考以下两份文档:

8.3 Android神经网络 NN SDK示例

Android8.1 BSP中包含了支持GPU加速的Android NN SDK,为了方便测试,Android8固件中也预装了原厂提供的Android NN示例程序:TfLiteCameraDemo,这是一个使用Rockchip AndroidNN GPU加速的MobileNet分类器Demo,运行时需要连接摄像头模块,USB和CSI摄像头都是支持的,通过点击 “TfLiteCameraDemo”图标进入示例,其运行效果如下所示:

TfLiteCameraDemo.png
关于Android NN SDK的详细描述,可以参考原厂的这份文档:[RK3399_Android8.1_AndroidNN_SDK_V1.0_20180605发布说明.pdf]
TfLiteCameraDemo示例源代码下载地址:[TfLiteCameraDemo源代码]

8.4 Android8.1 下使用adb

1. 第一次启动系统,如果需要更改系统文件,需要关闭安全验证 (注:安装apk不需要关闭),关闭安全验证后需要重启

adb root
adb disable-verity
adb reboot

2. 重启后,获得root权限,并重新挂载 /system 开启写入权限

adb root
adb remount

3. 上传文件

adb push example.txt /system/

8.5 用摇控器操作Android

NanoPC-T4在Android下完美支持 FriendlyARM RC-100 红外遥控器,更方便NanoPC-T4在接电视的场景下使用,遥控器按键功能丰富:
Rc100remotecontroller.png

按键定义与功能如下表所示:

按键 功能
导航键-上
导航键-下
导航键-左
导航键-右
OK 确认
- 音量-
+ 音量+
静音 静音
菜单 Android菜单键
首页 Android Home键
返回 Android 返回键
F1 下拉Android 通知栏
F2 Android 截屏
F3 切换操作模式,在鼠标模式与按钮模式之间切换

8.6 使用USB摄像头进行拍照和录像

Android系统同时支持USB摄像头拍照和录像,使用系统自带的 Camera 应用即可,有两点需要注意的地方:
1)需要根据摄像头规格,选择合适的录像分辨率,可以先选择较低的CIF分辨率,测试OK之后再尝试更高的分辨率,设置界面如下所示:
Android8-usbcamera-setting.png;
2)USB摄像头不能与MIPI摄像头同时使用,也不能热拨插,插入摄像头后需要重新开机才能识别;

我们测试过的USB摄像头型号如下:罗技C270,罗技C922 PRO,
实测罗技C922 PRO录像和拍照可以达到1080P分辨率。

8.7 Android下使用4G模块EC20

8.7.1 连接方法

连接时,需要通过USB to miniPCIe转接板转接EC20,再连接到主板的USB Host端口,如下图所示:
T4-4g-ec20.jpg
连接后无需额外的配置,启动Android后就可以使用4G上网了,跟Android手机类拟。

8.7.2 启用EC20的GPS功能

默认情况下,Android的GPS功能是关闭的 (原因是Android在没有找到任何GPS模块的情况下,会不停的打印LOG信息),在你连接了EC20模块后,就可以开启GPS了。
开启方法是修改Android源代码下的 vendor/quectel/ec20/BoardConfigPartial.mk 文件,将下面这行:

BOARD_HAS_GPS := false

改为

BOARD_HAS_GPS := true

然后重新编译 Android。

9 Android7.1 系统的使用

看这里: Android7

10 如何编译系统

10.1 搭建编译环境

搭建用于编译Android的环境,建议使用64位的Ubuntu 16.04,需要安装如下软件包:

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

更多说明可查看 https://source.android.com/source/initializing.html;
也可以使用Docker环境:friendlyelec-android-docker

10.2 安装交叉编译器

10.2.1 安装aarch64-linux-gcc 6.4

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

git clone https://github.com/friendlyarm/prebuilts.git
sudo mkdir -p /opt/FriendlyARM/toolchain
sudo tar xf prebuilts/gcc-x64/aarch64-cortexa53-linux-gnu-6.4.tar.xz -C /opt/FriendlyARM/toolchain/

然后将编译器的路径加入到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)

10.3 编译Android8.1源代码

10.3.1 下载Android8.1源代码

NanoPC-T4 源代码托管在 gitlab 上,使用以下命令进行下载:

git clone https://gitlab.com/friendlyelec/rk3399-android-8.1 --depth 1 -b master

10.3.2 编译并生成Image文件

使用以下命令编译 Android7:

cd rk3399-android-8.1
./build-nanopc-t4.sh -F -M

10.3.3 更新系统为自已编译的Image

编译完成后,image文件会存放在Android8.1源代码目录的 rockdev/Image-nanopc_t4/ 子目录下,参考以下步骤更新到 NanoPC-T4上:
1) 将 EFlasher 启动SD卡 通过读卡器插入电脑,电脑上的Ubuntu系统会自动挂载 SD卡的分区;
2) 我们需要将 rockdev/Image-nanopc_t4/ 子目录下的所有文件,拷贝并覆盖到 SD卡 FRIENDLYARM 分区里的 android8 目录;
3) 将SD卡插入NanoPC-T4,重新烧写Andorid系统即可;
也可参考这个github仓库的方法来更新:sd-fuse_rk3399

10.4 编译Android7源代码

10.4.1 下载Android7源代码

NanoPC-T4 源代码托管在 gitlab 上,使用以下命令进行下载:

git clone https://gitlab.com/friendlyelec/rk3399-nougat --depth 1 -b nanopc-t4-nougat

10.4.2 编译并生成Image文件

使用以下命令编译 Android7:

cd rk3399-nougat
./build-nanopc-t4.sh -F -M

10.4.3 更新系统为自已编译的Image

编译完成后,image文件会存放在Android7源代码目录的 rockdev/Image-nanopc_t4/ 子目录下,参考以下步骤更新到 NanoPC-T4上:
1) 将 EFlasher 启动SD卡 通过读卡器插入电脑,电脑上的Ubuntu系统会自动挂载 SD卡的分区;
2) 我们需要将 rockdev/Image-nanopc_t4/ 子目录下的所有文件,拷贝并覆盖到 SD卡 FRIENDLYARM 分区里的 nougat 目录;
3) 将SD卡插入NanoPC-T4,重新烧写Andorid系统即可;
也可参考这个github仓库的方法来更新:sd-fuse_rk3399

10.5 编译 FriendlyCore/FriendlyDesktop/Lubuntu/EFlasher的内核源代码

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

编译完成后会生成 kernel.img resource.img 这两个文件,将其拷贝到eflasher系统的SD卡覆盖旧文件即可, 假设SD卡的FRIENDLYARM分区挂载到FRIENDLYARM目录,更新命令如下:

# for Lubuntu
cp kernel.img resource.img /media/FRIENDLYARM/lubuntu/
 
# for FriendlyCore
cp kernel.img resource.img /media/FRIENDLYARM/friendlycore-arm64/
 
# for FriendlyDesktop
cp kernel.img resource.img /media/FRIENDLYARM/friendlydesktop-arm64/

也可以用线刷工具来更新。

10.6 编译FriendlyCore/FriendlyDesktop/Lubuntu/EFlasher的U-boot源代码

git clone https://gitlab.com/friendlyelec/rk3399-nougat --depth 1 -b nanopc-t4-nougat
cd rk3399-nougat/u-boot
make CROSS_COMPILE=aarch64-linux- rk3399_defconfig
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
make CROSS_COMPILE=aarch64-linux-

编译完成后会生成 uboot.img、trust.img 和 rk3399_loader_v1.12.109.bin这3个文件,其中rk3399_loader_v1.12.109.bin需要重命名为MiniLoaderAll.bin,将其拷贝到eflasher系统的SD卡覆盖旧文件即可,假设SD卡的FRIENDLYARM分区挂载到FRIENDLYARM目录,更新命令如下:

# for Lubuntu
cp uboot.img trust.img /media/FRIENDLYARM/lubuntu
cp rk3399_loader_v1.12.109.bin /media/FRIENDLYARM/lubuntu/MiniLoaderAll.bin
 
# for FriendlyCore
cp uboot.img trust.img /media/FRIENDLYARM/friendlycore-arm64
cp rk3399_loader_v1.12.109.bin /media/FRIENDLYARM/friendlycore-arm64/MiniLoaderAll.bin
 
# for FriendlyDesktop
cp uboot.img trust.img /media/FRIENDLYARM/friendlydesktop-arm64
cp rk3399_loader_v1.12.109.bin /media/FRIENDLYARM/friendlydesktop-arm64/MiniLoaderAll.bin

也可以用线刷工具来更新。

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

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

11 硬件资源访问

11.1 串口访问

如下表所示,仅 UART4 可供应用程序开发使用:

串口设备 串口资源占用情况
UART0 已被蓝牙占用
UART1 已被千兆以太网占用
UART2 已被作为调试串口
UART3 已被千兆以太网占用
UART4 空闲,设备名称为 /dev/ttyS4 (注:需使用20180618之后的ROM)

12 源代码下载地址汇总

NanoPC-T4源代码下载地址
Android 8.1 Uboot源代码下载地址

https://gitlab.com/friendlyelec/rk3399-android-8.1/tree/master/u-boot

Android 8.1 Linux-4.4.y 内核源代码下载地址

https://gitlab.com/friendlyelec/rk3399-android-8.1/tree/master/kernel

Android 8.1 BSP源代码下载地址

https://gitlab.com/friendlyelec/rk3399-android-8.1

Android 7.1.2 Uboot源代码下载地址

https://gitlab.com/friendlyelec/rk3399-nougat/tree/nanopc-t4-nougat/u-boot

Android 7.1.2 Linux-4.4.y 内核源代码下载地址

https://gitlab.com/friendlyelec/rk3399-nougat/tree/nanopc-t4-nougat/kernel

Android 7.1.2 BSP源代码下载地址

https://gitlab.com/friendlyelec/rk3399-nougat

FriendlyCore/FriendlyDesktop/Lubuntu Uboot源代码下载地址

https://gitlab.com/friendlyelec/rk3399-nougat/tree/nanopc-t4-nougat/u-boot

FriendlyCore/FriendlyDesktop/Lubuntu Linux-4.4.y 内核源代码下载地址

https://github.com/friendlyarm/kernel-rockchip

13 更多OS

13.1 DietPi_NanoPCT4-ARMv8-Stretch

DietPi身轻如燕,镜像文件最小只有345M 字节。系统存储操作及进程对资源的占用非常少,并且预装DietPi-RAMlog工具。这些特性使得用户能最大程度地发挥设备本身的性能。

仅提供给进阶爱好者交流使用,不对该系统提供专业技术支持。

详细操作步骤如下:

  • 初次使用时,请先下载DriverAssitant_v4.5.tgz,解压后安装USB驱动;
  • 下载系统固件DietPi_NanoPCT4-ARMv8-Stretch点击下载DietPi_NanoPCT4-ARMv8-Stretch
  • 解压,进入Image_and_Tools,以管理员身份运行AndroidTool.exe
  • 默认已经导入分区配置,即固件中的parameter.txt,并已经指定各分区的烧写文件路径,如下图所示:

AndroidTools DI 02.png

  • 连接好12V/2A的DC接口电源及HDMI显示设备,连接Type-C数据线到PC,按住Recovery键再长按(1.5秒以上)Power键开机,AndroidTool会显示“发现一个LOADER设备”
    a) 如果eMMC没有烧写过系统或eMMC的系统被擦除或损坏则会显示为MASKROM设备;
    b) 您也可以按住BOOT键再长按Power键开机,同时持续按住BOOT键5秒以上强制进入MASKROM模式;
    c) 如果显示“没有发现设备”,请先检查是否已成功安装驱动,检查Type-C数据线然后按上述方法重新开机,或按住Recovery键再按Reset键;
    d) 另外,如果已成功启动系统,可通过串口、adb或ssh等方式在板子上运行reboot loader重启板子并进入LOADER模式。
  • 点击“Run”即可下载固件到eMMC,请耐心等待,烧写成功结束后将自动重启。

Dietpi-login-01.png

登录账号:root
登录密码:dietpi

13.2 使用wifi

系统默认没有使能wifi,请执行dietpi-config配置。 dietpi-config

   --> Network Options:Adapters 
       --> WiFi  Change Wireless Network Settings
           --> Scan  Scan and Connect

选择要连接的WiFi热点,输入密码后连接
Dietpi-dietpi-config-01.png

14 查看瑞芯微原厂资料

15 原理图、尺寸图

16 硬件扩展

17 更新日志

17.1 2018-11-12

  • Android 8.1更新如下:

1) 增加USB-C显示器的支持
2) 增加4G网络的支持,支持模块的型号为:Quectel EC20
3) 增加Android硬件访问库FriendlyThing,用于在Android下编程访问各种硬件资源,比如Uart, SPI, I2C, GPIO等
4) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升
5) 集成Google Play应用商店
6) 改进摄像头的底层支持,使之能自动适应竖屏(HD702E)和横屏(HDMI)
7) 修复Android8下接NVME SSD时分区表异常以及Android8无法启动的问题

  • Android 7.1更新如下:

1) 增加4G网络的支持,支持模块的型号为:Quectel EC20
2) 增加Android硬件访问库FriendlyThing,用于在Android下编程访问各种硬件资源,比如Uart, SPI, I2C, GPIO等
3) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升
4) 改进摄像头的底层支持,使之能自动适应竖屏(HD702E)和横屏(HDMI)
5) 修复Android8下接NVME SSD时分区表异常以及Android8无法启动的问题

  • FriendlyCore和FriendlyDesktop更新如下:

1) 增加OV13850摄像头的支持,提供支持ISP的gsteamer插件
2) 增加WiringPi的支持,用于C语言编程访问GPIO等硬件资源
3) 增加WiringPi-Python的支持,用于Python编程访问GPIO等硬件资源
4) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升

17.2 2018-09-21

  • 增加一款eDP屏的支持
  • Linux启用了PCI-E转Sata 功能 (AHCI SATA support)
  • Linux下的SquashFS启用了LZO/XZ/ZSTD压缩支持

17.3 2018-09-05

  • 增加新OS: Android 8.1, 主要特性如下:

1) 支持同时接2个CAM1320 (OV13850),可选择切换前后摄像头使用
2) 支持USB摄像头 (1路, 不能与CAM1320同时使用)
3) 支持AndroidNN GPU 加速方案,可为采用AndroidNN API开发的 AI 相关应用提供通用加速支持
4) 集成了Rockchip官方提供的Tensorflow Lite物品识别Demo: TfLiteCameraDemo (启动前须先连接CAM1320或USB摄像头)
5) 集成Lightning为缺省浏览器应用 (注:Android官方缺省不提供Browser应用)
6) 支持RC-100红外遥控器,支持下拉通知栏、截屏
7) 支持Android全盘加密功能,system分区已启用Verity特性,使用adb时,可通过adb root; adb disable-verity命令禁止Verity
8) 支持MTP功能,在连接Type-C后,可进入Settings -> Connected devices -> USB 选择相应功能
9) 内核版本升级到 4.4.126
10) 更新AOSP源码到版本 android-8.1.0_r41,并更新8月份安全补丁

  • FriendlyCore 增加Qt双摄像头示例程序:示例位于/opt/dual-camera目录,通过run.sh运行 (启动前须先连接两个USB摄像头,建议使用罗技C270或罗技C922摄像头)
  • FriendlyDesktop 默认设置HDMI分辨率为 1080P

17.4 2018-08-20

1) 带X桌面 LXDE,基于64位Ubuntu 18.04系统构建,支持OpenGL ES加速,支持硬解播放
2) 支持SD卡启动运行,支持TF卡刷机或Type-C刷机
3) 完全保留FriendlyCore 18.04 for RK3399的特性,集成带GPU和VPU加速的Qt 5.10.0
4) 内置开源硬解的4K视频播放器 QtVideoPlayer(Menu->Sound & Video->Qt5-VideoPlayer)
5) 内置 QtCreator IDE,Arduino 和 Scratch等流行开发和学习工具,开箱即用
6) 支持双屏异显 (可选择eDP/DP/HDMI 任意两路同时输出)
7) 支持eDP电容触摸屏 (HD702E)
8) 支持屏幕旋转 (仅限于eDP)
9) 支持AP6356S无线模块 (802.11 a/b/g/n/AC,BLE4.0)
10) 支持升兆以太网即插即用
11) 支持 OpenCV 3.4 一键安装 (详见https://github.com/friendlyarm/install-opencv-on-friendlycore)
12) 内置gcc版本:7.3.0
13) 内核版本:4.4.138
附下载链接:http://dl.friendlyarm.com/nanopct4

17.5 2018-08-02

  • 增加可以直接从SD卡启动的FriendlyCore和Lubuntu固件

17.6 2018-07-28

  • 修正FriendlyCore中的一处可能会影响CPU降频的问题

17.7 2018-07-27

  • Android增加UART4支持并集成了串口demo,内核增加常见USB串口支持

17.8 2018-07-19

1) 基于最新版本的 Ubuntu 18.04 构建
2) 集成Qt 5.10.0,支持OpenGL ES加速,支持硬解播放,支持KMS双屏异显和WebGL和VNC远程控制
3) 集成 Xorg最小系统,以最轻量的方式运行X11应用
4) 集成带VPU加速的Gstreamer 1.0 多媒体框架
5) 支持7寸电容屏HD702
6) 5G WIFI 和 蓝牙4.0

  • 内核修复连接HDMI 2.0设备时的core dump问题
  • Linux内核合并了原厂release-4.4的更新,版本为4.4.132
  • EFlasher更新: 增加eMMC备份与还原功能

17.9 2018-06-20

  • Android 支持HDMI与LCD屏幕旋转
  • Android 增加 摇控器支持
  • Lubuntu 内核默认启用 UART4,应用程序可通过设备名 ttyS4 访问
  • 改进了 HDMI 与 eDP屏的用户体验