3

i bought the samsung new series 9 ultrabook ( NP900X3C ). i installed ubuntu 12.04 and the mainline 3.5 kernel. almost everything works perfectly, except some important function keys don't work.

the keys for the screen brightness and the keyboard backlit don't work which is very annoying. i added manually a new keymap required for this notebook model ( guide: http://jablonskis.org/2012/linux-and-samsung-series-laptop-9-fn-keys/ ) but the system doesn't load them.

i added the following lines to the udev rules:

# /lib/udev/rules.d/95-keymap.rules
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*900X3*", RUN+="keymap $name samsung-900x3c"

# /lib/udev/rules.d/95-keyboard-force-release.rules
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*900X3*", RUN+="keyboard-force-release.sh $devpath samsung-900x3c"

the system is unable to load the dmi info which is required ( is it? ) to select the correct keymap. the tool dmidecode returns the folling info:

# dmidecode 2.11
# SMBIOS entry point at 0xdac66000
SMBIOS 2.7 present.
64 structures occupying 2917 bytes.
Table at 0x000E0840.

Invalid entry length (0). DMI table is broken! Stop.

does anyone know how i can fix the dmi problem ( if this is a problem ) or how i can force udev to load my custom keymaps?

2 Answers 2

3

In order to get the fn keys working i first had to update the BIOS ( install windows, update bios, install ubuntu again -> a lot of fun! ) because ubuntu couldn't read the dmi data it requires to load vendor specific configurations and modules. You may check if the dmi data is accessible using the "dmidecode" tool which should return a lot of data ( see other answer ):

$ sudo dmidecode

I updated the kernel to version 3.5.3 since it has some required samsung modules compiled in to it.

I also created two keymap files and added two udev rules as described on the blog Linux And Samsung Series 9 Laptop Fn Keys. You have to replace some module specific strings ( 90X3A > 900X3C*, 90x3a > 900x3c ) as described below.

# /lib/udev/keymaps/samsung-900x3c

0x96 kbdillumup         # Fn+F8 keyboard backlit up
0x97 kbdillumdown       # Fn+F7 keyboard backlit down
0xD5 wlan               # Fn+F12 wifi on/off
0xCE prog1              # Fn+F1 performance mode (?)
0x8D prog2              # Fn+F6 battery life extender

#/lib/udev/keymaps/force-release/samsung-900x3c

# forces key release
0xCE # Fn+F8 keyboard backlit up
0x8D # Fn+F7 keyboard backlit down
0x97 # Fn+F12 wifi on/off
0x96 # Fn+F1 performance mode (?)
0xD5 # Fn+F6 battery life extender

add this line below the other samsung related lines

# /lib/udev/rules.d/95-keymap.rules
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="900X3C*", RUN+="keymap $name samsung-900x3c"

add this line below the other samsung related lines

# /lib/udev/rules.d/95-keyboard-force-release.rules
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="900X3C*", RUN+="keyboard-force-release.sh $devpath samsung-900x3c"

The fn keys for the keyboard backlit and the screen brightness work now. The wifi and performance mode keys still don't work. You have probably to follow the instructions in the blog mentioned above.

1
  • I had to add it to samsung-other. Previously I had it only defined in samsung-900x4c (my model) but it did not work and now it works super. Oct 8, 2013 at 19:31
0

Maybe is it because of the 3.5 kernel. I have the same computer with kernel 3.2.0-29 (proposed kernel) and dmidecode is just fine:

$ sudo dmidecode
SMBIOS 2.7 present.
64 structures occupying 2917 bytes.
Table at 0x000E0840.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Phoenix Technologies Ltd.
Version: P02AAC
Release Date: 06/01/2012
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 3072 kB
Characteristics:
PCI is supported
    BIOS is upgradeable
    BIOS shadowing is allowed
    Boot from CD is supported
    Selectable boot is supported
    EDD is supported
    Print screen service is supported (int 5h)
    8042 keyboard services are supported (int 9h)
            ...
3
  • thanks, but i cant get the dmi data with any kernel version :( Aug 6, 2012 at 19:25
  • have you tried with another live distribution ? (fedora for example)
    – sherpa
    Aug 6, 2012 at 19:38
  • nope. i will checkout that later. for the moment i added the rules a the top of the rule files without the dmi conditions in front of them, this works and some function keys are working now ( keyboard backlit still doesn't work, but this is not a problem of the not working function keys ). since the device tends to hang randomly on boot i think there may be some sort of hardware problem. Aug 6, 2012 at 20:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .