Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 1: Line 1:
[[SOM-RK3399|English]]
+
[[EFlasher|English]]
  
==简介==
+
== eFlasher介绍 ==
[[File:SOM-RK3399_1904-01B.jpg|thumb|Front]]
+
eFlasher (eMMC-flasher) 是FriendlyElec官方发布的工具,让用户能方便和轻松地将系统安装到板载的eMMC上运行,甚至可以抛开电脑,就能让你在多个系统中,选择并安装上你想要的系统。
[[File:SOM-RK3399_1904-A01.jpg|thumb|Back]]
+
<br /><br />
[[File:SOM-RK3399_1904-B01.jpg|thumb|Overview]]
+
eFlasher同时为量产提供了灵活的设置选项,以方便工厂量产时安装定制系统。 <br />
*SOM-RK3399是友善电子团队设计的一款266-pin金手指形式高性能ARM计算机模块,它采用了瑞心微64位六核SoC RK3399作为主处理器,标配2GB DDR3内存和16GB闪存,板载2x2 MIMO双天线WiFi模组,尺寸只有69.6x50mm,模块上带有独立的TypeC供电接口,以及USB-C显示接口,无需底板也可以单独使用。
+
<br />
 +
eFlasher为方便使用,提供了图形界面与命令行两个版本,为方便描述,这里为它们分别命名为: eflasher-gui 和 eflasher-console:<br />
 +
1) eflasher-gui: 有图形界面的eFlasher,推荐有LCD屏或者HDMI显示的用户使用,可以使用触摸屏操作,没有触摸屏时也可以使用鼠标操作;<br />
 +
2) eflasher-console: 命令行版本的eFlasher,可在串口终端或者ssh命令行上使用;<br />
 +
<br />
  
*SOM-RK3399计算模块具有丰富的外设和扩展接口,通过底板可连接使用4通道NVMe高速固态硬盘,读写速度高达1GB/s; 它还可以扩展使用双MIPI宽动态摄像头,另外它还带有eDP显示接口,MIPI显示接口, 1路USB3.0, 2路USB2.0, 以及I2C, I2S, SPI, PWM, GPIO和串口等各种资源。
+
== eFlasher 的安装 ==
  
*SOM-RK3399可流畅运行Android 8.1, Ubuntu 18.04, Armbian, Buildroot等主流嵌入式操作系统, 软件资源和生态非常丰富,尤其是Android 8.1具有NN SDK神经网络加速软件包, Qt-5.10集成了VPU硬件编解码, GPU图形加速,可使用QML快速开发流畅的动态式界面,因此SOM-RK3399核心板非常适合中小型企业和初创公司做高端人脸识别,机器视觉,VR虚拟现实,自动驾驶,深度计算分析等方面的人工智能产品快速原型及产品开发。
+
* 第一步: 下载包含eflasher工具的固件 <br />
 +
到你所购买的板子相关WiKi页面,找到下载固件的章节,下载固件文件名为:XXXX-eflasher-YYYYMMDD-full.img.7z 的固件(其中XXXX替换为板子所在的平台型号, YYYYMMDD是该固件发布的日期), <br />
 +
这个固件内已经包含了所属平台的所有官方系统映象,包括最新版本的 Debian, Android5, Android4.4和Ubuntu core 系统 (不同的平台提供的系统有所不同);<br />
 +
将 XXXX-eflasher-YYYYMMDD-full.img.7z 下载到电脑上,在Windows下制作SD卡,还需要下载Windows下的烧写工具: win32diskimager.rar;<br />
 +
* 第二步: 用eflasher固件制作SD启动卡 <br />
 +
将固件用7z软件解压,得到.img结尾的文件,在Windows下插入SDHC卡(限4G及以上的卡),以管理员身份运行Win32DiskImager,选择 Image File载入固件,选择你的SD卡盘符,点 Write 即开始写Image到SD卡;<br />
 +
如果你的电脑用的是Linux系统,你也可以用 dd 命令将解压后得到的 .img 文件直接写入SD卡完成启动卡的制作;<br />
 +
* 第三步: 启动eFlasher工具
 +
将制作好的SD卡插入开发板, 按住标住有“BOOT”字样的按键,上电,如你有HDMI、LCD或者USB2LCD,可以在上电之前先连接好。
  
==硬件特性==
+
== 更新 eflasher 到最新版本 ==
* 主控芯片: Rockchip RK3399
+
在开发板上执行以下命令:
** CPU: big.LITTLE大小核架构,双Cortex-A72大核(up to 2.0GHz)+四Cortex-A53小核结构(up to 1.5GHz)
+
<syntaxhighlight lang="bash">
** GPU: Mali-T864 GPU,支持OpenGL ES1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11, 支持AFBC(帧缓冲压缩)
+
git clone https://github.com/friendlyarm/eflasher-updater
** VPU: 支持4K VP9 and 4K 10bits H265/H264 视频解码,高达60fps, 双VOP显示等视频编解码功能
+
cd eflasher-updater/
* 电源管理单元: RK808-D PMIC, 搭配独立DC/DC, 支持动态调压, 软件关机, 按键开机, RTC唤醒, 睡眠唤醒等功能
+
./update.sh
* 内存: 双通道2GB DDR3
+
</syntaxhighlight>
* Flash: 标配16GB eMMC 5.1闪存,可定制选配32GB/64GB
+
* 有线网络: 集成千兆以太网PHY
+
* 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
+
*USB
+
** USB 2.0: 2个独立的原生USB 2.0 Host
+
** USB 3.0: 1个原生USB 3.0 Host
+
** USB Type-C: 支持USB3.0 Type-C 和 DisplayPort 1.2 Alt Mode on USB Type-C
+
* PCIe: PCIe x4, compatible with PCIe 2.1, Dual operation mode
+
* SDIO/MMC: 一路SDIO/MMC, 用来扩展SD卡
+
* 调试串口: 一路调试串口 UART, 3V level, 1500000bps
+
* 按键: PowerKey, Reset, Recovery 各一个
+
* LED指示灯: 一个电源LED ,一个GPIO控制的状态LED
+
* 其它资源
+
** 2 X 1.8V I2C, 1 x 3V I2C
+
** 1 x 3V UART/SPI
+
** 2 x PWM
+
** 1 x IR-RX
+
** 1 x SPDIF_TX
+
** 1 x 1.8V 8ch-I2S,
+
** 6 x 1.8V GPIO, 8 x 3V GPIO
+
** 3 x 1.8V ADC inputs
+
* 供电: DC12V/1A(金手指), Type-C:DC5V/2.5A(Type-C)
+
* PCB: 8层沉金工艺, 50 mm x 69.6 mm x 1.2mm, 260 Pin金手指接口
+
* 环境工作温度: -20℃ to 70℃
+
  
==软件资源和特性==
+
== eFlasher系统的登录 ==
 +
在命令行模式下使用以下帐号登录:<br />
 +
用户名: root<br />
 +
密码: fa<br />
 +
如果通过ssh登录,eFlasher系统的IP地址默认为 192.168.1.231<br />
  
