qt5.7交叉编译开发板开机运行程序

本文介绍如何配置QT5.7在ARM架构开发板上启动并运行程序的具体步骤,包括设置环境变量、创建启动脚本以及修改rcS文件等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇 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了。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值