1. 程式人生 > >ubuntu linux 觸控板失靈的解決方案

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核心)

    搞了半天,最後發現,其實可以通過圖形介面的系統設定來恢復觸控板。點選系統設定,找到滑鼠和觸控板,然後開啟觸控板,下面還有觸控板的一些詳細的功能選項。這樣設定之後,觸控板就和以前一樣了。

    我想找到關於圖形介面的系統設定在系統中的配置檔案研究一下,然後可能就理解這方面的配置原理了,但是還沒有找到。