迅为6818/4418开发板新增Yocto系统,并支持支持QMLOpenGL ES2.0Web浏览器、gstreamer。

iTOP-4418 和 iTOP-6818 的 yocto 系统使用了 Linux4.4 版本的内核(设备树系统),源码可编译出 Qt5.4, Qt5.6,Qt5.8,Qt5.9 多个版本的 Qt 文件系统,Qt 使用了 eglfs 显示,支持 GPU 加速,能够运行 QML,Q3D 程序;文件系统中集成了 gstreamer,可调用 VPU 进行硬件编解码。

28.1 修改 userdata.img 镜像

userdata.img 镜像烧写到了/dev/mmcblk0p4 分区,有十多 G 的空间,

本章介绍如何在 userdata 中添加文件。

进到源码的 topeet_yocto/yocto/meta-nexell/meta-nexell-distro/tools/convert_tools/opt 目录,使用命令 “touch helloworld”新建一个文件,

然后重新编译源码,将生成的 userdata.img 烧写到开发板,进到开发板的/data/opt/目录,发现 helloworld 文件已经烧写到了开发板。

8.2 交叉编译 Qt 程序

编译完 SDK 程序后,可以得到交叉编译器,本章介绍交叉编译 Qt 程序的方法。

本章将 SDK 安装在了以下目录:

进到 Qt 工程路径,输入“source /home/house/6818-sdk/environment-setup-aarch64-poky-linux”将编译器添加到环境变量,输入“qmake”生成 Makefile,

执行“make”即可编译 Qt 程序,

编译完成后生成可执行文件

28.3 交叉编译 C 程序

编译完 SDK 程序后,可以得到交叉编译器,本章介绍交叉编译 Qt 程序的方法。

本章将 SDK 安装在了以下目录:

进到 Qt 工程路径,输入“source /home/house/6818-sdk/environment-setup-aarch64-poky-linux”(根据实际路径设置)将编译器添加到环境变量,输入“echo $CC”可看到交叉编译器

Test.c 为 C 程序,输入“$CC -o test test.c”即可编译出可执行文件,

28.4 触摸报错问题

执行 Qt 程序后 ,如果出现 “Failed to move cursor on screen LVDS1: -14”,可以 根据报错修 改

/etc/qboot/eglfs_config.json 文件,如下所示:

Yocto 源码中可修改 yocto/meta-nexell/meta-nexell-distro/recipes-qt/eglfs-kms/files/eglfs_config-itop.json

文件,

28.5 触摸校准

系统起来后,结束掉开机自启程序,

输入“ts_calibrate”,此时屏幕会出现准星,依次点击,

完成后即可校准成功。

yocto 配置文件说明

iTOP-4418 和 iTOP-6818 的 uboot 和内核配置文件在

topeet_yocto/yocto/meta-nexell/meta-nexell-distro/conf/machine/路径下,以 iTOP-6818 1G 内存开发板为例,

打开“s5p6818-itop2g.conf”,

如下所示:

内核设备树文件为 yocto 源码的 kernel/kernel-4.4.x/arch/arm64/boot/dts/nexell/s5p6818-itop2g.dts

删除桌面,进到源码的“yocto/meta-nexell/meta-nexell-distro/tools/configs/board”路径,可以看到许多

配置文件,名字带 itop 的为开发板的配置文件,以 iTOP-6818 2G 内存为例,输入“vi s5p6818-itop2g.xml”,

删掉如下红框内容即可删除桌面例程。

28.7 QML 测试

系统起来后,结束掉开机自启程序,

终端执行“Qt5_CinematicExperience --platform eglfs”,

屏幕显示如下:

输入“cat /sys/kernel/debug/mali/gpu_memory”可查看 GPU 使用率:

28.8 3D 测试( 基于 OpenGL ES2.0 )

系统起来后,结束掉开机自启程序,终端执行“/usr/share/qopengl-1.0/Q3D --platform eglfs”,

屏幕显示如下:

例程源码路径:topeet_yocto/yocto/meta-nexell/meta-nexell-distro/recipes-itop-apps/qt-opengl

28.9 Web 浏览器测试

系统起来后,结束掉开机自启程序,保证网络正常,能 ping 通网络,

终端执行“/usr/share/qwebrowser-1.0/webKit --platform eglfs”

例程源码路径:topeet_yocto/yocto/meta-nexell/meta-nexell-distro/recipes-itop-apps/qt-webkit

28.10 添加 QSerialPort

