迅为6818/4418开发板Yocto开发指南
迅為6818/4418開發板新增Yocto系統,并支持支持QML、OpenGL ES2.0、Web瀏覽器、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开发指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金融扶贫的基本特征是
- 下一篇: 王者荣耀单字id怎么改 王者荣耀单字id