linux上电自启动应用程序详解
2016-03-10 17:13
495 查看
每当我学习一个新的东西得时候都是会 遇到一些错误,但是我会非常努力的去解决它,今天这个自启动应用程序花了我两个小时的时间才解决了。所以说遇到问题的时候要去思考、分析。下面我就来谈谈linux上电自启动应用程序,以及我遇到的问题。希望能给你带来一些启发。
我这里有一个项目是用鼠标和触摸屏代表输入设备,LCD代表显示设备,一个简易的数码相框,当我制作成功后手动执行一些命令是能够正常启动应用程序的,当我写成一个脚本后程序就读取错误了,描述如下:
我在/usr/etc/目录下建了一个test.sh 脚本程序,内容如下:(记得加上可执行权限)
#!/bin/sh
cd /mnt
/sbin/insmod s3c_ts.ko /* 加载触摸屏驱动 */
./digitpic MSYH.TTF & /* 应用程序的启动 */
在/etc/init.d/rcS 最后一行添加exec /usr/etc/test.sh
但是程序上电后启动打印触摸数据读取错误,打印的信息是从digitpic这个应用程序中打印出来的。但是我用ts_calibrate 命令来测试 触摸屏驱动程序确实是成功加载了的,这里就让我感觉很意外,后来我找了各种方法都没有成功,最后我定位打印信息去看,才发现是配置触摸屏错误,原来才是我们没有配置触摸屏,但是我们确实在/etc/profile中配置了触摸屏的,内容如下:
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts/
export TSLIB_CONSOLEDEVICE=/dev/tty1
export TSLIB_FBDEVICE=/dev/fb0
经过我对Linux文件启动顺序才发现/etc/init.d/rcS 文件比/etc/profile 文件先执行,在这里终于把错误找到了,当我们运行/etc/init.d/rcS这个文件里面的test.sh脚本程序的时候,我们还没有配置触摸屏驱动程序,但是我们已经在使用这个触摸屏驱动程序了,所以这个触摸屏驱动的配置应该放在这个脚本之前去执行,所以这里问题得到了完美的解决。
这里送给朋友们几句话,遇到问题一定要自己多思考,自己想办法去解决。有些人就得说了好浪费时间,我在这里说一下,一个程序员的习惯很重要,如果你一心是想在网上找代码,你绝对成为不了高手,只有自己动手实践了才是真理,很多网友喜欢在群里面或者论坛上发一些跪求代码,求大神解答啊之类的话,很多网友连自己都没有定位到自己的问题所在,还找别人去给你解答,你认为这个可能吗?
我这里有一个项目是用鼠标和触摸屏代表输入设备,LCD代表显示设备,一个简易的数码相框,当我制作成功后手动执行一些命令是能够正常启动应用程序的,当我写成一个脚本后程序就读取错误了,描述如下:
我在/usr/etc/目录下建了一个test.sh 脚本程序,内容如下:(记得加上可执行权限)
#!/bin/sh
cd /mnt
/sbin/insmod s3c_ts.ko /* 加载触摸屏驱动 */
./digitpic MSYH.TTF & /* 应用程序的启动 */
在/etc/init.d/rcS 最后一行添加exec /usr/etc/test.sh
但是程序上电后启动打印触摸数据读取错误,打印的信息是从digitpic这个应用程序中打印出来的。但是我用ts_calibrate 命令来测试 触摸屏驱动程序确实是成功加载了的,这里就让我感觉很意外,后来我找了各种方法都没有成功,最后我定位打印信息去看,才发现是配置触摸屏错误,原来才是我们没有配置触摸屏,但是我们确实在/etc/profile中配置了触摸屏的,内容如下:
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts/
export TSLIB_CONSOLEDEVICE=/dev/tty1
export TSLIB_FBDEVICE=/dev/fb0
经过我对Linux文件启动顺序才发现/etc/init.d/rcS 文件比/etc/profile 文件先执行,在这里终于把错误找到了,当我们运行/etc/init.d/rcS这个文件里面的test.sh脚本程序的时候,我们还没有配置触摸屏驱动程序,但是我们已经在使用这个触摸屏驱动程序了,所以这个触摸屏驱动的配置应该放在这个脚本之前去执行,所以这里问题得到了完美的解决。
这里送给朋友们几句话,遇到问题一定要自己多思考,自己想办法去解决。有些人就得说了好浪费时间,我在这里说一下,一个程序员的习惯很重要,如果你一心是想在网上找代码,你绝对成为不了高手,只有自己动手实践了才是真理,很多网友喜欢在群里面或者论坛上发一些跪求代码,求大神解答啊之类的话,很多网友连自己都没有定位到自己的问题所在,还找别人去给你解答,你认为这个可能吗?
相关文章推荐
- Linux-非结构化数据同步-Linux下Lsyncd+Rsync实现非结构化增量差异数据的同步5
- linux 串口初始化 基于FL2440开发板
- 如何修改linux的MAC地址
- linux-ubuntu之chown和chmod
- Linux命令学习手册-arp命令
- Linux进程间通信——使用消息队列
- 嵌入式linux:音频编解码PCM转至AAC
- linux 获取文件系统信息(磁盘信息)
- 在CentOS 6.3 64bit下yum安装MySQL后重置root密码的方法
- 【Linux调试经验】局域网内数据传输不经过路由
- 查看 SELinux状态及关闭SELinux
- Linux中的find命令精华版(你会用到爱不释手)
- linux 下网关MAC的查看和配置arp命令
- 关于Linux系统调用,内核函数【转】
- Linux命令 进程状态命令 ps
- linux主机名变为bogon
- Linux-非结构化数据同步-Lsyncd介绍
- 1.2Linux文件系统
- Linux基础之变量设定规则
- 笔记本安装-Linux