Jeff Brown | 590a9d6 | 2011-06-30 12:55:34 -0700 | [diff] [blame^] | 1 | <!-- |
| 2 | Copyright 2011 The Android Open Source Project |
| 3 | |
| 4 | Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | you may not use this file except in compliance with the License. |
| 6 | You may obtain a copy of the License at |
| 7 | |
| 8 | http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | |
| 10 | Unless required by applicable law or agreed to in writing, software |
| 11 | distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | See the License for the specific language governing permissions and |
| 14 | limitations under the License. |
| 15 | --> |
| 16 | |
| 17 | # Getevent # |
| 18 | |
| 19 | The `getevent` tool runs on the device and provides information about input |
| 20 | devices and a live dump of kernel input events. |
| 21 | |
| 22 | It is very useful tool for ensuring that device drivers are reporing the |
| 23 | expected set of capabilities for each input device and are generating the |
| 24 | desired stream of input events. |
| 25 | |
| 26 | ## Usage ## |
| 27 | |
| 28 | ### Showing Device Capabilities ### |
| 29 | |
| 30 | It is often quite useful to see all of the keys and axes that a device reports. |
| 31 | Use the `-p` option to do that. |
| 32 | |
| 33 | Here is a list of all of the Linux key codes and other events that a |
| 34 | particular keyboard says it supports. |
| 35 | |
| 36 | $ adb shell su -- getevent -p |
| 37 | |
| 38 | name: "Motorola Bluetooth Wireless Keyboard" |
| 39 | events: |
| 40 | KEY (0001): 0001 0002 0003 0004 0005 0006 0007 0008 |
| 41 | 0009 000a 000b 000c 000d 000e 000f 0010 |
| 42 | 0011 0012 0013 0014 0015 0016 0017 0018 |
| 43 | 0019 001a 001b 001c 001d 001e 001f 0020 |
| 44 | 0021 0022 0023 0024 0025 0026 0027 0028 |
| 45 | 0029 002a 002b 002c 002d 002e 002f 0030 |
| 46 | 0031 0032 0033 0034 0035 0036 0037 0038 |
| 47 | 0039 003a 003b 003c 003d 003e 003f 0040 |
| 48 | 0041 0042 0043 0044 0045 0046 0047 0048 |
| 49 | 0049 004a 004b 004c 004d 004e 004f 0050 |
| 50 | 0051 0052 0053 0055 0056 0057 0058 0059 |
| 51 | 005a 005b 005c 005d 005e 005f 0060 0061 |
| 52 | 0062 0063 0064 0066 0067 0068 0069 006a |
| 53 | 006b 006c 006d 006e 006f 0071 0072 0073 |
| 54 | 0074 0075 0077 0079 007a 007b 007c 007d |
| 55 | 007e 007f 0080 0081 0082 0083 0084 0085 |
| 56 | 0086 0087 0088 0089 008a 008c 008e 0090 |
| 57 | 0096 0098 009b 009c 009e 009f 00a1 00a3 |
| 58 | 00a4 00a5 00a6 00ab 00ac 00ad 00b0 00b1 |
| 59 | 00b2 00b3 00b4 00b7 00b8 00b9 00ba 00bb |
| 60 | 00bc 00bd 00be 00bf 00c0 00c1 00c2 00d9 |
| 61 | 00f0 0110 0111 0112 01ba |
| 62 | REL (0002): 0000 0001 0008 |
| 63 | ABS (0003): 0028 : value 223, min 0, max 255, fuzz 0, flat 0, resolution 0 |
| 64 | 0029 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 |
| 65 | 002a : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 |
| 66 | 002b : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 |
| 67 | MSC (0004): 0004 |
| 68 | LED (0011): 0000 0001 0002 0003 0004 |
| 69 | input props: |
| 70 | <none> |
| 71 | |
| 72 | The `-i` option shows even more information than `-p`, including HID mapping tables |
| 73 | and debugging information. |
| 74 | |
| 75 | The `-l` option uses textual labels for all event codes, which is handy. |
| 76 | |
| 77 | $ adb shell su -- getevent -lp /dev/input/event1 |
| 78 | |
| 79 | name: "Melfas MMSxxx Touchscreen" |
| 80 | events: |
| 81 | ABS (0003): ABS_MT_SLOT : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0 |
| 82 | ABS_MT_TOUCH_MAJOR : value 0, min 0, max 30, fuzz 0, flat 0, resolution 0 |
| 83 | ABS_MT_POSITION_X : value 0, min 0, max 720, fuzz 0, flat 0, resolution 0 |
| 84 | ABS_MT_POSITION_Y : value 0, min 0, max 1280, fuzz 0, flat 0, resolution 0 |
| 85 | ABS_MT_TRACKING_ID : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0 |
| 86 | ABS_MT_PRESSURE : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 |
| 87 | input props: |
| 88 | INPUT_PROP_DIRECT |
| 89 | |
| 90 | ### Showing Live Events ### |
| 91 | |
| 92 | This is what a two finger multitouch gesture looks like for a touch screen |
| 93 | that is using the Linux multitouch input protocol "B". We use the `-l` option |
| 94 | to show textual labels and `-t` to show timestamps. |
| 95 | |
| 96 | $ adb shell su -- getevent -lt /dev/input/event1 |
| 97 | |
| 98 | [ 78826.389007] EV_ABS ABS_MT_TRACKING_ID 0000001f |
| 99 | [ 78826.389038] EV_ABS ABS_MT_PRESSURE 000000ab |
| 100 | [ 78826.389038] EV_ABS ABS_MT_POSITION_X 000000ab |
| 101 | [ 78826.389068] EV_ABS ABS_MT_POSITION_Y 0000025b |
| 102 | [ 78826.389068] EV_ABS ABS_MT_SLOT 00000001 |
| 103 | [ 78826.389068] EV_ABS ABS_MT_TRACKING_ID 00000020 |
| 104 | [ 78826.389068] EV_ABS ABS_MT_PRESSURE 000000b9 |
| 105 | [ 78826.389099] EV_ABS ABS_MT_POSITION_X 0000019e |
| 106 | [ 78826.389099] EV_ABS ABS_MT_POSITION_Y 00000361 |
| 107 | [ 78826.389099] EV_SYN SYN_REPORT 00000000 |
| 108 | [ 78826.468688] EV_ABS ABS_MT_SLOT 00000000 |
| 109 | [ 78826.468688] EV_ABS ABS_MT_TRACKING_ID ffffffff |
| 110 | [ 78826.468719] EV_ABS ABS_MT_SLOT 00000001 |
| 111 | [ 78826.468719] EV_ABS ABS_MT_TRACKING_ID ffffffff |
| 112 | [ 78826.468719] EV_SYN SYN_REPORT 00000000 |