Bug 72311

Summary: Samsung 700G series keyboard is not matched by keymap rules
Product: systemd Reporter: Dmitry Pisklov <dpisklov>
Component: generalAssignee: systemd-bugs
Status: RESOLVED FIXED QA Contact: systemd-bugs
Severity: enhancement    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Patch for Samsung 700G Fn keys mapping

Description Dmitry Pisklov 2013-12-04 12:31:46 UTC
Created attachment 90226 [details]
Patch for Samsung 700G Fn keys mapping

I'm using udev-208 on Gentoo. I found that some of my Fn keys are not working, namely - keyboard backlit up/down, fan control and settings.

$ cat /sys/class/dmi/id/product_name
700G7C

After some googling I found that I need to look into this file:
/lib/udev/hwdb.d/60-keyboard.hwdb
I found plenty of Samsung models in there, but not mine. I actually managed to add my model by changing this:

# Series 5
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr*
 KEYBOARD_KEY_ce=!prog1                                 # Fn+F1 launch settings
 KEYBOARD_KEY_a0=!mute                                  # Fn+F6 mute
 KEYBOARD_KEY_ae=!volumedown                            # Fn+F7
 KEYBOARD_KEY_b0=!volumeup                              # Fn+F8
 KEYBOARD_KEY_97=!kbdillumdown                          # Fn+F9 keyboard backlight down
 KEYBOARD_KEY_96=!kbdillumup                            # Fn+F10 keyboard backlight up
 KEYBOARD_KEY_b3=!prog3                                 # Fn+F11 fan/cooling mode changer
 KEYBOARD_KEY_d5=!wlan                                  # Fn+F12 wlan/airplane switch


to that:
# Series 5
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr*
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr*
 KEYBOARD_KEY_ce=!prog1                                 # Fn+F1 launch settings
 KEYBOARD_KEY_a0=!mute                                  # Fn+F6 mute
 KEYBOARD_KEY_ae=!volumedown                            # Fn+F7
 KEYBOARD_KEY_b0=!volumeup                              # Fn+F8
 KEYBOARD_KEY_97=!kbdillumdown                          # Fn+F9 keyboard backlight down
 KEYBOARD_KEY_96=!kbdillumup                            # Fn+F10 keyboard backlight up
 KEYBOARD_KEY_b3=!prog3                                 # Fn+F11 fan/cooling mode changer
 KEYBOARD_KEY_d5=!wlan                                  # Fn+F12 wlan/airplane switch


So first thing is - can you add this line in the repo?

Second - "Series 5" comment is indeed misleading for 700XXX series laptops...

Third thing:
few lines down in the file, there's a block:
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr*
 KEYBOARD_KEY_ba=ejectcd
 KEYBOARD_KEY_96=keyboardbrightnessup
 KEYBOARD_KEY_97=keyboardbrightnessdown

Apparently, this simply doesn't work, at least 2 last lines, as (it seems) keyboardbrightnessup/down is not correct key. I tried changing the blocks above from kbdillumdown/up to keyboardbrightnessdown/up and found that udev simply ignores those rules and doesn't apply these codes. So I guess this block can be removed altogether to avoid confusion.

PS I now got my keys recognized by X correctly as XF86KbdBrightnessUp/XF86KbdBrightnessDown but they are not doing anything - I wonder if someone happens to know how to fix that?..

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.