打开主菜单

Wiki-Orange Pi β

更改

Orange Pi RK3399

添加26,289字节, 2022年6月24日 (五) 15:14
创建页面,内容为“== 介绍 == === 什么是 Orange Pi RK3399 === 香橙派是一款开源的单板卡片电脑,新一代的 ARM 开发板,它可以运行Android6.0 、Android 8.1…”
== 介绍 ==
=== 什么是 Orange Pi RK3399 ===
香橙派是一款开源的单板卡片电脑,新一代的 ARM 开发板,它可以运行Android6.0 、Android 8.1、Ubuntu 和 Debian 等操作系统。香橙派单板电脑使用瑞芯微 RK3399 芯片,同时拥有 2GB 或者 4GB DDR3 内存。<br>
=== Orange Pi RK3399 的用途 ===
我们可以用它搭建:<br>
* 一台计算机
* 一个网络服务器
* 游戏机
* 高清视频播放器
* 扬声器
* Android
* ......
还有其他更多的功能,因为 Orange Pi RK3399 是开源的。
=== Orange Pi RK3399 是为谁设计的 ===
Orange Pi RK3399 不仅仅是一款消费品,同时也是给任何想用技术进行创作创新的人设计的。它是一款非常简单、有趣、实用的工具,你可以用它去打造你身边的世界。<br><br>
[[Image:RK3399-1.png]]<br><br>
[[Image:RK3399-2.png]]<br><br>

=== Orange Pi RK3399 硬件参数 ===
<br>
{| class="wikitable" style="width:904px;"
|-
| 主控芯片 || Rockchip RK3399 (28 纳米 HKMG 制程)
|-
| 处理器 ||
* 6 核 ARM® 64 位处理器,主频高达 2.0GHz
* 双核 Cortex-A72(大核)+四核 Cortex-A53(小核)
|-
| 图形处理器 ||
* ARM Mali-T860 MP4 四核 GPU
* 支持 OpenGL ES1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11
* 支持 AFBC(帧缓冲压缩)
|-
| 视频处理器 || 支持4K VP9 and 4K 10bits H265/H264 视频解码,高达 60fps 1080P 多格式视频解码 <br>
(WMV, MPEG-1/2/4, VP8) 1080P 视频编码,支持 H.264,VP8 格式<br>
视频后期处理器:反交错、去噪、边缘/细节/色彩优化<br>
|-
| 电源管理 ||
* RK808 PMU 芯片
* BQ25700 Charger IC 充电管理 IC
* CW2015 Fuel Gas 电量计
|-
| 内存 || 2GB DDR3
|-
| 存储器 ||
* 16GB 高速 eMMC
* MicroSD (TF)卡槽
* miniPCIe 接口(兼容 USB2.0 以及 mSATA 硬盘)
* mSATA 接口
|-
| 无线网络 || 板载 WiFi 模块(AP6356S):<br>2.4GHz/5GHz 双频 WiFi,支持 802.11a/b/g/n/ac 协议,2x2 MIMO 技术Bluetooth 4.1(支持 BLE)
|-
| 以太网 || 10/100/1000Mbps 以太网 ( Realtek RTL8211E )
|-
| 显示 ||
* 1 x HDMI 2.0 ( Type-A ), 支持 4K@60 帧输出1 x
* DP 1.2 (DisplayPort) , 支持 4K@60 帧输出2 x
* MIPI , 支持双通道 2560x1600@60 帧输出
* 1 x eDP 1.3 ( 4 lanes with 10.8Gbps )
* 1 x HDMI IN 功能
|-
| 音频 ||
* 1 x HDMI 或 1 x DP ( DispalyPort ) , 音频输出
* 1 x 耳麦 , 用于音频输入输出
* 1 x SPDIF 数字音频接口,用于音频输出
* 1 x 麦克风,板载音频输入
* 1 x I2S , 支持8通道
* 1 x MIC 阵列接口
|-
| 摄像头 ||
* 2 x MIPI-CSI 摄像头接口 ( 每个接口最高支持 13Mpixel)
* 支持 USB Camera
|-
| 传感器 || 1 x 陀螺仪+重力加速度计,1 x 陀螺仪,1 x 霍尔元件,1 x 光传感器,1 x 电子罗盘
|-
| PCIe || 1 x mini PCIe,支持 LTE,兼容 USB 用于拓展 TF Card,兼容 mSATA 用于拓展 SATA 硬盘或者 SSD
|-
| SIM || 1 x SIM 卡座,用于配合 miniPCIe 扩展的 LTE 模块
|-
| USB || 4 x USB2.0 HOST,1 x USB3.0 Type-C
|-
| 红外 || 1 x 红外接收头,支持红外遥控功能
|-
| LED ||
* 2 x 电源状态LED (红色和绿色)
* 1 x mSATA 电源状态LED(绿色)
|-
| 按键 || 1 x 复位键,1 x 电源键,1 x 升级键,1 x 菜单键,1 x 返回键,1 x 音量+,1 x 音量-
|-
| 调试串口 || 1 x 调试串口,用于开发调试
|-
| 预留接口 || 40pin 2.54mm 排针(4 x I2C 、1 x SPI、2 x UART、5 x GPIO(在全功能实现后还有 5 个 Gpio 富余))
|-
| 供电座 ||
* DC12V - 2A 两pin 插座
* DC5V - 2A 两pin 插座
|-
| 电源 ||
* DC 12V 2A 供电
* TypeC 供电
* Battery 供电
|-
| 支持的操作系统 || Android 6.0、Android8.1、Debian、Ubuntu
|-
| 编程语言支持 || C、C++、Kotlin、Java、Shell、Pyhon 等
|-
|colspan=2|<div style="text-align:center"><big>'''外观规格介绍'''</big></div>
|-
| 产品尺寸 || 129 mm × 99 mm
|-
| 重量 || 99g
|}
<br>

=== GPIO 规格 ===
下图是 Orange Pi RK3399 的 GPIO 引脚功能图:<br>
[[Image:RK3399-3.png]]<br><br>
[[Image:RK3399-4.png]]<br>
== 快速入门 ==
=== 使用 OrangePi RK3399 要做哪些准备工作 ===
'''要启动你的OrangePi RK3399,请先准备好以下硬件:'''
* OrangePi RK3399 开发板
* TF 卡,最小 8GB 容量,class 10 级,建议使用品牌 TF 卡,如:闪迪 16G TF 卡(可选、Android系统无需TF卡)
* 一个5V/3A或更大功率的电源适配器(DC和TYPEC接口的皆可)
* USB转TTL串口(可选,用于调试或PC上进行操作)
* 一台支持HDMI输入的显示器或者电视(或选购LCD配件)
* 一套USB键盘鼠标,同时连接更多USB的设备时还需要USB HUB
* 一台编译用的主机,配置最好满足以下条件:
64 位 CPU<br>
8 GB 及以上内存<br>
100GB 以上的空闲磁盘空间<br>
操作系统可以是 Ubuntu14.04 Ubuntu18.04
=== 如何启动 OrangePi RK3399 ===
将开发板的 HDMI 接口通过 HDMI 线与显示器相连,将电源适配器插入带电的插座 上,电源线接口插入开发板,开发板 EMMC 预装有安卓系统,上电会自动开机。系统正常启动过程中,电源灯亮,状态灯闪烁。<br><br>
如需使用 linux 系统,请参考 linux 系统烧录章节。<br>

=== 串口使用注意事项 ===
OrangePi RK3399 使用的波特率是 1500000,如果串口板使用的是cp210x 的芯片,在ubuntu18.04 会出现乱码的现象,ubuntu14.04 则不存在这个问题。<br>
经过验证, 使用低版本内核的cp210x驱动可以解决这个问题,所以Ubuntu18.04 需要客户自己移植低版本的驱动。<br>
下面给出参考方法。<br>
git clone https://github.com/baiywt/cp210x.git
cd cp210x/
make
删除ubuntu 18.04 系统原本的cp210x驱动。<br>
sudo rm -rf /lib/modules/$(uname -r)/kernel/drivers/usb/serial/cp210x.ko
拷贝编译好的cp210x驱动到系统目录<br>
sudo cp ./cp210x.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
卸载原来的驱动<br>
sudo rmmod cp210x
安装新的驱动<br>
sudo modprobe cp210x

