玉米糊 发表于 2014-5-23 16:52:22

如何替换启动时米尔默认的 QT 程序

默认情况下,米尔开发板Linux系统的qt程序会调用含有米尔LOGO的一个主界面,在这个界面中,可以调用drilldown、fancybrowser、fontsampler、ftp和masterdetail这几个程序。
下面以MYD-SAMA5D3X和MYD-AM335X开发板为例子,介绍将默认启动程序改自定义程序。

MYD-SAMA5D3X,SAM9X5开发板
相关文件

[*]启动配置文件:/etc/rc.local
[*]主界面程序:/usr/bin/launch
[*]QT测试程序目录:/usr/local/qt4.5.3-arm/Examples

步骤
1、打开/etc/rc.local文件
vi /etc/rc.local
2、将11行 launch -qws& 注释,并且在注释语句后面添加自定义的主界面启动程序语句,比如我让系统启动后启动 /usr/local/qt4.5.3-arm/Examples/drilldown 程序,修改完成后rc.local文件如下:
# cat rc.local
#!/bin/sh

if [ -e /dev/fb0 ];then
    if [ ! -f /etc/pointercal ];then
      ts_calibrate
      sync
    fi

    source /etc/setqtenv
#    launch -qws&
    /usr/local/qt4.5.3-arm/Examples/drilldown -qws&
#cd/usr/local/qt4.5.3-arm/Examples/       #或者使用这两行,可以较好处理路径问题
# ./drilldown&

      insmod /lib/modules/3.6.9/hdmi.ko
fi

## You can run your apps here . They will be launched
## at system startup.
3、重启开发板。

MYD-AM335X开发板
相关文件

[*]启动配置文件:/etc/init.d/qt.sh
[*]主界面程序: /opt/qt-4.7.1/demos/embedded/fluidlauncher/fluidlauncher
[*]QT测试程序目录:/opt/qt-4.7.1/demos
=======================================
qt脚本的引用关系:
/etc/inittab
        /etc/init.d/rcS
                /etc/init.d/rc
                        /etc/init.d/select_pointercal.sh
                        /etc/init.d/qt.sh
                                /etc/setqtenv

inittab引用rcS文件,rcS引用rc文件,以此类推。
=======================================
步骤
1、打开/etc/init.d/qt.sh文件
vi /etc/init.d/qt.sh
2、修改11行、注释17、18行,并且在注释后面添加自定义的主界面启动程序语句,比如,我让系统启动后启动 /opt/qt-4.7.1/demos/mainwindow/mainwindow 程序,则修改成如下内容(修改11行、注释17、18行、添加19行):
#!/bin/sh

source /etc/setqtenv

if [ ! -e /etc/pointercal ] ; then
      ts_calibrate
fi

export HOME=/root

base=mainwindow   
pid=`/bin/pidof $base`
if [ -n "$pid" ];then
                killall $base
fi

# cd /opt/qt-4.7.1/demos/embedded/fluidlauncher/
#./fluidlauncher -qws 2>/dev/null&
./opt/qt-4.7.1/demos/mainwindow/mainwindow -qws 2>/dev/null&


3、重启开发板。

知识普及
1、> /dev/null 表示将命令的标准输出重定向到 /dev/null,2>/dev/null 表示将命令的错误输出重定向到 /dev/null
2、&表示后台执行,你可以继续占有你的输入窗口
3、也就是将1(标准输出)2(标准出错)的信息不现实出来.就是将标准输出和标准出错的信息屏蔽不显示
4、可以屏蔽一些不必让用户看到的信息



沉沦的夏天 发表于 2015-8-16 22:05:04

为什么我板子里面的跟你 的qt.sh 不一样?
我的如下:
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/input/event1rt TSLIB_CONFFILE=/usr/local/tslib/etc/tf

export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/tslib/lib:/opt/qt-4.8.5/lib
export QT_QWS_FONTDIR=/opt/qt-4.8.5/lib/fonts
export QWS_USB_KEYBOARD=/dev/input/event2
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/tslib/bin

if grep "hdmi" /proc/cmdline > /dev/null ; then
      export QWS_MOUSE_PROTO="Tslib:/dev/input/event1 MouseMan:/dev/input/mice
else
      export QWS_MOUSE_PROTO="Tslib:/dev/input/event1"
fi

export QWS_DISPLAY=:1

玉米糊 发表于 2015-8-17 10:09:22

沉沦的夏天 发表于 2015-8-16 22:05
为什么我板子里面的跟你 的qt.sh 不一样?
我的如下:
export TSLIB_CONS ...

是什么板子?

沉沦的夏天 发表于 2015-9-1 20:33:10

我的板子型号是AM3358,用了你们最新的7寸电容屏

玉米糊 发表于 2015-9-2 09:26:31

沉沦的夏天 发表于 2015-9-1 20:33
我的板子型号是AM3358,用了你们最新的7寸电容屏

估计是版本更新后,这部分内容作了调整,你可以按照这个思路搜索
页: [1]
查看完整版本: 如何替换启动时米尔默认的 QT 程序