日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 驱动开发 六十:《input.txt》翻译

發(fā)布時(shí)間:2024/3/26 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 驱动开发 六十:《input.txt》翻译 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文檔路徑:linux-imx-4.1.15\Documentation\input\input.txt。

一、介紹

這是一個(gè)驅(qū)動(dòng)進(jìn)程集合,旨在支持 Linux 下的所有輸入設(shè)備。雖然它目前僅用于 USB 輸入設(shè)備,但未來的使用(例如 2.5 / 2.6)預(yù)計(jì)將擴(kuò)展到取代大多數(shù)現(xiàn)有的輸入系統(tǒng),這就是為什幺它位于 drivers/input/ 而不是 drivers/usb/ 中的原因。

輸入驅(qū)動(dòng)器的中心是輸入模塊,它必須在任何其他輸入模塊之前加載 - 它用作兩組模塊之間的通信方式:

1、設(shè)備驅(qū)動(dòng)進(jìn)程

這些模塊與硬件通信(例如通過 USB),并向輸入模塊提供事件(擊鍵、鼠標(biāo)移動(dòng))。

2、事件處理進(jìn)程

這些模塊從輸入中獲取事件,并通過各種接口將它們傳遞到需要的地方 - 擊鍵到內(nèi)核,鼠標(biāo)通過模擬的 PS/2 接口移動(dòng)到 GPM 和 X 等等。

二、簡(jiǎn)單用法

對(duì)于最常見的配置,使用一個(gè) USB 鼠標(biāo)和一個(gè) USB 鍵盤,您必須加載以下模塊(或?qū)⑺鼈儍?nèi)置到內(nèi)核中):

  • input
  • mousedev
  • keybdev
  • usbcore
  • uhci_hcd or ohci_hcd or ehci_hcd
  • usbhid

在此之后,USB 鍵盤將立即工作,USB鼠標(biāo)將作為主設(shè)備號(hào) 13,次設(shè)備號(hào) 63 上的字符設(shè)備提供:

crw-r--r-- 1 root root 13, 63 Mar 28 22:45 mice

必須創(chuàng)建此設(shè)備。

手動(dòng)創(chuàng)建它的命令是:

cd /dev mkdir input mknod input/mice c 13 63

之后,您必須將 GPM(文本模式鼠標(biāo)剪切/粘貼工具)和 XFree 指向此設(shè)備才能使用它 GPMv應(yīng)該像這樣調(diào)用:

gpm -t ps2 -m /dev/input/mice

在 X 中:

Section "Pointer"Protocol "ImPS/2"Device "/dev/input/mice"ZAxisMapping 4 5 EndSection

完成上述所有操作后,您可以使用 USB 鼠標(biāo)和鍵盤。

三、詳細(xì)說明

1、設(shè)備驅(qū)動(dòng)進(jìn)程

設(shè)備驅(qū)動(dòng)進(jìn)程是生成事件的模塊。但是,如果不處理這些事件,這些事件就沒有用處,因此您還需要使用 3.2 節(jié)中的一些模塊。

1、usbhid

usbhid 是整個(gè)套件中最大,最復(fù)雜的驅(qū)動(dòng)進(jìn)程。它處理所有 HID 設(shè)備,并且由于它們種類繁多,并且由于 USB HID 規(guī)范并不簡(jiǎn)單,因此它需要如此之大。

目前,它處理 USB 鼠標(biāo),操縱桿,手柄,方向盤鍵盤,軌跡球和數(shù)字記錄儀。

然而,USB 也將 HID 用于顯示器控制、揚(yáng)聲器控制、ups、lcd 和許多其他用途。

顯示器和揚(yáng)聲器控件應(yīng)該很容易添加到 hid/input 界面中,但對(duì)于 UPS 和 LCD來說,這沒有多大意義。為此,設(shè)計(jì)了隱藏式界面。有關(guān)它的詳細(xì)信息,請(qǐng)參閱 Documentation/hid/hiddev.txt。

usbhid 模塊的使用非常簡(jiǎn)單,它不需要參數(shù),自動(dòng)檢測(cè)所有內(nèi)容,當(dāng)插入 HID 設(shè)備時(shí),它會(huì)適當(dāng)?shù)貦z測(cè)到它。

