~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/input/input.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/input/input.rst (Version linux-6.11.5) and /Documentation/input/input.rst (Version linux-3.10.108)


  1 .. include:: <isonum.txt>                         
  2                                                   
  3 ============                                      
  4 Introduction                                      
  5 ============                                      
  6                                                   
  7 :Copyright: |copy| 1999-2001 Vojtech Pavlik <vo    
  8                                                   
  9 Architecture                                      
 10 ============                                      
 11                                                   
 12 Input subsystem is a collection of drivers tha    
 13 all input devices under Linux. Most of the dri    
 14 drivers/input, although quite a few live in dr    
 15 drivers/platform.                                 
 16                                                   
 17 The core of the input subsystem is the input m    
 18 loaded before any other of the input modules -    
 19 communication between two groups of modules:      
 20                                                   
 21 Device drivers                                    
 22 --------------                                    
 23                                                   
 24 These modules talk to the hardware (for exampl    
 25 events (keystrokes, mouse movements) to the in    
 26                                                   
 27 Event handlers                                    
 28 --------------                                    
 29                                                   
 30 These modules get events from input core and p    
 31 via various interfaces - keystrokes to the ker    
 32 a simulated PS/2 interface to GPM and X, and s    
 33                                                   
 34 Simple Usage                                      
 35 ============                                      
 36                                                   
 37 For the most usual configuration, with one USB    
 38 you'll have to load the following modules (or     
 39 kernel)::                                         
 40                                                   
 41         input                                     
 42         mousedev                                  
 43         usbcore                                   
 44         uhci_hcd or ohci_hcd or ehci_hcd          
 45         usbhid                                    
 46         hid_generic                               
 47                                                   
 48 After this, the USB keyboard will work straigh    
 49 will be available as a character device on maj    
 50                                                   
 51         crw-r--r--   1 root     root      13,     
 52                                                   
 53 This device is usually created automatically b    
 54 to create it by hand are::                        
 55                                                   
 56         cd /dev                                   
 57         mkdir input                               
 58         mknod input/mice c 13 63                  
 59                                                   
 60 After that you have to point GPM (the textmode    
 61 XFree to this device to use it - GPM should be    
 62                                                   
 63         gpm -t ps2 -m /dev/input/mice             
 64                                                   
 65 And in X::                                        
 66                                                   
 67         Section "Pointer"                         
 68             Protocol    "ImPS/2"                  
 69             Device      "/dev/input/mice"         
 70             ZAxisMapping 4 5                      
 71         EndSection                                
 72                                                   
 73 When you do all of the above, you can use your    
 74                                                   
 75 Detailed Description                              
 76 ====================                              
 77                                                   
 78 Event handlers                                    
 79 --------------                                    
 80                                                   
 81 Event handlers distribute the events from the     
 82 in-kernel consumers, as needed.                   
 83                                                   
 84 evdev                                             
 85 ~~~~~                                             
 86                                                   
 87 ``evdev`` is the generic input event interface    
 88 generated in the kernel straight to the progra    
 89 event codes are the same on all architectures     
 90 independent.                                      
 91                                                   
 92 This is the preferred interface for userspace     
 93 input, and all clients are encouraged to use i    
 94                                                   
 95 See :ref:`event-interface` for notes on API.      
 96                                                   
 97 The devices are in /dev/input::                   
 98                                                   
 99         crw-r--r--   1 root     root      13,     
100         crw-r--r--   1 root     root      13,     
101         crw-r--r--   1 root     root      13,     
102         crw-r--r--   1 root     root      13,     
103         ...                                       
104                                                   
105 There are two ranges of minors: 64 through 95     
106 range. If there are more than 32 input devices    
107 evdev nodes are created with minors starting w    
108                                                   
109 keyboard                                          
110 ~~~~~~~~                                          
111                                                   
112 ``keyboard`` is in-kernel input handler and is    
113 consumes keyboard keystrokes and handles user     
114                                                   
115 mousedev                                          
116 ~~~~~~~~                                          
117                                                   
118 ``mousedev`` is a hack to make legacy programs    
119 work. It takes events from either mice or digi    
120 a PS/2-style (a la /dev/psaux) mouse device av    
121 userland.                                         
122                                                   
123 Mousedev devices in /dev/input (as shown above    
124                                                   
125         crw-r--r--   1 root     root      13,     
126         crw-r--r--   1 root     root      13,     
127         crw-r--r--   1 root     root      13,     
128         crw-r--r--   1 root     root      13,     
129         ...                                       
130         ...                                       
131         crw-r--r--   1 root     root      13,     
132         crw-r--r--   1 root     root      13,     
133                                                   
134 Each ``mouse`` device is assigned to a single     
135 the last one - ``mice``. This single character    
136 mice and digitizers, and even if none are conn    
137 present.  This is useful for hotplugging USB m    
138 that do not handle hotplug can open the device    
139 present.                                          
140                                                   
141 CONFIG_INPUT_MOUSEDEV_SCREEN_[XY] in the kerne    
142 the size of your screen (in pixels) in XFree86    
143 want to use your digitizer in X, because its m    
144 via a virtual PS/2 mouse and thus needs to be     
145 accordingly. These values won't be used if you    
146                                                   
147 Mousedev will generate either PS/2, ImPS/2 (Mi    
148 ExplorerPS/2 (IntelliMouse Explorer) protocols    
149 program reading the data wishes. You can set G    
150 these. You'll need ImPS/2 if you want to make     
151 mouse and ExplorerPS/2 if you want to use extr    
152                                                   
153 joydev                                            
154 ~~~~~~                                            
155                                                   
156 ``joydev`` implements v0.x and v1.x Linux joys    
157 :ref:`joystick-api` for details.                  
158                                                   
159 As soon as any joystick is connected, it can b    
160                                                   
161         crw-r--r--   1 root     root      13,     
162         crw-r--r--   1 root     root      13,     
163         crw-r--r--   1 root     root      13,     
164         crw-r--r--   1 root     root      13,     
165         ...                                       
166                                                   
167 And so on up to js31 in legacy range, and addi    
168 above 256 if there are more joystick devices.     
169                                                   
170 Device drivers                                    
171 --------------                                    
172                                                   
173 Device drivers are the modules that generate e    
174                                                   
175 hid-generic                                       
176 ~~~~~~~~~~~                                       
177                                                   
178 ``hid-generic`` is one of the largest and most    
179 whole suite. It handles all HID devices, and b    
180 wide variety of them, and because the USB HID     
181 simple, it needs to be this big.                  
182                                                   
183 Currently, it handles USB mice, joysticks, gam    
184 keyboards, trackballs and digitizers.             
185                                                   
186 However, USB uses HID also for monitor control    
187 LCDs and many other purposes.                     
188                                                   
189 The monitor and speaker controls should be eas    
190 interface, but for the UPSs and LCDs it doesn'    
191 the hiddev interface was designed. See Documen    
192 for more information about it.                    
193                                                   
194 The usage of the usbhid module is very simple,    
195 detects everything automatically and when a HI    
196 detects it appropriately.                         
197                                                   
198 However, because the devices vary wildly, you     
199 device that doesn't work well. In that case #d    
200 of hid-core.c and send me the syslog traces.      
201                                                   
202 usbmouse                                          
203 ~~~~~~~~                                          
204                                                   
205 For embedded systems, for mice with broken HID    
206 other use when the big usbhid wouldn't be a go    
207 usbmouse driver. It handles USB mice only. It     
208 protocol. This also means the mice must suppor    
209 all do. If you don't have any strong reason to    
210 instead.                                          
211                                                   
212 usbkbd                                            
213 ~~~~~~                                            
214                                                   
215 Much like usbmouse, this module talks to keybo    
216 HIDBP protocol. It's smaller, but doesn't supp    
217 Use usbhid instead if there isn't any special     
218                                                   
219 psmouse                                           
220 ~~~~~~~                                           
221                                                   
222 This is driver for all flavors of pointing dev    
223 protocol, including Synaptics and ALPS touchpa    
224 Explorer devices, Logitech PS/2 mice and so on    
225                                                   
226 atkbd                                             
227 ~~~~~                                             
228                                                   
229 This is driver for PS/2 (AT) keyboards.           
230                                                   
231 iforce                                            
232 ~~~~~~                                            
233                                                   
234 A driver for I-Force joysticks and wheels, bot    
235 It includes Force Feedback support now, even t    
236 Corp. considers the protocol a trade secret an    
237 about it.                                         
238                                                   
239 Verifying if it works                             
240 =====================                             
241                                                   
242 Typing a couple keys on the keyboard should be    
243 a keyboard works and is correctly connected to    
244 driver.                                           
245                                                   
246 Doing a ``cat /dev/input/mouse0`` (c, 13, 32)     
247 is also emulated; characters should appear if     
248                                                   
249 You can test the joystick emulation with the `    
250 available in the joystick package (see :ref:`j    
251                                                   
252 You can test the event devices with the ``evte    
253                                                   
254 .. _event-interface:                              
255                                                   
256 Event interface                                   
257 ===============                                   
258                                                   
259 You can use blocking and nonblocking reads, an    
260 /dev/input/eventX devices, and you'll always g    
261 events on a read. Their layout is::               
262                                                   
263     struct input_event {                          
264             struct timeval time;                  
265             unsigned short type;                  
266             unsigned short code;                  
267             unsigned int value;                   
268     };                                            
269                                                   
270 ``time`` is the timestamp, it returns the time    
271 Type is for example EV_REL for relative moveme    
272 release. More types are defined in include/uap    
273                                                   
274 ``code`` is event code, for example REL_X or K    
275 list is in include/uapi/linux/input-event-code    
276                                                   
277 ``value`` is the value the event carries. Eith    
278 EV_REL, absolute new value for EV_ABS (joystic    
279 release, 1 for keypress and 2 for autorepeat.     
280                                                   
281 See :ref:`input-event-codes` for more informat    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php