Chinaunix首页 | 论坛 | 博客
  • 博客访问: 397601
  • 博文数量: 29
  • 博客积分: 2091
  • 博客等级: 大尉
  • 技术积分: 463
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 10:53
文章分类
文章存档

2012年(2)

2011年(6)

2010年(12)

2009年(9)

我的朋友

分类: LINUX

2009-11-16 14:00:53

嵌入式linux使用MDEV自动启动QT程序

 

我的项目中,要用到这样的功能,插入U盘时,要求自动检测到U盘的插入,并自动启动应用程序。

 

我的根文件系统是用busybox构建的,其中,设备文件的生成是使用busybox中的mdev生成。Mdev除了生成设备文件外,还能检测到设备的插入拨出,即热插拨检测。那么,自动检测U盘的插入,mdev本来就可以做到,不用再做研究了,问题是如何自动启动程序呢?这就要使用mdev.conf文件了,此文件在根文件系统的/etc目录下。Mdev检测到设备插入后,会根据此文件中的规则自动做一些相关的事。于是,我就写了如下一条规则,sda[0-9] 0:0 600 @(/autostart) mdev在检测到U盘插入后,自动运行autostart脚本。做到这一步都没困难,busybox的文档就有详细说明,不多解释了。

但我要启动的是一个QT4 embedded的程序。大家都知道,运行这样的程序是要配置一些相关环境变量的,比如,我的程序要使用到tslib的一些环境变量,一般是在/etc/profile文件中进行配置。我也在此文件中配置了相关环境变量,但发现用手工方法启动QT程序,环境变量是起作用的,程序工作正常。但是我用autostart脚本启运此程序,却发现环境变量没起作用。百思不得其解,想到很多办法都没有解决。最后,在PC上的linux发行版中运行QT程序时,得到启发,我发现QT程序相关的环境变量只在当前的控制台中起作用。那么,mdev自动起动autostart是不是另起了一个控制台呢?于是在atutostart的脚本中加入QT的相关环境变量设置,问题得到了解决。

这个问题解决起来不值一提,但我却花了很多时间去解决它,我把它记录下来以供大家参考。
阅读(4977) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

meisk2015-06-13 11:19:10

我正困扰环境变量不起作用的问题,受教了,谢谢!

chinaunix网友2009-12-03 19:49:50

方便的话,加我QQ,102706739

chinaunix网友2009-12-03 19:49:20

关于U盘插入使用MDEV自动挂载的功能,我现在一个项目也有需要,可否交流一下,