Rockie's Android Porting Guide(3)——Add correct keymap to your system
2010-04-19 10:18
495 查看
Rockie's Android Porting Guide(3)——Add correct keymap to your system Rockie Cheng We already have a keyboard dirver in Linux kernel. Next, let us notice Android that we have a keyboard. /* gpio buttons from linux*/ static struct gpio_keys_button gpio_buttons[] = { { .gpio = S3C64XX_GPN(0), .code = 116, .desc = "ENDCALL", .active_low = 1, .wakeup = 0, }, { .gpio = S3C64XX_GPN(1), .code = 139, .desc = "MENU", .active_low = 1, .wakeup = 0, }, { .gpio = S3C64XX_GPN(2), .code = 99, .desc = "ROTATE", .active_low = 1, .wakeup = 0, }, { .gpio = S3C64XX_GPN(3), .code = 102, .desc = "HOME", .active_low = 1, .wakeup = 0, }, { .gpio = S3C64XX_GPN(4), .code = 42, .desc = "BACK", .active_low = 1, .wakeup = 0, }, { .gpio = S3C64XX_GPN(5), .code = 158, .desc = "BACK", .active_low = 1, .wakeup = 0, } }; (1)Let me see logcat information. I/EventHub( 58): New device: path=/dev/input/event1 name=S3C TouchScreen id=0x10000 (of 0x1) index=1 fd=45 classes=0x4 E/EventHub( 58): could not get driver version for /dev/input/mice, Not a typewriter I/EventHub( 58): New keyboard: publicID=65537 device->id=0x10001 devname='gpio-keys' propName='hw.keyboards.65537.devname' keylayout='/system/usr/keylayout/qwerty.kl' <<<<<<<<Obviously this is not wht we want I/EventHub( 58): New device: path=/dev/input/event0 name=gpio-keys id=0x10001 (of 0x2) index=2 fd=47 classes=0x1 E/EventHub( 58): could not get driver version for /dev/input/mouse0, Not a typewriter I/KeyInputQueue( 58): Device added: id=0x0, name=gpio-keys, classes=1 I/KeyInputQueue( 58): Device added: id=0x10000, name=S3C TouchScreen, classes=4 I/KeyInputQueue( 58): X: min=0 max=480 flat=0 fuzz=0 I/KeyInputQueue( 58): Y: min=0 max=272 flat=0 fuzz=0 I/KeyInputQueue( 58): Pressure: min=0 max=1 flat=0 fuzz=0 I/KeyInputQueue( 58): Size: unknown values I/KeyInputQueue( 58): No virtual keys found (2)make a file build/target/board/idea6410/gpio-keys.kl key 158 BACK WAKE_DROPPED key 139 MENU WAKE_DROPPED key 102 HOME WAKE key 116 ENDCALL WAKE_DROPPED key 99 ROTATOR key 42 POWER WAKE (3)make another file build/target/board/idea6410/gpio-keys.kcm First,I just copy it from tutule2.kcm,but it does not work. So I find this form net,just a little change. It seems like 9 number keyboard more than qwerty. [type=QWERTY] # keycode display number base caps fn caps_fn A 'A' '2' 'a' 'A' '#' 0x00 B 'B' '2' 'b' 'B' '<' 0x00 C 'C' '2' 'c' 'C' '9' 0x00E7 D 'D' '3' 'd' 'D' '5' 0x00 E 'E' '3' 'e' 'E' '2' 0x0301 F 'F' '3' 'f' 'F' '6' 0x00A5 G 'G' '4' 'g' 'G' '-' '_' H 'H' '4' 'h' 'H' '[' '{' I 'I' '4' 'i' 'I' '$' 0x0302 J 'J' '5' 'j' 'J' ']' '}' K 'K' '5' 'k' 'K' '"' '~' L 'L' '5' 'l' 'L' ''' '`' M 'M' '6' 'm' 'M' '!' 0x00 N 'N' '6' 'n' 'N' '>' 0x0303 O 'O' '6' 'o' 'O' '(' 0x00 P 'P' '7' 'p' 'P' ')' 0x00 Q 'Q' '7' 'q' 'Q' '*' 0x0300 R 'R' '7' 'r' 'R' '3' 0x20AC S 'S' '7' 's' 'S' '4' 0x00DF T 'T' '8' 't' 'T' '+' 0x00A3 U 'U' '8' 'u' 'U' '&' 0x0308 V 'V' '8' 'v' 'V' '=' '^' W 'W' '9' 'w' 'W' '1' 0x00 X 'X' '9' 'x' 'X' '8' 0xEF00 Y 'Y' '9' 'y' 'Y' '%' 0x00A1 Z 'Z' '9' 'z' 'Z' '7' 0x00 # on pc keyboards COMMA ',' ',' ',' ';' ';' '|' PERIOD '.' '.' '.' ':' ':' 0x2026 AT '@' '0' '@' '0' '0' 0x2022 SLASH '/' '/' '/' '?' '?' '/' SPACE 0x20 0x20 0x20 0x20 0xEF01 0xEF01 ENTER 0xa 0xa 0xa 0xa 0xa 0xa TAB 0x9 0x9 0x9 0x9 0x9 0x9 0 '0' '0' '0' ')' ')' ')' 1 '1' '1' '1' '!' '!' '!' 2 '2' '2' '2' '@' '@' '@' 3 '3' '3' '3' '#' '#' '#' 4 '4' '4' '4' '$' '$' '$' 5 '5' '5' '5' '%' '%' '%' 6 '6' '6' '6' '^' '^' '^' 7 '7' '7' '7' '&' '&' '&' 8 '8' '8' '8' '*' '*' '*' 9 '9' '9' '9' '(' '(' '(' GR***E '`' '`' '`' '~' '`' '~' MINUS '-' '-' '-' '_' '-' '_' EQUALS '=' '=' '=' '+' '=' '+' LEFT_BRACKET '[' '[' '[' '{' '[' '{' RIGHT_BRACKET ']' ']' ']' '}' ']' '}' BACKSLASH '/' '/' '/' '|' '/' '|' SEMICOLON ';' ';' ';' ':' ';' ':' APOSTROPHE ''' ''' ''' '"' ''' '"' STAR '*' '*' '*' '*' '*' '*' POUND '#' '#' '#' '#' '#' '#' PLUS '+' '+' '+' '+' '+' '+' (4)add these to AndroidBoard.mk file := $(TARGET_OUT_KEYLAYOUT)/gpio-keys.kl ALL_PREBUILT += $(file) $(file) : $(LOCAL_PATH)/gpio-keys.kl | $(ACP) $(transform-prebuilt-to-target) include $(CLEAR_VARS) LOCAL_SRC_FILES := gpio-keys.kcm include $(BUILD_KEY_CHAR_MAP) (5)add these to system.prop android.keylayout.gpio-keys = /system/usr/keylayout/gpio-keys.kl android.keychar.gpio-keys = /system/usr/keychars/gpio-keys.kcm (6)build your system again Now we can see the different: I/EventHub( 63): New device: path=/dev/input/event1 name=S3C TouchScreen id=0x10000 (of 0x1) index=1 fd=50 classes=0x4 E/EventHub( 63): could not get driver version for /dev/input/mice, Not a typewriter E/KeyLayoutMap( 63): /system/usr/keylayout/gpio-keys.kl:10: expected keycode, got 'ROTATOR' I/EventHub( 63): New keyboard: publicID=0 device->id=0x10001 devname='gpio-keys' propName='hw.keyboards.0.devname' keylayout='/system/usr/keylayout/gpio-keys.kl'<<<<<<<<OK correct! I/EventHub( 63): New device: path=/dev/input/event0 name=gpio-keys id=0x10001 (of 0x2) index=2 fd=52 classes=0x1 E/EventHub( 63): could not get driver version for /dev/input/mouse0, Not a typewriter I/KeyInputQueue( 63): Device added: id=0x0, name=gpio-keys, classes=1 I/KeyInputQueue( 63): Device added: id=0x10000, name=S3C TouchScreen, classes=4 I/KeyInputQueue( 63): X: min=0 max=480 flat=0 fuzz=0 I/KeyInputQueue( 63): Y: min=0 max=272 flat=0 fuzz=0 I/KeyInputQueue( 63): Pressure: min=0 max=1 flat=0 fuzz=0 I/KeyInputQueue( 63): Size: unknown values I/KeyInputQueue( 63): No virtual keys found System do not know the word "ROTATOR" presently. You can add a USB-KEYBOARD too. Rockie Cheng 阿虚 Reference: http://www.kandroid.org/android_pdk/keymaps_keyboard_input.html |
相关文章推荐
- Rockie's Android Porting Guide(2)——Add USB WIFI to your system
- Rockie's Android Porting Guide(4)——Add SD card to your system
- Rockie's Android Porting Guide(4)——Add SD card to your system
- Rockie's Android Porting Guide(5)——Change your location and add the screenlock
- Rockie's Android Porting Guide(1)——Build your own board
- Rockie's Android Porting Guide(4)——Add SD card to your system
- Rockie's Android Porting Guide(4)——Add SD card to your system
- Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml
- Window7—64位:Ruby on Rails - “Add 'gem sqlite3'' to your Gemfile”
- VS2005,Did you forget to add '#include "stdafx.h"' to your source?
- Did you forget to add '#include "stdafx.h"' to your source?
- VS2005,Did you forget to add '#include "stdafx.h"' to your source?
- Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml
- Android Build System ---- how to add your product and board config *.mk
- Android Build System ---- how to add your product and board config *.mk
- [Android][Rendering Problems] Failed to find style 'editTextStyle' in current theme 解决方法
- Android Studio导入Fresco项目编译报错unable to expand TAR 'imagepipeline\build\downloads\libjpeg-turbo-1.3.1.tar.gz'解决
- How To Backup Your Android Phone’s Boot, Recovery And System Partition Images -- RomDump
- Porting&nbsp;WiFi&nbsp;drivers&nbsp;to&nbsp;Android
- Unable to resolve target 'android-XX'问题