然而,由于設(shè)備的差異很大,您可能碰巧有一個(gè)設(shè)備不能很好地工作。在這種情況下,\#define DEBUG 在 hide -core.c 的開始,并發(fā)送給我 syslog 跟蹤。

2、usbmouse

對(duì)于嵌入式系統(tǒng),對(duì)于具有損壞的 HID描述符的小鼠以及當(dāng) usbhid不是一個(gè)好的選擇時(shí)的任何其他用途,都有 usbmouse 驅(qū)動(dòng)進(jìn)程。它僅處理 USB 鼠標(biāo)。它使用更簡(jiǎn)單的 HIDBP 協(xié)議。這也意味著鼠標(biāo)必須支持這種更簡(jiǎn)單的協(xié)議。并非所有人都這樣做。如果您沒有任何強(qiáng)烈的理由使用此模塊,請(qǐng)改用 usbhid。

3、usbkbd

與 usbmouse 非常相似,該模塊使用簡(jiǎn)化的 HIDBP 協(xié)議與鍵盤通信。它較小,但不支持任何額外的特殊鍵。如果沒有任何特殊原因使用它,請(qǐng)改用 usbhid。

4、wacom

這是 Wacom Graphire 和 Intuos 平板電腦的驅(qū)動(dòng)程序。Wacom 的 PenPartner 不是,那個(gè)是由 HID 驅(qū)動(dòng)程序處理的。盡管 Intuos 和 Graphire 平板電腦聲稱它們也是 HID 平板電腦,但它們不是,因此需要這個(gè)特定的驅(qū)動(dòng)程序。

5、iforce

I-Force 操縱桿和輪子的驅(qū)動(dòng)程序,通過 USB 和 RS232。它現(xiàn)在包含了對(duì) ForceFeedback 的支持,盡管 Immersion Corp 認(rèn)為該協(xié)議是商業(yè)機(jī)密,不會(huì)透露任何信息。

2、事件處理進(jìn)程

事件處理進(jìn)程根據(jù)需要將事件從設(shè)備分發(fā)到用戶空間和內(nèi)核。

1、keybdev

keybdev 目前是一個(gè)相當(dāng)難看的 hack,它將輸入事件轉(zhuǎn)換為特定于體系結(jié)構(gòu)的鍵盤原始模式(x86 上的 xlatated AT Set2),并將它們傳遞給 keyboardc 模塊的句柄掃描碼函數(shù)。這在 keybdev 可以生成 rawmode 的所有體系結(jié)構(gòu)上都能很好地工作,其他體系結(jié)構(gòu)也可以添加到其中。

正確的方法是直接將事件傳遞給 keyboardc,最好是 keyboardc 本身是一個(gè)事件處理程序。這是在輸入補(bǔ)丁中完成的,可以在下面提到的網(wǎng)頁上找到。

2、mousedev

Mousedev 也是一個(gè)讓使用鼠標(biāo)輸入的程序工作的 hack。它從鼠標(biāo)或 digitizerstablet 中獲取事件,并將 PS/2-style (/dev/psaux)鼠標(biāo)設(shè)備提供給用戶域。理想情況下,程序可以使用更合理的接口,例如 evdev。

/dev/input 中的鼠標(biāo)開發(fā)設(shè)備(如上所示)是:

crw-r--r-- 1 root root 13, 32 Mar 28 22:45 mouse0 crw-r--r-- 1 root root 13, 33 Mar 29 00:41 mouse1 crw-r--r-- 1 root root 13, 34 Mar 29 00:41 mouse2 crw-r--r-- 1 root root 13, 35 Apr 1 10:50 mouse3 ... ... crw-r--r-- 1 root root 13, 62 Apr 1 10:50 mouse30 crw-r--r-- 1 root root 13, 63 Apr 1 10:50 mice

每個(gè) “mouse”設(shè)備都被分配到一個(gè)單獨(dú)的鼠標(biāo)或數(shù)字化設(shè)備上,除了最后一個(gè) “mice” 。這個(gè)單一字符設(shè)備由所有鼠標(biāo)和數(shù)字化設(shè)備共享,即使沒有連接,設(shè)備也存在。這對(duì)于熱插拔 USB 鼠標(biāo)非常有用,這樣即使在沒有鼠標(biāo)的情況下,程序也可以打開設(shè)備。

