zoukankan      html  css  js  c++  java
  • 迅为6818/4418开发板Yocto开发指南

    迅为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 设置成了开机自启,

  • 相关阅读:
    PHP的函数应用
    MyEclipse 使用Junit
    JAVASE知识点总结
    常见排序算法
    数据结构的java实现
    JDK1.5新特性总结
    Oracle练习题
    Oracle面试题2
    Oracle面试题1
    分别使用Statement和PreparedStatement对数据库进行操作
  • 原文地址:https://www.cnblogs.com/topeet/p/15079668.html
Copyright © 2011-2022 走看看