* Keyboard and mouse issues on MacBook Air (4,2) @ 2011-10-17 17:59 Nico Schottelius 2011-10-17 18:16 ` Jiri Kosina 0 siblings, 1 reply; 13+ messages in thread From: Nico Schottelius @ 2011-10-17 17:59 UTC (permalink / raw) To: LKML Hello LKML, after several days of reading various forums and mailinglists, it seems that keyboard and mouse support on the MacBook Air is pretty broken: - The fn key does not modify the cursor behaviour: FN+Cursor up should result in Page up, FN+Cursor down should result in Page down, etc. Actual result: Cursor keys are passed in as usual - The multitouch trackpad only works if bcm5974 is loaded before usbhid -> otherwise only left click works - If bcm5974 is loaded before usbhid, left moving the mouse while holding down the mouse button (i.e. the trackpad) does not work, but results in a right click Anyone a pointer on how to fix these issues? Cheers, Nico -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-17 17:59 Keyboard and mouse issues on MacBook Air (4,2) Nico Schottelius @ 2011-10-17 18:16 ` Jiri Kosina 2011-10-17 21:40 ` Nico Schottelius 0 siblings, 1 reply; 13+ messages in thread From: Jiri Kosina @ 2011-10-17 18:16 UTC (permalink / raw) To: Nico Schottelius; +Cc: LKML On Mon, 17 Oct 2011, Nico Schottelius wrote: > Hello LKML, > > after several days of reading various forums and mailinglists, > it seems that keyboard and mouse support on the MacBook Air is > pretty broken: > > - The fn key does not modify the cursor behaviour: > FN+Cursor up should result in Page up, > FN+Cursor down should result in Page down, etc. > > Actual result: Cursor keys are passed in as usual > > - The multitouch trackpad only works if bcm5974 is loaded before usbhid > -> otherwise only left click works > > - If bcm5974 is loaded before usbhid, left moving the mouse while > holding down the mouse button (i.e. the trackpad) does not work, > but results in a right click > > Anyone a pointer on how to fix these issues? Please try with my hid.git tree, preferably for-next branch. Namely commit 4b086910ad1. Thanks, -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-17 18:16 ` Jiri Kosina @ 2011-10-17 21:40 ` Nico Schottelius 2011-10-17 21:49 ` Nico Schottelius 2011-10-19 15:01 ` Nico Schottelius 0 siblings, 2 replies; 13+ messages in thread From: Nico Schottelius @ 2011-10-17 21:40 UTC (permalink / raw) To: Jiri Kosina; +Cc: Nico Schottelius, LKML Hey Jiri, Jiri Kosina [Mon, Oct 17, 2011 at 08:16:55PM +0200]: > > [...] > > - The fn key does not modify the cursor behaviour: > > FN+Cursor up should result in Page up, > > FN+Cursor down should result in Page down, etc. > > > > Actual result: Cursor keys are passed in as usual > > > > - The multitouch trackpad only works if bcm5974 is loaded before usbhid > > -> otherwise only left click works > > > > - If bcm5974 is loaded before usbhid, left moving the mouse while > > holding down the mouse button (i.e. the trackpad) does not work, > > but results in a right click > > > > Anyone a pointer on how to fix these issues? > > Please try with my hid.git tree, preferably for-next branch. Namely > commit 4b086910ad1. Thanks a lot, fn works perfectly now! If I switch fnmode to 2 (echo 2 > /sys/module/hid_apple/parameters/fnmode), there are though some mis-mapping for the Multimedia Keys. I've attached the xev output of fn+{F1-F12}. F1-F4 are correct, though F3 = Expose on MacOS X (**) F4 = Dashboard (**) F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*) F6 is XF86AudioPrev incorrect: Should be KeyboardLightIncrease (*) F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev F8 is XF86AudioNext incorrect: Should be XF86AudioPlay F9 is XF86AudioMute incorrect: Should be XF86AudioNext F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume F12 is XF86Eject incorrect: Should be XF86AudioRaiseVolume Thus F7-12 are shifted by one to left in reality and as the MacBook Air does not have an optical drive, there is no eject button. One thing that does not work on the trackpad that works on MacOS X: Having the thumb (or any other finger) on the trackpad (not moving) and moving another finger to move the pointer does not work. This always results in a scroll event, which is probably never desired but only when two fingers are moved. But in general, this looks like a great step towards usability on the Macbook Air! When can we expect this to be merged into Linus' tree? Imho this should be moved there asap, to prevent other users to run into the same trouble. Cheers, Nico (*) If Xorg/Linux has something like this, if not it should be added (**) XF86LaunchA/B work fine as well, but could be renamed for easier mapping p.s.: Search for "mac book air manual" to see the actual keyboard mappings in the pdf, page 28. -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-17 21:40 ` Nico Schottelius @ 2011-10-17 21:49 ` Nico Schottelius 2011-10-19 15:01 ` Nico Schottelius 1 sibling, 0 replies; 13+ messages in thread From: Nico Schottelius @ 2011-10-17 21:49 UTC (permalink / raw) To: Nico Schottelius, Jiri Kosina, LKML [-- Attachment #1: Type: text/plain, Size: 84 bytes --] + xev attachement. -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 [-- Attachment #2: xev --] [-- Type: text/plain, Size: 7634 bytes --] KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 631172, (150,8), root:(794,419), state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 631268, (150,8), root:(794,419), state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 631852, (150,8), root:(794,419), state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 631972, (150,8), root:(794,419), state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 632660, (150,8), root:(794,419), state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 632772, (150,8), root:(794,419), state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 633596, (150,8), root:(794,419), state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 633700, (150,8), root:(794,419), state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 634636, (150,8), root:(794,419), state 0x0, keycode 71 (keysym 0xffc2, F5), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 634772, (150,8), root:(794,419), state 0x0, keycode 71 (keysym 0xffc2, F5), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 635508, (150,8), root:(794,419), state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 635636, (150,8), root:(794,419), state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 637308, (150,8), root:(794,419), state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 637428, (150,8), root:(794,419), state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 638108, (150,8), root:(794,419), state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 638252, (150,8), root:(794,419), state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 639316, (150,8), root:(794,419), state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 639444, (150,8), root:(794,419), state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 641236, (150,8), root:(794,419), state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 641340, (150,8), root:(794,419), state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 642788, (150,8), root:(794,419), state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 642892, (150,8), root:(794,419), state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 644436, (150,8), root:(794,419), state 0x0, keycode 169 (keysym 0x1008ff2c, XF86Eject), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 644436, (150,8), root:(794,419), state 0x0, keycode 169 (keysym 0x1008ff2c, XF86Eject), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False MappingNotify event, serial 27, synthetic NO, window 0x0, request MappingKeyboard, first_keycode 8, count 248 KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 648822, (150,8), root:(794,419), state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x131, subw 0x0, time 648822, (150,8), root:(794,419), state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-17 21:40 ` Nico Schottelius 2011-10-17 21:49 ` Nico Schottelius @ 2011-10-19 15:01 ` Nico Schottelius 2011-10-19 15:04 ` Jiri Kosina 1 sibling, 1 reply; 13+ messages in thread From: Nico Schottelius @ 2011-10-19 15:01 UTC (permalink / raw) To: Nico Schottelius, Jiri Kosina, LKML Hey Jiri, regarding the misplaced keys: Nico Schottelius [Mon, Oct 17, 2011 at 11:40:50PM +0200]: > [...] > I've attached the xev output of fn+{F1-F12}. > > F1-F4 are correct, though > F3 = Expose on MacOS X (**) > F4 = Dashboard (**) > F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*) > F6 is XF86AudioPrev incorrect: Should be KeyboardLightIncrease (*) > F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev > F8 is XF86AudioNext incorrect: Should be XF86AudioPlay > F9 is XF86AudioMute incorrect: Should be XF86AudioNext > F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute > F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume > F12 is XF86Eject incorrect: Should be XF86AudioRaiseVolume > > Thus F7-12 are shifted by one to left in reality and as the MacBook Air if I want to correct these bugs, which tree should I use as the base? And when I corrected those, to whom to submit? I guess the general approach would be to branch out, if it's a mba4,2, then apply the following mapping, correct? Cheers, Nico -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-19 15:01 ` Nico Schottelius @ 2011-10-19 15:04 ` Jiri Kosina 2011-10-19 21:07 ` Nico Schottelius 0 siblings, 1 reply; 13+ messages in thread From: Jiri Kosina @ 2011-10-19 15:04 UTC (permalink / raw) To: Nico Schottelius; +Cc: LKML On Wed, 19 Oct 2011, Nico Schottelius wrote: > > [...] > > I've attached the xev output of fn+{F1-F12}. > > > > F1-F4 are correct, though > > F3 = Expose on MacOS X (**) > > F4 = Dashboard (**) > > F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*) > > F6 is XF86AudioPrev incorrect: Should be KeyboardLightIncrease (*) > > F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev > > F8 is XF86AudioNext incorrect: Should be XF86AudioPlay > > F9 is XF86AudioMute incorrect: Should be XF86AudioNext > > F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute > > F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume > > F12 is XF86Eject incorrect: Should be XF86AudioRaiseVolume > > > > Thus F7-12 are shifted by one to left in reality and as the MacBook Air > > if I want to correct these bugs, which tree should I use as the base? > And when I corrected those, to whom to submit? Hi, please use hid tree, for-next branch. The tree is located on kernel.org. > I guess the general approach would be to branch out, if it's a mba4,2, > then apply the following mapping, correct? Yes, there are mapping tables in hid-apple.c already, so just introduce a new one. I am a bit surprised that they are needed though, the original report stated that the the table is identical to the one that is already there (apple_fn_keys[]). -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-19 15:04 ` Jiri Kosina @ 2011-10-19 21:07 ` Nico Schottelius 2011-10-19 21:25 ` Nico Schottelius ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Nico Schottelius @ 2011-10-19 21:07 UTC (permalink / raw) To: Jiri Kosina; +Cc: Nico Schottelius, LKML Hey Jiri, Jiri Kosina [Wed, Oct 19, 2011 at 05:04:29PM +0200]: > On Wed, 19 Oct 2011, Nico Schottelius wrote: > > > > [...] > > > I've attached the xev output of fn+{F1-F12}. > > > > > > F1-F4 are correct, though > > > F3 = Expose on MacOS X (**) > > > F4 = Dashboard (**) > > > F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*) > > > F6 is XF86AudioPrev incorrect: Should be KeyboardLightIncrease (*) > > > F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev > > > F8 is XF86AudioNext incorrect: Should be XF86AudioPlay > > > F9 is XF86AudioMute incorrect: Should be XF86AudioNext > > > F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute > > > F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume > > > F12 is XF86Eject incorrect: Should be XF86AudioRaiseVolume > > > > > > Thus F7-12 are shifted by one to left in reality and as the MacBook Air > > > > if I want to correct these bugs, which tree should I use as the base? > > And when I corrected those, to whom to submit? > > Hi, > > please use hid tree, for-next branch. The tree is located on kernel.org. Alright used that one, put my changes into the mba42-fixes branch [0]. As I cannot use your tree standalone due to the display problems, I've also put it into the keyboardmappingfix of the tree that merges yours and the one from Keith [1]. I've tested my patches, all keys are mapped correctly now, xev output is attached. Please merge my patch from [0]. > > I guess the general approach would be to branch out, if it's a mba4,2, > > then apply the following mapping, correct? > > Yes, there are mapping tables in hid-apple.c already, so just introduce a > new one. > > I am a bit surprised that they are needed though, the original report > stated that the the table is identical to the one that is already there > (apple_fn_keys[]). Well, the fn-key works and it generates "different events" than without the tree, but the mapping is not completly correct. Looking at the code, I'm wondering if any MBA user has it correctly working: The macbookair_fn_keys[] misses the F5 mapping (which is what I see here) and I imagine there is no mba out there, that does not have a special key on FN+F5. And checking with the manuals I see on the net, it seems the keys have not changed on the air, i.e. it should be wrong on all MacBook airs. Cheers, Nico [0] http://git.schottelius.org/?p=foreign/linux-jiri-hid;a=summary git://git.schottelius.org/foreign/linux-jiri-hid [1] http://git.schottelius.org/?p=foreign/linux-keith-jiri-mba;a=summary git://git.schottelius.org/foreign/linux-keith-jiri-mba -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-19 21:07 ` Nico Schottelius @ 2011-10-19 21:25 ` Nico Schottelius 2011-10-21 18:22 ` Nico Schottelius 2011-10-22 2:02 ` Nico Schottelius 2 siblings, 0 replies; 13+ messages in thread From: Nico Schottelius @ 2011-10-19 21:25 UTC (permalink / raw) To: Nico Schottelius, Jiri Kosina, LKML [-- Attachment #1: Type: text/plain, Size: 84 bytes --] + xev attachement. -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 [-- Attachment #2: xev-patched --] [-- Type: text/plain, Size: 7838 bytes --] KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1356328, (157,521), root:(1121,541), state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1356440, (157,521), root:(1121,541), state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1358600, (157,521), root:(1121,541), state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1358704, (157,521), root:(1121,541), state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1359352, (157,521), root:(1121,541), state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1359464, (157,521), root:(1121,541), state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1359912, (157,521), root:(1121,541), state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False CreateNotify event, serial 27, synthetic NO, window 0xa00001, parent 0xa00001, window 0x400045, (157,521), width 1, height 1 border_width 0, override YES MapNotify event, serial 27, synthetic NO, window 0xa00001, event 0xa00001, window 0x400045, override YES LeaveNotify event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x0, time 1359967, (157,521), root:(1121,541), mode NotifyNormal, detail NotifyInferior, same_screen YES, focus YES, state 0 EnterNotify event, serial 27, synthetic YES, window 0xa00001, root 0xac, subw 0x0, time 0, (157,521), root:(1121,541), mode NotifyNormal, detail NotifyAncestor, same_screen YES, focus YES, state 0 KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1360040, (157,521), root:(1121,541), state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1360568, (157,521), root:(1121,541), state 0x0, keycode 237 (keysym 0x1008ff06, XF86KbdBrightnessDown), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1360656, (157,521), root:(1121,541), state 0x0, keycode 237 (keysym 0x1008ff06, XF86KbdBrightnessDown), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1361112, (157,521), root:(1121,541), state 0x0, keycode 238 (keysym 0x1008ff05, XF86KbdBrightnessUp), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1361208, (157,521), root:(1121,541), state 0x0, keycode 238 (keysym 0x1008ff05, XF86KbdBrightnessUp), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1361608, (157,521), root:(1121,541), state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1361720, (157,521), root:(1121,541), state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1362104, (157,521), root:(1121,541), state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1362208, (157,521), root:(1121,541), state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1362608, (157,521), root:(1121,541), state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1362712, (157,521), root:(1121,541), state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1363080, (157,521), root:(1121,541), state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1363208, (157,521), root:(1121,541), state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1363776, (157,521), root:(1121,541), state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1363864, (157,521), root:(1121,541), state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1364864, (157,521), root:(1121,541), state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0xa00001, root 0xac, subw 0x400045, time 1364968, (157,521), root:(1121,541), state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-19 21:07 ` Nico Schottelius 2011-10-19 21:25 ` Nico Schottelius @ 2011-10-21 18:22 ` Nico Schottelius 2011-10-22 2:02 ` Nico Schottelius 2 siblings, 0 replies; 13+ messages in thread From: Nico Schottelius @ 2011-10-21 18:22 UTC (permalink / raw) To: Nico Schottelius, Jiri Kosina, LKML Hey Jiri, Nico Schottelius [Wed, Oct 19, 2011 at 11:07:42PM +0200]: > [...] > I've tested my patches, all keys are mapped correctly now, xev output > is attached. Please merge my patch from [0]. I've to correct myself, please do not merge currently: The MacBook Air 3,1 indeed has such weired mappings, made a screenshot of it today. So I'll have to change my patch to use a different table on the MacBook Air 4,2. Will ping you, when I've updated the source. Cheers, Nico -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-19 21:07 ` Nico Schottelius 2011-10-19 21:25 ` Nico Schottelius 2011-10-21 18:22 ` Nico Schottelius @ 2011-10-22 2:02 ` Nico Schottelius 2011-10-22 10:24 ` Nico Schottelius 2 siblings, 1 reply; 13+ messages in thread From: Nico Schottelius @ 2011-10-22 2:02 UTC (permalink / raw) To: Nico Schottelius, Jiri Kosina, LKML Hey Jiri, I've found the problematic block in drivers/hid/hid-apple.c:180: 180 if (fnmode) { 181 int do_translate; 182 183 if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI && 184 hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) 185 table = macbookair_fn_keys; 186 else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI && 187 hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING6_JIS) 188 table = macbookair_fn_keys; 189 else if (hid->product < 0x21d || hid->product >= 0x300) 190 table = powerbook_fn_keys; 191 else 192 table = apple_fn_keys; The second range (186-188) specified matches my MacBookAir, which needs the new table I defined in my previous commit: My device matches USB_DEVICE_ID_APPLE_WELLSPRING6_ISO (024D): [ 2.639063] apple 0003:05AC:024D.0001: input,hidraw0: USB HID v1.11 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1a.7-1.2/input0 [ 2.694742] usb 2-1.1: new high speed USB device number 3 using ehci_hcd [ 2.736895] apple 0003:05AC:024D.0002: hidraw1: USB HID v1.11 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1a.7-1.2/input1 The question for me is know, which range matches to the table I am using and which range maps to the original table. I know that the MacBook Air 3,1 must use the old table, so I IMAGINE this is the first block (183-185). So my next guess is that MBA 3,1 - 3,2 need to use the first table, while MBA 4,1 - 4,2 need the second one. Can you verify my assumption or do you have any hints on how the MacBook Airs and the Keyboard layouts match? Cheers, Nico -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-22 2:02 ` Nico Schottelius @ 2011-10-22 10:24 ` Nico Schottelius 2011-10-28 15:46 ` Jiri Kosina 0 siblings, 1 reply; 13+ messages in thread From: Nico Schottelius @ 2011-10-22 10:24 UTC (permalink / raw) To: Nico Schottelius, Jiri Kosina, LKML I'm making progress in this issue: I've just grabbed the whole list of manuals for all MacBook Airs from the Apple page and had a look at the keyboard layout in the manual: air 2008: new 13" air late 2010: old 11" air late 2010: old 11" air mid 2011: new 13" air mid 2011: new table_new = with keyboard backlight keys, f5 mapped to backlight down -> apple_fn_keys table_old = f5 has no fn-special meaning -> macbookair_fn_keys Reviewing drivers/hid/hid-apple.c you were absolutely right, the apple_fn_keys[] maps correctly. The missing bit to correct my previous patch: To which device IDs do the devices named above match to? I.e. is USB_DEVICE_ID_APPLE_WELLSPRING6_* the MacBook Air 4,2? Cheers, Nico p.s.: sorry for the noise, was a bit confused. -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-22 10:24 ` Nico Schottelius @ 2011-10-28 15:46 ` Jiri Kosina 2011-10-31 22:37 ` Nico Schottelius 0 siblings, 1 reply; 13+ messages in thread From: Jiri Kosina @ 2011-10-28 15:46 UTC (permalink / raw) To: Nico Schottelius; +Cc: LKML On Sat, 22 Oct 2011, Nico Schottelius wrote: > The missing bit to correct my previous patch: To which device IDs do the > devices named above match to? I.e. is USB_DEVICE_ID_APPLE_WELLSPRING6_* > the MacBook Air 4,2? You need to check the USB IDs (lsusb will tell you) to see which quirk / translation table is getting used. -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Keyboard and mouse issues on MacBook Air (4,2) 2011-10-28 15:46 ` Jiri Kosina @ 2011-10-31 22:37 ` Nico Schottelius 0 siblings, 0 replies; 13+ messages in thread From: Nico Schottelius @ 2011-10-31 22:37 UTC (permalink / raw) To: Jiri Kosina; +Cc: Nico Schottelius, LKML Jiri Kosina [Fri, Oct 28, 2011 at 05:46:29PM +0200]: > On Sat, 22 Oct 2011, Nico Schottelius wrote: > > > The missing bit to correct my previous patch: To which device IDs do the > > devices named above match to? I.e. is USB_DEVICE_ID_APPLE_WELLSPRING6_* > > the MacBook Air 4,2? > > You need to check the USB IDs (lsusb will tell you) to see which quirk / > translation table is getting used. Alright, will prepare a better patch the next weeks (currently no access to a 4,2 air). So far I've found three different keyboard layouts on the Air: 2,1 has all keys from F1-F12 mapped, same as 4,2 3,1 has the quirk with missing F5 mapping I've the usb ids for 2,1 and 4,2 right now and will try to get it from 3,1 as well. If anyone with a MacBook Air 3,2 or 4,1 (or any other version not listed above) is reading this, can you send me an email with the output of lsusb (or the system profiler from macosx) and which multimedia keys are mapped to which F1-F12 keys? Cheers, Nico -- PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0 ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2011-10-31 22:37 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-10-17 17:59 Keyboard and mouse issues on MacBook Air (4,2) Nico Schottelius 2011-10-17 18:16 ` Jiri Kosina 2011-10-17 21:40 ` Nico Schottelius 2011-10-17 21:49 ` Nico Schottelius 2011-10-19 15:01 ` Nico Schottelius 2011-10-19 15:04 ` Jiri Kosina 2011-10-19 21:07 ` Nico Schottelius 2011-10-19 21:25 ` Nico Schottelius 2011-10-21 18:22 ` Nico Schottelius 2011-10-22 2:02 ` Nico Schottelius 2011-10-22 10:24 ` Nico Schottelius 2011-10-28 15:46 ` Jiri Kosina 2011-10-31 22:37 ` Nico Schottelius
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.