android、x windows、qt等眾多應用對於linux系統中鍵盤、滑鼠、觸控螢幕等輸入裝置的支援都通過、或越來越傾向於標準的input輸入子系統。
因為input子系統已經完成了字元驅動的檔案操作介面,所以編寫驅動的核心工作是完成input系統留出的介面,工作量不大。但如果你想更靈活的應用它,就需要好好的分析下input子系統了。
一、input輸入子系統框架
下圖是input輸入子系統框架,輸入子系統由輸入子系統核心層(
input core
),驅動層和事件處理層(
event handler
)三部份組成。乙個輸入事件,如滑鼠移動,鍵盤按鍵按下,
joystick
的移動等等通過
input driver -> input core -> event handler -> userspace
到達使用者空間傳給應用程式。
注意:keyboard.c不會在/dev/input下產生節點,而是作為ttyn終端(不包括串列埠終端)的輸入。
下圖展現了linux中輸入裝置驅動的分層
Linux裝置驅動之 input子系統
什麼是input input子系統處理輸入事務,任何輸入裝置的驅動程式都可以通過input輸入子系統提供的介面註冊到核心,利用子系統提供的功能來與使用者空間互動。輸入裝置一般包括鍵盤,滑鼠,觸控螢幕等,在核心中都是以輸入裝置出現的。下面分析input輸入子系統的結構,以及功能實現。linux中inp...
Linux驅動之input輸入子系統
input輸入子系統在實際專案中用的也比較多,按鍵,觸控螢幕,滑鼠,鍵盤等,用來實現核心層和應用層資料之間的傳遞,這裡得說明不只有input,還有copy to user等,利用input的好處是我們用自己上傳資料到應用程式,我們直接上報這個事件發生了,input自帶的機制會實現上傳的功能。還有很多...
Linux核心之字元裝置驅動
學習計畫 1.vfs 虛擬檔案系統 vfs的作用就是採用標準的unix系統呼叫讀寫位於不同物理介質上的不同檔案系統。vfs是乙個可 以讓open read write 等系統呼叫不用關心底層的儲存介質和檔案系統型別就可以工作的 粘合層。在古老的dos作業系統中,要訪問本地檔案系統之外的檔案系統需要使...