====== ComfilePi 유저 프로그램 자동시작 ======
최초 구매시 ComfilePi를 켜면 그래픽 Desktop 화면이 표시됩니다. 현장에 설치된 뒤에는 이 Desktop 화면이 필요없습니다. 유저가 작성한 프로그램이 바로 실행되어야 합니다.
===== 부팅시 콘솔모드로 부팅하는 방법 =====
우선 부팅시 그래픽 Desktop 으로 진입하지 않도록 해야합니다.
- 그래픽 Desktop의 console/terminal 에서 ''sudo raspi-config''를 입력하세요.
- 3번 Boot Options에서 B1 Desktop / CLI --> B1 Console을 선택하세요.
{{ :comfilepi:auto-start:raspi_config_1.png?nolink |}}
{{ :comfilepi:auto-start:raspi_config_2.png?nolink |}}
{{ :comfilepi:auto-start:raspi_config_3.png?nolink |}}
Finish를 누른후, ''Would you like yo reboot now?''를 물어보는 화면에서 Yes를 선택하시면 콘솔모드로 리부트 됩니다.
===== 자동시작할 프로그램을 등록하기 =====
- 텍스트 에디터를 사용해서 //{program_name}.service// 파일을 하나 생성해야 합니다. 평소 자주사용하는 에디터를 쓰시면 됩니다.
- 작성된 파일을 ''/etc/systemd/system/''폴더에 카피하세요.
- 자동실행할 파일과 필요한 부속파일도 ComfilePi 내의 적당한 위치에 사전에 카피해두십시오.
- 아래 예에서는 //dashboard.service// 파일을 텍스트 에디터로 만들었습니다. ''/opt/Qt5.8/examples/quickcontrols/extras/dashboard''을 자동시작하도록 하였습니다.
[Unit]
Description=Dashboard example program
[Service]
ExecStart=/opt/Qt5.8/examples/quickcontrols/extras/dashboard/dashboard
Restart=always
[Install]
WantedBy=multi-user.target
* ''Description'' 는 설명문입니다. 실행에 영향을 주지 않습니다.
* ''ExecStart'' 는 실행할 파일이 들어있는 경로와 파일명입니다. 바로 이 프로그램을 자동시작합니다.
* ''Restart=always'' 는 프로그램이 강제종료되어도 자동시작한다는 뜻입니다.
* ''WantedBy'' 는 실행 모드입니다. Multi-user.target는 다중사용자 모드를 뜻합니다.
''sudo systemctl enable dashboard.service'' 명령을 실행시켜야 자동시작이 활성화됩니다. 그리고 전원을 껏다 켜면 자동시작되는 것을 보실 수 있습니다.
==== 다른 명령 ====
* ''sudo systemctl enable dashboard.service'' - 자동시작 서비스를 활성화 합니다. 다음 Reboot부터 자동시작됩니다.
* ''sudo systemctl disable dashboard.service'' - 자동시작 서비스를 비활성화 합니다.
* ''sudo systemctl start dashboard.service'' - 곧바로 프로그램을 시작합니다..
===== Qt EGLFS 프로그램을 위한 환경변수 관련 =====
Qt EGLFS 프로그램을 쓰시는 분들만 아래 내용을 참고하시기 바랍니다.
Qt EGLFS 프로그램을 실행하기 위해서는 아래와 같이 환경변수를 사전에 정의해야 합니다.
[Service]
Environment="QT_QPA_EGLFS_HIDECURSOR=1"
Environment="QT_QPA_EGLFS_DISABLE_INPUT=1"
Environment="QT_QPA_GENERIC_PLUGINS=evdevmouse:abs"
Environment="QT_QPA_EGLFS_PHYSICAL_WIDTH=154"
Environment="QT_QPA_EGLFS_PHYSICAL_HEIGHT=86"
Environment="QT_QPA_EGLFS_WIDTH=800"
Environment="QT_QPA_EGLFS_HEIGHT=480"
ExecStart=/opt/Qt5.8/examples/quickcontrols/extras/dashboard/dashboard