[keymap] Samsung Series 9 laptop 900X3C: missing some keys

Bug #1012365 reported by Jerker Nordh on 2012-06-12
This bug affects 31 people
Affects Status Importance Assigned to Milestone
systemd (Ubuntu)

Bug Description

There isn't a correct translation from scancodes to keycodes in place for the 900X3C laptop, for more information see "http://jablonskis.org/2012/linux-and-samsung-series-laptop-9-fn-keys/", however the codes on that page are not correct for 900X3C.

/lib/udev/keymap -i input/event3 gives the following information


scan code: 0xCE key code: kpplusminus
scan code: 0x89 key code: brightnessdown
scan code: 0x88 key code: brightnessup
scan code: 0x82 key code: switchvideomode
scan code: 0xF7 key code: f22
scan code: 0xA0 key code: mute
scan code: 0xAE key code: volumedown
scan code: 0xB0 key code: volumeup
got scan code event 0x97 without a key code event
got scan code event 0x96 without a key code event
scan code: 0xB3 key code: prog3
got scan code event 0xD5 without a key code event

The correct functionality would be:
Fn+F1: "Easy Settings"
Fn+F2: Brightness Down (OK)
Fn+F2: Brightness Up (OK)
Fn+F3: Switch Internal/External monitor
Fn+F4: Touchpad On/off
Fn+F6: Mute (OK)
Fn+F7: Vol Down (OK)
Fn+F8: Vol Up (OK)
Fn+F9: Keyboard backlight down
Fn+F10: Keyboard backlight up
Fn+F11: Silent Mode (toggle performance levels for reduced noise)
Fn+F12: Wireless on/off

$ lsb_release -rd
Description: Ubuntu 12.04 LTS
Release: 12.04

$ apt-cache policy udev
  Installed: 175-0ubuntu9
  Candidate: 175-0ubuntu9
  Version table:
 *** 175-0ubuntu9 0
        500 http://se.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in udev (Ubuntu):
status: New → Confirmed
svenmeier (sven-meiers) wrote :

See RedHat 838036 too (sans "/usr" prefix).

Martin Pitt (pitti) wrote :

Can you please provide a mapping of scan codes to intended key codes, as documented by /usr/share/doc/udev/README.keymap.txt.gz ? Thanks!

Changed in udev (Ubuntu):
status: Confirmed → Incomplete
no longer affects: ubuntu-translations
Jerker Nordh (ajn) wrote :
Jerker Nordh (ajn) wrote :
Jerker Nordh (ajn) wrote :

Added keymap and force-release file as attachments, originally from http://blog.nonobis.nl/?p=11

Changed in udev (Ubuntu):
status: Incomplete → Confirmed
Martin Pitt (pitti) wrote :

I added this upstream to the standard samsung-series-9 map, which also covers a lot of similar models: http://cgit.freedesktop.org/systemd/systemd/commit/?id=90fc91d0065e20

Note that this keeps the "silent mode" key as "prog3", as nothing in the desktop actually would do anything with KEY_SILENTMODE.


affects: udev (Ubuntu) → systemd (Ubuntu)
Changed in systemd (Ubuntu):
status: Confirmed → Fix Committed
tags: added: keymap
Jerker Nordh (ajn) wrote :

"Note that this keeps the "silent mode" key as "prog3", as nothing in the desktop actually would do anything with KEY_SILENTMODE."

Actually when the samsung laptop module is loaded it is possible to switch the "performance mode" of the laptop, which for example I have bounded to the "silent mode"-button since that is exactly what is accomplishes. (Slows down the performance which lowers fan-noise)

Of course by default it wouldn't do anything for a user, but by exposing the correct name it could be easier in the future when/if more laptops ship with similar functionality.

Martin Pitt (pitti) on 2013-05-21
summary: - Samsung Series 9 laptop 900X3C not all keys correctly translated
+ [keymap] Samsung Series 9 laptop 900X3C: missing some keys
Սահակ (petrosyan) wrote :

Martin, I don't understand your patch.

I don't think there is such a model as "900XC3".

All Samsung series 9 laptops use the same key scancodes.

Սահակ (petrosyan) wrote :

Martin please revert this patch.

It is absolutely incorrect.

Samsung never ever made a laptop with a model "900XC3"

Samsung made a model called "900X3C" but that model is already caught by "*900X3*" expression.

Please revert your patch and close this bug as "Invalid".


Jerker Nordh (ajn) wrote :

This model seems to have been added in upstream commit 68c77c2f6168dca0ce7b5edb81612cd6be39e63d


Before that it was definitely not working, and on my 13.04 install I still had to manually fix it, so I can't see why this bug would be invalid?

Ie, it was a problem 12 months ago, it is still a problem now, and the exact solution was posted in the initial bugreport.

svenmeier (sven-meiers) wrote :

The device name is "900X3C" and the following commit upstream fixes the issue:


But this fix is still not part of Ubuntu, so why should this bug be invalid?

Սահակ (petrosyan) wrote :
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 204-0ubuntu5

systemd (204-0ubuntu5) saucy; urgency=low

  * Add 0000-upstream-keymaps.patch: Backport latest keymap fixes from
    upstream, as we won't be able to update to newer upstream releases anytime
    soon. (LP: #1193147, #1157334, #1152377, #1012365, #727139)
  * Refresh our patches to apply cleanly.
 -- Martin Pitt <email address hidden> Fri, 05 Jul 2013 08:54:06 +0200

Changed in systemd (Ubuntu):
status: Fix Committed → Fix Released
Սահակ (petrosyan) wrote :

sven, do you agree that this commit is incorrect and should be reverted?


svenmeier (sven-meiers) wrote :

Yes, it should be reverted: there is no "900XC3" produced by Samsung. The actual "900X3C" (I'm writing on just now) is matched by *900X3*.

Martin Pitt (pitti) wrote :

Reverted in http://cgit.freedesktop.org/systemd/systemd/commit/?id=f3c19b70fa97. Sorry for mixing up the letters! As this is essentially a no-op, I just leave this bug closed.

karlingen (karlo-m) wrote :

Is there a fix for this for 13.04?

Martin Pitt (pitti) wrote :

You can download the two rules files from http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/keymap?id=f3c19b70fa97 and put them into /etc/udev/rules.d/ for the time being. (For Ubuntu 13.04)

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers