Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
(246 intermediate revisions by the same user not shown)
Line 1: Line 1:
===开发Qt程序===
 
  
FriendlyELEC为RK3399平台移植的 Qt 5.10.0 支持以下显示设备插件:KMS、EGLFS和XCB,这三种插件均支持GPU硬件加速的OpenGL ES 2.0,只是调用方式不同,描述如下:<br>
+
{{BurnLinuxToExtDrive-Rockchip/zh|NanoPC-T4}}
* KMS – 使用Linux内核的DRM显示接口来渲染界面<br>
+
{{BurnLinuxToExtDrive-Rockchip|NanoPC-T4}}
* EGLFS – 使用OpenGL ES接口来渲染界面<br>
+
* XCB – 在X11服务器上运行,并集成到X11窗口环境<br>
+
<br>
+
三种插件所支持的Qt特性会有所不同,请根据你的需求来选择: <br>
+
::{| class="wikitable"
+
|-
+
  | 插件名称
+
  | OpenGL ES
+
  | QtWebEngine
+
  | QtMultimedia
+
  | 视频硬解播放
+
  | 双屏异显
+
|-
+
  | KMS
+
  | <b>Yes</b>
+
  | No
+
  | <b>Yes</b>
+
  | No
+
  | <b>Yes</b>
+
|-
+
  | EGLFS
+
  | <b>Yes</b>
+
  | No
+
  | <b>Yes</b>
+
  | No
+
  | No
+
|-
+
  | XCB
+
  | <b>Yes</b>
+
  | <b>Yes</b>
+
  | <b>Yes</b>
+
  | <b>Yes</b>
+
  | <b>Yes</b>
+
|}
+
建议使用 KMS或XCB 插件。<br><br>
+
为了方便用户测试,FriendlyCore平台提供了4个脚本文件用于设置Qt环境变量,分别为:
+
::{| class="wikitable"
+
|-
+
|脚本文件名||作用
+
|-
+
|/usr/bin/setqt5env-kms||设置kms插件所需要的环境变量
+
|-
+
|/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 />
+

Latest revision as of 09:58, 29 October 2024

1 安装系统到M.2或USB硬盘

可以通过使用TF卡启动eFlasher系统,将引导和系统分别安装到不同存储设备,但是由于CPU不支持直接从M.2和USB设备引导,所以虽然系统可以安装到M.2和USB设备,但是引导仍然需要安装到eMMC或者TF卡。
操作步骤如下:

  • 准备一张32G或以上容量的TF卡;
  • 访问此处的下载地址下载文件名为XXXX-eflasher-multiple-os-YYYYMMDD-30g.img.gz的固件(位于"01_系统固件/02_SD卡刷机固件(SD-to-eMMC)"目录);
  • 将固件写入TF卡,在NanoPC-T4上连接好存储设备,插入TF卡上电开机,接下来要在界面上操作,如果没有显示设备,可以使用VNC代替,请参考使用VNC操作eFlasher;
  • 在eFlasher界面上,首先选择要安装的OS,然后选择引导安装的目的地 (通常选eMMC),以及选择系统安装的目的地(可以选eMMC,M.2硬盘,USB存储设备等),如下图所示:

Eflasher-select-boot-and-system-device.png

  • 没有eMMC时可使用TF卡作为引导,方法是将另一个TF卡通过USB读卡器插入USB端口,然后选择USB设备作为引导安装目的地,从而实现从TF卡引导,但系统存放在M.2或USB硬盘的目的;
  • 烧写完成后,从NanoPC-T4弹出SD卡,引导在eMMC的情况下,NanoPC-T4会自动重启至你刚刚烧写的系统,如果引导安装在TF卡,则需要拨掉电源,插入TF引导卡再上电开机;
  • 更详细的安装指南请参考此处;

2 Installing the System to M.2 or USB Drive

You can use a TF card to boot the eFlasher system, allowing the boot and system to be installed on different storage devices. However, since the CPU doesn’t support booting directly from M.2 and USB devices, the system can be installed on M.2 and USB devices, but the boot must still be installed on eMMC or a TF card.
Steps are as follows:

  • Prepare a TF card with a capacity of 32GB or larger.
  • Visit [the download link here](http://download.friendlyelec.com/APITestPage) to download the firmware file named XXXX-eflasher-multiple-os-YYYYMMDD-30g.img.gz (located in the “01_Official images/02_SD-to-eMMC images” directory).
  • Flash the firmware to the TF card, connect the storage device you intend to use on NanoPC-T4, insert the TF card and power on, we need to perform the operations in the eFlasher GUI. If your NanoPC-T4 does not have a display interface, you can use VNC; refer to Using VNC to Operate eFlasher.
  • In the eFlasher GUI, select the OS to install, and in the OS settings interface, choose the destination for boot installation (typically eMMC), then choose the destination for system installation (options include eMMC, M.2 hard drive, USB storage, etc.), as shown below:

Eflasher-select-boot-and-system-device.png

  • If no eMMC is available, the TF card can serve as the boot by inserting another TF card into the USB port via a USB card reader and selecting it as the boot destination, enabling booting from the TF card with the system stored on the M.2 or USB drive.
  • After flashing, eject the SD card from NanoPC-T4. If booting from eMMC, NanoPC-T4 will automatically restart into the newly flashed system. If boot installation is on a TF card, power off, insert the boot TF card, and power on again.
  • For a more detailed installation guide, please refer to this link.