== Android 系统的使用说明 ==
=== 使用 adb ===
第一次启动如需更改系统文件,需要关闭安全验证 (注:安装 apk 不需要关闭),关闭安全验证后需要重启。<br>
adb root
adb disable-verity
adb reboot
重新挂载<br>
adb root adb
remount
传送文件<br>
adb push example.txt /system/
注意事项:有的 USB Type-C 线不支持 adb ,所以遇到这种情况可以换根 USB Type-C线
<br>
=== 使用 MIPI 摄像头进行拍照和录像 ===
OrangePi RK3399 在 android 系统下,可以搭配 OV13850 摄像头进行拍照和录像, 连接摄像头到 OrangePiRK3399 的 MIPI 接口,开机进入 Android 系统,用系统自带的 Camera 应用即可完成拍照和录像,操作跟 Android 手机是一样的。<br>
OrangePi RK3399 最多可同时连接两个 MIPI 摄像头,一个为前置、另一个为后置。连接方法如下图所示:<br><br>
'''Camera1'''<br>
[[Image:RK3399-5.png]]<br><br>
'''Camera2'''<br>
[[Image:RK3399-6.png]]<br><br>
=== 使用 HDMI IN 功能 ===
需要到官网下载带 hdmiin 字样的安卓镜像。注意该镜像 camera1 不能使用。<br>
Android6.0 使用 hdmiin app 测试。<br>
[[Image:RK3399-7.png]]<br><br>
Android8.1 则打开系统自带的相机测试。<br>

=== 使用 MIPI 屏幕 ===
对于 android8.1,需要做以下设置。<br>
$ adb root
$ adb pull /system/build.prop
打开 build.prop 文件,注释此行 sys.hwc.device.primary=DP。设置 persist.demo.hdmirotationlock=1。如下图。<br>
[[Image:RK3399-8.png]]<br><br>
将修改后的文件 push 到系统中<br>
adb push build.prop /system
'''<span style="color:red;">连接方法如图:</span>'''<br>
[[Image:RK3399-9.png]]<br><br>
[[Image:RK3399-10.png]]<br><br>
=== 双屏异显 demo 使用 ===
仅 android8.1 支持。<br>
1)OrangePi RK3399 连接 HDMI 显示器、LCD1 连接 mipi 屏幕<br>
2)安装 dualscreen.apk、拷贝 test.mp4 文件到安卓系统的/sdcard/目录,可用以下命令完成<br>
adb install dualscreen.apk
adb push test.mp4 /sdcard/
3)在桌面点击 Settings-》Apps & notifications-》App info-》DualScreen-》Permissions-》打开 Storage 权限<br>
4)点击 DualScreen 图标<br>
[[Image:RK3399-11.png]]<br><br>
5)点击播放开始播放 test.mp4<br>
[[Image:RK3399-12.png]]<br><br>
=== PCIE 接口测试 ===
目前 Android 系统只适配了 PCIE 转 SATA(ASM1062)。其他 PCIE 器件的驱动暂时还没有适配。<br>
将硬盘接到 ASM1062,启动板子。系统会识别到设备,并自动挂载硬盘。<br><br>
[[Image:RK3399-13.png]]<br><br>
在安卓系统中可打开文件管理器看到挂载的设备。<br><br>
[[Image:RK3399-14.png]]<br><br>
== Linux 系统的使用说明 ==
=== Linux 启动亮灯情况说明 ===
* 启动后板载 LED 灯会亮红灯,绿灯闪烁
<br>

=== 登录账号和密码 ===
* 用户名 orangepi, 密码:orangepi
* 用户名 root, 密码:orangepi

=== 扩展 rootfs 分区 ===
系统第一次启动后会自动扩容,无需手动扩容。如果用户发现并没有扩容成功,可运行以下命令扩容。
resize-helper
=== 时区设置与中文支持 ===
设置上海时间<br>
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
<br>
中文设置,打开终端,输入以下命令<br>
sudo dpkg-reconfigure locales
进入语言配置界面<br>
[[Image:RK3399-15.png]]<br><br>
然后往下找(键盘-按下键),在较后面,找到 zh_CN.UTF-8 UTF-8,如上图所示按空格选中,按回车确定。<br><br>
然后来到如下界面,选择 zh_CN.UTF-8,确定,按下回车键。<br><br>
[[Image:RK3399-16.png]]<br><br>
然后来到如下界面,选择 zh_CN.UTF-8,确定,按下回车键。出现如下信息,配置完成<br><br>
[[Image:RK3399-17.png]]<br><br>
重启系统即可。<br>
中文输入法安装 参考文档 https://github.com/baiywt/docs<br>

=== 测试录音与放音 ===
输入以下命令测试麦克风录音<br>
arecord -Dhw:0,0 -r8000 -f cd -d 3 audio.wav
3.5 耳机孔输出声音<br>
aplay -Dhw:0,0 audio.wav
HDMI 输出声音<br>
aplay -Dhw:2,0 audio.wav
也可修改/etc/asound.conf 文件,配置默认输出。
=== HDMI 与 3.5 音频切换 ===
使用 smplayer 播放一段音频,打开 PulseAudio Volune Control 应用。<br><br>
[[Image:RK3399-18.png]]<br><br>
点击下图箭头,切换到 Configuration 一栏<br><br>
[[Image:RK3399-19.png]]<br><br>
如下图配置,声音从 HDMI 输出。<br><br>
[[Image:RK3399-20.png]]<br><br>
声音从耳机输出。<br><br>
[[Image:RK3399-21.png]]<br><br>

=== WIFI 的配置方法 ===
* 修改配置文件(适用于 server 版本)
在 /etc/network/interface 中加入下面的配置,然后重启即可<br>
auto wlan0
iface wlan0 inet dhcp
wpa-ssid orangepi //此处填入 WIFI 账号(现在是 orangepi)
wpa-psk orangepi //此处填入 WIFI 密码(现在是 orangepi)
* 图形界面配置
点击桌面右下角的网络管理器图标<br>
[[Image:RK3399-22.png]]<br><br>
点击名为 xunlong_orangepi_5G 的热点。<br><br>
[[Image:RK3399-23.png]]<br><br>
输入密码即可连接<br><br>
[[Image:RK3399-24.png]]<br><br>

=== 使用蓝牙传输文件 ===
可下载 blueman 工具进行测试<br>
sudo apt-get -y install blueman

=== 使用 OV13850 摄像头 ===
在 camera2 接口上连接摄像头,启动系统后,打开命令行终端<br>
执行以下命令,如出现如下信息说明摄像头工作正常,如没有此信息,请检查摄像头是否连接正确
$ dmesg |grep Async
[ 1.378648] rkisp1: Async subdev notifier completed
执行如下命令打开摄像头<br>
$ test_camera-gst.sh
用命令拍照,在/home/orangepi 目录下生成 jpg 图片<br>
$ test_camera-capture.sh
用命令录像,录像时使用了硬件编码。在/home/orangepi 生成视频文件 output.ts<br>
$ test_camera-record.sh
=== 测试 HDMI IN 功能 ===
执行测试脚本<br>
$ test_hdmiin.sh
<br>

=== 使用 MIPI 屏幕 ===

下载 linux 源码,在 dts 中做如下修改<br><br>

{| class="wikitable" style="width:800px;"
|-
|a/arch/arm64/boot/dts/rockchip/rk3399-orangepi-rk3399.dts <br>
+++<br>
b/arch/arm64/boot/dts/rockchip/rk3399-orangepi-rk3399.dts @@ -316,7 +316,7 @@<br>
};<br>