==布局和引脚定义==
+
== 启动图形界面版本的eFlasher ==
[[File:SOM-RK3399_1904-layout.jpg|600px]]
+
系统启动时,图形界面版本的eFlasher会随系统自动启动,如你有连接HDMI或者LCD,应该会看到如下所示的界面: <br />
* '''260 Pin 金手指定义'''
+
::[[File:Eflasher-gui-ui.png| frameless|500px|Eflasher-gui]]
**匹配的卡槽型号:0.5mm Pitch 260-Pin '''Standard Type''' DDR4 SODIMM Socket, 参考型号:https://www.te.com/usa-en/product-2309409-5.html
+
{| class="wikitable"
+
! colspan="5" style="font-weight:bold; background-color:#68cbd0;" | Top
+
! colspan="5" style="font-weight:bold; background-color:#68cbd0;" | Bottom
+
|-
+
| style="font-weight:bold;" | Pin#
+
| style="font-weight:bold;" | Assignment
+
| style="font-weight:bold;" | Pin Type
+
| style="font-weight:bold;" | If Not Use
+
| style="font-weight:bold;" | Description
+
| style="font-weight:bold;" | Pin#
+
| style="font-weight:bold;" | Assignment
+
| style="font-weight:bold;" | Pin Type
+
| style="font-weight:bold;" | If Not Use
+
| style="font-weight:bold;" | Description
+
|-
+
| 1
+
| style="background-color:#9a0000; color:#333333;" | VCC_IN
+
| Power IN
+
| /
+
| rowspan="4" | 12V Power Input
+
| 2
+
| style="background-color:#9a0000;" | VCC_IN
+
| Power IN
+
| /
+
| rowspan="4" | 12V Power Input
+
|-
+
| 3
+
| style="background-color:#9a0000; color:#333333;" | VCC_IN
+
| Power IN
+
| /
+
| 4
+
| style="background-color:#9a0000;" | VCC_IN
+
| Power IN
+
| /
+
|-
+
| 5
+
| style="background-color:#9a0000; color:#333333;" | VCC_IN
+
| Power IN
+
| /
+
| 6
+
| style="background-color:#9a0000;" | VCC_IN
+
| Power IN
+
| /
+
|-
+
| 7
+
| style="background-color:#9a0000; color:#333333;" | VCC_IN
+
| Power IN
+
| /
+
| 8
+
| style="background-color:#9a0000;" | VCC_IN
+
| Power IN
+
| /
+
|-
+
| 9
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| rowspan="2" | System Ground(0V)
+
| 10
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| rowspan="2" | System Ground(0V)
+
|-
+
| 11
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| 12
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
|-
+
| 13
+
| style="background-color:#cb0000;" | VCC5V0_SYS
+
| Power OUT
+
| float
+
| rowspan="4" | 5V Power Output,2A max. Auto on when system power on, and off when system power off.
+
| 14
+
| PWR_KEY
+
| In
+
| float
+
| System Power Key signal, active low, internal pulled up to 3.3V with 10K
+
|-
+
| 15
+
| style="background-color:#cb0000;" | VCC5V0_SYS
+
| Power OUT
+
| float
+
| 16
+
| VDC_ONOFF
+
| In
+
| float
+
| Power On Mode Select, float for Auto Start,short to GND for PowerKey Mode
+
|-
+
| 17
+
| style="background-color:#cb0000;" | VCC5V0_SYS
+
| Power OUT
+
| float
+
| 18
+
| RTC_BATT_IN
+
| Power IN
+
| float
+
| RTC backup battery(3V)input,backup current is 25uA
+
|-
+
| 19
+
| style="background-color:#cb0000;" | VCC5V0_SYS
+
| Power OUT
+
| float
+
| 20
+
| RECOVERY
+
| In
+
| float
+
| System RECOVERY Key signal,acticve low
+
|-
+
| 21
+
| style="background-color:#fe0000;" | VCC3V3_SYS
+
| Power OUT
+
| float
+
| rowspan="4" | 3.3V Power Output,1A max. Auto on when system power on, and off when system power off.
+
| 22
+
| RESET_IN_H
+
| In
+
| float
+
| RESET signal, acticve hight
+
|-
+
| 23
+
| style="background-color:#fe0000;" | VCC3V3_SYS
+
| Power OUT
+
| float
+
| 24
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 25
+
| style="background-color:#fe0000;" | VCC3V3_SYS
+
| Power OUT
+
| float
+
| 26
+
| style="background-color:#fffc9e;" | ADC_IN0
+
| In
+
| float
+
| rowspan="3" | 0V to 1.8V inputs of RK3399 SoC ADC
+
|-
+
| 27
+
| style="background-color:#fe0000;" | VCC3V3_SYS
+
| Power OUT
+
| float
+
| 28
+
| style="background-color:#fffc9e;" | ADC_IN2
+
| In
+
| float
+
|-
+
| 29
+
| style="background-color:#f56b00;" | VCC_1V8
+
| Power OUT
+
| float
+
| rowspan="2" | 1.8V Power Output,200mA max. Auto on when system power on, and off when system power off.
+
| 30
+
| style="background-color:#fffc9e;" | ADC_IN3
+
| In
+
| float
+
|-
+
| 31
+
| style="background-color:#f56b00;" | VCC_1V8
+
| Power OUT
+
| float
+
| 32
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 33
+
| style="background-color:#f56b00;" | VCC3V3_S3
+
| Power OUT
+
| float
+
| 3.3V Power Output,100mA max. Auto on when system power on, and off when system sleep or power off.
+
| 34
+
| style="background-color:#34cdf9;" | GPIO1_A0
+
| In/Out
+
| float
+
| 3V GPIO. Linux GPIO 32
+
|-
+
| 35
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 36
+
| style="background-color:#34cdf9;" | GPIO1_A1
+
| In/Out
+
| float
+
| 3V GPIO. Linux GPIO 33
+
|-
+
| 37
+
| style="background-color:#dae8fc;" | GPIO0_A2
+
| In/Out
+
| float
+
| 1.8V GPIO. Linux GPIO 2
+
| 38
+
| style="background-color:#34cdf9;" | GPIO1_A3
+
| In/Out
+
| float
+
| 3V GPIO. Linux GPIO 35
+
|-
+
| 39
+
| style="background-color:#dae8fc;" | GPIO2_A2
+
| In/Out
+
| float
+
| 1.8V GPIO. Linux GPIO 2
+
| 40
+
| style="background-color:#34cdf9;" | GPIO1_A4
+
| In/Out
+
| float
+
| 3V GPIO. Linux GPIO 36
+
|-
+
| 41
+
| style="background-color:#dae8fc;" | GPIO2_A3
+
| In/Out
+
| float
+
| 1.8V GPIO. Linux GPIO 67
+
| 42
+
| style="background-color:#34cdf9;" | GPIO1_C2
+
| In/Out
+
| float
+
| 3V GPIO . Linux GPIO 50
+
|-
+
| 43
+
| style="background-color:#dae8fc;" | GPIO2_A4
+
| In/Out
+
| float
+
| 1.8V GPIO. Linux GPIO 68
+
| 44
+
| style="background-color:#34cdf9;" | GPIO1_C6
+
| In/Out
+
| float
+
| 3V GPIO. Linux GPIO 54
+
|-
+
| 45
+
| style="background-color:#dae8fc;" | GPIO2_A5
+
| In/Out
+
| float
+
| 1.8V GPIO. Linux GPIO 69
+
| 46
+
| style="background-color:#34cdf9;" | GPIO1_C7
+
| In/Out
+
| float
+
| 3V GPIO . Linux GPIO 55
+
|-
+
| 47
+
| style="background-color:#dae8fc;" | GPIO2_A6
+
| In/Out
+
| float
+
| 1.8V GPIO. Linux GPIO 70
+
| 48
+
| style="background-color:#34cdf9;" | GPIO1_D0
+
| In/Out
+
| float
+
| 3V GPIO . Linux GPIO 56
+
|-
+
| 49
+
| style="background-color:#dae8fc;" | IR_RX
+
| In
+
| float
+
| Infrared Receiver input, 1.8V level
+
| 50
+
| style="background-color:#34cdf9;" | GPIO4_C5/SPDIF_TX
+
| In/Out
+
| float
+
| 3V GPIO . Linux GPIO 149. or SPDIF Output
+
|-
+
| 51
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 52
+
| style="background-color:#34cdf9;" | UART2DBG_TX
+
| Out
+
| float
+
| Debug UART TX, 1500000bps, 3V level
+
|-
+
| 53
+
| style="background-color:#96fffb;" | I2C1_SCL
+
| Out
+
| float
+
| I2C1 clock, 1.8V level, open drian with 2.2K pulled internal
+
| 54
+
| style="background-color:#34cdf9;" | UART2DBG_RX
+
| In
+
| float
+
| Debug UART RX, 1500000bps, 3V level
+
|-
+
| 55
+
| style="background-color:#96fffb;" | I2C1_SDA
+
| In/Out
+
| float
+
| I2C1 data, 1.8V level, open drian with 2.2K pulled internal
+
| 56
+
| style="background-color:#34cdf9;" | SPI1_CSn0
+
| Out
+
| float
+
| SPI1 chip select, 3V level
+
|-
+
| 57
+
| style="background-color:#96fffb;" | I2C2_SDA
+
| In/Out
+
| float
+
| I2C2 data, 1.8V level, open drian with 2.2K pulled internal
+
| 58
+
| style="background-color:#34cdf9;" | SPI1_TXD/UART4_TX
+
| Out
+
| float
+
| SPI1 MOSI, or UART4 TX,3V level
+
|-
+
| 59
+
| style="background-color:#96fffb;" | I2C2_SCL
+
| Out
+
| float
+
| I2C2 clock, 1.8V level, open drian with 2.2K pulled internal
+
| 60
+
| style="background-color:#34cdf9;" | SPI1_RXD/UART4_RX
+
| In
+
| float
+
| SPI1 MISO, or UART4 RX,3V level
+
|-
+
| 61
+
| style="background-color:#96fffb;" | I2C7_SCL_HDMI
+
| Out
+
| float
+
| I2C7 clock, 1.8V level, for HDMI EDID CLK, open drian with 2.2K pulled internal
+
| 62
+
| style="background-color:#34cdf9;" | SPI1_CLK
+
| Out
+
| float
+
| SPI1 Clock, 3V level
+
|-
+
| 63
+
| style="background-color:#96fffb;" | I2C7_SDA_HDMI
+
| In/Out
+
| float
+
| I2C7 data, 1.8V level, for HDMI EDID DATA, open drian with 2.2K pulled internal
+
| 64
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 65
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 66
+
| style="background-color:#34cdf9;" | GPIO4_C1/I2C3_SCL
+
| In/Out
+
| float
+
| I2C3 clock, 3V level,open drian. or GPIO,Linux GPIO 145
+
|-
+
| 67
+
| style="background-color:#96fffb;" | I2S0_SCLK
+
| Out
+
| float
+
| I2S0 continuous serial clock, 1.8V level
+
| 68
+
| style="background-color:#34cdf9;" | GPIO4_C0/I2C3_SDA
+
| In/Out
+
| float
+
| I2C3 data, 3V level,open drian. or GPIO,Linux GPIO 144
+
|-
+
| 69
+
| style="background-color:#96fffb;" | I2S0_LRCK_RX
+
| Out
+
| float
+
| I2S0 word select for input data, 1.8V level
+
| 70
+
| style="background-color:#34cdf9;" | I2C4_TPSCL
+
| Out
+
| float
+
| I2C4 clock,3V level, open drian with 2.2K pulled up,for touch panel
+
|-
+
| 71
+
| style="background-color:#96fffb;" | I2S0_LRCK_TX
+
| Out
+
| float
+
| I2S0 word select for output data, 1.8V level
+
| 72
+
| style="background-color:#34cdf9;" | I2C4_TPSDA
+
| In/Out
+
| float
+
| I2C4 data,3V level, open drian with 2.2K pulled up,for touch panel
+
|-
+
| 73
+
| style="background-color:#96fffb;" | I2S0_SDI0
+
| In
+
| float
+
| I2S0 serial data, 1.8V level
+
| 74
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 75
+
| style="background-color:#96fffb;" | I2S0_SDI1SDO3
+
| In/out
+
| float
+
| I2S0 serial data, 1.8V level
+
| 76
+
| style="background-color:#34cdf9;" | HP_DET_H
+
| In
+
| Pull up to VCC3V3_SYS
+
| headphone insert detect, active hight
+
|-
+
| 77
+
| style="background-color:#96fffb;" | I2S0_SDI2SDO2
+
| In/out
+
| float
+
| I2S0 serial data, 1.8V level
+
| 78
+
| style="background-color:#34cdf9;" | GPIO4_D5_LCD_BL_EN
+
| Out
+
| float
+
| LCD backlight on/off control, active hight, 3V level
+
|-
+
| 79
+
| style="background-color:#96fffb;" | I2S0_SDI3SDO1
+
| In/out
+
| float
+
| I2S0 serial data, 1.8V level
+
| 80
+
| style="background-color:#34cdf9;" | GPIO4_D6_LCD_RST_H
+
| Out
+
| float
+
| LCD reset, active hight, 3V level.
+
|-
+
| 81
+
| style="background-color:#96fffb;" | I2S0_SDO0
+
| out
+
| float
+
| I2S0 serial data, 1.8V level
+
| 82
+
| style="background-color:#34cdf9;" | GPIO1_B5_TP_RST
+
| Out
+
| float
+
| Touch panel reset, active low, 3V level
+
|-
+
| 83
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 84
+
| style="background-color:#34cdf9;" | GPIO1_C4_TP_INT
+
| In
+
| float
+
| Touch panel IRQ, active low, 3V level
+
|-
+
| 85
+
| style="background-color:#96fffb;" | I2S_CLK
+
| out
+
| float
+
| I2S Mclk for I2S0 and I2S1
+
| 86
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 87
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 88
+
| style="background-color:#34cdf9;" | PWM0_BL
+
| Out
+
| float
+
| PWM0 for LCD backlight dimming
+
|-
+
| 89
+
| style="background-color:#96fffb;" | I2S1_SCLK
+
| Out
+
| float
+
| I2S1 continuous serial clock, 1.8V level
+
| 90
+
| style="background-color:#34cdf9;" | GPIO4_C6/PWM1
+
| Out
+
| float
+
| PWM1 for cooling fan control
+
|-
+
| 91
+
| style="background-color:#96fffb;" | 2S1_LRCK_RX
+
| Out
+
| float
+
| I2S1 word select for input data, 1.8V level
+
| 92
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 93
+
| style="background-color:#96fffb;" | I2S1_LRCK_TX
+
| Out
+
| float
+
| I2S1 word select for output data, 1.8V level
+
| 94
+
| style="background-color:#f56b00;" | VCC3V0_SD
+
| Power Out
+
| float
+
| 3V power out for SD card.
+
|-
+
| 95
+
| style="background-color:#96fffb;" | I2S1_SDI0
+
| In
+
| float
+
| I2S0 serial data, 1.8V level
+
| 96
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 97
+
| style="background-color:#96fffb;" | I2S1_SDO0
+
| Out
+
| float
+
| I2S0 serial data, 1.8V level
+
| 98
+
| style="background-color:#96fffb;" | SDMMC0_D0
+
| In/Out
+
| float
+
| SD card Data0
+
|-
+
| 99
+
| style="background-color:#96fffb;" | MIPI_CSI0_RST
+
| Out
+
| float
+
| Camera Reset for MIPI CSI0, 1.8V level
+
| 100
+
| style="background-color:#96fffb;" | SDMMC0_D1
+
| In/Out
+
| float
+
| SD card Data1
+
|-
+
| 101
+
| style="background-color:#96fffb;" | MIPI_CSI0_PWN
+
| Out
+
| float
+
| Camera Power Down for MIPI CSI0, 1.8V level
+
| 102
+
| style="background-color:#96fffb;" | SDMMC0_D2
+
| In/Out
+
| float
+
| SD card Data2
+
|-
+
| 103
+
| style="background-color:#96fffb;" | MIPI_CSI1_RST
+
| Out
+
| float
+
| Camera Reset for MIPI CSI1, 1.8V level
+
| 104
+
| style="background-color:#96fffb;" | SDMMC0_D3
+
| In/Out
+
| float
+
| SD card Data3
+
|-
+
| 105
+
| style="background-color:#96fffb;" | MIPI_CSI1_PWN
+
| Out
+
| float
+
| Camera Power Down for MIPI CSI1, 1.8V level
+
| 106
+
| style="background-color:#96fffb;" | SDMMC0_CMD
+
| Out
+
| float
+
| SD card CMD
+
|-
+
| 107
+
| style="background-color:#f56b00;" | VCC1V8_CAM
+
| Power Out
+
| float
+
| Power Out for Camera IO
+
| 108
+
| style="background-color:#96fffb;" | SDMMC0_DET_L
+
| In
+
| float
+
| SD card detect
+
|-
+
| 109
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 110
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 111
+
| style="background-color:#96fffb;" | GPIO2_B3_CIF_CLKOUTA
+
| Out
+
| float
+
| MCLK for camera sensor
+
| 112
+
| style="background-color:#96fffb;" | SDMMC0_CLK
+
| Out
+
| float
+
| SD card Clock
+
|-
+
| 113
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 114
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 115
+
| style="background-color:#329a9d;" | MIPI_RX0_D3N
+
| In
+
| float
+
| MIPI CSI0 negative differential data line
+
| 116
+
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D0N
+
| In/Out
+
| float
+
| MIPI CSI1/DSI1 negative differential data line
+
|-
+
| 117
+
| style="background-color:#329a9d;" | MIPI_RX0_D3P
+
| In
+
| float
+
| MIPI CSI0
+
positive differential data line
+
| 118
+
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D0P
+
| In/Out
+
| float
+
| MIPI CSI1/DSI1
+
positive differential data line
+
|-
+
| 119
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 120
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
|-
+
| 121
+
| style="background-color:#329a9d;" | MIPI_RX0_D2N
+
| In
+
| float
+
| MIPI CSI0 negative differential data line
+
| 122
+
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D1N
+
| In/Out
+
| float
+
| MIPI CSI1/DSI1 negative differential data line
+
|-
+
| 123
+
| style="background-color:#329a9d;" | MIPI_RX0_D2P
+
| In
+
| float
+
| MIPI CSI0
+
  
positive differential data line
+
点击触摸屏,或者用鼠标选择你需要烧写到eMMC的系统即可。<br />
| 124
+
 
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D1P
+
<!--
| In/Out
+
== 通过VNC远程控制eFlasher烧写 ==
| float
+
<b>* 注意:仅 2018/07/21 之后的ROM支持此功能</b><br /><br />
| MIPI CSI1/DSI1
+
eFlasher支持使用VNC来远程控制,在没有LCD和HDMI屏幕的情况下,可以通过手机或者电脑上的VNC客户端来操作eFlasher。<br />
positive differential data line
+
VNC客户端属于免费软件,可以到官方去下载,多个平台的下载链接:<br />
|-
+
https://www.realvnc.com/en/connect/download/vnc/<br />
| 125
+
<br />
| style="background-color:#00ff00;" | GND
+
<b>使用方法:</b>
| Power
+
开发板需要连接网线开机,你可以登录你的路由器后台管理页面,获悉开发板的IP地址。<br />
| /
+
在VNC客户端创建一个新设备,在地址栏上填写:  <开发板IP地址>:5900,然后点击 Connect 即可。<br />
| System Ground(0V)
+
<br />
| 126
+
<b>示例:以下图片演示了在 iPhone 上通过VNC 为T3 Plus更新系统:</b>
| style="background-color:#00ff00;" | GND
+
::[[File:Eflasher-vnc.png| frameless|800px]]
| Power
+
<br />
| /
+
-->
| System Ground(0V)
+
 
|-
+
== 启动命令行版本的eFlasher ==
| 127
+
如果板子没有连接显示设备,可以通过串口或ssh登录开发板,在命令行终端下输入命令 eflasher也可以进入eflasher的命令行交互界面,命令行交互界面如下图所示: <br />
| style="background-color:#329a9d;" | MIPI_RX0_CLKN
+
<pre>
| In
+
----------------------------------------------------------------------
| float
+
  EFlasher v1.2 b190111 running on NanoPC-T4
| MIPI CSI0 negative differential clock line
+
    Doc: http://wiki.friendlyarm.com/wiki/index.php/EFlasher
| 128
+
    eMMC: 14.56 GB
| style="background-color:#329a9d;" | MIPI_TX1/RX1_CLKN
+
----------------------------------------------------------------------
| In/Out
+
  # Select an OS to install:
| float
+
    1) Android 8
| MIPI CSI1/DSI1 negative differential clock line
+
 
|-
+
  # Select your backup target device:
| 129
+
    tf) [*] TF card  (/dev/mmcblk0p1 - 4.27 GB free - 5.67 GB total - fuseblk)
| style="background-color:#329a9d;" | MIPI_RX0_CLKP
+
    usb) [ ] USB disk  (<none>)
| In
+
 
| float
+
  # Backup eMMC flash to TF card:
| MIPI CSI0
+
    Not enough free disk space on your TF card
 +
 
 +
  # Restore eMMC flash from backup file:
 +
    No backup files found
 +
 
 +
  # Configure automatic job:
 +
    aui) Automatic installing (Curr:Off)
 +
    aur) Automatic restoring (Curr:Off)
 +
 
 +
  # Format drive
 +
    ftf) Format TF card back to original size
 +
----------------------------------------------------------------------
 +
>>> Enter an option (1/tf/usb/aui/aur/ftf) :
 +
</pre>
 +
 
 +
== 开机自动烧写指定的系统 ==
 +
有三种途径可以进行配置:<br />
 +
* 方法1:在图形界面上,选择你要烧写的系统,在Ready to Go预览界面上,在屏幕下方钩选 "Start automatically at startup" 。<br />
 +
* 方法2:  将SD卡挂载到Windows电脑上,用notepad+文本编辑器在SD卡的Fat分区上新建一个名为eflasher.conf文件 (如果已存在就直接编辑即可),例如,要开机自动烧写debian系统,其内容如下:<br />
 +
<syntaxhighlight lang="bash">
 +
[General]
 +
autoStart=/mnt/sdcard/friendlycore-xenial
 +
</syntaxhighlight>
 +
其中,autoStart字段所保存的路径,是你要烧写的系统的rom路径,本例是 Fat分区的 debian 目录。
 +
* 方法3:  开发板运行状态下,通过串口终端,用vi编辑文件:/mnt/sdcard/eflasher.conf,文件不存在就新增一个,内容同上面的方法2。<br />
  
positive differential clock line
+
== 烧写或恢复系统完成后做些其他事情 ==
| 130
+
在量产时,你可能会希望在烧写系统完成后做一些额外的事情,比如点亮某个LED,你可以修改 /opt/run-eflasher.sh 脚本,在 "./eflasher-gui" 开头这一行的后面加入代码,例如下面的示例,在烧写完成后,设置某个GPIO针脚:
| style="background-color:#329a9d;" | MIPI_TX1/RX1_CLKP
+
<syntaxhighlight lang="bash">
| In/Out
+
./eflasher-gui -qws >/dev/null 2>&1
| float
+
echo 13 > /sys/class/gpio/export
| MIPI CSI1/DSI1
+
echo out > /sys/class/gpio/gpio13/direction
positive differential clock line
+
echo 0 > /sys/class/gpio/gpio13/value
 +
echo 13 > /sys/class/gpio/unexport
 +
</syntaxhighlight>
 +
要让上面的脚本正常运作,我们还需要设置让 eflasher-gui 在烧写完成后自动退出,需要做以下设置:<br />
 +
