在上一篇 qt5.7交叉编译安装到arm 中,为了使得开发板能够开机运行程序,可以这样做:
1.在开发板的/bin目录中新建qt5.shell ,在最下面添加执行程序的命令,如下所显示:
#!/bin/sh
export TSLIB_ROOT=/opt/tslib1.4
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=input
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export QTDIR=/opt/qt-5.7.0/
export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/root/tslib/build/bin
if [ -c /dev/input/event2 ]; then
export QWS_MOUSE_PROTO='MouseMan:/dev/input/mice Tslib:/dev/input/event2'
#if [ -e /etc/pointercal -a ! -s /etc/pointercal ] ; then
if [ -e /etc/pointercal ] ; then
fsize=$(/bin/ls -al /etc/pointercal | cut -d' ' -f 23)
echo $fsize
#if [ -s /etc/pointercal ]; then
if [ $fsize -ge "1" ]; then
echo "/etc/pointercal is exit"
else
echo "/etc/pointercal is empty"
rm /etc/pointercal
/opt/tslib1.4/bin/ts_calibrate
fi
else
echo "/etc/pointercal not found"
/opt/tslib1.4/bin/ts_calibrate
fi
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
#>/etc/pointercal
fi
#export QWS_MOUSE_PROTO="Tslib:${TSLIB_TSDEVICE}"
#/usr/local/tslib/bin/ts_calibrate
#export QWS_KEYBOARD=TTY:/dev/tty1
FB_SIZE=$(cat /sys/class/graphics/fb0/virtual_size)
#export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1"
case "$FB_SIZE" in
800,480)
export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1"
;;
480,272)
export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1"
;;
*)
export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1"
;;
esac
#export QWS_DISPLAY=:1
export QWS_DISPLAY=Transformed:Rot0
export HOME=/root
cd /bin
./untitled
2.编辑修改/etc/init.d/rcS文件
[root@iTOP-4412]# vi etc/init.d/rcS
显示如下,在后面添加一行/bin/qt5.shell &,该文件内容如下所示:
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/topeet/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#
# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP
/bin/hostname iTOP-4412
#/bin/mount -n -t proc none /proc
#/bin/mount -n -t sysfs none /sys
#/bin/mount -n -t usbfs none /proc/bus/usb
#/bin/mount -t ramfs none /dev
[ -e /proc/1 ] || /bin/mount -n -t proc none /proc
[ -e /sys/class ] || /bin/mount -n -t sysfs none /sys
[ -e /dev/tty ] || /bin/mount -t ramfs none /dev
echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
/bin/hotplug
# mounting file system specified in /etc/fstab
mkdir -p /dev/pts
mkdir -p /dev/shm
/bin/mount -n -t devpts none /dev/pts -o mode=0622
/bin/mount -n -t tmpfs tmpfs /dev/shm
/bin/mount -n -t ramfs none /tmp
/bin/mount -n -t ramfs none /var
mkdir -p /var/empty
mkdir -p /var/log
mkdir -p /var/log/boa
mkdir -p /var/lock
mkdir -p /var/run
mkdir -p /var/tmp
ln -sf /dev/ttyS2 /dev/tty2
ln -sf /dev/ttyS2 /dev/tty3
ln -sf /dev/ttyS2 /dev/tty4
amixer cset numid=5 127
amixer cset numid=6 1
amixer cset numid=30 8,0
amixer cset numid=40 1
amixer cset numid=43 1
amixer cset numid=47 1
/sbin/hwclock -s -f /dev/rtc
syslogd
/etc/rc.d/init.d/netd start
echo " " > /dev/ttySAC2
echo "Starting networking..." > /dev/ttySAC2
#sleep 1
#/etc/rc.d/init.d/httpd start
#echo " " > /dev/ttySAC2
#echo "Starting web server..." > /dev/ttySAC2
#sleep 1
#/etc/rc.d/init.d/leds start
#echo " " > /dev/ttySAC2
#echo "Starting leds service..." > /dev/ttySAC2
#echo " "
#sleep 1
echo "*************************************" > /dev/ttySAC2
echo " http://www.topeetboard.com " > /dev/ttySAC2
echo "*************************************" > /dev/ttySAC2
sleep 2
/etc/firmware/load_firmware
#mkdir /mnt/disk
#mount -t yaffs2 /dev/mtdblock3 /mnt/disk
/sbin/ifconfig lo 127.0.0.1
/etc/init.d/ifconfig-eth0
####### #wifi setting #######
#/etc/init.d/ath6kl
#/etc/init.d/mt6620
echo 0 > /proc/sys/kernel/hung_task_timeout_secs
#echo " " > /dev/ttySAC2
#echo "Starting Qtopia, please waiting..." > /dev/ttySAC2
#echo " " > /dev/ttySAC2
echo "Starting Qtopia4, please waiting..." > /dev/ttySAC2
#/bin/qtopia &
source /etc/profile
/bin/qt5.shell &
#must run this shell
/bin/sh
然后执行
[root@iTOP-4412]# reboot
重启开发板后,首先是校正触摸屏,校正完毕之后就可以运行untitled,下次开机就直接运行untitled了。