厦门莫格电气自动化有限公司销售
ABB SPNPM22 INNPM22
欢迎来电咨询!
SPNPM22、INNPM22
SPNPM22、INNPM22
SPNPM22、INNPM22
您迈开询价的一小步,我还您成功的一大步。
可是,当我们需要在计算机模块或者工业产品上面运行定制化或者特殊应用的Linux镜像时候,一个预编译的嵌入式Linux发行版本并不一定是***好的选择。编译一个镜像有一整套流程,在这个过程中,可以去掉任何不想要的但会导致开机时间增加,影响处理速度以及浪费内存空间的项目。很多时候我们因为系统里面有很多无用的应用和服务在运行导致系统资源浪费。举例说明,在headless应用中,桌面环境是不需要的,因此我们应该编译一个基于控制台的版本,也就是一个更快更轻量级的Linux版本。另一个使用预编译版本的弊端是***问题,如Canonical (提供Ubuntu发行版本的公司) 就不允许在没有适当合作认证前提下随意定制和销售Ubuntu。与之相反,基于一个定制的Linux版本,我们可以完全控制所需安装的包以及使用的***。因此,我们就可以根据项目软硬件需求拥有一个更优化的Linux镜像。
但是,如果我们想要将自己开发的Qt应用或者C应用集成到定制Linux版本中,我们该怎么做呢?是不是需要先编译应用然后***到板子上面?还是需要先创建如”.ipk”或者”.deb”文件,然后***到系统中去?如何将应用包含到”nf”文件的” IMAGE_INSTALL_append”中去?如何像其他嵌入式设备那样使应用在系统启动后自动运行?
在本文中,我们将演示如何使用OpenEmbedded/Yocto编译系统工具以自动方式来实现上面问题,我们将会快速展示基于bitbake来实现如编译,包安装,文件夹创建以及添加类似系统启动后应用自动运行服务的步骤。之后,我们将会为我们产品或者计算机模块获得一个定制化的嵌入式Linux发布版本。尽管不同开发平台或者单板之间的操作细节可能有些不同,但是原理都是一致的。
2). 准备
为了跟随下面步骤操作,首先需要配置一个用于编译嵌入式Linux镜像的环境,请参考Toradex 开发者中心教程。Toradex使用OpenEmbedded-core编译系统来编译镜像。基本上,这个教程包含:
a). 安装准备
b). Repo安装
c). ***Toradex BSP version2.5
d). 因为我们应用是基于Qt,因此需要在”stuff”目录下添加 ”meta-qt5” layer,运行下面命令来添加:

e). 基于上面所有,我们可以开始编译我们自己的嵌入式Linux版本了。
3). 使用QtCreator 创建应用程序
为了演示需要,我们开发了一个双屏显示应用,实际上是两个程序运行在不同的显示屏。这类应用很常见,如机场值机柜台,或者在汽车中,一个是方向盘后面有仪表盘组,另一个是用于多媒体功能,GPS导航等的显示面板。本文并未涉及Qt交叉编译应用的详细配置,关于这个信息请参考Toradex开发者中心这篇文章。
上述两个应用程序的源代码可以从GitHub上面找到,请记住当我们编译镜像的时候,这两个应用程序会按照我们稍后编写的recipe文档指令自动***和编译。
重要:当镜像编译时候为了确定应用从哪里安装,务必添加下述红色部分代码到“.pro” Qt 项目文件:

ASD-A2023-AB
ECMA-C31020ES
353A2FNNNNNNNA4
ATV12H037M2
2711P-T7***D1
6SL3320-1TE38-4AA3
AS-S908-120
IC200CPU002
IC200MDL640
IC200MDL740
IC200PWR102
1746-BAS-T
JRMSP-P8601
1756-IF8
3700
MDV60A-0110-5A3-4-00
HVE03.2-W030N
1756-A17
1756-CNBR
1756-ENBT
1756-FO8
1756-IB16I
1756-L62
1756-N2
1756-OB16I
1756-PA75
1756-TBCH
1756-TBSH
1784-CF64
RL-1600
3504E
3505E
3664E
3704E
4119A
PC-A984-145
M100DC HIPOT TESTER
MDS60A0040-5A3-4-00
1747-L532
MHD112C-024-NG0-AN
DSAI145
DSBB175
D***B178
DSPC172
00705-A-1733
D35614 TYP:TPR280 NO:TPR26950
AS-S908-120
1756-DNB/D
1746-NO4I
3V4150
6SE3213-6CA40
ROF 137 5339/11
ROF 137 5336/1
ROF 137 5396/2
SDCS-CON-2A
1336-L4
ATV61HD15N4Z
DPS-800GBA
TFT7600
AM-SA85-000
AD916AE
CP60-P096IFR
JWS300-24/V
JWS600-24/V
DSAI130D
DSAO120A
DSBC176
DSDP170
1771-CP2
1746-IN16
1746-NI8
3504E
3664
3704E
3805E
4119A
8312
9371
140ACI03000
140ACO02000
140CRA93100
140DDI85300
140DDO84300
140XBP01000
140XBP01600
X2-10GB-ZR
SSU76UC24-48V
6EW1861-3AC
HEC-GV3-DN
140AII33010
1336-BDB-SP39D
1336-BDB-SP76D
2094-BC04-M03-S
A06B-6124-H209
3301
DPS-400AB
1756-L72
YT204001-FC
YT204001-FL
YT204001-FP
ES1-112-7MT
CJ1W-OC201
CJ2M-CPU12
CP1H-X40DR-A
CP1W-40EDR
CP1W-CIF01
1771-OAN
ASD-A2023-AB ECMA-C31020FS
LS200192B0
HE693PBM101F
IC200GBI001
IC200PWR001
IC693MDL231
140CPS11420
140CPU65260
140DDI36400
140DDO36400
140NOE77101
140XBE10000
140XBP01600
140XCA71709
140XTS00200
499NEH10410
499NES18100
499NTR10100
TSXMRPC007M
6***6643-0DD01-1AX1
6EP1336-3BA00
6ES7307-1EA01-0AA0
6ES7314-6CG03-0AB0
6ES7321-1BH01-0AA0
6ES7321-1BL00-0AA0
6ES7322-1BH10-0AA0
6ES7322-1BL00-0AA0
6ES7331-7KF02-0AB0
6ES7332-5HD01-0AB0
6ES7390-1AE80-0AA0
6ES7392-1AJ00-0AA0
6ES7392-1AM00-0AA0
6ES7953-8LG20-0AA0
SS302H-3-D3
SS302H-3-D5
SS303H-1Z-D2
1746-IM16
1746-OA16
TK-81
140CPU11303
490NRP95400
UDX5128N
UPH5913H-A
IC693CPU374
VT11118-10
DSPC 172H
PC3JG-P TIC-6088
TOTX170A
TCSE***083F2CU0
AGDR-61C
AIBP-51