用notepad+文本编辑器在SD卡的Fat分区上编辑并新建一个名为eflasher.conf文件,将AutoExit字段设置为True:<br />
 +
<syntaxhighlight lang="bash">
 +
[General]
 +
autoStart=/mnt/sdcard/friendlycore-xenial
 +
autoExit=true
 +
</syntaxhighlight>
 +
<br />
 +
 
 +
== eMMC Flash的备份和恢复 ==
 +
 
 +
这个功能类拟于电脑上面的 ghost 软件,可以将整个 eMMC Flash 的数据备份到 U盘 或 移动硬盘,或者从 U盘 恢复系统到 eMMC Flash,恢复系统时,可以恢复到 同一个开发板,也可以恢复到 同型号同规格的其他开发板。<br /><br />
 +
<b>为产品量产提供的便利</b>:<br />
 +
在一块开发板上做好定制,比如预装好软件和设置,然后备份一份出来,恢复到其他开发板上,以达到量产的目的,由于是对eMMC Flash进行祼读和祼写,所以支持包括 Android和Linux 在内的所有系统及数据。<br />
 +
<br />
 +
功能要求:<br />
 +
此功能要求你有一个容易大过 eMMC Flash 大小的U盘,或者移动硬盘,并且里面没有重要的数据,最好事先格式化为exFat或者ntfs格式,在必要时,EFlasher可能会对你磁盘进行重新分区及格式化 (会事先询问)。
 +
<br />
 +
 
 +
=== 图形界面上执行备份和恢复 ===
 +
 
 +
在 EFlasher 界面上点击 Backup and Restore 进入备份菜单,根据提示操作即可,如下图所示:<br />
 +
::[[File:Eflasher-backup-restore.jpg| frameless|800px|Eflasher-console]]<br />
 +
<br />
 +
 
 +
===命令行进行备份和恢复  ===
 +
在命令行终端执行以下命令启动命令行EFlasher,命令行终端可以是ssh或者串口终端:
 +
<syntaxhighlight lang="bash">
 +
# eflasher
 +
</syntaxhighlight>
 +
 
 +
然后你会看到如下功能菜单项:
 +
<pre>
 +
----------------------------------------------------------------------
 +
  EFlasher v1.2 b190111 running on NanoPC-T4
 +
    Doc: http://wiki.friendlyarm.com/wiki/index.php/EFlasher
 +
    eMMC: 14.56 GB
 +
----------------------------------------------------------------------
 +
  # Select an OS to install:
 +
    1) Android 8
 +
 
 +
  # Select your backup target device:
 +
    tf) [*] TF card  (/dev/mmcblk0p1 - 4.27 GB free - 5.67 GB total - fuseblk)
 +
    usb) [ ] USB disk  (<none>)
 +
 
 +
  # Backup eMMC flash to TF card:
 +
    Not enough free disk space on your TF card
 +
 
 +
  # Restore eMMC flash from backup file:
 +
    No backup files found
 +
 
 +
  # Configure automatic job:
 +
    aui) Automatic installing (Curr:Off)
 +
    aur) Automatic restoring (Curr:Off)
 +
 
 +
  # Format drive
 +
    ftf) Format TF card back to original size
 +
----------------------------------------------------------------------
 +
>>> Enter an option (1/tf/usb/aui/aur/ftf) :
 +
</pre>
 +
 
 +
===选择备份文件的存储位置===
 +
可以将备份文件放在 TF 卡,或者USB存储设备,用 tf 和 usb 命令进行切换。
 +
====备份到TF卡====
 +
你的TF卡的大小应该大于或等于两倍的eMMC大小,例如eMMC是8G,则你应该准备一张16G的TF card。<br />
 +
默认情况下,8G以上的 TF 卡在 eFlasher 系统下并没有利用上所有的空间,需要做一次格式化,使用菜单上的 ftf 命令即可。<br />
 +
====备份到USB存储设备====
 +
USB存储设备最好是 ext4/exfat/ntfs 格式的,如果不是,可以使用菜单上的 fud 对USB存储设备进行一次格式化,注意,此操作会丢失所有数据。
 +
====开始备份====
 +
根椐菜单项前面插号的指示, 输入bk并按回车启动备份,在命令行模式下,EFlasher会立即开始备份,存储为扩展名为raw的文件,如下图所示:<br />
 +
<syntaxhighlight lang="bash">
 +
----------------------------------------------------------------------
 +
  Backing up eMMC to /mnt/udisk/nanopc-t3-emmc.raw
 +
----------------------------------------------------------------------
 +
  Speed: 15.01 MB/s
 +
  Remaining Time: 00:12:53
 +
  [===========_______________________________________]  22%
 +
----------------------------------------------------------------------
 +
  >>>If you want to cancel, input "c" then press <Enter> key.
 +
</syntaxhighlight>
 +
 
 +
===扩展功能  ===
 +
 
 +
EFlasher允许你编写一些 Linux shell 脚本,来对 eMMC 的 boot分区或者根文件系统分区进行内容更改,比如:<br />
 +
1)增加个性化的开机LOGO<br />
 +
2)为板子分配静态的IP地址,或者MAC地址<br />
 +
3)通过网络更新数据,软件<br />
 +
4)  等等<br />
 +
EFlasher在完成对 eMMC 的恢复操作之后,自动执行你的脚本。<br />
 +
你的脚本需要放在一个单独的目录下,这个目录需要与备份文件同级,目录名称的命令规则是: 备份文件名+.d,例如 备份文件名是 xxxx.raw,则脚本目录名应为 xxxx.raw.d。<br/>
 +
EFlasher 在默认情况下,会为你的备份文件生成一个清理脚本,其作用是对文件系统做一些常规的清理工作,例如清理 tmp 目录下的临时文件、var目录下的log等等。<br />
 +
你可以通过参考 EFlasher 生成的清理脚本来了解应该如何访问 eMMC 的boot分区和根分区。<br />
 +
<syntaxhighlight lang="bash">
 +
root@NanoPC-T3:/mnt/udisk/nanopc-t3-emmc.raw.d# tree
 +
.
 +
|-- cleanup.sh
 +