內(nèi)核配置中的 MOUSEDEV SCREEN [XY] 是 XFree86 中屏幕的大小(像素)。如果你想在 X 中使用數(shù)字化器,這是必要的,因?yàn)樗囊苿?dòng)是通過虛擬 PS/2 鼠標(biāo)發(fā)送到X,因此需要相應(yīng)地縮放。如果只使用鼠標(biāo),則不會(huì)使用這些值。

鼠標(biāo)指令將生成 PS/2、ImPS/2(微軟智能鼠標(biāo))或資源管理器 PS/2(智能鼠標(biāo)資源管理器)協(xié)議,具體取決于讀取數(shù)據(jù)的進(jìn)程希望的內(nèi)容。您可以將 GPM 和 X 設(shè)置為其中任何一個(gè)。如果要使用 USB 鼠標(biāo)上的滾輪,則需要 ImPS/2,如果要使用額外的(最多 5 個(gè))按鈕,則需要 ExplorerPS/2。

3、joydev

Joydev 實(shí)現(xiàn)了 v0.x 和 v1.x Linux 操縱桿 API,這與早期版本中的 drivers/char/joystick/joystick.c 非常相似。有關(guān)詳細(xì)信息,請(qǐng)參閱文檔子目錄中的 joystick-api.txt。 只要連接了任何操縱桿,就可以在 /dev/input 中訪問它:

crw-r--r-- 1 root root 13, 0 Apr 1 10:50 js0 crw-r--r-- 1 root root 13, 1 Apr 1 10:50 js1 crw-r--r-- 1 root root 13, 2 Apr 1 10:50 js2 crw-r--r-- 1 root root 13, 3 Apr 1 10:50 js3 ...

以此類推,直到 js31。

4、evdev

evdev 是通用輸入事件接口。它將內(nèi)核中生成的事件直接傳遞給進(jìn)程,并帶有時(shí)間戳。API 仍在不斷發(fā)展,但現(xiàn)在應(yīng)該可以使用。它在第 5 節(jié)中進(jìn)行了描述。

這應(yīng)該是 GPM 和 X 獲取鍵盤和鼠標(biāo)事件的方式。它允許在 X 中使用多頭,而無需任何特定的多頭內(nèi)核支持。事件代碼在所有體系結(jié)構(gòu)上都是相同的,并且與硬件無關(guān)。

設(shè)備位于 /dev/input 中:

crw-r--r-- 1 root root 13, 64 Apr 1 10:49 event0 crw-r--r-- 1 root root 13, 65 Apr 1 10:50 event1 crw-r--r-- 1 root root 13, 66 Apr 1 10:50 event2 crw-r--r-- 1 root root 13, 67 Apr 1 10:50 event3 ...

以此類推,直到事件 31。

4、驗(yàn)證它是否有效

在鍵盤上輸入幾個(gè)鍵應(yīng)該足以檢查 USB 鍵盤是否工作,并正確連接到內(nèi)核鍵盤驅(qū)動(dòng)程序。

執(zhí)行 "cat /dev/input/mouse0" (c, 13, 32) 將驗(yàn)證鼠標(biāo)是否也被模擬;如果你移動(dòng)它,字符應(yīng)該出現(xiàn)。

您可以使用 “jstest” 實(shí)用程序測(cè)試操縱桿模擬,該實(shí)用程序可在操縱桿包中獲得(參見 Documentation/input/joystick.txt)。

您可以使用 LinuxConsole 項(xiàng)目 CVS 存檔中提供的 “evtest” 實(shí)用進(jìn)程測(cè)試事件設(shè)備(請(qǐng)參閱下面的 URL)。

5、事件接口

如果你想添加事件設(shè)備支持到任何應(yīng)用程序(X, gpm, svgalib…) vojtech@ucw.cz將很高興為您提供任何我能提供的幫助。這里是對(duì)事物當(dāng)前狀態(tài)的描述,它將被擴(kuò)展,但不會(huì)隨著時(shí)間的推移而發(fā)生不兼容的變化:

