迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包

迪文科技工业 Linux 屏 DMT10600T070-38WTC 更新程序打包

  • 产品数据
    • 问题
    • 下载交叉编译专用工具
    • 创建Qt程序
      • 新建
      • 编辑
        • 移除窗口工具栏
        • 宽度修改为1024
        • 添加背景图资源文件
        • 添加背景图
      • 运行
    • 交叉编译
      • 解压下载工具
      • 打开终端
      • 执行命令
      • 结果
    • 打包

产品数据

DMT10600T070_38WTC
基于 A40i 的工业级 Linux 系统智能显示终端,运行 Linux3.10 操作系统。
7.0 英寸,1024*600 分辨率,16.7M 色,IPS 屏,宽视角,电容触摸屏,带外壳产品。
采用迪文 HMI 组态软件进行二次开发。
集成 PLC 通讯、报警、采样、配方等数据库管理、界面定制、宏指令等功能。
支持网线连接 PC 端下载更新工程。
支持 RS232,RS422 端口与外部设备连接通讯。

问题

本人工作的计算机电脑系统:
Ubuntu22.04.1
Linux版本5.19.0-32-generic,架构x86_64。

但是,迪文科技工业 Linux 屏(DMT10600T070-38WTC)运行程序需要的是arm架构。所以需要跨架构交叉编译。

下载交叉编译专用工具

CSDN下载地址: https://download.csdn.net/download/qq_28680277/87576306
百度网盘下载地址: buildroot-A40i-QT-sdk-20220623.tar.gz 提取码: swsp
(百度网盘下载慢时,请耐性等待)

创建Qt程序

新建

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第1张图片
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第2张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第3张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第4张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第5张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第6张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第7张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第8张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第9张图片

编辑

移除窗口工具栏

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第10张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第11张图片

宽度修改为1024

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第12张图片

添加背景图资源文件

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第13张图片
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第14张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第15张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第16张图片添加前缀
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第17张图片
添加文件
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第18张图片
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第19张图片迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第20张图片
Ctrl+S 保存文件
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第21张图片

添加背景图

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第22张图片
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第23张图片
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第24张图片
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第25张图片
Ctrl+S 保存文件

运行

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第26张图片

交叉编译

解压下载工具

ncyf@NCYF:~/Downloads$ ls -l *QT*
-rw-rw-r-- 1 ncyf ncyf 600847483  313 12:25 buildroot-A40i-QT-sdk-20220623.tar.gz
ncyf@NCYF:~/Downloads$ tar -zxvf buildroot-A40i-QT-sdk-20220623.tar.gz 
(省略......)
./buildroot-A40i-QT-sdk-20220623/sysroot/sbin/mount.fuse
./buildroot-A40i-QT-sdk-20220623/sysroot/sbin/udevadm
./buildroot-A40i-QT-sdk-20220623/sysroot/dev/
ncyf@NCYF:~/Downloads$ ls -l *QT*
-rw-rw-r-- 1 ncyf ncyf 600847483  313 12:25 buildroot-A40i-QT-sdk-20220623.tar.gz

buildroot-A40i-QT-sdk-20220623:
总计 12
-rwxrwxr-x 1 ncyf ncyf 1223  623  2022 env-setup
drwxr-xr-x 8 ncyf ncyf 4096  72  2016 gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf
drwxr-xr-x 9 ncyf ncyf 4096  317  2022 sysroot
ncyf@NCYF:~/Downloads$ mv buildroot-A40i-QT-sdk-20220623 /home/ncyf/

打开终端

在源码目录打开终端,或 cd 到源码目录。
迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第27张图片

执行命令

