arm開發板開機自啟動QT程序


問題描述

印象中,我們開機自啟動程序是在文件夾/etc/init.d/rcS中,今天我在測試我的QT程序的時候發現,並不能開機啟動

  • 文件介紹,auto.sh是在目錄/etc/init.d/下,腳本的作用是為了運行QT程序的,稍后為會貼出來的,ACU為QT 程序在目錄/app下。
  1. 首先我修改了/etc/init.d/rcS
#!/bin/sh

echo "start#########################&&&&&&****************"
chown root:root /var/empty
chmod 744 /var/empty
/usr/sbin/sshd &
echo "?????????????????????????????????????????????????"
/sbin/utelnetd -d &
chown root:root    /var/ftp
chmod    755    /var/ftp
chown root:root /etc/vsftpd.conf
/usr/sbin/vsftpd &
echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
./bin/boa &
#/etc/init.d/auto.sh &
#這句是我要運行的程序,現在注釋掉了
echo "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"
exec /etc/init.d/rc S
echo "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"

其中我打印了很多的LOG信息用於分辨程序運行到了那里

重新啟動之后,可以看到缺少了LOG信息,這也是我為什么要將,、etc/init.d/rcS放到了 exec /etc/init.d/rc S之前,這就是說沒有運行到,我沒有去深究是什么原因引起的。就現在這個位置,我發現程序運行起來了,但是串口,顯示沒有初始化,同時我准備用網絡登錄的時候發現網絡也沒有初始化,也就是說這個位置是不行的。
根據最后一句判斷,那我就找到vi /etc/init.d/rc
在最后加入

cd /etc/init.d/
. 
.
.
//最后加入
./auto.sh &

最后正常運行

  1. auto.sh
#!/bin/bash
export TSLIB_ROOT=/arm-tslib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=/arm-tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/arm-tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so
export QT_QPA_FB_TSLIB=1QT_QPA_FB_TSLIB=1

export QT_ROOT=/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1:edevmouse:/dev/input/event3
export QT_QPA_FONTDIR=/arm-qt/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms


cd /app
./ACU





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM