From: Micah F. G. <mfg...@uw...> - 2005-06-28 19:45:54
|
Hello all, Recently I came into possession of a Logitech UltraX Media Remote. It has a USB RF receiver, and when I plug it in, it shows up as two hid devices (normal keys and media keys). The normal keys (letters/numbers/arrows/etc) all work as they should, but some of the special buttons on the second device are unknown (though they still show up) or need to be mapped correctly. I would like to fix this. I had a quick look through the docs and on the list, and didn't see much on how to tackle this problem. So, if someone could enlighten me, I would like to know what the best approach is... Does this require a completely separate driver? I wouldn't imagine so since all the keys generate an event, just not always the right event. If not, is there somewhere in the input system I can tune the key map, or provide one specific to this device? Assuming neither is correct, what should I be doing, and where should I be looking for docs/examples? Thanks in advance! --=20 Micah F. Galizia mfg...@uw... "The mark of an immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one." --W. Stekel |
From: James S. <jsi...@ww...> - 2005-07-01 23:40:06
|
I CC you with Dmitry. Him and Vojtech are the main input guys now. On Tue, 28 Jun 2005, Micah F. Galizia wrote: > Hello all, > > Recently I came into possession of a Logitech UltraX Media Remote. It > has a USB RF receiver, and when I plug it in, it shows up as two hid > devices (normal keys and media keys). The normal keys > (letters/numbers/arrows/etc) all work as they should, but some of the > special buttons on the second device are unknown (though they still show > up) or need to be mapped correctly. > > I would like to fix this. I had a quick look through the docs and on > the list, and didn't see much on how to tackle this problem. So, if > someone could enlighten me, I would like to know what the best approach > is... > > Does this require a completely separate driver? I wouldn't imagine so > since all the keys generate an event, just not always the right event. > If not, is there somewhere in the input system I can tune the key map, > or provide one specific to this device? Assuming neither is correct, > what should I be doing, and where should I be looking for docs/examples? > > Thanks in advance! > -- > Micah F. Galizia > mfg...@uw... > > "The mark of an immature man is that he wants to die > nobly for a cause, while the mark of the mature man is > that he wants to live humbly for one." --W. Stekel > |
From: Dmitry T. <dto...@am...> - 2005-07-04 06:37:10
|
On Friday 01 July 2005 18:40, James Simmons wrote: > > I CC you with Dmitry. Him and Vojtech are the main input guys now. > Unfortunately I haven't got into USB (and especially HID) side of input subsystem, at least not yet. Vojetch is your best chance here, although people on linux-usb-devel might be of help too. > > On Tue, 28 Jun 2005, Micah F. Galizia wrote: > > > Hello all, > > > > Recently I came into possession of a Logitech UltraX Media Remote. It > > has a USB RF receiver, and when I plug it in, it shows up as two hid > > devices (normal keys and media keys). The normal keys > > (letters/numbers/arrows/etc) all work as they should, but some of the > > special buttons on the second device are unknown (though they still show > > up) or need to be mapped correctly. > > > > I would like to fix this. I had a quick look through the docs and on > > the list, and didn't see much on how to tackle this problem. So, if > > someone could enlighten me, I would like to know what the best approach > > is... > > > > Does this require a completely separate driver? I wouldn't imagine so > > since all the keys generate an event, just not always the right event. > > If not, is there somewhere in the input system I can tune the key map, > > or provide one specific to this device? Assuming neither is correct, > > what should I be doing, and where should I be looking for docs/examples? > > > > Thanks in advance! > > -- > > Micah F. Galizia > > mfg...@uw... > > > > "The mark of an immature man is that he wants to die > > nobly for a cause, while the mark of the mature man is > > that he wants to live humbly for one." --W. Stekel > > > -- Dmitry |
From: Vineesh <vi...@hc...> - 2005-07-04 07:11:52
|
Hi all, I set up a 3-terminal PC with debian sarge. I tried to run wine on my ruby patched setup but it's not running. It's loading after that it's hanging up. All other applications are running perfectly.But in the base debian kernel(2.6.8-x) it's running. I am using kernel 2.6.10 with ruby patched. I am working with an AMD 64 board with Nvidia chipset. Wat may b the problem? regards vineesh On Mon, 2005-07-04 at 12:06, Dmitry Torokhov wrote: > On Friday 01 July 2005 18:40, James Simmons wrote: > > > > I CC you with Dmitry. Him and Vojtech are the main input guys now. > > > > Unfortunately I haven't got into USB (and especially HID) side of input > subsystem, at least not yet. Vojetch is your best chance here, although > people on linux-usb-devel might be of help too. > > > > > On Tue, 28 Jun 2005, Micah F. Galizia wrote: > > > > > Hello all, > > > > > > Recently I came into possession of a Logitech UltraX Media Remote. It > > > has a USB RF receiver, and when I plug it in, it shows up as two hid > > > devices (normal keys and media keys). The normal keys > > > (letters/numbers/arrows/etc) all work as they should, but some of the > > > special buttons on the second device are unknown (though they still show > > > up) or need to be mapped correctly. > > > > > > I would like to fix this. I had a quick look through the docs and on > > > the list, and didn't see much on how to tackle this problem. So, if > > > someone could enlighten me, I would like to know what the best approach > > > is... > > > > > > Does this require a completely separate driver? I wouldn't imagine so > > > since all the keys generate an event, just not always the right event. > > > If not, is there somewhere in the input system I can tune the key map, > > > or provide one specific to this device? Assuming neither is correct, > > > what should I be doing, and where should I be looking for docs/examples? > > > > > > Thanks in advance! > > > -- > > > Micah F. Galizia > > > mfg...@uw... > > > > > > "The mark of an immature man is that he wants to die > > > nobly for a cause, while the mark of the mature man is > > > that he wants to live humbly for one." --W. Stekel > > > > > |
From: Vojtech P. <vo...@su...> - 2005-07-04 11:02:09
|
On Mon, Jul 04, 2005 at 01:36:54AM -0500, Dmitry Torokhov wrote: > On Friday 01 July 2005 18:40, James Simmons wrote: > > > > I CC you with Dmitry. Him and Vojtech are the main input guys now. > > > > Unfortunately I haven't got into USB (and especially HID) side of input > subsystem, at least not yet. Vojetch is your best chance here, although > people on linux-usb-devel might be of help too. > > > > > On Tue, 28 Jun 2005, Micah F. Galizia wrote: > > > > > Hello all, > > > > > > Recently I came into possession of a Logitech UltraX Media Remote. It > > > has a USB RF receiver, and when I plug it in, it shows up as two hid > > > devices (normal keys and media keys). The normal keys > > > (letters/numbers/arrows/etc) all work as they should, but some of the > > > special buttons on the second device are unknown (though they still show > > > up) or need to be mapped correctly. > > > > > > I would like to fix this. I had a quick look through the docs and on > > > the list, and didn't see much on how to tackle this problem. So, if > > > someone could enlighten me, I would like to know what the best approach > > > is... The assignment of HID usages to Linux input events is done in the hid-input.c file. Change the #undef DEBUG in there to a #define DEBUG, and take a look at (or send me) the resulting 'dmesg' output. There you'll see which HID usages it didn't understand and how it assigned the others. > > > Does this require a completely separate driver? No. > > > I wouldn't imagine so > > > since all the keys generate an event, just not always the right event. > > > If not, is there somewhere in the input system I can tune the key map, > > > or provide one specific to this device? Assuming neither is correct, > > > what should I be doing, and where should I be looking for docs/examples? -- Vojtech Pavlik SuSE Labs, SuSE CR |
From: Micah F. G. <mfg...@uw...> - 2005-07-04 20:08:26
|
On Mon, 2005-04-07 at 13:01 +0200, Vojtech Pavlik wrote: > The assignment of HID usages to Linux input events is done in the > hid-input.c file. Change the #undef DEBUG in there to a #define DEBUG, > and take a look at (or send me) the resulting 'dmesg' output. There > you'll see which HID usages it didn't understand and how it assigned the > others. Hello again. The output is at the bottom of the message. The offending device is listed as the "Logitech USB Receiver." Another thing I just noticed is that the first physical device, which is standard keys (numbers, letters, etc), is claiming to have keys and buttons that it does not (or evtest is anyways). In any case, I'm game to fix this, so I guess I'm looking for recommendations on where to go from here. Oh, and sorry for all of the extra junk included in the dmesg output: Mapping: Keyboard.008c ---> Key.KPJpComma Mapping: Keyboard.008d ---> Key.Unknown Mapping: Keyboard.008e ---> Key.Unknown Mapping: Keyboard.008f ---> Key.Unknown Mapping: Keyboard.0090 ---> Key.Hanguel Mapping: Keyboard.0091 ---> Key.Hanja Mapping: Keyboard.0092 ---> Key.Katakana Mapping: Keyboard.0093 ---> Key.HIRAGANA Mapping: Keyboard.0094 ---> Key.Zenkaku/Hankaku Mapping: Keyboard.0095 ---> Key.Unknown Mapping: Keyboard.0096 ---> Key.Unknown Mapping: Keyboard.0097 ---> Key.Unknown Mapping: Keyboard.0098 ---> Key.Unknown Mapping: LED.NumLock ---> LED.NumLock Mapping: LED.CapsLock ---> LED.CapsLock Mapping: LED.ScrollLock ---> LED.ScrollLock input: USB HID v1.10 Keyboard [Logitech USB Receiver] on usb-0000:00:10.3-2 Mapping: Consumer.00b5 ---> Key.NextSong Mapping: Consumer.00b6 ---> Key.PreviousSong Mapping: Consumer.0045 ---> Key.Btn0 Mapping: Consumer.00cd ---> Key.PlayPause Mapping: Consumer.00e2 ---> Key.Mute Mapping: Consumer.00e9 ---> Key.VolumeUp Mapping: Consumer.00ea ---> Key.VolumeDown Mapping: Consumer.00b2 ---> Key.Record Mapping: Consumer.009c ---> Key.Btn1 Mapping: Consumer.009d ---> Key.Btn2 Mapping: Consumer.0224 ---> Key.Back Mapping: Consumer.0225 ---> Key.Forward Mapping: Consumer.00b7 ---> Key.StopCD Mapping: Consumer.0227 ---> Key.Refresh Mapping: Consumer.022a ---> Key.Bookmarks Mapping: Consumer.0192 ---> Key.Calc Mapping: Consumer.0194 ---> Key.File Mapping: Consumer.0209 ---> Key.Btn3 Mapping: Consumer.00b4 ---> Key.Rewind Mapping: Consumer.00b3 ---> Key.Fast Forward Mapping: Consumer.0223 ---> Key.HomePage Mapping: Consumer.008d ---> Key.Btn4 Mapping: Consumer.00b0 ---> Key.Play Mapping: Consumer.00b1 ---> Key.Pause Mapping: ffbc.000d ---> Key.Btn5 Mapping: ffbc.0025 ---> Key.Btn6 Mapping: ffbc.0024 ---> Key.Btn7 Mapping: ffbc.0047 ---> Key.Btn8 Mapping: ffbc.0049 ---> Key.Btn9 Mapping: ffbc.004a ---> Key.? Mapping: ffbc.0046 ---> Key.? Mapping: ffbc.0048 ---> Key.? Mapping: ffbc.004b ---> Key.? Mapping: ffbc.004c ---> Key.? Mapping: ffbc.0026 ---> Key.? Mapping: ffbc.004d ---> Key.LeftBtn Mapping: ffbc.0031 ---> Key.RightBtn Mapping: ffbc.0032 ---> Key.MiddleBtn Mapping: ffbc.0033 ---> Key.SideBtn Mapping: ffbc.0004 ---> Key.ExtraBtn Mapping: ffbc.0051 ---> Key.ForwardBtn Mapping: ffbc.0052 ---> Key.BackBtn input,hiddev96: USB HID v1.10 Device [Logitech USB Receiver] on usb-0000:00:10.3-2 usb 1-1: new low speed USB device using uhci_hcd and address 4 Mapping: Button.0001 ---> Key.LeftBtn Mapping: Button.0002 ---> Key.RightBtn Mapping: Button.0003 ---> Key.MiddleBtn Mapping: Button.0004 ---> Key.SideBtn Mapping: Button.0005 ---> Key.ExtraBtn Mapping: Button.0006 ---> Key.ForwardBtn Mapping: Button.0007 ---> Key.BackBtn Mapping: Button.0008 ---> Key.TaskBtn Mapping: GenericDesktop.X ---> Relative.X Mapping: GenericDesktop.Y ---> Relative.Y Mapping: GenericDesktop.Wheel ---> Relative.Wheel Mapping: LED.004b ---> IGNORED Mapping: LED.004b ---> IGNORED Mapping: LED.004b ---> IGNORED Mapping: LED.004b ---> IGNORED Mapping: LED.004b ---> IGNORED Mapping: LED.004b ---> IGNORED Mapping: LED.004b ---> IGNORED Mapping: LED.004b ---> IGNORED input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:10.0-1 mice: PS/2 mouse device common for all mice usb 1-2: new low speed USB device using uhci_hcd and address 5 Mapping: Keyboard.00e0 ---> Key.LeftControl Mapping: Keyboard.00e1 ---> Key.LeftShift Mapping: Keyboard.00e2 ---> Key.LeftAlt Mapping: Keyboard.00e3 ---> Key.LeftMeta Mapping: Keyboard.00e4 ---> Key.RightCtrl Mapping: Keyboard.00e5 ---> Key.RightShift Mapping: Keyboard.00e6 ---> Key.RightAlt Mapping: Keyboard.00e7 ---> Key.RightMeta Mapping: Keyboard.0000 ---> IGNORED Mapping: Keyboard.0001 ---> IGNORED Mapping: Keyboard.0002 ---> IGNORED Mapping: Keyboard.0003 ---> IGNORED Mapping: Keyboard.0004 ---> Key.A Mapping: Keyboard.0005 ---> Key.B Mapping: Keyboard.0006 ---> Key.C Mapping: Keyboard.0007 ---> Key.D Mapping: Keyboard.0008 ---> Key.E Mapping: Keyboard.0009 ---> Key.F Mapping: Keyboard.000a ---> Key.G Mapping: Keyboard.000b ---> Key.H Mapping: Keyboard.000c ---> Key.I Mapping: Keyboard.000d ---> Key.J Mapping: Keyboard.000e ---> Key.K Mapping: Keyboard.000f ---> Key.L Mapping: Keyboard.0010 ---> Key.M Mapping: Keyboard.0011 ---> Key.N Mapping: Keyboard.0012 ---> Key.O Mapping: Keyboard.0013 ---> Key.P Mapping: Keyboard.0014 ---> Key.Q Mapping: Keyboard.0015 ---> Key.R Mapping: Keyboard.0016 ---> Key.S Mapping: Keyboard.0017 ---> Key.T Mapping: Keyboard.0018 ---> Key.U Mapping: Keyboard.0019 ---> Key.V Mapping: Keyboard.001a ---> Key.W Mapping: Keyboard.001b ---> Key.X Mapping: Keyboard.001c ---> Key.Y Mapping: Keyboard.001d ---> Key.Z Mapping: Keyboard.001e ---> Key.1 Mapping: Keyboard.001f ---> Key.2 Mapping: Keyboard.0020 ---> Key.3 Mapping: Keyboard.0021 ---> Key.4 Mapping: Keyboard.0022 ---> Key.5 Mapping: Keyboard.0023 ---> Key.6 Mapping: Keyboard.0024 ---> Key.7 Mapping: Keyboard.0025 ---> Key.8 Mapping: Keyboard.0026 ---> Key.9 Mapping: Keyboard.0027 ---> Key.0 Mapping: Keyboard.0028 ---> Key.Enter Mapping: Keyboard.0029 ---> Key.Esc Mapping: Keyboard.002a ---> Key.Backspace Mapping: Keyboard.002b ---> Key.Tab Mapping: Keyboard.002c ---> Key.Space Mapping: Keyboard.002d ---> Key.Minus Mapping: Keyboard.002e ---> Key.Equal Mapping: Keyboard.002f ---> Key.LeftBrace Mapping: Keyboard.0030 ---> Key.RightBrace Mapping: Keyboard.0031 ---> Key.BackSlash Mapping: Keyboard.0032 ---> Key.BackSlash Mapping: Keyboard.0033 ---> Key.Semicolon Mapping: Keyboard.0034 ---> Key.Apostrophe Mapping: Keyboard.0035 ---> Key.Grave Mapping: Keyboard.0036 ---> Key.Comma Mapping: Keyboard.0037 ---> Key.Dot Mapping: Keyboard.0038 ---> Key.Slash Mapping: Keyboard.0039 ---> Key.CapsLock Mapping: Keyboard.003a ---> Key.F1 Mapping: Keyboard.003b ---> Key.F2 Mapping: Keyboard.003c ---> Key.F3 Mapping: Keyboard.003d ---> Key.F4 Mapping: Keyboard.003e ---> Key.F5 Mapping: Keyboard.003f ---> Key.F6 Mapping: Keyboard.0040 ---> Key.F7 Mapping: Keyboard.0041 ---> Key.F8 Mapping: Keyboard.0042 ---> Key.F9 Mapping: Keyboard.0043 ---> Key.F10 Mapping: Keyboard.0044 ---> Key.F11 Mapping: Keyboard.0045 ---> Key.F12 Mapping: Keyboard.0046 ---> Key.SysRq Mapping: Keyboard.0047 ---> Key.ScrollLock Mapping: Keyboard.0048 ---> Key.Pause Mapping: Keyboard.0049 ---> Key.Insert Mapping: Keyboard.004a ---> Key.Home Mapping: Keyboard.004b ---> Key.PageUp Mapping: Keyboard.004c ---> Key.Delete Mapping: Keyboard.004d ---> Key.End Mapping: Keyboard.004e ---> Key.PageDown Mapping: Keyboard.004f ---> Key.Right Mapping: Keyboard.0050 ---> Key.Left Mapping: Keyboard.0051 ---> Key.Down Mapping: Keyboard.0052 ---> Key.Up Mapping: Keyboard.0053 ---> Key.NumLock Mapping: Keyboard.0054 ---> Key.KPSlash Mapping: Keyboard.0055 ---> Key.KPAsterisk Mapping: Keyboard.0056 ---> Key.KPMinus Mapping: Keyboard.0057 ---> Key.KPPlus Mapping: Keyboard.0058 ---> Key.KPEnter Mapping: Keyboard.0059 ---> Key.KP1 Mapping: Keyboard.005a ---> Key.KP2 Mapping: Keyboard.005b ---> Key.KP3 Mapping: Keyboard.005c ---> Key.KP4 Mapping: Keyboard.005d ---> Key.KP5 Mapping: Keyboard.005e ---> Key.KP6 Mapping: Keyboard.005f ---> Key.KP7 Mapping: Keyboard.0060 ---> Key.KP8 Mapping: Keyboard.0061 ---> Key.KP9 Mapping: Keyboard.0062 ---> Key.KP0 Mapping: Keyboard.0063 ---> Key.KPDot Mapping: Keyboard.0064 ---> Key.102nd Mapping: Keyboard.0065 ---> Key.Compose Mapping: Keyboard.0066 ---> Key.Power Mapping: Keyboard.0067 ---> Key.KPEqual Mapping: Keyboard.0068 ---> Key.F13 Mapping: Keyboard.0069 ---> Key.F14 Mapping: Keyboard.006a ---> Key.F15 Mapping: Keyboard.006b ---> Key.F16 Mapping: Keyboard.006c ---> Key.F17 Mapping: Keyboard.006d ---> Key.F18 Mapping: Keyboard.006e ---> Key.F19 Mapping: Keyboard.006f ---> Key.F20 Mapping: Keyboard.0070 ---> Key.F21 Mapping: Keyboard.0071 ---> Key.F22 Mapping: Keyboard.0072 ---> Key.F23 Mapping: Keyboard.0073 ---> Key.F24 Mapping: Keyboard.0074 ---> Key.Open Mapping: Keyboard.0075 ---> Key.Help Mapping: Keyboard.0076 ---> Key.Props Mapping: Keyboard.0077 ---> Key.Front Mapping: Keyboard.0078 ---> Key.Stop Mapping: Keyboard.0079 ---> Key.Again Mapping: Keyboard.007a ---> Key.Undo Mapping: Keyboard.007b ---> Key.Cut Mapping: Keyboard.007c ---> Key.Copy Mapping: Keyboard.007d ---> Key.Paste Mapping: Keyboard.007e ---> Key.Find Mapping: Keyboard.007f ---> Key.Mute Mapping: Keyboard.0080 ---> Key.VolumeUp Mapping: Keyboard.0081 ---> Key.VolumeDown Mapping: Keyboard.0082 ---> Key.Unknown Mapping: Keyboard.0083 ---> Key.Unknown Mapping: Keyboard.0084 ---> Key.Unknown Mapping: Keyboard.0085 ---> Key.KPComma Mapping: Keyboard.0086 ---> Key.Unknown Mapping: Keyboard.0087 ---> Key.RO Mapping: Keyboard.0088 ---> Key.Katakana/Hiragana Mapping: Keyboard.0089 ---> Key.Yen Mapping: Keyboard.008a ---> Key.Henkan Mapping: Keyboard.008b ---> Key.Muhenkan Mapping: Keyboard.008c ---> Key.KPJpComma Mapping: Keyboard.008d ---> Key.Unknown Mapping: Keyboard.008e ---> Key.Unknown Mapping: Keyboard.008f ---> Key.Unknown Mapping: Keyboard.0090 ---> Key.Hanguel Mapping: Keyboard.0091 ---> Key.Hanja Mapping: Keyboard.0092 ---> Key.Katakana Mapping: Keyboard.0093 ---> Key.HIRAGANA Mapping: Keyboard.0094 ---> Key.Zenkaku/Hankaku Mapping: Keyboard.0095 ---> Key.Unknown Mapping: Keyboard.0096 ---> Key.Unknown Mapping: Keyboard.0097 ---> Key.Unknown Mapping: Keyboard.0098 ---> Key.Unknown Mapping: Keyboard.0099 ---> Key.Unknown Mapping: Keyboard.009a ---> Key.Unknown Mapping: Keyboard.009b ---> Key.Unknown Mapping: Keyboard.009c ---> Key.Unknown Mapping: Keyboard.009d ---> Key.Unknown Mapping: Keyboard.009e ---> Key.Unknown Mapping: Keyboard.009f ---> Key.Unknown Mapping: Keyboard.00a0 ---> Key.Unknown Mapping: Keyboard.00a1 ---> Key.Unknown Mapping: Keyboard.00a2 ---> Key.Unknown Mapping: Keyboard.00a3 ---> Key.Unknown Mapping: Keyboard.00a4 ---> Key.Unknown Mapping: LED.NumLock ---> LED.NumLock Mapping: LED.CapsLock ---> LED.CapsLock Mapping: LED.ScrollLock ---> LED.ScrollLock Mapping: LED.Compose ---> LED.Compose Mapping: LED.Kana ---> LED.Kana input: USB HID v1.10 Keyboard [Logitech Logitech USB Keyboard] on usb-0000:00:10.0-2 Mapping: Consumer.0225 ---> Key.Forward Mapping: Consumer.00b6 ---> Key.PreviousSong Mapping: Consumer.00b5 ---> Key.NextSong Mapping: Consumer.00b7 ---> Key.StopCD Mapping: Consumer.00cd ---> Key.PlayPause Mapping: Consumer.00ea ---> Key.VolumeDown Mapping: Consumer.00e9 ---> Key.VolumeUp Mapping: Consumer.00e2 ---> Key.Mute Mapping: Consumer.0192 ---> Key.Calc Mapping: Consumer.018a ---> Key.Mail Mapping: Consumer.0221 ---> Key.Find Mapping: Consumer.0223 ---> Key.HomePage Mapping: Consumer.022a ---> Key.Bookmarks Mapping: Consumer.0224 ---> Key.Back Mapping: Consumer.0183 ---> Key.Config Mapping: Button.0001 ---> Key.Btn0 Mapping: Button.0002 ---> Key.Btn1 Mapping: Button.0003 ---> Key.Btn2 Mapping: Button.0004 ---> Key.Btn3 Mapping: Button.0005 ---> Key.Btn4 Mapping: Button.0006 ---> Key.Btn5 Mapping: Button.0007 ---> Key.Btn6 Mapping: Button.0008 ---> Key.Btn7 Mapping: Button.0009 ---> Key.Btn8 Mapping: Button.000a ---> Key.Btn9 Mapping: Button.000b ---> Key.? Mapping: Button.000c ---> Key.? Mapping: Button.000d ---> Key.? Mapping: Button.000e ---> Key.? Mapping: Button.000f ---> Key.? Mapping: Button.0010 ---> Key.? Mapping: Button.0011 ---> Key.LeftBtn Mapping: Button.0012 ---> Key.RightBtn Mapping: Button.0013 ---> Key.MiddleBtn Mapping: Button.0014 ---> Key.SideBtn Mapping: Button.0015 ---> Key.ExtraBtn Mapping: Button.0016 ---> Key.ForwardBtn Mapping: Button.0017 ---> Key.BackBtn Mapping: Button.0018 ---> Key.TaskBtn Mapping: Button.0019 ---> Key.? Mapping: Button.001a ---> Key.? Mapping: Button.001b ---> Key.? Mapping: Button.001c ---> Key.? Mapping: Button.001d ---> Key.? Mapping: Button.001e ---> Key.? Mapping: Button.001f ---> Key.? Mapping: Button.0020 ---> Key.? Mapping: Button.0021 ---> Key.Trigger Mapping: Button.0022 ---> Key.ThumbBtn Mapping: Button.0023 ---> Key.ThumbBtn2 Mapping: Button.0024 ---> Key.TopBtn Mapping: Button.0025 ---> Key.TopBtn2 Mapping: Button.0026 ---> Key.PinkieBtn Mapping: Button.0027 ---> Key.BaseBtn Mapping: Button.0028 ---> Key.BaseBtn2 Mapping: Button.0029 ---> Key.BaseBtn3 Mapping: Button.002a ---> Key.BaseBtn4 Mapping: Button.002b ---> Key.BaseBtn5 Mapping: Button.002c ---> Key.BaseBtn6 Mapping: Button.002d ---> Key.? Mapping: Button.002e ---> Key.? Mapping: Button.002f ---> Key.? Mapping: Button.0030 ---> Key.BtnDead Mapping: Button.0031 ---> Key.BtnA Mapping: Button.0032 ---> Key.BtnB Mapping: Button.0033 ---> Key.BtnC Mapping: Button.0034 ---> Key.BtnX Mapping: Button.0035 ---> Key.BtnY Mapping: Button.0036 ---> Key.BtnZ Mapping: Button.0037 ---> Key.BtnTL Mapping: Button.0038 ---> Key.BtnTR Mapping: Button.0039 ---> Key.BtnTL2 Mapping: Button.003a ---> Key.BtnTR2 Mapping: Button.003b ---> Key.BtnSelect Mapping: Button.003c ---> Key.BtnStart Mapping: Button.003d ---> Key.BtnMode Mapping: Button.003e ---> Key.BtnThumbL Mapping: Button.003f ---> Key.BtnThumbR Mapping: Button.0040 ---> Key.? Mapping: Consumer.0201 ---> Absolute.Misc Mapping: Consumer.0289 ---> Absolute.? Mapping: Consumer.028b ---> Absolute.? Mapping: Consumer.028c ---> Absolute.? Mapping: Consumer.021a ---> Key.Undo Mapping: Consumer.0279 ---> Absolute.? Mapping: Consumer.0208 ---> Absolute.? Mapping: Consumer.0207 ---> Absolute.? Mapping: Consumer.0194 ---> Key.File Mapping: Consumer.01a7 ---> Absolute.? Mapping: Consumer.01b6 ---> Absolute.? Mapping: Consumer.01b7 ---> Absolute.? Mapping: GenericDesktop.SystemSleep ---> Key.Sleep Mapping: GenericDesktop.SystemPowerDown ---> Key.Power Mapping: GenericDesktop.SystemWakeUp ---> Key.WakeUp Mapping: GenericDesktop.Wheel ---> Relative.Wheel Mapping: GenericDesktop.X ---> Relative.X Mapping: GenericDesktop.Y ---> Relative.Y input: USB HID v1.10 Mouse [Logitech Logitech USB Keyboard] on usb-0000:00:10.0-2 input: PC Speaker --=20 Micah F. Galizia mfg...@uw... "The mark of an immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one." --W. Stekel |
From: Vojtech P. <vo...@su...> - 2005-07-05 09:04:44
|
On Mon, Jul 04, 2005 at 04:08:09PM -0400, Micah F. Galizia wrote: > On Mon, 2005-04-07 at 13:01 +0200, Vojtech Pavlik wrote: > > The assignment of HID usages to Linux input events is done in the > > hid-input.c file. Change the #undef DEBUG in there to a #define DEBUG, > > and take a look at (or send me) the resulting 'dmesg' output. There > > you'll see which HID usages it didn't understand and how it assigned the > > others. > > Hello again. > > The output is at the bottom of the message. The offending device is > listed as the "Logitech USB Receiver." > > Another thing I just noticed is that the first physical device, which is > standard keys (numbers, letters, etc), is claiming to have keys and > buttons that it does not (or evtest is anyways). > > In any case, I'm game to fix this, so I guess I'm looking for > recommendations on where to go from here. Oh, and sorry for all of the > extra junk included in the dmesg output: > > Mapping: Keyboard.008c ---> Key.KPJpComma > Mapping: Keyboard.008d ---> Key.Unknown > Mapping: Keyboard.008e ---> Key.Unknown > Mapping: Keyboard.008f ---> Key.Unknown > Mapping: Keyboard.0090 ---> Key.Hanguel > Mapping: Keyboard.0091 ---> Key.Hanja > Mapping: Keyboard.0092 ---> Key.Katakana > Mapping: Keyboard.0093 ---> Key.HIRAGANA > Mapping: Keyboard.0094 ---> Key.Zenkaku/Hankaku > Mapping: Keyboard.0095 ---> Key.Unknown > Mapping: Keyboard.0096 ---> Key.Unknown > Mapping: Keyboard.0097 ---> Key.Unknown > Mapping: Keyboard.0098 ---> Key.Unknown > Mapping: LED.NumLock ---> LED.NumLock > Mapping: LED.CapsLock ---> LED.CapsLock > Mapping: LED.ScrollLock ---> LED.ScrollLock > input: USB HID v1.10 Keyboard [Logitech USB Receiver] on usb-0000:00:10.3-2 The above seems to be a truncated output from the keyboard part of the USB receiver. Apart from claiming to have keys that it doesn't, which is rather common, I don't see any problems there. > Mapping: Consumer.00b5 ---> Key.NextSong > Mapping: Consumer.00b6 ---> Key.PreviousSong > Mapping: Consumer.0045 ---> Key.Btn0 > Mapping: Consumer.00cd ---> Key.PlayPause > Mapping: Consumer.00e2 ---> Key.Mute > Mapping: Consumer.00e9 ---> Key.VolumeUp > Mapping: Consumer.00ea ---> Key.VolumeDown > Mapping: Consumer.00b2 ---> Key.Record > Mapping: Consumer.009c ---> Key.Btn1 > Mapping: Consumer.009d ---> Key.Btn2 > Mapping: Consumer.0224 ---> Key.Back > Mapping: Consumer.0225 ---> Key.Forward > Mapping: Consumer.00b7 ---> Key.StopCD > Mapping: Consumer.0227 ---> Key.Refresh > Mapping: Consumer.022a ---> Key.Bookmarks > Mapping: Consumer.0192 ---> Key.Calc > Mapping: Consumer.0194 ---> Key.File > Mapping: Consumer.0209 ---> Key.Btn3 > Mapping: Consumer.00b4 ---> Key.Rewind > Mapping: Consumer.00b3 ---> Key.Fast Forward > Mapping: Consumer.0223 ---> Key.HomePage > Mapping: Consumer.008d ---> Key.Btn4 > Mapping: Consumer.00b0 ---> Key.Play > Mapping: Consumer.00b1 ---> Key.Pause > Mapping: ffbc.000d ---> Key.Btn5 > Mapping: ffbc.0025 ---> Key.Btn6 > Mapping: ffbc.0024 ---> Key.Btn7 > Mapping: ffbc.0047 ---> Key.Btn8 > Mapping: ffbc.0049 ---> Key.Btn9 > Mapping: ffbc.004a ---> Key.? > Mapping: ffbc.0046 ---> Key.? > Mapping: ffbc.0048 ---> Key.? > Mapping: ffbc.004b ---> Key.? > Mapping: ffbc.004c ---> Key.? > Mapping: ffbc.0026 ---> Key.? > Mapping: ffbc.004d ---> Key.LeftBtn > Mapping: ffbc.0031 ---> Key.RightBtn > Mapping: ffbc.0032 ---> Key.MiddleBtn > Mapping: ffbc.0033 ---> Key.SideBtn > Mapping: ffbc.0004 ---> Key.ExtraBtn > Mapping: ffbc.0051 ---> Key.ForwardBtn > Mapping: ffbc.0052 ---> Key.BackBtn > input,hiddev96: USB HID v1.10 Device [Logitech USB Receiver] on usb-0000:00:10.3-2 Here we have the multimedia part of the thingy, most likely some kind of a remote. And this is where the hid-input module gets quite confused. First by usages from the Consumer page it doesn't understand (0045, 009c, 009d, 0209, 008d). Second, by Logitech vendor usages (ffbc.*). This will be a bit harder, and will need your cooperation. Please enable DEBUG in hid-core.c, too, and check what usages from the ffbc page appear in your syslog/dmesg when you press keys on the device. Let's take a look in the specs (USB HID HUT 1.11): 0045: MenuRight 009c: NextChannel 009d: PrevChannel 0209: ApplicationControlProperties 008d: MediaSelectProgramGuide I guess I'll need your help again to find out what these keys are supposed to do and how they're marked on the device. > usb 1-1: new low speed USB device using uhci_hcd and address 4 > Mapping: Button.0001 ---> Key.LeftBtn > Mapping: Button.0002 ---> Key.RightBtn > Mapping: Button.0003 ---> Key.MiddleBtn > Mapping: Button.0004 ---> Key.SideBtn > Mapping: Button.0005 ---> Key.ExtraBtn > Mapping: Button.0006 ---> Key.ForwardBtn > Mapping: Button.0007 ---> Key.BackBtn > Mapping: Button.0008 ---> Key.TaskBtn > Mapping: GenericDesktop.X ---> Relative.X > Mapping: GenericDesktop.Y ---> Relative.Y > Mapping: GenericDesktop.Wheel ---> Relative.Wheel > Mapping: LED.004b ---> IGNORED > Mapping: LED.004b ---> IGNORED > Mapping: LED.004b ---> IGNORED > Mapping: LED.004b ---> IGNORED > Mapping: LED.004b ---> IGNORED > Mapping: LED.004b ---> IGNORED > Mapping: LED.004b ---> IGNORED > Mapping: LED.004b ---> IGNORED > input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:10.0-1 Apart from claiming to have several LEDs of the same type ("Generic Indicator"), which the hid-input mapper correctly ignores, the mouse is pretty normal. > usb 1-2: new low speed USB device using uhci_hcd and address 5 > Mapping: Keyboard.00e0 ---> Key.LeftControl > Mapping: Keyboard.00e1 ---> Key.LeftShift > Mapping: Keyboard.00e6 ---> Key.RightAlt > Mapping: Keyboard.00e7 ---> Key.RightMeta > Mapping: Keyboard.0000 ---> IGNORED > Mapping: Keyboard.0001 ---> IGNORED > Mapping: Keyboard.0002 ---> IGNORED > Mapping: Keyboard.0003 ---> IGNORED > Mapping: Keyboard.0004 ---> Key.A > Mapping: Keyboard.0005 ---> Key.B > Mapping: Keyboard.006c ---> Key.F17 > Mapping: Keyboard.0071 ---> Key.F22 > Mapping: Keyboard.0072 ---> Key.F23 > Mapping: Keyboard.0073 ---> Key.F24 > Mapping: Keyboard.0074 ---> Key.Open > Mapping: Keyboard.0075 ---> Key.Help > Mapping: Keyboard.0076 ---> Key.Props > Mapping: Keyboard.009d ---> Key.Unknown > Mapping: Keyboard.00a2 ---> Key.Unknown > Mapping: Keyboard.00a3 ---> Key.Unknown > Mapping: Keyboard.00a4 ---> Key.Unknown > Mapping: LED.NumLock ---> LED.NumLock > Mapping: LED.CapsLock ---> LED.CapsLock > Mapping: LED.ScrollLock ---> LED.ScrollLock > Mapping: LED.Compose ---> LED.Compose > Mapping: LED.Kana ---> LED.Kana > input: USB HID v1.10 Keyboard [Logitech Logitech USB Keyboard] on usb-0000:00:10.0-2 And here comes a keyboard, claiming LEDs it likely doesn't have, and a bunch of extra keys, too, but nothing too bad. > Mapping: Consumer.0225 ---> Key.Forward > Mapping: Consumer.00b6 ---> Key.PreviousSong > Mapping: Consumer.00b5 ---> Key.NextSong > Mapping: Consumer.00b7 ---> Key.StopCD > Mapping: Consumer.00cd ---> Key.PlayPause > Mapping: Consumer.00ea ---> Key.VolumeDown > Mapping: Consumer.00e9 ---> Key.VolumeUp > Mapping: Consumer.00e2 ---> Key.Mute > Mapping: Consumer.0192 ---> Key.Calc > Mapping: Consumer.018a ---> Key.Mail > Mapping: Consumer.0221 ---> Key.Find > Mapping: Consumer.0223 ---> Key.HomePage > Mapping: Consumer.022a ---> Key.Bookmarks > Mapping: Consumer.0224 ---> Key.Back > Mapping: Consumer.0183 ---> Key.Config > Mapping: Button.0001 ---> Key.Btn0 [snip] > Mapping: Button.003f ---> Key.BtnThumbR > Mapping: Button.0040 ---> Key.? > Mapping: Consumer.0201 ---> Absolute.Misc > Mapping: Consumer.0289 ---> Absolute.? > Mapping: Consumer.028b ---> Absolute.? > Mapping: Consumer.028c ---> Absolute.? > Mapping: Consumer.021a ---> Key.Undo > Mapping: Consumer.0279 ---> Absolute.? > Mapping: Consumer.0208 ---> Absolute.? > Mapping: Consumer.0207 ---> Absolute.? > Mapping: Consumer.0194 ---> Key.File > Mapping: Consumer.01a7 ---> Absolute.? > Mapping: Consumer.01b6 ---> Absolute.? > Mapping: Consumer.01b7 ---> Absolute.? > Mapping: GenericDesktop.SystemSleep ---> Key.Sleep > Mapping: GenericDesktop.SystemPowerDown ---> Key.Power > Mapping: GenericDesktop.SystemWakeUp ---> Key.WakeUp > Mapping: GenericDesktop.Wheel ---> Relative.Wheel > Mapping: GenericDesktop.X ---> Relative.X > Mapping: GenericDesktop.Y ---> Relative.Y > input: USB HID v1.10 Mouse [Logitech Logitech USB Keyboard] on usb-0000:00:10.0-2 And the second part of the USB keyboard is pretty evil. It claims to be a mouse with 64 buttons, a host of consumer page keys and other controls. 0201: New 0289: Reply 028b: ForwardMsg 028c: Send 0279: Redo 0208: Print 0207: Save 0194: FileBrowser 01a7: Documents 01b6: RESERVED 01b7: RESERVED Please try with this patch: Index: dmitry/include/linux/input.h =================================================================== --- dmitry.orig/include/linux/input.h 2005-07-05 10:58:05.000000000 +0200 +++ dmitry/include/linux/input.h 2005-07-05 10:58:37.000000000 +0200 @@ -287,6 +287,8 @@ #define KEY_SCROLLDOWN 178 #define KEY_KPLEFTPAREN 179 #define KEY_KPRIGHTPAREN 180 +#define KEY_NEW 181 +#define KEY_REDO 182 #define KEY_F13 183 #define KEY_F14 184 @@ -333,6 +335,12 @@ #define KEY_KBDILLUMDOWN 229 #define KEY_KBDILLUMUP 230 +#define KEY_SEND 231 +#define KEY_REPLY 232 +#define KEY_FORWARDMAIL 233 +#define KEY_SAVE 234 +#define KEY_DOCUMENTS 235 + #define KEY_UNKNOWN 240 #define BTN_MISC 0x100 Index: dmitry/drivers/usb/input/hid-input.c =================================================================== --- dmitry.orig/drivers/usb/input/hid-input.c 2005-07-05 10:58:05.000000000 +0200 +++ dmitry/drivers/usb/input/hid-input.c 2005-07-05 11:02:25.000000000 +0200 @@ -77,8 +77,8 @@ { struct input_dev *input = &hidinput->input; struct hid_device *device = hidinput->input.private; - int max, code; - unsigned long *bit; + int max = 0, code; + unsigned long *bit = NULL; field->hidinput = hidinput; @@ -247,7 +247,10 @@ case 0x034: map_key_clear(KEY_SLEEP); break; case 0x036: map_key_clear(BTN_MISC); break; case 0x08a: map_key_clear(KEY_WWW); break; + case 0x08d: map_key_clear(KEY_PROGRAM); break; case 0x095: map_key_clear(KEY_HELP); break; + case 0x09c: map_key_clear(KEY_CHANNELUP); break; + case 0x09d: map_key_clear(KEY_CHANNELDOWN); break; case 0x0b0: map_key_clear(KEY_PLAY); break; case 0x0b1: map_key_clear(KEY_PAUSE); break; case 0x0b2: map_key_clear(KEY_RECORD); break; @@ -267,6 +270,11 @@ case 0x18a: map_key_clear(KEY_MAIL); break; case 0x192: map_key_clear(KEY_CALC); break; case 0x194: map_key_clear(KEY_FILE); break; + case 0x1a7: map_key_clear(KEY_DOCUMENTS); break; + case 0x201: map_key_clear(KEY_NEW); break; + case 0x207: map_key_clear(KEY_SAVE); break; + case 0x208: map_key_clear(KEY_PRINT); break; + case 0x209: map_key_clear(KEY_PROPS); break; case 0x21a: map_key_clear(KEY_UNDO); break; case 0x21b: map_key_clear(KEY_COPY); break; case 0x21c: map_key_clear(KEY_CUT); break; @@ -279,7 +287,11 @@ case 0x227: map_key_clear(KEY_REFRESH); break; case 0x22a: map_key_clear(KEY_BOOKMARKS); break; case 0x238: map_rel(REL_HWHEEL); break; - default: goto unknown; + case 0x279: map_key_clear(KEY_REDO); break; + case 0x289: map_key_clear(KEY_REPLY); break; + case 0x28b: map_key_clear(KEY_FORWARDMAIL); break; + case 0x28c: map_key_clear(KEY_SEND); break; + default: goto ignore; } break; @@ -305,6 +317,7 @@ case HID_UP_MSVENDOR: case HID_UP_LOGIVENDOR: + case HID_UP_LOGIVENDOR2: goto ignore; Index: dmitry/drivers/usb/input/hid-debug.h =================================================================== --- dmitry.orig/drivers/usb/input/hid-debug.h 2005-07-05 10:58:05.000000000 +0200 +++ dmitry/drivers/usb/input/hid-debug.h 2005-07-05 10:58:37.000000000 +0200 @@ -109,6 +109,7 @@ {0, 0x03, "ScrollLock"}, {0, 0x04, "Compose"}, {0, 0x05, "Kana"}, + {0, 0x4b, "GenericIndicator"}, { 9, 0, "Button" }, { 10, 0, "Ordinal" }, { 12, 0, "Consumer" }, @@ -591,7 +592,8 @@ [KEY_EXIT] = "Exit", [KEY_MOVE] = "Move", [KEY_EDIT] = "Edit", [KEY_SCROLLUP] = "ScrollUp", [KEY_SCROLLDOWN] = "ScrollDown", [KEY_KPLEFTPAREN] = "KPLeftParenthesis", - [KEY_KPRIGHTPAREN] = "KPRightParenthesis", [KEY_F13] = "F13", + [KEY_KPRIGHTPAREN] = "KPRightParenthesis", [KEY_NEW] = "New", + [KEY_REDO] = "Redo", [KEY_F13] = "F13", [KEY_F14] = "F14", [KEY_F15] = "F15", [KEY_F16] = "F16", [KEY_F17] = "F17", [KEY_F18] = "F18", [KEY_F19] = "F19", @@ -601,15 +603,15 @@ [KEY_PAUSECD] = "PauseCD", [KEY_PROG3] = "Prog3", [KEY_PROG4] = "Prog4", [KEY_SUSPEND] = "Suspend", [KEY_CLOSE] = "Close", [KEY_PLAY] = "Play", - [KEY_FASTFORWARD] = "Fast Forward", [KEY_BASSBOOST] = "Bass Boost", + [KEY_FASTFORWARD] = "FastForward", [KEY_BASSBOOST] = "BassBoost", [KEY_PRINT] = "Print", [KEY_HP] = "HP", [KEY_CAMERA] = "Camera", [KEY_SOUND] = "Sound", [KEY_QUESTION] = "Question", [KEY_EMAIL] = "Email", [KEY_CHAT] = "Chat", [KEY_SEARCH] = "Search", [KEY_CONNECT] = "Connect", [KEY_FINANCE] = "Finance", [KEY_SPORT] = "Sport", [KEY_SHOP] = "Shop", - [KEY_ALTERASE] = "Alternate Erase", [KEY_CANCEL] = "Cancel", - [KEY_BRIGHTNESSDOWN] = "Brightness down", [KEY_BRIGHTNESSUP] = "Brightness up", + [KEY_ALTERASE] = "AlternateErase", [KEY_CANCEL] = "Cancel", + [KEY_BRIGHTNESSDOWN] = "BrightnessDown", [KEY_BRIGHTNESSUP] = "BrightnessUp", [KEY_MEDIA] = "Media", [KEY_UNKNOWN] = "Unknown", [BTN_0] = "Btn0", [BTN_1] = "Btn1", [BTN_2] = "Btn2", [BTN_3] = "Btn3", @@ -639,8 +641,8 @@ [BTN_TOOL_AIRBRUSH] = "ToolAirbrush", [BTN_TOOL_FINGER] = "ToolFinger", [BTN_TOOL_MOUSE] = "ToolMouse", [BTN_TOOL_LENS] = "ToolLens", [BTN_TOUCH] = "Touch", [BTN_STYLUS] = "Stylus", - [BTN_STYLUS2] = "Stylus2", [BTN_TOOL_DOUBLETAP] = "Tool Doubletap", - [BTN_TOOL_TRIPLETAP] = "Tool Tripletap", [BTN_GEAR_DOWN] = "WheelBtn", + [BTN_STYLUS2] = "Stylus2", [BTN_TOOL_DOUBLETAP] = "ToolDoubleTap", + [BTN_TOOL_TRIPLETAP] = "ToolTripleTap", [BTN_GEAR_DOWN] = "WheelBtn", [BTN_GEAR_UP] = "Gear up", [KEY_OK] = "Ok", [KEY_SELECT] = "Select", [KEY_GOTO] = "Goto", [KEY_CLEAR] = "Clear", [KEY_POWER2] = "Power2", @@ -676,6 +678,9 @@ [KEY_TWEN] = "TWEN", [KEY_DEL_EOL] = "DeleteEOL", [KEY_DEL_EOS] = "DeleteEOS", [KEY_INS_LINE] = "InsertLine", [KEY_DEL_LINE] = "DeleteLine", + [KEY_SEND] = "Send", [KEY_REPLY] = "Reply", + [KEY_FORWARDMAIL] = "ForwardMail", [KEY_SAVE] = "Save", + [KEY_DOCUMENTS] = "Documents", }; static char *relatives[REL_MAX + 1] = { Index: dmitry/drivers/usb/input/hid.h =================================================================== --- dmitry.orig/drivers/usb/input/hid.h 2005-07-05 10:58:05.000000000 +0200 +++ dmitry/drivers/usb/input/hid.h 2005-07-05 10:58:37.000000000 +0200 @@ -184,6 +184,7 @@ #define HID_UP_HPVENDOR 0xff7f0000 #define HID_UP_MSVENDOR 0xff000000 #define HID_UP_LOGIVENDOR 0x00ff0000 +#define HID_UP_LOGIVENDOR2 0xffbc0000 #define HID_USAGE 0x0000ffff -- Vojtech Pavlik SuSE Labs, SuSE CR |
From: Micah F. G. <mfg...@uw...> - 2005-07-05 22:59:49
Attachments:
LogitechUltraXMediaRemote.diff
|
Hello, I've attached the patch that makes all keys on the Logitech UltraX Media Remote work nicely. I will verify that the previous patch correctly assigns the channel keys in the consumer page, however, I cannot give props to the mapping of props (sorry). 0x209 on this remote says "Info/EPG", but it has been assigned to KEY_PROPS. Maybe I'm just not understanding the meaning of "props." This patch does reassign KEY_INFO to 0x209 in the consumer page; it that was the wrong thing to do, I'll resubmit. I used my best judgement when assigning keys, since the text on the device does not always match up with a key defined in input.h. Here is a list of the potentially ambiguous or incorrect mappings: Start->KEY_RED Pictures->KEY_MEDIA DVD Menu->KEY_MENU SAP->KEY_AUDIO Repeat->KEY_AGAIN CC/Teletext->KEY_SUBTITLE Music->KEY_MP3 Allow me to justify the silly ones. The start key is big and red, Google told me SAP stands for "Secondary Audio Program", and there is no key close to pictures/graphics/image. On Tue, 2005-05-07 at 11:04 +0200, Vojtech Pavlik wrote: [really big snip] > > Please try with this patch: > [another snip] The patch failed on account of HID_UP_LOGIVENDOR not being defined. I fixed two hunks manually, so it should work fine with your tree, Vojtech. Thanks again for all your help. Please keep me posted if something is wrong. -- Micah F. Galizia mfg...@uw... "The mark of an immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one." --W. Stekel |
From: Dmitry T. <dto...@am...> - 2005-07-06 13:46:43
|
"Micah F. Galizia" <mfg...@uw...> wrote: > @@ -309,9 +310,27 @@ > case HID_UP_MSVENDOR: > case HID_UP_LOGIVENDOR: > case HID_UP_LOGIVENDOR2: > - > - goto ignore; > - > + switch(usage->hid & HID_USAGE) { > + case 0x004: map_key_clear(KEY_AGAIN); Are you sure that MSVENDOR also uses the same mappings? I'd think these are exclusively Logitech's (LOGIVENDOR2). -- Dmitry |
From: Vojtech P. <vo...@su...> - 2005-07-06 13:55:41
|
On Tue, Jul 05, 2005 at 06:59:36PM -0400, Micah F. Galizia wrote: > Hello, > > I've attached the patch that makes all keys on the Logitech UltraX Media > Remote work nicely. I will verify that the previous patch correctly > assigns the channel keys in the consumer page, however, I cannot give > props to the mapping of props (sorry). 0x209 on this remote says > "Info/EPG", but it has been assigned to KEY_PROPS. Maybe I'm just not > understanding the meaning of "props." This patch does reassign KEY_INFO > to 0x209 in the consumer page; it that was the wrong thing to do, I'll > resubmit. > > I used my best judgement when assigning keys, since the text on the > device does not always match up with a key defined in input.h. Here is > a list of the potentially ambiguous or incorrect mappings: > > Start->KEY_RED > Pictures->KEY_MEDIA > DVD Menu->KEY_MENU > SAP->KEY_AUDIO > Repeat->KEY_AGAIN > CC/Teletext->KEY_SUBTITLE > Music->KEY_MP3 The problem is that the markings on the device aren't important in case of the Consumer HID usage page. We need to follow the spec (http://www.usb.org/developers/devclass_docs/Hut1_11.pdf). > Allow me to justify the silly ones. The start key is big and red, > Google told me SAP stands for "Secondary Audio Program", and there is no > key close to pictures/graphics/image. We can add KEY_* definitions, if they are likely to be used on other devices, too. > The patch failed on account of HID_UP_LOGIVENDOR not being defined. I > fixed two hunks manually, so it should work fine with your tree, > Vojtech. Sorry for that, it's defined in an earlier patch I didn't send to you. > Thanks again for all your help. Please keep me posted if something is > wrong. > --- gitandhidpatches/drivers/usb/input/hid-input.c 2005-07-05 18:29:32.726219000 -0400 > +++ micah/drivers/usb/input/hid-input.c 2005-07-05 18:42:15.489888750 -0400 > @@ -237,6 +237,7 @@ > case 0x000: goto ignore; > case 0x034: map_key_clear(KEY_SLEEP); break; > case 0x036: map_key_clear(BTN_MISC); break; > + case 0x045: map_key_clear(KEY_RADIO); break; This is rather suspicious, considering what Consumer.0045 is supposed to mean. I can add it, but I expect it'll be incorrect for other devices. > case 0x08a: map_key_clear(KEY_WWW); break; > case 0x08d: map_key_clear(KEY_PROGRAM); break; > case 0x095: map_key_clear(KEY_HELP); break; > @@ -265,7 +266,7 @@ > case 0x201: map_key_clear(KEY_NEW); break; > case 0x207: map_key_clear(KEY_SAVE); break; > case 0x208: map_key_clear(KEY_PRINT); break; > - case 0x209: map_key_clear(KEY_PROPS); break; > + case 0x209: map_key_clear(KEY_INFO); break; See the spec on this one. > case 0x21a: map_key_clear(KEY_UNDO); break; > case 0x21b: map_key_clear(KEY_COPY); break; > case 0x21c: map_key_clear(KEY_CUT); break; > @@ -309,9 +310,27 @@ > case HID_UP_MSVENDOR: > case HID_UP_LOGIVENDOR: > case HID_UP_LOGIVENDOR2: > - > - goto ignore; > - > + switch(usage->hid & HID_USAGE) { > + case 0x004: map_key_clear(KEY_AGAIN); break; > + case 0x00d: map_key_clear(KEY_HOME); break; > + case 0x024: map_key_clear(KEY_SHUFFLE); break; > + case 0x025: map_key_clear(KEY_TV); break; > + case 0x026: map_key_clear(KEY_MENU); break; > + case 0x031: map_key_clear(KEY_AUDIO); break; > + case 0x032: map_key_clear(KEY_SUBTITLE); break; > + case 0x033: map_key_clear(KEY_LAST); break; > + case 0x047: map_key_clear(KEY_MP3); break; > + case 0x048: map_key_clear(KEY_DVD); break; > + case 0x049: map_key_clear(KEY_MEDIA); break; > + case 0x04a: map_key_clear(KEY_VIDEO); break; > + case 0x04b: map_key_clear(KEY_ANGLE); break; > + case 0x04c: map_key_clear(KEY_LANGUAGE); break; > + case 0x04d: map_key_clear(KEY_SUBTITLE); break; > + case 0x051: map_key_clear(KEY_RED); break; > + case 0x052: map_key_clear(KEY_CLOSE); break; > + default: goto ignore; > + } > + break; You need to separate the LOGIVENDOR2 case, the switch() isn't valid for LOGIVENDOR and MSVENDOR. -- Vojtech Pavlik SuSE Labs, SuSE CR |
From: Micah F. G. <mfg...@uw...> - 2005-07-06 14:47:53
|
On Wed, 2005-06-07 at 15:55 +0200, Vojtech Pavlik wrote: [snip] > >=20 > > I used my best judgement when assigning keys, since the text on the > > device does not always match up with a key defined in input.h. Here is > > a list of the potentially ambiguous or incorrect mappings: > >=20 > > Start->KEY_RED > > Pictures->KEY_MEDIA > > DVD Menu->KEY_MENU > > SAP->KEY_AUDIO > > Repeat->KEY_AGAIN > > CC/Teletext->KEY_SUBTITLE > > Music->KEY_MP3 >=20 > The problem is that the markings on the device aren't important in case > of the Consumer HID usage page. We need to follow the spec > (http://www.usb.org/developers/devclass_docs/Hut1_11.pdf). >=20 > > Allow me to justify the silly ones. The start key is big and red, > > Google told me SAP stands for "Secondary Audio Program", and there is n= o > > key close to pictures/graphics/image. >=20 > We can add KEY_* definitions, if they are likely to be used on other > devices, too. Well, I am satisfied with these mappings. They make sense (to me) for this device. If you feel like adding keys for some of those buttons, I'll change it to use them. >=20 > > The patch failed on account of HID_UP_LOGIVENDOR not being defined. I > > fixed two hunks manually, so it should work fine with your tree, > > Vojtech. >=20 > Sorry for that, it's defined in an earlier patch I didn't send to you. >=20 > > Thanks again for all your help. Please keep me posted if something is > > wrong. >=20 > > --- gitandhidpatches/drivers/usb/input/hid-input.c 2005-07-05 18:29:32.= 726219000 -0400 > > +++ micah/drivers/usb/input/hid-input.c 2005-07-05 18:42:15.489888750 -= 0400 > > @@ -237,6 +237,7 @@ > > case 0x000: goto ignore; > > case 0x034: map_key_clear(KEY_SLEEP); break; > > case 0x036: map_key_clear(BTN_MISC); break; > > + case 0x045: map_key_clear(KEY_RADIO); break; >=20 > This is rather suspicious, considering what Consumer.0045 is supposed to > mean. I can add it, but I expect it'll be incorrect for other devices. I am the appropriate authority to make this decision. Now that I look at the spec, I see your point. Its up to you, but in hindsight, I don't see much point in breaking the specifications. If you add a KEY_MENU_RIGHT, I'll change it, if not, I wont. > > - case 0x209: map_key_clear(KEY_PROPS); break; > > + case 0x209: map_key_clear(KEY_INFO); break; >=20 > See the spec on this one. Yup, my bad. Let me know what you want to do with ID 45 on the consumer page (and the other buttons), and I'll resubmit. --=20 Micah Galizia mfg...@uw... "The mark of an immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one." --W. Stekel |
From: Vojtech P. <vo...@su...> - 2005-07-06 18:57:20
|
On Wed, Jul 06, 2005 at 10:49:47AM -0400, Micah F. Galizia wrote: > On Wed, 2005-06-07 at 15:55 +0200, Vojtech Pavlik wrote: > [snip] > > > > > > I used my best judgement when assigning keys, since the text on the > > > device does not always match up with a key defined in input.h. Here is > > > a list of the potentially ambiguous or incorrect mappings: > > > > > > Start->KEY_RED > > > Pictures->KEY_MEDIA > > > DVD Menu->KEY_MENU > > > SAP->KEY_AUDIO > > > Repeat->KEY_AGAIN > > > CC/Teletext->KEY_SUBTITLE > > > Music->KEY_MP3 > > > > The problem is that the markings on the device aren't important in case > > of the Consumer HID usage page. We need to follow the spec > > (http://www.usb.org/developers/devclass_docs/Hut1_11.pdf). > > > > > Allow me to justify the silly ones. The start key is big and red, > > > Google told me SAP stands for "Secondary Audio Program", and there is no > > > key close to pictures/graphics/image. > > > > We can add KEY_* definitions, if they are likely to be used on other > > devices, too. > > Well, I am satisfied with these mappings. They make sense (to me) for > this device. If you feel like adding keys for some of those buttons, > I'll change it to use them. > > > > > > The patch failed on account of HID_UP_LOGIVENDOR not being defined. I > > > fixed two hunks manually, so it should work fine with your tree, > > > Vojtech. > > > > Sorry for that, it's defined in an earlier patch I didn't send to you. > > > > > Thanks again for all your help. Please keep me posted if something is > > > wrong. > > > > > --- gitandhidpatches/drivers/usb/input/hid-input.c 2005-07-05 18:29:32.726219000 -0400 > > > +++ micah/drivers/usb/input/hid-input.c 2005-07-05 18:42:15.489888750 -0400 > > > @@ -237,6 +237,7 @@ > > > case 0x000: goto ignore; > > > case 0x034: map_key_clear(KEY_SLEEP); break; > > > case 0x036: map_key_clear(BTN_MISC); break; > > > + case 0x045: map_key_clear(KEY_RADIO); break; > > > > This is rather suspicious, considering what Consumer.0045 is supposed to > > mean. I can add it, but I expect it'll be incorrect for other devices. > > I am the appropriate authority to make this decision. Now that I look > at the spec, I see your point. Its up to you, but in hindsight, I don't > see much point in breaking the specifications. If you add a > KEY_MENU_RIGHT, I'll change it, if not, I wont. > > > > - case 0x209: map_key_clear(KEY_PROPS); break; > > > + case 0x209: map_key_clear(KEY_INFO); break; > > > > See the spec on this one. > > Yup, my bad. > > Let me know what you want to do with ID 45 on the consumer page (and the > other buttons), and I'll resubmit. Keep the KEY_RADIO. It hasn't been mapped at all up to now, and I'll change it if it's ever used on another device and somebody complains. -- Vojtech Pavlik SuSE Labs, SuSE CR |
From: Micah F. G. <mfg...@uw...> - 2005-07-06 19:20:28
Attachments:
LogitechUltraXMediaRemote-2.diff
|
Hello all, Hopefully there are no other issues with this patch, but again, let me know if there are. Thanks again! -- Micah F. Galizia mfg...@uw... "The mark of an immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one." --W. Stekel |
From: Vojtech P. <vo...@su...> - 2005-07-06 19:39:19
|
On Wed, Jul 06, 2005 at 03:20:12PM -0400, Micah F. Galizia wrote: > Hello all, > > Hopefully there are no other issues with this patch, but again, let me > know if there are. Can you add a comment and a Signed-off-by: line? > > Thanks again! > -- > Micah F. Galizia > mfg...@uw... > > "The mark of an immature man is that he wants to die > nobly for a cause, while the mark of the mature man is > that he wants to live humbly for one." --W. Stekel > --- gitandhidpatches/drivers/usb/input/hid-input.c 2005-07-05 18:29:32.726219000 -0400 > +++ micah/drivers/usb/input/hid-input.c 2005-07-06 15:17:30.557711250 -0400 > @@ -237,6 +237,7 @@ > case 0x000: goto ignore; > case 0x034: map_key_clear(KEY_SLEEP); break; > case 0x036: map_key_clear(BTN_MISC); break; > + case 0x045: map_key_clear(KEY_RADIO); break; > case 0x08a: map_key_clear(KEY_WWW); break; > case 0x08d: map_key_clear(KEY_PROGRAM); break; > case 0x095: map_key_clear(KEY_HELP); break; > @@ -308,9 +309,32 @@ > > case HID_UP_MSVENDOR: > case HID_UP_LOGIVENDOR: > + > + goto ignore; > + > case HID_UP_LOGIVENDOR2: > > - goto ignore; > + switch(usage->hid & HID_USAGE) { > + case 0x004: map_key_clear(KEY_AGAIN); break; > + case 0x00d: map_key_clear(KEY_HOME); break; > + case 0x024: map_key_clear(KEY_SHUFFLE); break; > + case 0x025: map_key_clear(KEY_TV); break; > + case 0x026: map_key_clear(KEY_MENU); break; > + case 0x031: map_key_clear(KEY_AUDIO); break; > + case 0x032: map_key_clear(KEY_SUBTITLE); break; > + case 0x033: map_key_clear(KEY_LAST); break; > + case 0x047: map_key_clear(KEY_MP3); break; > + case 0x048: map_key_clear(KEY_DVD); break; > + case 0x049: map_key_clear(KEY_MEDIA); break; > + case 0x04a: map_key_clear(KEY_VIDEO); break; > + case 0x04b: map_key_clear(KEY_ANGLE); break; > + case 0x04c: map_key_clear(KEY_LANGUAGE); break; > + case 0x04d: map_key_clear(KEY_SUBTITLE); break; > + case 0x051: map_key_clear(KEY_RED); break; > + case 0x052: map_key_clear(KEY_CLOSE); break; > + default: goto ignore; > + } > + break; > > case HID_UP_PID: > -- Vojtech Pavlik SuSE Labs, SuSE CR |