Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 1: Line 1:
===开发Qt程序===
 
 
FriendlyELEC为RK3399平台移植的 Qt 5.10.0 支持以下显示设备插件:KMS、EGLFS和XCB,这三种插件均支持GPU硬件加速的OpenGL ES 2.0,只是调用方式不同,描述如下:<br>
 
* KMS – 使用Linux内核的DRM显示接口来渲染界面<br>
 
* EGLFS – 使用OpenGL ES接口来渲染界面<br>
 
* XCB – 在X11服务器上运行,并集成到X11窗口环境<br>
 
<br>
 
三种插件所支持的Qt特性会有所不同,请根据你的需求来选择: <br>
 
 
::{| class="wikitable"
 
::{| class="wikitable"
 
|-
 
|-
  | 插件名称
+
| style="background: PaleTurquoise; color: black" colspan="2"| '''Lubuntu系统'''       
  | OpenGL ES
+
  | QtWebEngine
+
  | QtMultimedia
+
  | 视频硬解播放
+
  | 双屏异显
+
 
|-
 
|-
  | KMS
+
|交叉编译器
  | <b>Yes</b>
+
|style="width: 90%;"|
  | No
+
* Uboot和内核使用 [https://github.com/friendlyarm/prebuilts.git aarch64-cortexa53-linux-gnu-6.4.tar.xz]<br>
  | <b>Yes</b>
+
* 应用软件的交叉编译:使用Ubuntu 16.04自带的32位编译器 gcc-arm-linux-gnueabihf 和 g++-arm-linux-gnueabihf,在PC上可用apt-get命令安装<br>
  | No
+
* [http://github.com/friendlyarm/friendlyelec-ubuntu16-docker Docker编译环境] <br>
  | <b>Yes</b>
+
 
|-
 
|-
  | EGLFS
+
|rowspan="1"| U-boot-2017.11
  | <b>Yes</b>
+
|
  | No
+
* 基于RockChip原厂提供的U-boot-2014.10,保留了原厂提供的所有功能特性
  | <b>Yes</b>
+
* 支持eDP屏的自动识别
  | No
+
* 支持RockChip原厂USB烧写工具,可通过Type-C接口线刷固件
  | No
+
 
|-
 
|-
  | XCB
+
|rowspan="1"| Linux-4.14
  | <b>Yes</b>
+
|
  | <b>Yes</b>
+
{{RK3399SoftwareFeature-AndroidKernelGeneral/zh}}
  | <b>Yes</b>
+
  | <b>Yes</b>
+
  | <b>Yes</b>
+
|}
+
建议使用 KMS或XCB 插件。<br><br>
+
为了方便用户测试,FriendlyCore平台提供了4个脚本文件用于设置Qt环境变量,分别为:
+
::{| class="wikitable"
+
|-
+
|脚本文件名||作用
+
 
|-
 
|-
|/usr/bin/setqt5env-kms||设置kms插件所需要的环境变量
+
|rowspan="1"| 文件系统
 +
|
 +
*基于Lubuntu-16.04 32位系统构建
 +
*集成X.org驱动,支持Hardware Cursor、OpenGL图形加速等
 +
*集成经过优化的Qt5.10,支持GPU和VPU加速,提供QtQuick/QtWebEngine/QtMultimedia/WebGL等Qt模块
 +
*集成Arduino IDE
 +
*集成命令行视频播放器 和 Qt硬解播放器
 +
*支持 Gstreamer 1.0 多媒体框架
 +
*支持7寸电容屏HD702,与HDMI同时连接时,可实现桌面扩展显示
 +
*支持5G WiFi
 +
*支持蓝牙传输文件
 +
*支持USB摄像头
 +
*支持NVME SSD和PCI-E转Sata
 +
*支持eDP屏幕旋转
 
|-
 
|-
|/usr/bin/setqt5env-eglfs||设置eglfs插件所需要的环境变量 
 
|-
 
|/usr/bin/setqt5env-xcb||设置xcb插件所需要的环境变量
 
|-
 
|/usr/bin/setqt5env-nogui||仅供无界面的Qt程序使用
 
 
|}
 
|}
setqt5env-* 脚本的用法,例如设置KMS:
 
<syntaxhighlight lang="bash">
 
. setqt5env-kms
 
./apps
 
</syntaxhighlight>
 
(注: .与字母s之间有个空格)
 
 
====Qt开发环境搭建====
 
FriendlyELEC为RK3399平台提供了两种交叉编译Qt程序的方法:
 
* 方法1:使用Docker容器,详细可参考github页面:http://github.com/friendlyarm/friendlyelec-ubuntu18-docker
 
* 方法2: 搭建本地交叉编译环境,本地需要安装 Ubuntu 18.04 64位系统,其环境搭建方法请参考:[[How to Build and Install Qt Application for FriendlyELEC Boards/zh]]
 
 
====Qt示例====
 
FriendlyCore系统内置了几个很有特色的Qt演示程序,方便测试Qt5的特性,如下所示:
 
* <b>Qt QML示例:CinematicExperience</b>
 
CinematicExperience是一个用Qt QML实现的专辑列表界面。<br />
 
例子演示了Qt QML中的界面动态转换、粒子模拟和着色器特效,所以这个示例非常能体现硬件性能与软件优化的差异,在RK3399平台上非常流畅。<br />
 
CinematicExperience的运行命令:<br />
 
<syntaxhighlight lang="bash">
 
cd /opt/Qt5_CinematicExperience
 
./run.sh
 
</syntaxhighlight>
 
 
运行截图:<br />
 
[[File:Cinematicsexperience.jpg|frameless|480px]]<br />
 
 
* <b>QQt WebEngine示例:网页浏览器</b>
 
Qt WebEngine使用了Chromium作为渲染引挚,对HTML5支持完美。<br />
 
这里示例展示的网页浏览器是 Qt5 自带的Demo,示例运行命令:<br />
 
<syntaxhighlight lang="bash">
 
cd /opt/qt5-brower
 
./run.sh
 
</syntaxhighlight>
 
 
运行截图:<br />
 
[[File:qt5-brower.jpg|frameless|480px]]<br />
 
 
注:Qt WebEngine在FriendlyCore平台上需要使用Xcb插件来运行。
 
 
* <b>Qt 双屏异显示例</b>
 
这是一个比较简单的DEMO,演示了在同时连接HDMI和eDP LCD屏的情况下,用Qt实现两个屏幕显示不同的内容:
 
<syntaxhighlight lang="bash">
 
cd /opt/qt5-multi-screen-demo
 
./run.sh
 
</syntaxhighlight>
 
运行截图:<br />
 
[[File:qt5-multi-screen.jpg|frameless|480px]]<br />
 
 
* <b>Qt Multimedia: 硬解播放器qt5-player</b>
 
qt5-player播放器已经适配Rockchip的gstreamer插件rkximagesink,支持4K视频的硬解播放,由于rkximagesink插件只支持输出图像到X11窗口,因此 Qt 播放器程序需要使用 XCB 的显示插件来运行。<br />
 
示例运行命令:<br />
 
先在开发板上执行命令
 
<syntaxhighlight lang="bash">
 
cd /opt/qt5-player
 
./run.sh
 
</syntaxhighlight>
 
运行截图:<br />
 
[[File:qt5-player.gif|frameless|480px]]<br />
 
 
* <b>QQt WebGL示例: nmapper</b>
 
Qt WebGL允许你将一个QML应用显示在其他设备的网页游览器上,这个特性让你做一些远程控制的应用变得很简单。<br />
 
开发板需要连接网络,在开发版本执行以下命令,即可以WebGL的方式运行Qt程序:<br />
 
<syntaxhighlight lang="bash">
 
cd /opt/qt5-nmapper
 
./run-with-webgl.sh
 
</syntaxhighlight>
 
然后在电脑或者手机上打开网页游览器,敲入开发板的IP地址,应该就能看到Qt界面了,如下图所示:<br />
 
[[File:qtwebgl.gif|frameless|480px]]<br />
 
 
* <b>Qt VNC示例: 智能家居控制界面</b>
 
Qt VNC允许你将一个应用程序以VNC Server的形式运行,在其他设备上可以使用VNC Client来连接和使用你的Qt程序,支持QtWidgets和QML应用。<br />
 
先在开发版本执行以下命令,以webgl的方式运行应用Qt应用:<br />
 
<syntaxhighlight lang="bash">
 
cd /opt/qt5-smarthome
 
./run-with-vnc.sh
 
</syntaxhighlight>
 
然后在电脑或者手机打开VNC viewer软件,输入开发板的IP地址加端口号5900,例如开发板的地址是192.168.1.100,就输入192.168.1.100:5900,连接后应该就能看到智能家居控制界面了,如下图所示:<br />
 
[[File:qt5smarthomevnc.png|frameless|480px]]<br />
 

Revision as of 09:57, 22 September 2018

Lubuntu系统
交叉编译器
U-boot-2017.11
  • 基于RockChip原厂提供的U-boot-2014.10,保留了原厂提供的所有功能特性
  • 支持eDP屏的自动识别
  • 支持RockChip原厂USB烧写工具,可通过Type-C接口线刷固件
Linux-4.14
  1. 版本:基于RockChip原厂的Linux-4.4.y
  2. GPU: 支持Mali-T864 GPU (OpenGL ES 2.0/3.0, OpenCL)
  3. 视频硬编码: 最高支持二路1080P@30fps
  4. 视频硬解码: 最高支持H.264 4Kx2K@30fps 或 H.265 4Kx2K@60fps
  5. LCD显示屏:支持eDP屏
  6. 触摸屏:支持GT9xx和FT5x06系列的电容触摸IC
  7. HDMI: 支持4K@60Hz显示,支持HDCP 1.4/2.2
  8. USB: USB Host 3.0/2.0
  9. 网络:
    1. 支持AP6356S无线模块 (802.11 a/b/g/n/AC,BLE4.0)
    2. 支持千兆以太网
  10. 电源管理:
    1. 支持RK808-D电源管理芯片
    2. 支持RTC唤醒
    3. 支持按键(PowerKey)开关机
  11. 摄像头: 支持USB摄像头
  12. Codec: 支持Codec芯片ALC5651
文件系统
  • 基于Lubuntu-16.04 32位系统构建
  • 集成X.org驱动,支持Hardware Cursor、OpenGL图形加速等
  • 集成经过优化的Qt5.10,支持GPU和VPU加速,提供QtQuick/QtWebEngine/QtMultimedia/WebGL等Qt模块
  • 集成Arduino IDE
  • 集成命令行视频播放器 和 Qt硬解播放器
  • 支持 Gstreamer 1.0 多媒体框架
  • 支持7寸电容屏HD702,与HDMI同时连接时,可实现桌面扩展显示
  • 支持5G WiFi
  • 支持蓝牙传输文件
  • 支持USB摄像头
  • 支持NVME SSD和PCI-E转Sata
  • 支持eDP屏幕旋转