Csak nem bírtam aludni, dolgoztam a problémán. Ar rc_maps.cfg -s probléma elméletileg nem feltétlenül probléma, mivel nálam a v4l-utils csomag nem is volt telepítve, eddig is ment nélküle tökéletesen a távirányító. A távírányítónak is létezik többféle változata, még a szürke, 45 gombos kiszerelésen belül is.
Mindenesetre sikerült megoldanom a problémát, az rc-hauppauge driver átírásával (a keycode-okat a régebbi config segítségével totóztam ki, jelenleg tökéletesen működik 3.1.5-gentoo alatt):
--- drivers/media/rc/keymaps/rc-hauppauge.c.old 2011-10-24 09:10:05.000000000 +0200
+++ drivers/media/rc/keymaps/rc-hauppauge.c 2011-12-29 04:26:14.000000000 +0100
@@ -186,17 +186,45 @@ static struct rc_map_table rc5_hauppauge
* This one also uses RC-5 protocol
* Keycodes start with address = 0x00
*/
- { 0x001f, KEY_TV },
- { 0x0020, KEY_CHANNELUP },
+ { 0x003b, KEY_SELECT }, /* GO / house symbol */
+ { 0x003d, KEY_POWER2 }, /* system power (green button) */
+
+ { 0x001c, KEY_TV },
+ { 0x0018, KEY_VIDEO }, /* Videos*/
+ { 0x0019, KEY_AUDIO }, /* Music */
+ { 0x001a, KEY_CAMERA }, /* Pictures */
+
+ { 0x001b, KEY_EPG }, /* Guide */
{ 0x000c, KEY_RADIO },
- { 0x0011, KEY_VOLUMEDOWN },
- { 0x002e, KEY_ZOOM }, /* full screen */
+ { 0x0014, KEY_UP },
+ { 0x0015, KEY_DOWN },
+ { 0x0016, KEY_LEFT },
+ { 0x0017, KEY_RIGHT },
+ { 0x0025, KEY_OK }, /* OK */
+
+ { 0x001f, KEY_EXIT }, /* back/exit */
+ { 0x000d, KEY_MENU },
+
{ 0x0010, KEY_VOLUMEUP },
+ { 0x0011, KEY_VOLUMEDOWN },
+
+ { 0x0012, KEY_PREVIOUS }, /* previous channel */
+ { 0x000F, KEY_MUTE },
+
+ { 0x0020, KEY_CHANNELUP }, /* channel / program + */
+ { 0x0021, KEY_CHANNELDOWN }, /* channel / program - */
- { 0x000d, KEY_MUTE },
- { 0x0021, KEY_CHANNELDOWN },
- { 0x0022, KEY_VIDEO }, /* source */
+ { 0x0037, KEY_RECORD }, /* recording */
+ { 0x0036, KEY_STOP },
+
+ { 0x0032, KEY_REWIND }, /* backward << */
+ { 0x0035, KEY_PLAY },
+ { 0x0034, KEY_FASTFORWARD }, /* forward >> */
+
+ { 0x0024, KEY_PREVIOUSSONG }, /* replay |< */
+ { 0x0030, KEY_PAUSE }, /* pause */
+ { 0x001e, KEY_NEXTSONG }, /* skip >| */
{ 0x0001, KEY_1 },
{ 0x0002, KEY_2 },
@@ -210,9 +238,14 @@ static struct rc_map_table rc5_hauppauge
{ 0x0008, KEY_8 },
{ 0x0009, KEY_9 },
- { 0x001e, KEY_RED }, /* Reserved */
+ { 0x000a, KEY_TEXT }, /* keypad asterisk as well */
{ 0x0000, KEY_0 },
- { 0x0026, KEY_SLEEP }, /* Minimize */
+ { 0x000e, KEY_SUBTITLE }, /* also the Pound key (#) */
+
+ { 0x000b, KEY_RED }, /* red button */
+ { 0x002e, KEY_GREEN }, /* green button */
+ { 0x0038, KEY_YELLOW } /* yellow button */,
+ { 0x0029, KEY_BLUE }, /* blue button */
};
static struct rc_map_list rc5_hauppauge_new_map = {
A kérdés az, hogy érdemes lenne e megnézni, hogy git linux/kernel -nél mi a helyzet, esetleg a modul szerzőjének elküldeni a diff-et?