ubuntu linux 触控板失灵的解决方案

    这几天研究内核的模块机制,接触到了一些关于模块的操作命令,比如lsmod命令可以列出内核中已经安装的模块,insmod命令可以安装一个指定的模块,rmmod可以删除一个指定的模块。

    也是处于好奇,就试了试这几个命令,我先试了试lsmod命令,罗列出了内核当前的模块,从中看到一个名字叫psmouse的模块,而且其使用计数为0,所以我猜测如果卸载这个模块应该没有什么问题,不行就重新安装这个模块或者重启呗。

    于是,进入超级用户模式,rmmod psmouse,回车,然后,lsmod,发现没有这个模块的信息了,然后,insmod psmouse,就出错了,说找不到psmouse这个文件。。。

后来,我发现觸控板不能使用了。很明显,psmouse是觸控板的驱动程序模块,卸载了,觸控板就i不能使用了。

    于是我在网上找解决方法,原理肯定是重新安装psmouse模块。找到一个:

    modprobe -r psmouse

    modprobe psmouse proto=imps

    执行这两条命令之后,觸控板就可以使用了,但是重启之后无效。于是我将这两条命令写入.bashrc中,每当登陆的时候就会执行安装psmouse模块,但是,竟然也不好使。现在想想,应该是权限问题,因为命令必须在超级用户的权限下执行,而我是将其写入普通用户的.bashrc文件中的,执行时没有相应的权限,如果以超级用户的身份写入开机执行的脚本中应该可以。

    但是,上面的命令有一个缺点,就是把觸控板当作了一个外设,所以双指滑动等效果就没有了,命令中的proto=imps,应该是protocol=imps/2。指明使用的是imps/2协议。

    这里还要说明一下insmod命令和modprobe命令的区别。前者要求给出要安装模块的具体路径名,而不能仅仅是模块名,而且必须是xxx.o或者xxx.ko形式的文件,insmod命令不具有智能性,即如果其所依赖的模块如果不存在于系统中,则安装失败,相比之下,modprobe命令就比较智能了,其所需要安装的模块参数只需给出模块名就可以了,而且会在内部自动安装其所依赖的模块。还有一点需要指明的是,所需要安装的模块的二进制文件所在目录是/lib/modules/目录下的相应的内核模块版本目录下,比如鼠标驱动模块在/lib/modules/3.13.0-24-generic/kernel/drivers/input目录下。

    本质上,modprobe命令只是检查模块间的依赖关系,每个模块的实际链接工作是通过创建一个进程执行insmod命令来实现的。(深入理解linux内核)

    搞了半天,最后发现,其实可以通过图形界面的系统设置来恢复觸控板。点击系统设置,找到鼠标和觸控板,然后开启觸控板,下面还有觸控板的一些详细的功能选项。这样设置之后,觸控板就和以前一样了。

    我想找到关于图形界面的系统设置在系统中的配置文件研究一下,然后可能就理解这方面的配置原理了,但是还没有找到。

你可能感兴趣的:(Linux学习)