您可以使用阻止和非阻止讀取,也可以在 /dev/input/eventX 設(shè)備上選擇,并且讀取時(shí)將始終獲得大量輸入事件。它們的布局是:

struct input_event {struct timeval time;unsigned short type;unsigned short code;unsigned int value; };

“time” 是時(shí)間戳,它返回事件發(fā)生的時(shí)間。例如,類型是相對(duì)時(shí)刻的EV_REL,EV_KEY是按鍵或釋放。在包含 /linux/input.h 中定義了更多類型。

“code” 是事件代碼,例如 REL_X 或 KEY_BACKSPACE,完整列表同樣在包含 /linux/input.h 中。

“value” 是事件承載的值。EV REL 的相對(duì)變化,EV ABS (操縱桿…)的絕對(duì)新值,或釋放的 EV KEY 為 0,按鍵為 1,自動(dòng)重復(fù)為 2。

總結(jié)

以上是生活随笔為你收集整理的Linux 驱动开发 六十:《input.txt》翻译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 卡一卡二在线视频 | 噜噜色av | 日韩综合精品 | 奇米av在线 | 麻豆免费视频网站 | 亚洲成人高清在线观看 | 91久久久久一区二区 | 开心激情深爱 | 田中瞳av| 波多野结衣一区二区三区在线 | 日韩欧美国产一区二区 | 国产成人麻豆免费观看 | 伊人久久青草 | 亚洲人成网址 | 国产又爽又黄的激情精品视频 | 欧美另类自拍 | 成人乱人乱一区二区三区一级视频 | 精品日韩一区二区三区四区 | 热久久精| 伊人avav| 一区二区三区视频免费视 | 国产精品自拍视频一区 | 69国产| 亚洲av激情无码专区在线播放 | 国产aⅴ精品一区二区三区久久 | 91大尺度 | 国产码视频 | 婷婷久久丁香 | 免费av黄色| 中文字幕欧美色图 | 欧美激情视频一区二区 | 亚洲综合免费观看高清完整版在线 | 黄色操人视频 | 久久国产经典视频 | 国产精品久久久久99 | 中国女人内谢69xxxx免费视频 | 中文字幕在线观看不卡 | 天天操好逼 | 欧美成人一区二区三区四区 | 成人爽a毛片一区二区 | 超碰1997| 亚洲欧美日本另类 | 人人妻人人澡人人爽人人dvd | 午夜剧场免费在线观看 | 99re6在线观看 | 超黄网站在线观看 | 亚洲色图综合 | 黄色在线资源 | 操综合 | 精品视频在线免费观看 | 亚洲综合影院 | 六月激情综合 | 在厨房拨开内裤进入毛片 | 在线观看黄色的网站 | av视屏在线| 91视频88av| 国产学生美女无遮拦高潮视频 | 欧美性精品 | 在线精品小视频 | 9i精品福利一区二区三区 | 日本精品在线观看视频 | 青青草免费在线 | www黄色片| 不卡的av| 久久午夜剧场 | 国产视频不卡一区 | 国产一区999| 五月婷婷欧美 | 中文字幕一区日韩 | 日本aa视频 | 影音先锋中文字幕第一页 | 狠狠躁夜夜躁av无码中文幕 | 日韩成人av免费在线观看 | 秋霞av一区二区三区 | 中文字幕被公侵犯的漂亮人妻 | 中文字幕+乱码+中文字幕一区 | 少妇裸体挤奶汁奶水视频 | 黄色片免费视频 | 91一区二区三区 | 伊人久久青青草 | 国产美女特级嫩嫩嫩bbb | 欧美国产成人在线 | 久久亚洲中文字幕无码 | 国产一区精品在线 | 国产无套粉嫩白浆内谢 | 欧美黑人精品一区二区 | 丰满少妇一区二区 | 人人看人人艹 | 成人快色| 精品一区二区久久久 | 欧美国产精品一区 | 亚洲永久免费视频 | 欧美aaaa视频| 亚洲综合欧美综合 | 高清久久久 | yy1111111| 中文字幕在线观看免费 | 一个人在线观看www软件 | 日韩影院一区二区 |