`-- README.txt
 +
 
 +
0 directories, 2 files
 +
root@NanoPC-T3:/mnt/udisk/nanopc-t3-emmc.raw.d#
 +
</syntaxhighlight>
 +
 
 +
(注: 使用开机自动还原功能时,此特性不起作用)
 +
 
 +
=== 开机自动恢复指定的备份 ===
 +
有三种途径可以进行配置:<br />
 +
* 方法1:在图形界面上,进入Backup and restore界面,先选择备份文件所在的存储设备,可选择TF card或者USB disk,选择 Turn on "Automatic restoring" ,然后选择要恢复的文件即可。<br />
 +
* 方法2:  将存放有备份文件的设备(TF卡或U盘)挂载到电脑上,用notepad+文本编辑器在根目录新建一个名为eflasher.conf文件 (如果已存在就直接编辑即可),示例内容如下:<br />
 +
<syntaxhighlight lang="bash">
 +
[General]
 +
autoRestore=/mnt/sdcard/nanopct3-backup-20190101.raw
 +
</syntaxhighlight>
 +
其中,/mnt/sdcard/代表TF card,/mnt/udisk代表USB磁盘.
 +
* 方法3:  开发板运行状态下,通过串口终端,如果备份文件位于TF卡,用vi编辑文件:/mnt/sdcard/eflasher.conf, 如果备份文件位于 USB存储设备,用vi编辑文件:/mnt/udisk/eflasher.conf,文件不存在就新增一个,内容同上面的方法2。<br />
 +
 
 +
== 针对量产用户的定制选项==
 +
 
 +
=== EFlasher对系统映象的管理 ===
 +
 
 +
EFlasher会从SD卡的Fat分区读取系统映象文件,将SD卡插入Windows的电脑,你可以直接管理这些映象文件。<br />
 +
在SD卡的Fat分区,根目录下的每一个子目录,代表一个OS,目录名称可随意命令(但不能是中文), <br />
 +
如果SD卡的Fat分区空间不够用,你也可以在一个U盘中存放这些系统文件,目录结构与SD卡的相同。<br />
 +
<br />
 +
例如Fat分区有下面4个目录: <br />
 +
[[File:Eflasher-folder.png| frameless|400px|Eflasher-folder]]<br />
 +
对应以下4个可安装的系统: <br />
 +
[[File:Eflasher-oslist.png| frameless|400px|Eflasher-oslist]]<br />
 +
<br />
 +
每个目录下的文件,分别说明如下:<br />
 +
烧写配置文件:<br />
 +
::{| class="wikitable"
 
|-
 
|-
| 131
+
| env.conf    || 用于设置uboot环境变量,内核启动参数
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 132
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
 
|-
 
|-
| 133
+
| info.conf    || 用于个性化烧写程序界面上的名称、图标以及定义该系统所属的硬件平台,示例说明: <br />
| style="background-color:#329a9d;" | MIPI_RX0_D1N
+
title=Android 5 ---> 系统名称显示为Android5<br />
| In
+
require-board=s5p4418  ---> 所属平台 s5p4418, 可选的值还有 s5p6818, h3, a64 等<br />
| float
+
version=2016-11-17  ---> 该rom的版本 (或制作的日期) <br />
| MIPI CSI0 negative differential data line
+
icon=androidos.png  ---> 图标 <br />
| 134
+
上面的定义对应的显示所下:<br />[[File:Eflasher-infoconf.png| frameless|200px|Eflasher-infoconf]]<br />
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D2N
+
| In/Out
+
| float
+
| MIPI CSI1/DSI1 negative differential data line
+
 
|-
 
|-
| 135
+
|}
| style="background-color:#329a9d;" | MIPI_RX0_D1P
+
| In
+
| float
+
| MIPI CSI0
+
  
positive differential data line
+
系统映象文件, 不同的系统可能不同:<br />
| 136
+
::{| class="wikitable"
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D2P
+
| In/Out
+
| float
+
| MIPI CSI1/DSI1
+
positive differential data line
+
 
|-
 
|-
| 137
+
| 2ndboot.bin    || Second Boot
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 138
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
 
|-
 
|-
| 139
+
| boot.img    || boot分区映象文件
| style="background-color:#329a9d;" | MIPI_RX0_D0N
+
| In
+
| float
+
| MIPI CSI0 negative differential data line
+
| 140
+
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D3N
+
| In/Out
+
| float
+
| MIPI CSI1/DSI1 negative differential data line
+
 
|-
 
|-
| 141
+
| bootloader    || U-Boot
| style="background-color:#329a9d;" | MIPI_RX0_D0P
+
| In
+
| float
+
| MIPI CSI0
+
positive differential data line
+
| 142
+
| style="background-color:#329a9d;" | MIPI_TX1/RX1_D3P
+
| In/Out
+
| float
+
| MIPI CSI1/DSI1
+
positive differential data line
+
 
|-
 
|-
| 143
+
| cache.img    || Android Cache分区映象
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
| 144
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
 
|-
 
|-
| style="background-color:#9698ed;" |  
+
| system.img    || 系统分区的映象
| rowspan="2" colspan="4" style="font-weight:bold; background-color:#9698ed; color:#ffffff;" | Connector Key
+
| style="background-color:#9698ed;" |
+
| rowspan="2" colspan="4" style="font-weight:bold; background-color:#9698ed; color:#ffffff;" | Connector Key
+
 
|-
 
|-
| style="background-color:#9698ed;" |  
+
| userdata.img    || 数据分区的映象
| style="background-color:#9698ed;" |  
+
 
|-
 
|-
| 145
+
| partmap.txt    || 分区描述文件
| style="background-color:#34cdf9;" | HDMI_CEC
+
| In/Out
+
| float
+
| HDMI CEC signal, 3V level
+
| 146
+
| style="background-color:#00ff00;" | GND
+
| Power
+
| /
+
| System Ground(0V)
+
 
|-
 
|-
| 147
 
| style="background-color:#34cdf9;" | HDMI_HPD
 
| In
 
| float
 
| HDMI hot plug
 
| 148
 
| style="background-color:#329a9d;" | MIPI_TX0_D3N
 
| Out
 
| float
 
| MIPI DSI0 negetive differential data line
 
|-
 
| 149
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 150
 
| style="background-color:#329a9d;" | MIPI_TX0_D3P
 
| Out
 
| float
 
| MIPI DSI0 positive differential data line
 
|-
 
| 151
 
| style="background-color:#329a9d;" | HDMI_TXCN
 
| Out
 
| float
 
| HDMI differential clock line negative
 
| 152
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 153
 
| style="background-color:#329a9d;" | HDMI_TXCP
 
| Out
 
| float
 
| HDMI differential clock line positive
 
| 154
 
| style="background-color:#329a9d;" | MIPI_TX0_D2N
 
| Out
 
| float
 
| MIPI DSI0 negetive differential data line
 
|-
 
| 155
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 156
 
| style="background-color:#329a9d;" | MIPI_TX0_D2P
 
| Out
 
| float
 
| MIPI DSI0 positive differential data line
 
|-
 
| 157
 
| style="background-color:#329a9d;" | HDMI_TX0N
 
| Out
 
| float
 
| HDMI differential data line negative
 
| 158
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 159
 
| style="background-color:#329a9d;" | HDMI_TX0P
 
| Out
 
| float
 
| HDMI differential data line positive
 
| 160
 
| style="background-color:#329a9d;" | MIPI_TX0_CLKN
 
| Out
 
| float
 
| MIPI DSI0 negetive differential clock line
 
|-
 
| 161
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 162
 
| style="background-color:#329a9d;" | MIPI_TX0_CLKP
 
| Out
 
| float
 
| MIPI DSI0 positive differential clock line
 
|-
 
| 163
 
| style="background-color:#329a9d;" | HDMI_TX1N
 
| Out
 
| float
 
| HDMI differential data line negative
 
| 164
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 165
 
| style="background-color:#329a9d;" | HDMI_TX1P
 
| Out
 
| float
 
| HDMI differential data line positive
 
| 166
 
| style="background-color:#329a9d;" | MIPI_TX0_D1N
 
| Out
 
| float
 
| MIPI DSI0 negetive differential data line
 
|-
 
| 167
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 168
 
| style="background-color:#329a9d;" | MIPI_TX0_D1P
 
| Out
 
| float
 
| MIPI DSI0 positive differential data line
 
|-
 
| 169
 
| style="background-color:#329a9d;" | HDMI_TX2N
 
| Out
 
| float
 
| HDMI differential data line negative
 
| 170
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 171
 
| style="background-color:#329a9d;" | HDMI_TX2P
 
| Out
 
| float
 
| HDMI differential data line positive
 
| 172
 
| style="background-color:#329a9d;" | MIPI_TX0_D0N
 
| Out
 
| float
 
| MIPI DSI0 negetive differential data line
 
|-
 
| 173
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 174
 
| style="background-color:#329a9d;" | MIPI_TX0_D0P
 
| Out
 
| float
 
| MIPI DSI0 positive differential data line
 
|-
 
| 175
 
| style="background-color:#329a9d;" | USB3.0/TYPE-C1_DP
 
| In/Out
 
| float
 
| TYPEC1 USB 2.0 data+
 
| 176
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 177
 
| style="background-color:#329a9d;" | USB3.0/TYPE-C1_DM
 
| In/Out
 
| float
 
| TYPEC1 USB 2.0 data-
 
| 178
 
| style="background-color:#329a9d;" | PCIE_RX3_N
 
| In
 
| float
 
| PCIe negative differential data line
 
|-
 
| 179
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 180
 
| style="background-color:#329a9d;" | PCIE_RX3_P
 
| In
 
| float
 
| PCIe positive differential data line
 
|-
 
| 181
 
| style="background-color:#329a9d;" | USB3.0/TYPEC1_TX1P
 
| Out
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed TX1P
 
| 182
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 183
 
| style="background-color:#329a9d;" | USB3.0/TYPEC1_TX1M
 
| Out
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed TX1M
 
| 184
 
| style="background-color:#329a9d;" | PCIE_TX3N
 
| Out
 
| float
 
| PCIe negative differential data line
 
|-
 
| 185
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 186
 
| style="background-color:#329a9d;" | PCIE_TX3P
 
| Out
 
| float
 
| PCIe positive differential data line
 
|-
 
| 187
 
| style="background-color:#329a9d;" | USB3.0/TYPEC1_RX1P
 
| In
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed RX1P
 
| 188
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 189
 
| style="background-color:#329a9d;" | USB3.0/TYPEC1_RX1M
 
| In
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed RX1M
 
| 190
 
| style="background-color:#329a9d;" | PCIE_RX2_N
 
| In
 
| float
 
| PCIe negative differential data line
 
|-
 
| 191
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 192
 
| style="background-color:#329a9d;" | PCIE_RX2_P
 
| In
 
| float
 
| PCIe positive differential data line
 
|-
 
| 193
 
| style="background-color:#329a9d;" | TYPEC1_TX2P
 
| Out
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed TX2P
 
| 194
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 195
 
| style="background-color:#329a9d;" | TYPEC1_TX2M
 
| Out
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed TX2M
 
| 196
 
| style="background-color:#329a9d;" | PCIE_TX2N
 
| Out
 
| float
 
| PCIe negative differential data line
 
|-
 
| 197
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 198
 
| style="background-color:#329a9d;" | PCIE_TX2P
 
| Out
 
| float
 
| PCIe positive differential data line
 
|-
 
| 199
 
| style="background-color:#329a9d;" | TYPEC1_RX2P
 
| In
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed RX2P
 
| 200
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 201
 
| style="background-color:#329a9d;" | TYPEC1_RX2M
 
| In
 
| float
 
| TYPEC1 USB3.0 PHY0 SuperSpeed RX2M
 
| 202
 
| style="background-color:#329a9d;" | PCIE_RX1_N
 
| In
 
| float
 
| PCIe negative differential data line
 
|-
 
| 203
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 204
 
| style="background-color:#329a9d;" | PCIE_RX1_P
 
| In
 
| float
 
| PCIe positive differential data line
 
|-
 
| 205
 
| style="background-color:#329a9d;" | TYPEC1_SBU1
 
| In/Out
 
| float
 
| TYPEC1 SBU1
 
| 206
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 207
 
| style="background-color:#329a9d;" | TYPEC1_SBU2
 
| In/Out
 
| float
 
| TYPEC1 SBU2
 
| 208
 
| style="background-color:#329a9d;" | PCIE_TX1N
 
| Out
 
| float
 
| PCIe negative differential data line
 
|-
 
| 209
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 210
 
| style="background-color:#329a9d;" | PCIE_TX1P
 
| Out
 
| float
 
| PCIe positive differential data line
 
|-
 
| 211
 
| TYPEC1_SBU1_DC
 
| Out
 
| float
 
| TYPEC1 SBU1 DC Bias
 
| 212
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 213
 
| TYPEC1_SBU2_DC
 
| Out
 
| float
 
| TYPEC1 SBU2 DC Bias
 
| 214
 
| style="background-color:#329a9d;" | PCIE_RX0_N
 
| In
 
| float
 
| PCIe negative differential data line
 
|-
 
| 215
 
| TYPEC1_U2VBUSDET
 
| In
 
| float
 
| TYPEC1 Vbus detect
 
| 216
 
| style="background-color:#329a9d;" | PCIE_RX0_P
 
| In
 
| float
 
| PCIe positive differential data line
 
|-
 
| 217
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 218
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 219
 
| style="background-color:#329a9d;" | HOST0_DP
 
| In/Out
 
| float
 
| USB 2.0 Host0 data+
 
| 220
 
| style="background-color:#329a9d;" | PCIE_TX0N
 
| Out
 
| float
 
| PCIe negative differential data line
 
|-
 
| 221
 
| style="background-color:#329a9d;" | HOST0_DM
 
| In/Out
 
| float
 
| USB 2.0 Host0 data-
 
| 222
 
| style="background-color:#329a9d;" | PCIE_TX0P
 
| Out
 
| float
 
| PCIe positive differential data line
 
|-
 
| 223
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 224
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 225
 
| style="background-color:#329a9d;" | HOST1_DP
 
| In/Out
 
| float
 
| USB 2.0 Host1 data+
 
| 226
 
| style="background-color:#329a9d;" | PCIE_REF_CLKN
 
| Out
 
| float
 
| PCIe negative differential reference clock line
 
|-
 
| 227
 
| style="background-color:#329a9d;" | HOST1_DM
 
| In/Out
 
| float
 
| USB 2.0 Host1 data-
 
| 228
 
| style="background-color:#329a9d;" | PCIE_REF_CLKP
 
| Out
 
| float
 
| PCIe positive differential reference clock line
 
|-
 
| 229
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 230
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 231
 
| style="background-color:#329a9d;" | EDP_TX3N
 
| Out
 
| float
 
| eDP data line negative
 
| 232
 
| LAN_LED0_BLINK
 
| Out
 
| float
 
| 10/100/1000M Ethernet Status LED0
 
|-
 
| 233
 
| style="background-color:#329a9d;" | EDP_TX3P
 
| Out
 
| float
 
| eDP data line positive
 
| 234
 
| LAN_LED1_LINK
 
| Out
 
| float
 
| 10/100/1000M Ethernet Status LED1
 
|-
 
| 235
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 236
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 237
 
| style="background-color:#329a9d;" | EDP_TX2N
 
| Out
 
| float
 
| eDP data line negative
 
| 238
 
| style="background-color:#329a9d;" | MDI3-
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI3-
 
|-
 
| 239
 
| style="background-color:#329a9d;" | EDP_TX2P
 
| Out
 
| float
 
| eDP data line positive
 
| 240
 
| style="background-color:#329a9d;" | MDI3+
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI3+
 
|-
 
| 241
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 242
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 243
 
| style="background-color:#329a9d;" | EDP_TX1N
 
| Out
 
| float
 
| eDP data line negative
 
| 244
 
| style="background-color:#329a9d;" | MDI2-
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI2-
 
|-
 
| 245
 
| style="background-color:#329a9d;" | EDP_TX1P
 
| Out
 
| float
 
| eDP data line positive
 
| 246
 
| style="background-color:#329a9d;" | MDI2+
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI2+
 
|-
 
| 247
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 248
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 249
 
| style="background-color:#329a9d;" | EDP_TX0N
 
| Out
 
| float
 
| eDP data line negative
 
| 250
 
| style="background-color:#329a9d;" | MDI1-
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI1-
 
|-
 
| 251
 
| style="background-color:#329a9d;" | EDP_TX0P
 
| Out
 
| float
 
| eDP data line positive
 
| 252
 
| style="background-color:#329a9d;" | MDI1+
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI1+
 
|-
 
| 253
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 254
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
|-
 
| 255
 
| style="background-color:#329a9d;" | EDP_AUXP
 
| In/Out
 
| float
 
| eDP AUX line positive
 
| 256
 
| style="background-color:#329a9d;" | MDI0-
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI0-
 
|-
 
| 257
 
| style="background-color:#329a9d;" | EDP_AUXN
 
| In/Out
 
| float
 
| eDP AUX line negative
 
| 258
 
| style="background-color:#329a9d;" | MDI0+
 
| In/Out
 
| float
 
| 10/100/1000M Ethernet MDI0+
 
|-
 
| 259
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
| 260
 
| style="background-color:#00ff00;" | GND
 
| Power
 
| /
 
| System Ground(0V)
 
 
|}
 
|}
  
* '''按键'''
+
以上映象文件默认已经预装在eFlasher的固件中,不过你也可以到指定板子的下载地址下载它们,进入官方的下载地址指向的网盘目录,这些系统映象放在一个名为 images-for-eflasher 的目录下,以下是S5P6818开发板的网盘目录:<br />
**三个按键分别是电源按键, 系统还原和复位。此3个按键相应的信号也存在于260Pin金手指上。
+
::[[File:Images-for-eflasher.png| frameless|800px|EImages-for-eflasher.png]] <br />
  
* '''LED'''
+
可以下载这个目录下的文件然后解压到SD卡的Fat分区或者U盘即可。
** 一个红色的电源LED和一个绿色的状态LED
+
  
* '''USB Type-C接口'''
 
**一个全功能USB-C接口,支持DP,支持USB2.0和USB3.0数据传输,可向外输出5V/2A电源,但不可外接电源给板子供电。支持DRP和安卓ADB调试。因为USB3.0模式下不支持ADB,所以,当使用ADB功能时,请连接到PC的USB2.0端口,或使用只具备USB2.0功能的数据线连接板子和PC。
 
**另外一个USB Type-C 5V_IN接口只有给板子供电的功能,用于不接底板快速测试板子。
 
  
* '''电源输入'''
+
=== 制作自已的量产Eflasher烧写卡 ===
**支持从金手指和USB Type-C 5V_IN接口给核心板供电,支持5V到20V宽电压输入,推荐12V。我们运行安兔兔测试程序时,测量到的最大功耗是10.8W, 建议按12W设计。
+
请参考 [[How to make your own SD-bootable ROM/zh]]
**设计底板时,建议在电源输入处添加100uF/16V,或100uF/35V电解电容, 以减少电源振铃和提供瞬态电流。
+
  
==参考底板==
+
=== 在EFlasher系统中连接WiFi ===
*'''SOM-RK3399 Dev Kit''' [[SOM-RK3399 Dev Kit/zh|点击跳转到底板介绍页面]]'''
+
写入如下内容到配置文件:/etc/wpa_supplicant/wpa_supplicant.conf,其中,SSID和PASSWORD请替换为路由器的SSID和密码:
[[File:SOM-RK3399 Dev Kit 1904-layout.jpg|800px]]
+
<syntaxhighlight lang="bash">
 +
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
 +
update_config=1
 +
country=CN
 +
network={
 +
  ssid="SSID"
 +
  psk="PASSWORD"
 +
  key_mgmt=WPA-PSK
 +
}
 +
</syntaxhighlight>
 +
如果WiFi路由并没有设置密码,请将key_mgmt设置为NONE, 删除psk=这一行。
  
==快速入门==
+
=== 更改IP地址为动态获取 ===
===准备工作===
+
For faster startup speed, we set the eflasher to  static ip address: 192.168.1.231, <br />
要开启你的SOM-RK3399,请先准备好以下硬件:
+
* SOM-RK3399主板
+
* Type-C数据线
+
* TF卡: Class10或以上的8GB microSD卡
+
* USB转串口适配器(可选,用于调试或PC上进行操作)
+
* 一个DC接口的外接电源,要求输出为12V/2A
+
* 一台支持HDMI输入的显示器或者电视(或选购LCD配件)
+
* 一套USB键盘鼠标,同时连接更多USB的设备时还需要USB HUB
+
* 一台电脑,需要联网,建议使用<b>Ubuntu 18.04 64位系统</b>
+
 
+
{{RK3399-BurnOS-To-EMMC/zh|SOM-RK3399}}
+
{{RK3399-BurnOS-with-TypeC/zh|SOM-RK3399}}
+
{{RK3399-BootFromSDCard/zh|SOM-RK3399}}
+
{{RK3399-DebugPort/zh|SOM-RK3399}}
+
==FriendlyDesktop系统的使用==
+
{{FriendlyDesktop-Intro/zh|SOM-RK3399}}
+
{{FriendlyDesktop-Contents/zh|SOM-RK3399}}
+
===FriendlyDesktop下使用NVME SSD===
+
请参考: [[Template:RK3399 Linux Using NVME SSD|Linux-Using-NVME-SSD]]<br />
+
{{FriendlyCoreGeneral/zh|SOM-RK3399}}
+
{{FriendlyCoreRunX11Application/zh|SOM-RK3399}}
+
{{RK3399 Linux mpv/zh|SOM-RK3399}}
+
==同时适用于FriendlyDesktop与FriendlyCore系统的功能特性==
+
{{Linux-RK3399MIPICamera/zh|SOM-RK3399}}
+
{{RK3399-Linux-Install-Docker/zh|SOM-RK3399}}
+
{{RK3399 Linux FFmpeg/zh|SOM-RK3399}}
+
{{RK3399 Linux Using NVME SSD/zh|SOM-RK3399}}
+
{{RK3399 Linux PWMFan/zh|SOM-RK3399}}
+
===Linux下使用4G EC20模块===
+
请参考: [[How to use 4G Module on NanoPC-T4/zh]]<br />
+
==Buildroot Linux系统的使用==
+
{{RK3399 Buildroot Intro/zh|SOM-RK3399}}
+
 
<br />
 
<br />
关于Buildroot系统更详细的说明,请参考: [[Buildroot for RK3399/zh|Buildroot for RK3399]]<br />
+
If you want to change to dhcp, you can modify this file:<br />
==Lubuntu 系统的使用==
+
/etc/network/interfaces.d/eth0<br />
看这里: [[Lubuntu desktop 16.04 for RK3399/zh]]<br />
+
<br />
Lubuntu下使用NVME SSD: [[Template:RK3399 Linux Using NVME SSD/zh|Linux-Using-NVME-SSD]]<br />
+
Change the contents of this file to:<br />
{{RK3399-Android8/zh|SOM-RK3399}}
+
<syntaxhighlight lang="bash">
{{RK3399-Android-RemoteController/zh|SOM-RK3399}}
+
    auto eth0
{{RK3399-Android-USBCamera/zh|SOM-RK3399}}
+
    iface eth0 inet dhcp
{{RK3399-Android-4G-EC20/zh|SOM-RK3399}}
+
</syntaxhighlight>
{{RK3399-Android-SSD/zh|SOM-RK3399}}
+
{{RK3399 Android PWMFan/zh|SOM-RK3399}}
+
==Android7.1 系统的使用==
+
看这里: [[RK3399-Android7|Android7]]
+
{{RK3399-BuildFromSource/zh|SOM-RK3399}}
+
{{RK3399-HWAccess/zh|SOM-RK3399}}
+
{{RK3399-SourceCodeURLs/zh|SOM-RK3399}}
+
 
+
==更多OS==
+
===DietPi_NanoPCT4-ARMv8-Stretch===
+
DietPi身轻如燕,镜像文件最小只有345M 字节。系统存储操作及进程对资源的占用非常少,并且预装DietPi-RAMlog工具。这些特性使得用户能最大程度地发挥设备本身的性能。<br />
+
 
+
仅提供给进阶爱好者交流使用,不对该系统提供专业技术支持。 <br />
+
 
+
详细操作步骤如下:<br />
+
* 初次使用时,请先下载DriverAssitant_v4.5.tgz,解压后安装USB驱动;
+
* 下载系统固件DietPi_NanoPCT4-ARMv8-Stretch点击下载[https://dietpi.com/downloads/images/DietPi_NanoPCT4-ARMv8-Stretch.7z DietPi_NanoPCT4-ARMv8-Stretch]
+
* 解压,进入Image_and_Tools,以管理员身份运行AndroidTool.exe
+
* 默认已经导入分区配置,即固件中的parameter.txt,并已经指定各分区的烧写文件路径,如下图所示:
+
[[File:AndroidTools_DI_02.png|下载DietPi_NanoPCT4固件|800px|]]
+
* 连接好12V/2A的DC接口电源及HDMI显示设备,连接Type-C数据线到PC,按住Recovery键再长按(1.5秒以上)Power键开机,AndroidTool会显示“发现一个LOADER设备”<br />a) 如果eMMC没有烧写过系统或eMMC的系统被擦除或损坏则会显示为MASKROM设备;<br />b) 您也可以按住BOOT键再长按Power键开机,同时持续按住BOOT键5秒以上强制进入MASKROM模式;<br />c) 如果显示“没有发现设备”,请先检查是否已成功安装驱动,检查Type-C数据线然后按上述方法重新开机,或按住Recovery键再按Reset键;<br />d) 另外,如果已成功启动系统,可通过串口、adb或ssh等方式在板子上运行reboot loader重启板子并进入LOADER模式。<br />
+
* 点击“Run”即可下载固件到eMMC,请耐心等待,烧写成功结束后将自动重启。<br />
+
[[File:Dietpi-login-01.png|Dietpi-NanoPC-T4启动界面|800px|]]<br />
+
 
+
登录账号:root <br />
+
登录密码:dietpi<br />
+
 
+
===使用wifi===
+
系统默认没有使能wifi,请执行dietpi-config配置。
+
dietpi-config
+
    --> Network Options:Adapters
+
        --> WiFi  Change Wireless Network Settings
+
            --> Scan  Scan and Connect
+
选择要连接的WiFi热点,输入密码后连接<br />
+
[[File:Dietpi-dietpi-config-01.png|dietpi-config|800px|]]<br />
+
 
+
==Link to Rockchip Resources==
+
*Link to Rockchip's resources: https://gitlab.com/friendlyelec/rk3399-nougat/tree/nanopc-t4-nougat/RKDocs
+
*[http://opensource.rock-chips.com/images/6/60/Rockchip_RK3399_Datasheet_V1.6-20170301.pdf RK3399 datasheet V1.6]
+
*[http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf RK3399TRM V1.4]
+
 
+
==原理图, PCB图==
+
*核心板原理图: [http://wiki.friendlyarm.com/wiki/images/9/96/SOM-RK3399_1904_Schematic.pdf SOM-RK3399_1904_Schematic.pdf]
+
*核心板PCB CAD 文件:[http://wiki.friendlyarm.com/wiki/images/6/62/SOM-RK3399_1904_dxf.zip SOM-RK3399_1904_dxf.zip]
+
*底板原理图:[http://wiki.friendlyarm.com/wiki/images/d/de/SOM-RK3399_Dev_Kit_1904_Schematic.pdf SOM-RK3399_Dev_Kit_1904_Schematic.pdf]
+
*底板PCB CAD 文件:[http://wiki.friendlyarm.com/wiki/images/7/7f/SOM-RK3399_Dev_Kit_1904_dxf.zip SOM-RK3399_Dev_Kit_1904_dxf.zip]
+
 
+
==更新日志==
+
{{RK3399-UpdateLog/zh|SOM-RK3399}}
+
===2018-08-20===
+
* 增加新的桌面OS:[[FriendlyDesktop 18.04 for RK3399]],主要特性
+
1) 带X桌面 LXDE,基于64位Ubuntu 18.04系统构建,支持OpenGL ES加速,支持硬解播放<br>
+
2) 支持SD卡启动运行,支持TF卡刷机或Type-C刷机<br>
+
3) 完全保留[[FriendlyCore (based on ubuntu-core with Qt)|FriendlyCore 18.04 for RK3399]]的特性,集成带GPU和VPU加速的Qt 5.10.0<br>
+
4) 内置开源硬解的4K视频播放器 QtVideoPlayer(Menu->Sound & Video->Qt5-VideoPlayer)<br>
+
5) 内置 QtCreator IDE,Arduino 和 Scratch等流行开发和学习工具,开箱即用<br>
+
6) 支持双屏异显 (可选择eDP/DP/HDMI 任意两路同时输出)<br>
+
7) 支持eDP电容触摸屏 (HD702E)<br>
+
8) 支持屏幕旋转 (仅限于eDP)<br>
+
9) 支持AP6356S无线模块 (802.11 a/b/g/n/AC,BLE4.0)<br>
+
10) 支持升兆以太网即插即用<br>
+
11) 支持 OpenCV 3.4 一键安装 (详见https://github.com/friendlyarm/install-opencv-on-friendlycore)<br>
+
12) 内置gcc版本:7.3.0<br>
+
13) 内核版本:4.4.138<br>
+
附下载链接:http://dl.friendlyarm.com/nanopct4
+
 
+
===2018-08-02===
+
* 增加可以直接从SD卡启动的FriendlyCore和Lubuntu固件
+
===2018-07-28===
+
* 修正FriendlyCore中的一处可能会影响CPU降频的问题
+
===2018-07-27===
+
* Android增加UART4支持并集成了串口demo,内核增加常见USB串口支持
+
 
+
===2018-07-19===
+
* 增加新的OS:[[FriendlyCore (based on ubuntu-core with Qt)]],主要特性
+
1) 基于最新版本的 Ubuntu 18.04 构建<br>
+
2) 集成Qt 5.10.0,支持OpenGL ES加速,支持硬解播放,支持KMS双屏异显和WebGL和VNC远程控制<br>
+
3) 集成 Xorg最小系统,以最轻量的方式运行X11应用<br>
+
4) 集成带VPU加速的Gstreamer 1.0 多媒体框架<br>
+
5) 支持7寸电容屏HD702<br>
+
6) 5G WIFI 和 蓝牙4.0<br>
+
* 内核修复连接HDMI 2.0设备时的core dump问题
+
* Linux内核合并了原厂release-4.4的更新,版本为4.4.132
+
* EFlasher更新: 增加eMMC备份与还原功能
+
 
+
===2018-06-20===
+
* Android 支持HDMI与LCD屏幕旋转
+
* Android 增加 摇控器支持
+
* Lubuntu 内核默认启用 UART4,应用程序可通过设备名 ttyS4 访问
+
* 改进了 HDMI 与 eDP屏的用户体验
+

Revision as of 01:04, 15 June 2019

English

1 eFlasher介绍

eFlasher (eMMC-flasher) 是FriendlyElec官方发布的工具,让用户能方便和轻松地将系统安装到板载的eMMC上运行,甚至可以抛开电脑,就能让你在多个系统中,选择并安装上你想要的系统。

eFlasher同时为量产提供了灵活的设置选项,以方便工厂量产时安装定制系统。

eFlasher为方便使用,提供了图形界面与命令行两个版本,为方便描述,这里为它们分别命名为: eflasher-gui 和 eflasher-console:
1) eflasher-gui: 有图形界面的eFlasher,推荐有LCD屏或者HDMI显示的用户使用,可以使用触摸屏操作,没有触摸屏时也可以使用鼠标操作;
2) eflasher-console: 命令行版本的eFlasher,可在串口终端或者ssh命令行上使用;

2 eFlasher 的安装

  • 第一步: 下载包含eflasher工具的固件

到你所购买的板子相关WiKi页面,找到下载固件的章节,下载固件文件名为:XXXX-eflasher-YYYYMMDD-full.img.7z 的固件(其中XXXX替换为板子所在的平台型号, YYYYMMDD是该固件发布的日期),
这个固件内已经包含了所属平台的所有官方系统映象,包括最新版本的 Debian, Android5, Android4.4和Ubuntu core 系统 (不同的平台提供的系统有所不同);
将 XXXX-eflasher-YYYYMMDD-full.img.7z 下载到电脑上,在Windows下制作SD卡,还需要下载Windows下的烧写工具: win32diskimager.rar;

  • 第二步: 用eflasher固件制作SD启动卡

将固件用7z软件解压,得到.img结尾的文件,在Windows下插入SDHC卡(限4G及以上的卡),以管理员身份运行Win32DiskImager,选择 Image File载入固件,选择你的SD卡盘符,点 Write 即开始写Image到SD卡;
如果你的电脑用的是Linux系统,你也可以用 dd 命令将解压后得到的 .img 文件直接写入SD卡完成启动卡的制作;

  • 第三步: 启动eFlasher工具

将制作好的SD卡插入开发板, 按住标住有“BOOT”字样的按键,上电,如你有HDMI、LCD或者USB2LCD,可以在上电之前先连接好。

3 更新 eflasher 到最新版本

在开发板上执行以下命令:

git clone https://github.com/friendlyarm/eflasher-updater
cd eflasher-updater/
./update.sh

4 eFlasher系统的登录

在命令行模式下使用以下帐号登录:
用户名: root
密码: fa
如果通过ssh登录,eFlasher系统的IP地址默认为 192.168.1.231

5 启动图形界面版本的eFlasher

系统启动时,图形界面版本的eFlasher会随系统自动启动,如你有连接HDMI或者LCD,应该会看到如下所示的界面:

Eflasher-gui

点击触摸屏,或者用鼠标选择你需要烧写到eMMC的系统即可。


6 启动命令行版本的eFlasher

如果板子没有连接显示设备,可以通过串口或ssh登录开发板,在命令行终端下输入命令 eflasher也可以进入eflasher的命令行交互界面,命令行交互界面如下图所示:

----------------------------------------------------------------------
  EFlasher v1.2 b190111 running on NanoPC-T4
    Doc: http://wiki.friendlyarm.com/wiki/index.php/EFlasher
    eMMC: 14.56 GB
----------------------------------------------------------------------
  # Select an OS to install:
    1) Android 8
   
  # Select your backup target device:
     tf) [*] TF card  (/dev/mmcblk0p1 - 4.27 GB free - 5.67 GB total - fuseblk)
    usb) [ ] USB disk  (<none>)
   
  # Backup eMMC flash to TF card:
    Not enough free disk space on your TF card
   
  # Restore eMMC flash from backup file:
    No backup files found
   
  # Configure automatic job:
    aui) Automatic installing (Curr:Off)
    aur) Automatic restoring (Curr:Off)
   
  # Format drive
    ftf) Format TF card back to original size
----------------------------------------------------------------------
>>> Enter an option (1/tf/usb/aui/aur/ftf) :

7 开机自动烧写指定的系统

有三种途径可以进行配置:

  • 方法1:在图形界面上,选择你要烧写的系统,在Ready to Go预览界面上,在屏幕下方钩选 "Start automatically at startup" 。
  • 方法2: 将SD卡挂载到Windows电脑上,用notepad+文本编辑器在SD卡的Fat分区上新建一个名为eflasher.conf文件 (如果已存在就直接编辑即可),例如,要开机自动烧写debian系统,其内容如下:
[General]
autoStart=/mnt/sdcard/friendlycore-xenial

其中,autoStart字段所保存的路径,是你要烧写的系统的rom路径,本例是 Fat分区的 debian 目录。

  • 方法3: 开发板运行状态下,通过串口终端,用vi编辑文件:/mnt/sdcard/eflasher.conf,文件不存在就新增一个,内容同上面的方法2。

8 烧写或恢复系统完成后做些其他事情

在量产时,你可能会希望在烧写系统完成后做一些额外的事情,比如点亮某个LED,你可以修改 /opt/run-eflasher.sh 脚本,在 "./eflasher-gui" 开头这一行的后面加入代码,例如下面的示例,在烧写完成后,设置某个GPIO针脚:

./eflasher-gui -qws >/dev/null 2>&1
echo 13 > /sys/class/gpio/export 
echo out > /sys/class/gpio/gpio13/direction 
echo 0 > /sys/class/gpio/gpio13/value
echo 13 > /sys/class/gpio/unexport

要让上面的脚本正常运作,我们还需要设置让 eflasher-gui 在烧写完成后自动退出,需要做以下设置:
用notepad+文本编辑器在SD卡的Fat分区上编辑并新建一个名为eflasher.conf文件,将AutoExit字段设置为True:

[General]
autoStart=/mnt/sdcard/friendlycore-xenial
autoExit=true


9 eMMC Flash的备份和恢复

这个功能类拟于电脑上面的 ghost 软件,可以将整个 eMMC Flash 的数据备份到 U盘 或 移动硬盘,或者从 U盘 恢复系统到 eMMC Flash,恢复系统时,可以恢复到 同一个开发板,也可以恢复到 同型号同规格的其他开发板。

为产品量产提供的便利
在一块开发板上做好定制,比如预装好软件和设置,然后备份一份出来,恢复到其他开发板上,以达到量产的目的,由于是对eMMC Flash进行祼读和祼写,所以支持包括 Android和Linux 在内的所有系统及数据。

功能要求:
此功能要求你有一个容易大过 eMMC Flash 大小的U盘,或者移动硬盘,并且里面没有重要的数据,最好事先格式化为exFat或者ntfs格式,在必要时,EFlasher可能会对你磁盘进行重新分区及格式化 (会事先询问)。

9.1 图形界面上执行备份和恢复

在 EFlasher 界面上点击 Backup and Restore 进入备份菜单,根据提示操作即可,如下图所示:

Eflasher-console


9.2 命令行进行备份和恢复

在命令行终端执行以下命令启动命令行EFlasher,命令行终端可以是ssh或者串口终端:

# eflasher

然后你会看到如下功能菜单项:

----------------------------------------------------------------------
  EFlasher v1.2 b190111 running on NanoPC-T4
    Doc: http://wiki.friendlyarm.com/wiki/index.php/EFlasher
    eMMC: 14.56 GB
----------------------------------------------------------------------
  # Select an OS to install:
    1) Android 8
   
  # Select your backup target device:
     tf) [*] TF card  (/dev/mmcblk0p1 - 4.27 GB free - 5.67 GB total - fuseblk)
    usb) [ ] USB disk  (<none>)
   
  # Backup eMMC flash to TF card:
    Not enough free disk space on your TF card
   
  # Restore eMMC flash from backup file:
    No backup files found
   
  # Configure automatic job:
    aui) Automatic installing (Curr:Off)
    aur) Automatic restoring (Curr:Off)
   
  # Format drive
    ftf) Format TF card back to original size
----------------------------------------------------------------------
>>> Enter an option (1/tf/usb/aui/aur/ftf) :

9.3 选择备份文件的存储位置

可以将备份文件放在 TF 卡,或者USB存储设备,用 tf 和 usb 命令进行切换。

9.3.1 备份到TF卡

你的TF卡的大小应该大于或等于两倍的eMMC大小,例如eMMC是8G,则你应该准备一张16G的TF card。
默认情况下,8G以上的 TF 卡在 eFlasher 系统下并没有利用上所有的空间,需要做一次格式化,使用菜单上的 ftf 命令即可。

9.3.2 备份到USB存储设备

USB存储设备最好是 ext4/exfat/ntfs 格式的,如果不是,可以使用菜单上的 fud 对USB存储设备进行一次格式化,注意,此操作会丢失所有数据。

9.3.3 开始备份

根椐菜单项前面插号的指示, 输入bk并按回车启动备份,在命令行模式下,EFlasher会立即开始备份,存储为扩展名为raw的文件,如下图所示:

----------------------------------------------------------------------
  Backing up eMMC to /mnt/udisk/nanopc-t3-emmc.raw
----------------------------------------------------------------------
  Speed: 15.01 MB/s
  Remaining Time: 00:12:53
  [===========_______________________________________]  22%
----------------------------------------------------------------------
  >>>If you want to cancel, input "c" then press <Enter> key.

9.4 扩展功能

EFlasher允许你编写一些 Linux shell 脚本,来对 eMMC 的 boot分区或者根文件系统分区进行内容更改,比如:
1)增加个性化的开机LOGO
2)为板子分配静态的IP地址,或者MAC地址
3)通过网络更新数据,软件
4) 等等
EFlasher在完成对 eMMC 的恢复操作之后,自动执行你的脚本。
你的脚本需要放在一个单独的目录下,这个目录需要与备份文件同级,目录名称的命令规则是: 备份文件名+.d,例如 备份文件名是 xxxx.raw,则脚本目录名应为 xxxx.raw.d。
EFlasher 在默认情况下,会为你的备份文件生成一个清理脚本,其作用是对文件系统做一些常规的清理工作,例如清理 tmp 目录下的临时文件、var目录下的log等等。
你可以通过参考 EFlasher 生成的清理脚本来了解应该如何访问 eMMC 的boot分区和根分区。

root@NanoPC-T3:/mnt/udisk/nanopc-t3-emmc.raw.d# tree
.
|-- cleanup.sh
`-- README.txt
 
