-------------------------------
嵌入式ARM平台设备采用Embedded Linux操作系统进行开发已经越来越成为主流,本文就着重说明在EmbeddedLinux下配置应用程序开机自启动的方法,并就基于Qt的应用程序卡机自启动脚本的配置进一步说明。
本文所演示的平台来自于ToradexColibriiMX6嵌入式平台,基于NXP iMX6系列核心为Cotrex-A9 的ARM处理器。
2. 准备
a). ToradexColibriiMX6 模块 Embedded Linux 开发上手指南请参考这里。
b). 本文使用的启动应用程序为如下两个,分别为一个c***ole application 和 Qt Application,功能都是简单的GPIO控制。
./C***ole application – https:///simonqin09/gpiointtest
./ QtApplication - https:///simonqin09/QtGPIOProject
3). 使用Systemd 方式配置开机自启动
a). systemd是当前 Linux 主流用于系统和服务管理的组件,同时也取代了过去的SysV init 系统,关于systemd的介绍请见这里。
b). System使用以”.service” 结尾的unit 配置文件来管控一个进程,Service 文件一般存放于“/etc/systemd/system/” 或者“/lib/systemd/system/”目录下,并可以通过systemctl 命令来启动,使能或者关闭等操作,比如:
----------------------------------------
# 重新加载systemd unit 配置文件
$ systemctl--system daemon-reload
# 查看一个service 的状态,启动和停止这个service(本次启动有效)
#systemctl status rvice
#systemctl start rvice
#systemctl stop rvice
# 使能或关闭一个service(下次启动有效)
#systemctl enable rvice
#systemctl disable rvice
----------------------------------------
c). 以systemd方式开机启动本文第二章节的 c***oleapplication 的 service 示例文件如下,关于c***oleapplication 的说明请参考这里,只是文章是基于 imx7 的,对于 imx6 GPIO的号码需要修改。
https:///simonqin09/gpiointtest/blob/master/rvice
H01-0030-MMM-FCHS
FDS-15FSQ
K93682-G13S
CEM3581T
0021-19633
M155GB14
HC202S-S1
E89120-B2260-L1
PH-19NIRECO
UAW250S-24-N
DGMX2-5PP-FW-S-30
CLV490-3010
FFL100-LB3
TD1DS1NDE0737
T-16589-G1R
MR-J2S-70A/B
C98043-A1601-L4
M-XF-200-SS-300-FL
TED134010WL
D684Z4815/D633-7368
MVME162-030
MVME167-003B
FVR-037E7S-4UX
QT-0706-A
IDNR296469-53
SGMGH-44DCA6
DGPL-25-210-KFB
LRAC01202
CF-SS-RHGE-09
CX1209P
M8P***-E
MVME-131
MT506LV4CN
E7BBA028
MAC90C-0-KD-3-C
SGDE-02AS
HTC10A-AC141
e3051-396-012-4
BSH0702T21F2A
CPCRMR08C
E2EC-X4D1
VFD150A43A
CQM1-PA206
CX1000-N001
P315X-H-X3
DG4V-5-6C-M-U-H6-20
MVME162-512
XBTZGCNC
Xycom XVME-590
DDS3.1-W050-D
LS2TR30-450Q8
SJ300-022HFU
MCLTPA0040-503 4 00
EP3640-1436-7-5
MCS40A0750-503-4-0T08275319
RMT78-N21N00A105F60
DSPC 172
Xycom XVME-201
Motor Driver D2665
V2010F-1F6S6T-11CC8K12-073
PCI-7342
MM-PMC-24TOC
42GNU-9220
CACR-SR02AC1E
FR-SC2512ATZ
P100E-5 2500
MC31C030-503-4-0008263353
JANCD-MFC06
TS4509N3920E20
MVME-332XTP
NGDR-02C
KFTG4V-5-2B70N-Z-VM-U1-H7-20
P06-GTT-G4
MPR51A040-503-00
DG4V-3S-7C-M-U-H5-60 DC24V
SUPPLY 603269-103
LUFP168LUFP7
HF-MP053
CM1000DU-34NF
CM233FJ-01781
45RM4-1000
CXSL20-Z2853-30
JAMSC-IF70V
DR-40-0F-AU
Siemens 6FX1128-1BB00
JZSP-CMP60-03
C043A
JANCD-1 0
Z-X3-B4102RU
UNI3402
TAU 603617-101
MT-45-TTY-FP
MDS-C1-CV-220
MFT-T1
CM3770T
E7BVD046
MM05D-50
BX15A20D-QD1
LDX-3207B
TT-4020-00-A
FP4A-2821
CORPML1440315416-06
PVM-4B1U
CMF010
XC***3915L1
MRS1100E31
MET64SCUAO
NINT-43C
DLM8-75/DLM8-75
PC0984351
RA1S30
LUCM32BL
M3211
6DD1672-0AD0
CIMRF7U40451
CIMR-G7B4015
JAMSC-B2701V
MPR51A060-503-00
MGGLB20-100-H7A2
EEA-PAM-525
KP40D-B8T2
PNOZS1C/751101
TRICONEX 3611E
SCG-T320-S
TCZ-200CCD
BSH0702T12A2A
SA-21 200
CTP12XLS20
MVME2604-1351
FC-3-308R
SCXI-1126
K7M-DR60S
JANCD-MRY01B-1
GRC152-2-5001
FDH4A15TR-RN23
CORP78871428
CSTN3000
0020-29865
GPD505V-B008
3700-01288
E37850-66505
LDC-3752
LQ150X1LGN2A
FABCO-D-321-XRS
DH7731X1-CA1
D4EX02265
NL-1057
CIMRP7U41600
DS200LD
55-151941G6
CACR-SR0
FVR-037G7S-4
NAM-12-08
TS3672N2522E5
CP32EM/20W
ED-1235
JANCD-B
SEIKI 193-230392
DA21-3
DA63M
FCA75F-24
NTC-ROTAX-QC
EDS-400A
CIMR-GL5-IP40
MSC-015
6ES5458-7LB11
HP5890-A