ncyf@NCYF:~/test8$ ls
main.cpp        mainwindow.h   pic      test8.pro       test8_zh_CN.ts
mainwindow.cpp  mainwindow.ui  pic.qrc  test8.pro.user
ncyf@NCYF:~/test8$ source /home/ncyf/buildroot-A40i-QT-sdk-20220623/env-setup
ncyf@NCYF:~/test8$ /home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/bin/qmake
Info: creating stash file /home/ncyf/test8/.qmake.stash
ncyf@NCYF:~/test8$ ls
main.cpp        mainwindow.h   Makefile  pic.qrc                   test8.pro       test8_zh_CN.ts
mainwindow.cpp  mainwindow.ui  pic       qmake_qmake_qm_files.qrc  test8.pro.user
ncyf@NCYF:~/test8$ make
/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/bin/uic mainwindow.ui -o ui_mainwindow.h
arm-linux-gnueabihf-g++ -c -pipe --sysroot=/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot -O2 -std=gnu++1z -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtWidgets -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtGui -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtCore -I. -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/mkspecs/linux-arm-gnueabi-g++ -o main.o main.cpp
arm-linux-gnueabihf-g++ -c -pipe --sysroot=/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot -O2 -std=gnu++1z -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtWidgets -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtGui -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtCore -I. -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/mkspecs/linux-arm-gnueabi-g++ -o mainwindow.o mainwindow.cpp
/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/bin/rcc -name pic pic.qrc -o qrc_pic.cpp
arm-linux-gnueabihf-g++ -c -pipe --sysroot=/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot -O2 -std=gnu++1z -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtWidgets -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtGui -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtCore -I. -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/mkspecs/linux-arm-gnueabi-g++ -o qrc_pic.o qrc_pic.cpp
/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/bin/lrelease test8_zh_CN.ts -qm .qm/test8_zh_CN.qm
Updating '.qm/test8_zh_CN.qm'...
    Generated 0 translation(s) (0 finished and 0 unfinished)
/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/bin/rcc -name qmake_qmake_qm_files qmake_qmake_qm_files.qrc -o qrc_qmake_qmake_qm_files.cpp
arm-linux-gnueabihf-g++ -c -pipe --sysroot=/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot -O2 -std=gnu++1z -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtWidgets -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtGui -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtCore -I. -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/mkspecs/linux-arm-gnueabi-g++ -o qrc_qmake_qmake_qm_files.o qrc_qmake_qmake_qm_files.cpp
arm-linux-gnueabihf-g++ -pipe --sysroot=/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot -O2 -std=gnu++1z -Wall -W -dM -E -o moc_predefs.h ../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/mkspecs/features/data/dummy.cpp
/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/bin/moc -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include /home/ncyf/test8/moc_predefs.h -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/mkspecs/linux-arm-gnueabi-g++ -I/home/ncyf/test8 -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtWidgets -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtGui -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtCore -I. -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/5.3.1 -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/5.3.1/arm-linux-gnueabihf -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/5.3.1/backward -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/5.3.1/include -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/5.3.1/include-fixed -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include -I/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/include mainwindow.h -o moc_mainwindow.cpp
arm-linux-gnueabihf-g++ -c -pipe --sysroot=/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot -O2 -std=gnu++1z -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtWidgets -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtGui -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/include/QtCore -I. -I. -I../buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/mkspecs/linux-arm-gnueabi-g++ -o moc_mainwindow.o moc_mainwindow.cpp
arm-linux-gnueabihf-g++ --sysroot=/home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot -Wl,-O1 -Wl,-rpath,/usr/local/Qt-5.12.6/lib -o test8 main.o mainwindow.o qrc_pic.o qrc_qmake_qmake_qm_files.o moc_mainwindow.o   /home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/lib/libQt5Widgets.so /home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/lib/libQt5Gui.so /home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/local/Qt-5.12.6/lib/libQt5Core.so /home/ncyf/buildroot-A40i-QT-sdk-20220623/sysroot/usr/lib/libGLESv2.so -lpthread   
ncyf@NCYF:~/test8$ ls
main.cpp        Makefile            qmake_qmake_qm_files.qrc      test8.pro
main.o          moc_mainwindow.cpp  qrc_pic.cpp                   test8.pro.user
mainwindow.cpp  moc_mainwindow.o    qrc_pic.o                     test8_zh_CN.ts
mainwindow.h    moc_predefs.h       qrc_qmake_qmake_qm_files.cpp  ui_mainwindow.h
mainwindow.o    pic                 qrc_qmake_qmake_qm_files.o
mainwindow.ui   pic.qrc             test8
ncyf@NCYF:~/test8$ 