0 directories, 2 files
root@NanoPC-T3:/mnt/udisk/nanopc-t3-emmc.raw.d#

(注: 使用开机自动还原功能时,此特性不起作用)

9.5 开机自动恢复指定的备份

有三种途径可以进行配置:

  • 方法1:在图形界面上,进入Backup and restore界面,先选择备份文件所在的存储设备,可选择TF card或者USB disk,选择 Turn on "Automatic restoring" ,然后选择要恢复的文件即可。
  • 方法2: 将存放有备份文件的设备(TF卡或U盘)挂载到电脑上,用notepad+文本编辑器在根目录新建一个名为eflasher.conf文件 (如果已存在就直接编辑即可),示例内容如下:
[General]
autoRestore=/mnt/sdcard/nanopct3-backup-20190101.raw

其中,/mnt/sdcard/代表TF card,/mnt/udisk代表USB磁盘.

  • 方法3: 开发板运行状态下,通过串口终端,如果备份文件位于TF卡,用vi编辑文件:/mnt/sdcard/eflasher.conf, 如果备份文件位于 USB存储设备,用vi编辑文件:/mnt/udisk/eflasher.conf,文件不存在就新增一个,内容同上面的方法2。

10 针对量产用户的定制选项

10.1 EFlasher对系统映象的管理

