每当我学习一个新的东西得时候都是会 遇到一些错误,但是我会非常努力的去解决它,今天这个自启动应用程序花了我两个小时的时间才解决了。所以说遇到问题的时候要去思考、分析。下面我就来谈谈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脚本程序的时候,我们还没有配置触摸屏驱动程序,但是我们已经在使用这个触摸屏驱动程序了,所以这个触摸屏驱动的配置应该放在这个脚本之前去执行,所以这里问题得到了完美的解决。
这里送给朋友们几句话,遇到问题一定要自己多思考,自己想办法去解决。有些人就得说了好浪费时间,我在这里说一下,一个程序员的习惯很重要,如果你一心是想在网上找代码,你绝对成为不了高手,只有自己动手实践了才是真理,很多网友喜欢在群里面或者论坛上发一些跪求代码,求大神解答啊之类的话,很多网友连自己都没有定位到自己的问题所在,还找别人去给你解答,你认为这个可能吗?