以 Qt5.6 为例

1. 在文件系统中添加

topeet_yocto/source/recipes-core/packagegroups/packagegroup-nexell-qt.bb

2. sdk 中添加

topeet_yocto/yocto/meta-nexell/meta-nexell-sdk/recipes-core/packagegroups/packagegroup-nexell-qt-sdk.bb

28.11 gstreamer 测试

测试文件在文件系统的/data 目录下

28.11.1 硬解码测试

test_h264.mp4 文件:H.264 编码格式,MP4 封装

串口终端输入:

gst-launch-1.0 filesrc location=/data/opt/test_h264.mp4

! qtdemux

name=demux demux.video_0 ! h264parse !

queue ! nxvideodec ! queue ! nxvideosink

输入完成后屏幕开始播放视频。

test_mpeg4.avi 文件:mpeg4 编码格式,AVI 封装,

gst-launch-1.0 filesrc location=/data/opt/test_mpeg4.avi

! avidemux name=demux demux.video_0

!

mpeg4videoparse ! queue ! nxvideodec ! queue ! nxvideosink

执行命令后屏幕开始播放视频。

其他硬解码测试命令:

Decoder command example

a. Supported format

-Mpeg2, H.263

b. How to use:

gst-launch-1.0 filesrc

location=test-mp4.mp4 ! qtdemux name=demux demux.video_0 ! h263parse ! queue

!

nxvideodec ! queue !

nxvideosink

gst-launch-1.0 filesrc location=test_mp2.mp2 ! mpegpsdemux name=demux demux.video_e0 ! mpegvideoparse !

queue ! nxvideodec ! queue !

Nxvideosink

28.11.2 硬编码转码测试

H.264 硬件编解码,转封装:MP4==>AVI

gst-launch-1.0 filesrc location=/data/opt/test_h264.mp4

! qtdemux name=demux demux.video_0

!

h264parse

!

avdec_h264 ! nxvideoenc codec=video/x-h264 ! avimux name=mux ! filesink location=result.avi

如下图:

完成后生成的 result.avi 如下,MP4 转换成了 AVI 格式。

转码 H.264==>H.263

gst-launch-1.0 filesrc location=/data/opt/test_h264.mp4 ! qtdemux name=demux demux.video_0

!

h264parse

!

avdec_h264 ! nxvideoenc codec=video/x-h263 ! avimux name=mux ! filesink location=result.avi

如下所示:

将生成的 result.avi 拷贝到 windows,使用格式工厂查看,如下所示,已经转化成了 H263 格式

.

转码 H.264==>MPEG-4

gst-launch-1.0 filesrc location=/data/opt/test_h264.mp4

! qtdemux name=demux demux.video_0 ! h264parse !

avdec_h264 ! nxvideoenc codec=video/mpeg ! avimux name=mux ! filesink location=result.avi

如下所示:

将生成的 result.avi 拷贝到 windows,使用格式工厂查看,如下所示,已经转化成了 MPEG-4 格式

28.12 添加开机自启程序

iTOP-4418 和 iTOP-6818 的开机自启脚本为

topeet_yocto/yocto/meta-nexell/meta-nexell-distro/recipes-qt/qt5_5.9.x/qtcinema-launcher/qt_cinema_run.sh,

输入“vi qt_cinema_run.sh”,将自己的程序添加进去即可,这里将 DesktopManager 设置成了开机自启,