EFlasher会从SD卡的Fat分区读取系统映象文件,将SD卡插入Windows的电脑,你可以直接管理这些映象文件。
在SD卡的Fat分区,根目录下的每一个子目录,代表一个OS,目录名称可随意命令(但不能是中文),
如果SD卡的Fat分区空间不够用,你也可以在一个U盘中存放这些系统文件,目录结构与SD卡的相同。

例如Fat分区有下面4个目录:
Eflasher-folder
对应以下4个可安装的系统:
Eflasher-oslist

每个目录下的文件,分别说明如下:
烧写配置文件:

env.conf 用于设置uboot环境变量,内核启动参数
info.conf 用于个性化烧写程序界面上的名称、图标以及定义该系统所属的硬件平台,示例说明:

title=Android 5 ---> 系统名称显示为Android5
require-board=s5p4418 ---> 所属平台 s5p4418, 可选的值还有 s5p6818, h3, a64 等
version=2016-11-17 ---> 该rom的版本 (或制作的日期)
icon=androidos.png ---> 图标
上面的定义对应的显示所下:
Eflasher-infoconf

系统映象文件, 不同的系统可能不同:

2ndboot.bin Second Boot
boot.img boot分区映象文件
bootloader U-Boot
cache.img Android Cache分区映象
system.img 系统分区的映象
userdata.img 数据分区的映象
partmap.txt 分区描述文件

以上映象文件默认已经预装在eFlasher的固件中,不过你也可以到指定板子的下载地址下载它们,进入官方的下载地址指向的网盘目录,这些系统映象放在一个名为 images-for-eflasher 的目录下,以下是S5P6818开发板的网盘目录:

EImages-for-eflasher.png

可以下载这个目录下的文件然后解压到SD卡的Fat分区或者U盘即可。


10.2 制作自已的量产Eflasher烧写卡

请参考 How to make your own SD-bootable ROM/zh

10.3 在EFlasher系统中连接WiFi

写入如下内容到配置文件:/etc/wpa_supplicant/wpa_supplicant.conf,其中,SSID和PASSWORD请替换为路由器的SSID和密码:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
  ssid="SSID"
  psk="PASSWORD"
  key_mgmt=WPA-PSK
}

如果WiFi路由并没有设置密码,请将key_mgmt设置为NONE, 删除psk=这一行。

10.4 更改IP地址为动态获取

For faster startup speed, we set the eflasher to static ip address: 192.168.1.231,

If you want to change to dhcp, you can modify this file:
/etc/network/interfaces.d/eth0

Change the contents of this file to:

    auto eth0
    iface eth0 inet dhcp