&dsi {<br>
- status = "disabled";<br>
+ status = "okay";<br>
/delete-property/enable-gpios;<br>
/delete-property/reset-gpios; panel@1 {<br>
@@ -326,7 +326,7 @@<br>
};<br>

&gt9xx_1 {<br>
- status = "disabled";<br>
+ status = "okay";<br>
touch-gpio = <&gpio1 20 IRQ_TYPE_LEVEL_LOW>; reset-gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;<br>
|}
<br>
重新编译替换内核后,LCD1 接 MIPI 屏幕测试。<br>
默认是竖屏,可使用 xrandr -o left 翻转屏幕。<br>

=== PCIE 接口测试 ===
目前 Linux 系统(v1.2 以上版本)适配了 PCIE 转 SATA(ASM1062)、RTL8822BE网卡。其他 PCIE 器件的驱动暂时还没有适配。<br>
* '''RTL8822BE 网卡测试'''
插入 RTL8822BE 无线网卡模块后启动系统,系统将会自动识别并加载 8822be.ko内核模块。<br><br>
通过 lsmod 命令可以查看驱动是否成功加载,通过 ifconfig 命令可以查看 PCIE无线网卡对应的网络节点。

root@OrangePi:~# lsmod <br>
Module Size Used by 8822be 2420736 0<br>

root@OrangePi:~# ifconfig wlp1s0<br>
wlp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500<br>
ether f8:da:0c:5a:00:6f txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B)<br>
RX errors 0 dropped 83 overruns 0 frame 0<br>
TX packets 0 bytes 0 (0.0 B)<br>
TX errors 0 dropped 0 overruns 0 carrier 0 collisions<br><br>

* '''PCIE 转 SATA 测试'''<br>
'''连接方法如图所示。图中使用的模块是 ASM1062'''<br><br>
[[Image:RK3399-25.png]]<br><br>
[[Image:RK3399-26.png]]<br><br>

=== 双屏显示说明 ===
OrangePi RK3399 除了 HDMI 接一个显示屏外,还可以支持 typeC 转 HDMI 接第二个显示屏。<br><br>
在 Linux 系统中可以通过界面下对双屏显示模式进行设置。使用鼠标点击 menu-》Preferences-》Monitor Settings<br><br>
[[Image:RK3399-27.png]]<br><br>
可以看到当前系统下有两个显示设备,分别是 DP-1 和 HDMI-1。<br>
双屏显示支持双屏同显模式,双屏异显模式。异显模式 支持 On right、Above、On Left、Below 四种模式。<br>
在 Display Settings 中设置 Position,则可以切换双屏的显示模式。<br><br>
[[Image:RK3399-28.png]]<br><br>
除此之外,linux 系统还支持双 MIPI DSI 输出(官网镜像不支持,需要修改软件)。<br>

=== 测试 GPU ===
安装测试软件<br>
$ sudo apt install glmark2-es2
运行测试,可看到 GPU 跑分情况。<br>
glmark2-es2

<br>
=== Chromium 网页浏览器 ===
系统预装的 Chromium 网页浏览器已经默认启用硬件加速,支持 WebGL,可以输入网址 chrome://gpu 了解硬件加速情况。如下图所示。<br><br>
[[Image:RK3399-29.png]]<br><br>

== Android 固件烧录 ==
准备工具:<br>
如果主机为 windows 系统:<br>
AndroidTool_v2.38(android6.0)
AndroidTool_v2.58(android8.1)<br><br>
如果主机为 Linux 系统:<br>
Linux_Upgrade_Tool_v1.24 (Android6.0) <br>
Linux_Upgrade_Tool_v1.39 (Android8.1)<br><br>

如果板子已有固件与即将要烧录的固件不同(如已有固件为 Android6.0,要烧录Android8.1 的固件),则需要先擦除 EMMC。<br>
下面以擦除板子自带的 Android6.0 系统为例。<br><br>
* '''安装 RK USB 驱动'''<br>
下载 DriverAssitant_v4.6.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择”驱动卸载”,然后再选择”驱动安装”。<br><br>
[[Image:RK3399-30.png]]<br><br>
* '''连接设备'''<br>
接上 DC 电源<br>
USB 数据线一端连接主机,Type-C 一端连接开发板 Type-C 母口。按住设备上的 RECOVERY (升级)键并保持。<br>
短按一下 RESET(复位)键。<br>
大约两秒钟后,松开 RECOVERY 键<br>
此时,如果连接了串口,将看到以下信息打印<br><br>
#Boot ver: 2017-07-12#1.05
empty serial no. normal boot. checkKey
vbus = 1
rockusb key pressed.

* '''擦除 EMMC<br>
下载 AndroidTool_v2.38 工具,运行 AndroidTool.exe。将会发现一个 LOADER 设备。<br><br>
[[Image:RK3399-31.png]]<br><br>
点击升级固件<br><br>
[[Image:RK3399-32.png]]<br><br>
点击固件,选择固件路径(注意要跟板子原有固件相同,这里是 Android6.0 固件)<br><br>
[[Image:RK3399-33.png]]<br><br>
加载完成后,点击擦除 Flash。<br><br>
[[Image:RK3399-34.png]]<br><br>
如果中间遇到下载 boot 失败的情况,只需重新上电,再继续擦除即可。<br>
另外,如果主机是 linux 系统,也可以用 Linux_Upgrade_Tool 工具擦除。<br>
下载 Linux_Upgrade_Tool_v1.24.zip。<br>
$ unzip Linux_Upgrade_Tool_v1.24.zip
$ cd Linux_Upgrade_Tool_v1.24
$ sudo chmod +x ./upgrade_tool
擦除 EMMC<br>
sudo ./upgrade_tool ef OrangePi_RK3399_Android6.0_20190920_hdmiin.img


$sudo ./upgrade_tool ef OrangePi_RK3399_Android6.0_20190920_hdmiin.img <br>
Loading loader...<br>
Erase flash ok.<br><br>
下面内容是烧录Android8.1的方法,使用AndroidTool_v2.58工具或Linux_Upgrade_Tool_v1.39.zip。<br>
烧录Android6.0步骤相同,但使用的工具是 AndroidTool_v2.38 或Linux_Upgrade_Tool_v1.24.zip。<br>

=== 进入 loader 模式烧录到 EMMC ===
* '''主机是win7 系统'''<br>
(1)安装瑞芯微驱动<br>
[[Image:RK3399-35.png]]<br><br>
[[Image:RK3399-36.png]]<br><br>
[[Image:RK3399-37.png]]<br><br>
(2)OrangePi RK3399 先接上 DC 电源适配器, 再通过 Type-C 数据线连接好OrangePi RK3399 与 PC。<br><br>
(3)按住 rescover 键不放,轻按下 reset 键,此时 OrangePi RK3399 进入 loader 模式。<br>
此时如连接串口 会看到如下信息:<br>
#Boot ver: 0000-00-00#0.00
empty serial no. normal boot. checkKey
vbus = 1
rockusb key pressed.
(4)打开 AndroidTool 工具<br><br>
[[Image:RK3399-38.png]]<br><br>
(5)点击升级固件,选择固件路径后,先擦除 Flash,然后点击升级进行烧录。注意下图红色标记部分的顺序。<br>
[[Image:RK3399-39.png]]<br><br>
烧录完成<br><br>
[[Image:RK3399-40.png]]<br><br>
* '''主机是linux 系统'''<br>
(1)准备 upgrade_tool 工具<br>
$ unzip Linux_Upgrade_Tool_v1.39.zip
$ cd Linux_Upgrade_Tool_v1.39
$ sudo chmod +x ./upgrade_tool
(2)OrangePi RK3399 接上电源适配器,Type-C 数据线连接好 OrangePi RK3399 与PC。<br>
(3)按住 rescover 键不放,轻按下 reset 键,此时 OrangePi RK3399 进入 loader 模式。<br>
(4)烧录安卓固件<br>
sudo ./upgrade_tool ef OrangePi_rk3399_Android8.1_v1.0.img 擦除 EMMC
sudo ./upgrade_tool uf OrangePi_rk3399_Android8.1_v1.0.img 烧录到 EMMC

<br>
'''注:如遇到无法进入 loader 模式的情况,可尝试 MaskRom 模式烧录。方法如下:'''<br>
1、设备断开所有电源<br>
2、拔出 SD 卡<br>
3、用 USB Type-C 线连接好设备和主机<br>
4、用金属镊子接通 OrangePi RK3399 预留的焊点,并保持。<br><br>
[[Image:RK3399-41.png]]<br><br>
5、设备插入电源。<br>
6、稍候片刻,之后松开镊子,设备应该就会进入 MaskRom 模式。<br><br>
[[Image:RK3399-42.png]]<br><br>

=== 使用SD升级卡烧录到 EMMC ===
准备工作:android 固件、一张 tf 卡、读卡器该方式只能在 windows 系统中使用。<br>
将读卡器插入主机,在 OrangePi RK3399 官方工具板块下载 SDDiskTool_v1.56,打开软件。<br>
勾选固件升级,选择固件,最后点击开始创建。请注意下图红色标记的地方。<br><br>
[[Image:RK3399-43.png]]<br><br>
完成后将 TF 卡插入 OrangePi RK3399 的卡槽,上电启动,启动代码会将固件烧写到 EMMC 中。如需看到烧写进度,可准备一根 HDMI 线,连接板子与显示器。烧写过程大约是 3~4 分钟。<br><br>

== Linux 固件烧录 ==
我们可以通过 Etcher 将 Orange Pi RK3399 的 Linux 固件烧录到 TF 卡中,如果您购买的是没有贴 EMMC Flash 芯片的 Orange Pi RK3399 开发板,则只能通过 TF 卡来启动系统。Etcher 支持如下的操作系统:<br>
* Linux(大多数发行版,如 Ubuntu)
* MacOS 10.9 和后续的版本
* Windows 7 和后续的版本
Etcher 软件安装包可以在其官网 https://etcher.io/ 中下载,也可以从 Orange Pi RK3399 的官网下载页的官方工具中下载<br><br>
=== Etcher 的安装方式 ===
* Etcher 在 Windows 系统中的安装方式和普通软件的安装方式一样,这里不再赘述。
* Etcher 在 Ubuntu 和 Debian 系统中的安装方式如下

1.增加 Etcher Debian 仓库:<br>
$ echo "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee/etc/apt/sources.list.d/etcher.list
2.下载 key
$ sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 379CE192D401AB61
3.更新和安装
$ sudo apt-get update && sudo apt-get install etcher-electron
4.卸载方式
$ sudo apt-get remove etcher-electron
$ sudo rm /etc/apt/sources.list.d/etcher.list && sudo apt-get update
<br>

=== 通过Etcher烧录Linux固件的方法 ===
* 首先打开 Etcher,其界面如下图所示 <br>
[[Image:RK3399-44.png]]<br><br>
* 然后通过 “Select image” 选择需要烧录的 Linux 固件<br>
* 接着插入 TF 卡,Etcher 会自动识别相应驱动器<br>
* 最后点击 “Flash!”开始烧录,烧录完后,即可插入开发板启动系统<br>
[[Image:RK3399-45.png]]<br><br>

=== 通过脚本将Linux系统烧录到 EMMC Flash 芯片中 ===
如果您购买的是的贴有 EMMC Flash 芯片的 Orange Pi RK3399 开发板,通过TF 卡启动 Linux 系统后,还可以通过 install_to_emmc 脚本将 Linux 系统烧录到EMMC Flash 中。<br>
在 Linux 终端中输入 install_to_emmc 命令,然后根据提示输入 y,就会开始自动烧录 Linux 系统到 EMMC Flash 中。烧录完成后,关闭电源,取出 TF 卡, 再次上电后就会自动运行 EMMC Flash 中的 Linux 系统。<br><br>


{| class="wikitable" style=" width:800px;"
|-
|root@OrangePi:~# install_to_emmc<br><br>
WARNING: EMMC WILL BE ERASED !, Continue (y/N)? y<br>
Erasing EMMC ...<br>
Creating new filesystem on EMMC ...<br>
New filesystem created on /dev/mmcblk0.<br>
Partitioning EMMC ...<br>
Creating boot & linux partitions <br>
OK.<br>
Formating fat partition ... <br>
fat partition formated.<br>
Formating linux partition (ext4), please wait ... <br>
linux partition formated.<br><br>
Instaling u-boot to EMMC ... <br><br>
Mounting EMMC partitions...<br>
FAT partitions mounted to /tmp/_fatdir <br>
linux partition mounted to /tmp/_extdir<br><br>

Copying file system to EMMC ...<br>
Creating "fstab"<br><br>

<nowiki>***********************************</nowiki> <br>
Linux system installed to EMMC.<br>
<nowiki>***********************************</nowiki><br>
|}

== Android 编译环境搭建 ==
编译环境建议 Ubuntu 14.04 或者 Ubuntu 18.04。不建议用虚拟机。RK3399 目前有两个版本的安卓 SDK,分别是 Android6.0 以及 Android8.1。下面以 Android6.0 为例。<br>

=== 获取 SDK 源码压缩包 ===
Android 源码包下载完后,首先需要将多个压缩文件合并成一个,然后进行解压。<br>
mkdir OrangePi-rk3399
cat OrangePi-RK3399_Android6.0_V1.0.tar.gz* >
OrangePi-RK3399_Android6.0_V1.0.tar.gz
tar xvf OrangePi-RK3399_Android6.0_V1.0.tar.gz -C OrangePi-rk3399 cd OrangePi-rk3399

=== 搭建编译环境 ===
* 安装 JDK
Android 6.0 开发只能使用 openjdk7 的版本,高于或低于此版本以及 oracle 的JDK 都会导致编译失败。openjdk-7 的安装命令如下:<br>
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
* 安装平台支持软件
对于 Ubuntu14.04:<br>
$ sudo apt-get update
$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \ libgl1-mesa-dev libxml2-utils xsltproc unzip

$ sudo apt-get install u-boot-tools
=== 编译 SDK 源码 ===
清除中间文件<br>
cd uboot && make distclean
cd kernel && make distclean
<br>
使用以下命令编译完整镜像<br>
./make.sh -F -M -u
<br>
编译完成后,在以下目录生成镜像文件。<br><br>

cd rockdev/Image-rk3399_mid_orangepi tree -L 1<br>
.
├── boot.img<br>
├── kernel.img<br>
├── MiniLoaderAll.bin<br>
├── misc.img<br>
├── parameter.txt<br>
├── pcba_small_misc.img<br>
├── pcba_whole_misc.img<br>
├── recovery.img<br>
├── resource.img<br>
├── system.img<br>
├── trust.img<br>
├── uboot.img<br>
└── update.img<br><br>
0 directories, 13 files<br><br>
其中 update.img 是完整固件,可参照《Android 固件烧录》章节烧录至 EMMC。<br><br>

== Linux编译环境搭建 ==
<br>
推荐使用主机环境为 64 位ubuntu18.04<br>
=== 获取 SDK 源码压缩包 ===
* '''Orange Pi Linux 源码下载器'''<br>
Orange Pi RK3399 的 Linux 源码已经上传到 GitHub,内核版本为 Linux 4.4,我们可以使用 OrangePi Linux 源码专用的下载器进行下载,获取下载器源码的方式如下所示:<br>
$ sudo apt-get install git
$ git clone https://github.com/orangepi-xunlong/OrangePi_Build.git
$ cd OrangePi_Build
$ ls
Build_OrangePi.sh lib README.md
注意事项:源码要放到本地硬盘上,不要使用共享目录,或者另外挂载进来的硬盘, 否则影响正常编译。<br>
* '''运行下载器'''<br>
$ ./Build_OrangePi.sh
输入 root 密码,然后回车<br>
[[Image:RK3399-46.png]]<br><br>
选择 0 Build system with kernel/uboot/rootfs 进入开发板型号选择的界面<br><br>
[[Image:RK3399-47.png]]<br><br>
选择 19 OrangePi RK3399,回车后将会开始下载 Orange Pi RK3399 的 Linux SDK源码<br><br>
[[Image:RK3399-48.png]]<br><br>
下载的源码会存放在 OrangePi_Build 的同级目录下<br>
$ ls ../OrangePi_Build OrangePi_Build OrangePiRK3399

=== 搭建编译环境 ===
=== 编译Linux和U-boot源码 ===
== 串口调试工具介绍 ==
=== 基于Windows平台的使用 ===
=== 基于Linux平台的使用 ===
8,460
个编辑