结果

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第28张图片其中,编译结果就是arm架构上可运行的程序。
友情提示:此时如果修改代码,运行程序,会发现修改的代码不起作用,请删除上面编译生成的文件,或者git提交后,删除.git之外的所有文件,然后恢复。

打包

CSDN下载地址: https://download.csdn.net/download/qq_28680277/87576293
百度网盘下载地址:DWIN_V1-0-0.tar 提取码: vgrq

按照如下目录结构打包

test8App
--bin
  --test8
--etc
  --runqt
--install.sh
--serio_app

其中,test8是编译的arm架构程序。
runqt 内容如下

#!/bin/sh
export HOME=/extp/nanobio
export LD_LIBRARY_PATH=/usr/local/Qt-5.12.6/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/usr/local/Qt-5.12.6/plugins
export QT_QPA_FONTDIR=/usr/local/Qt-5.12.6/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_PLUGIN_PATH/platforms
export QT_QPA_PLATFORM="linuxfb:fb=/dev/fb0:size=1024x600:mmsize=169x179"
export PATH=/usr/local/Qt-5.12.6/bin:$PATH
export QTDIR=/usr/local/Qt-5.12.6
export QT_ROOT=/usr/local/Qt-5.12.6
export QT_QPA_GENERIC_PLUGINS=tslib,evdevkeyboard,evdevmouse
#export QT_QPA_USE_DWINTOUCH=1

#qttesttool &
/extp/nanobio/run/test8 &

install.sh 内容如下

#!/bin/sh

QTDEST=/usr/local/Qt-5.12.6
copy_dir()
{
  if [ -d $1 ]; then
     for libfile in $1/*; do
         if [ -f $libfile ]; then
            cp $libfile $2/
            chmod $3 $2/${libfile##*/}
           #echo $2/${libfile##*/}
         fi
      done
  fi
}

instdir=$(cd `dirname $0`; pwd)

if [ ! -d /extp/nanobio ];then
mkdir /extp/nanobio
fi

rm /extp/nanobio/run -rf
sync

cp -a $instdir/bin /extp/nanobio/run
cp -a $instdir/etc/* /etc/init.d/
#cp -a $instdir/font/* $QTDEST/fonts/
#if [ -f $instdir/logo/bootlogo.bmp ]; then
#   mount /dev/mmcblk0p2 /extp/nanobio
#   cp -a $instdir/logo/bootlogo.bmp /extp/nanobio/
#   umount /extp/nanobio
#   sync
#fi
#cp -a $instdir/logo /extp/nanobio/logo
#chmod u+x /extp/nanobio/logo/showlogo
if [ -f /etc/sw2hmi ]; then
   rm /etc/sw2hmi
   sync
fi
sync
$instdir/serio_app

执行tar打包命令
其中 tar 包名称是固定的,DWIN_V1-0-0.tar,否则自动更新时,会没有反映(上电后没有峰鸣声)。

ncyf@NCYF:~/Documents/uart_lcm/发布/4测试程序-1024_600背景图片$ tar -cvf DWIN_V1-0-0.tar test8App
test8App/
test8App/install.sh
test8App/etc/
test8App/etc/runqt
test8App/serio_app
test8App/bin/
test8App/bin/test8
ncyf@NCYF:~/Documents/uart_lcm/发布/4测试程序-1024_600背景图片$

迪文科技工业 Linux 屏(DMT10600T070-38WTC)更新程序打包_第29张图片最后,DWIN_V1-0-0.tar 即为 arm 架构要更新的程序。
附:不同的工业 Linux 屏可能版本不一样,tar包名称也不一样,如果DWIN_V1-0-0.tar不行,可以尝试DWIN_V1-0-1.tar、DWIN_V1-0-2.tar,例如1024x600的DWIN_V1-0-0.tar烧录成功,1280x800的DWIN_V1-0-2.tar烧录成功。

你可能感兴趣的:(Qt,工业,Linux,屏,linux,qt,迪文)