迅为6818/4418开发板Yocto开发指南相关推荐

  1. 【华为云技术分享】【昇腾】【玩转Atlas200DK系列】基于Pycharm专业版构建开发板python开发运行环境

    摘要:基于Pycharm专业版构建开发板python开发运行环境(自动同步爽歪歪) 既然Matrix提供了python接口,那咱们就要将方便的用起来,接下来分享一个利用pycharm直接搞定开发板开发 ...

  2. 6467t 1080php,DM6467T开发板领航——开发环境的文件配置

    DM6467T开发板领航--开发环境的文件配置 继上一篇DM6467T开发领航--开发环境安装 按照我们上一篇DM6467T开发领航--开发环境安装的安装方法,最主要要修改的文件就是/home/dm6 ...

  3. DM6467T开发板领航——开发环境

    DM6467T开发板领航--开发环境 DM6467T是TI推出的一款ARM+DSP双核处理器.一般来说,ARM用来做应用程序,如:读写flash,USB,网络程序,GPIO等应用.DSP用来做自己的算 ...

  4. 以虎贲T710为核心的高性能AI开发板-BU99开发板

    文章目录 虎贲T710 BU99开发板 BU99开发板简介 BU99开发板主要优势 BU99开发板参数介绍 BU99开发板配件 虎贲T710 虎贲T710采用8核CPU架构,由4颗2.0GHz的Arm ...

  5. 第一视角体验搭载全志T507-H的开发板MYD-YT507H开发板

    如今车规级芯片市场潜力巨大,需求旺盛,芯片都在逐渐走向国产化.本文要介绍的主角是MYD-YT507H开发板,该开发板是米尔科技结合全志国产工业级平台CPU--全志T507-H芯片研制的CPU模组,全志 ...

  6. 在基于乐鑫芯片的用户定制开发板上开发 UI

    在上一篇文章中,我们介绍了 SquareLine Studio 可视化 UI 开发工具,以及如何使用它来开发 UI.目前,它只适用于乐鑫官方推出自研的开发板.如果您想使用 SquareLine Stu ...

  7. RK3588开发板的入门指南:如何开始在RK3588开发板上进行安卓开发?

    RK3588是一款适用于Android系统的芯片,同时也是开发嵌入式系统的理想选择.本文将介绍如何开始在RK3588开发板上进行安卓开发,以及一些需要了解的基本知识和工具. 1. 准备开发板和开发环境 ...

  8. MM32F3273G8P火龙果开发板MindSDK开发教程12 -获取msa311加速器的敲击事件

    MM32F3273G8P火龙果开发板MindSDK开发教程12 -获取msa311加速器的敲击事件 1.功能描述 msa311可以识别单击.双击事件,类似手机上的点击返回,双击截屏功能. 单击,双击都 ...

  9. [学习开发板]iTOP-4412开发板AVIN驱动配置

    平台:iTOP-4412开发板[学习开发板] 本文学习开发板AVIN模块的驱动配置 在内核目录下执行命令"make menuconfig" ,如下图: 将会打开内核的配置界面,如下 ...

  10. EasyARM-i.MX280A—Linux系统开发板(开发日记1-登录开发板)

    今天,心仪的板子终于到了,作为一个外行来说,既有对板子开发的期待,又有对自己技术的担忧.为了记录一下自己的开发过程,同时也是自己的成长过程,特地开了个专栏,我知道这将是一个漫长的过程,我会不断的更新, ...

最新文章

  1. 时代变了,大人:RTX 3090时代,哪款显卡配得上我的炼丹炉?
  2. [教程] 谈谈网页设计中的字体应用 (2) serif 和 sans-serif
  3. Spring Security之短信登录
  4. jsapi.php必须传openid,【微信统一支付】发起支付, returnCode != SUCCESS, returnMsg = JSAPI支付必须传openid...
  5. qtopia-opensource-4.2.2在arm上的移植
  6. matlab 抽样判决代码,matlab抽样判决器
  7. 2017-9-26 NOIP模拟赛
  8. 【Hbase】命令行load数据文件到Hbase
  9. 大白话讲解Promise(三)搞懂jquery中的Promise
  10. 课时2 一些默认样式
  11. Linux下分割、合并文件——dd和cat
  12. ubuntu下安装配置java8
  13. WAP加密和WEP加密比较
  14. 什么是前后端分离技术?
  15. 读书笔记之《梁宁增长思维30讲》
  16. 还在花钱抢票?12306 已屏蔽60款抢票软件!
  17. huaweizip安装包_华为安卓安装包无法解压为什么
  18. “湖南索御文化传媒”新闻发布会即将启动
  19. 安卓屏幕坏了怎么把资料拷出来_选择苹果还是安卓呢?(老安卓转苹果11用户体验)...
  20. “被提拔3个月,我离职了”:给想做管理的人提个醒!

热门文章

  1. 网页开发工具VSCode的使用
  2. 小程序开发专题-项目设计-毕业设计【建议在校生收藏】
  3. 论文阅读:Improved Denoising Diffusion Probabilistic Models
  4. EVE-NG中思科交换机配置实例之聚合和ssh远程登录
  5. 一个关于IT界牛人的故事,估计是杜撰的。
  6. RK356X SPI 使用
  7. 计算机设计大赛 app一等奖,广商学子在大学生计算机设计大赛中喜获一等奖
  8. Google Guava简介
  9. AIX 5300-06-01 + Oracle 9.2.0.6 = ORA-27061
  10. 平行时代的平行智能体系(王飞跃)