主页
开发板系列
键盘电脑
平板电脑
开源手机
开源游戏机
Orange Pi OS
通用问题
开发板常见问题
英文网站
中文网站
英文论坛
中文论坛
打开主菜单
Wiki-Orange Pi
β
搜索
查看“Orange Pi RK3399”的源代码
←
Orange Pi RK3399
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 介绍 == === 什么是 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> >9xx_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 === 搭建编译环境 === OrangePiRK3399 的 Linux 源码目录结构如下所示<br><br> $ cd OrangePiRK3399<br> $ tree -L 1<br> .<br> ├── build.sh -> scripts/build.sh 编译启动脚本<br> ├── external 存放额外的配置文件<br> ├── kernel Linux 内核源码<br> ├── output 存放输出文件,编译源码后才会生成<br> ├── scripts 编译过程使用的脚本文件<br> ├── toolchain 内核和 u-boot 使用的交叉编译工具链<br> └── uboot u-boot 的源码<br><br> 6 directories, 1 file<br><br> 其中交叉编译工具链的目录结构如下所示,如果下载的文件目录和其有区别,或者toolchain 目录下为空,说明下载过程有问题,请尝试重新使用 OrangePi_Build 下载器下载。<br><br> $ cd toolchain<br> $ tree -L 2<br> ├── gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu<br> │ ├── aarch64-linux-gnu<br> │ ├── bin<br> │ ├── gcc-linaro-6.3.1-2017.05-linux-manifest.txt<br> │ ├── include<br> │ ├── lib<br> │ ├── libexec<br> │ └── share<br> └── README.md<br><br> 7 directories, 2 files<br><br> === 编译Linux和U-boot源码 === * 执行编译启动脚本 $ cd OrangePiRK3399 $ ./build.sh 选择 1 OrangePi rk3399 并回车<br> [[Image:RK3399-49.png]]<br><br> 然后选择需要执行的功能。<br><br> [[Image:RK3399-50.png]]<br><br> 其中各选项的功能如下:<br> * 0 Build Release Image —— 编译 Ubuntu 或 Debian 的发行版镜像 * 1 Build Rootfs 编译Rootfs * 2 Build Uboot —— 编译 u-boot 的源码 * 3 Build Linux —— 编译 Linux 内核源码 * 4 Build Module only 只编译内核模块 * 5 Update kernel Image —— 更新 SD 卡 Linux 系统中的内核boot.img * 6 Update Module —— 更新 SD 卡 Linux 系统中的内核模块 * 7 Update Uboot —— 更新 SD 卡 Linux 系统的 u-boot 编译完 u-boot 和内核源码后生成的最终文件会保存在 output 目录下<br><br> $ cd output<br> $ tree -L 2<br> .<br> ├── kernel<br> │ └── boot.img<br> ├── lib<br> │ └── modules<br> └── uboot<br> ├── idbloader.img<br> ├── rk3399_loader_v1.22.119.bin<br> ├── trust.img<br> └── uboot.img<br><br> 4 directories, 5 files<br><br> 编译发行版镜像后,生成镜像保存在output/images目录下<br><br> $ tree -L 2 output/images/ output/images/<br> ├── OrangePi_rk3399_ubuntu_bionic_desktop_linux4.4.179_v1.0.img<br> ├── OrangePi_rk3399_ubuntu_bionic_desktop_linux4.4.179_v1.0.tar.gz<br> ├── OrangePi_rk3399_ubuntu_xenial_desktop_linux4.4.179_v1.0.img<br> └── OrangePi_rk3399_ubuntu_xenial_desktop_linux4.4.179_v1.0.tar.gz<br><br> 0 directories, 4 files<br><br> == 串口调试工具介绍 == 首先需要准备一根和下图类似的 USB 转 TTL 串口线:<br><br> [[Image:RK3399-51.png]]<br><br> 按下图接好串口线,不同颜色的线对应的功能如下:<br> * 黑色——GND * 绿色——RX * 白色——TX [[Image:RK3399-52.png]]<br><br> 注意:板子的 RXD 接 USB 转 TTL 串口的 TXD<br> 板子的 TXD 接 USB 转 TTL 串口的 RXD<br> === 基于Windows平台的使用 === 在使用 OrangePi 做项目开发过程中,为了获得更多的调试信息,OrangePi 默认支持串口信息调试。对于开发者而言,只需准备上面提到的材料,即可简单的获得串口调试信息。<br> 不同的上位机使用的串口调试工具大同小异,基本可以参考下文的方法进行部署。使用 Windows 平台进行串口调试的工具很多,通常使用的工具是putty。本节以 putty 作为例子进行部署讲解。<br><br> * '''安装 USB 驱动'''<br> 下载最新版的驱动 PL2303_Prolific_DriverInstaller_v130.zip,下载解压。<br> [[Image:RK3399-53.png]]<br><br> 以管理员身份选择应用程序安装<br><br> [[Image:RK3399-54.png]]<br><br> 等待安装完成<br><br> [[Image:RK3399-55.png]]<br><br> * '''下载安装 Putty'''<br> Putty 可从下面的地址下载,请选择适合自己开发环境的版本。<br> https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 直接双击下载的 putty.exe 即可打开 putty,软件界面如下图所示。<br><br> [[Image:RK3399-56.png]]<br><br> * '''设备信息的获取'''<br> 在 Windows7 中,我们可以通过设备管理器查看串口连接是否正常以及串口的设备号。如果设备没有正常识别,请检查驱动是否安装成功。如果驱动安装有问题, 可以尝试使用 360 驱动大师扫描安装驱动。<br><br> [[Image:RK3399-57.png]]<br><br> * '''Putty 配置'''<br> 串行口设置成相应的端口号(COM6),关闭流控,速度设置成 '''1500000'''<br> [[Image:RK3399-58.png]]<br><br> * '''启动调试串口输出'''<br> OrangePi 上电开机,putty 将会自动打印串口 log 信息<br><br> [[Image:RK3399-59.png]]<br><br> === 基于Linux平台的使用 === 在 Linux 平台使用 putty 和 Windows 平台区别不太,下面主要说明有差异地方的操作步骤。所有操作都是基于 Ubuntu 14.04 系统。<br> * '''安装并启动 Putty'''<br> $ sudo apt-get install putty $ sudo putty * '''配置 Putty'''<br> 串口号可以通过 ls /dev/ttyUSB* 查看<br> 波特率需要设置为 1500000 并且关闭流控<br><br> [[Image:RK3399-60.png]]<br><br> == 下载 Orange Pi RK3399 用户手册 == <br> 更多关于Orange Pi RK3399的使用信息,请查看 [http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-RK3399.html Orange Pi RK3399用户手册] (下载-产品使用说明书) <br><br>
返回至
Orange Pi RK3399
。