Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
add comment

2 Answers 2

up vote 2 down vote accepted

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.

share|improve this answer
    
+1 very usefull link. Thanks –  MyTitle Feb 26 '13 at 18:33
    
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. –  Jernej Jerin Oct 8 '13 at 19:31
add comment

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)
            ...
share|improve this answer
    
thanks, but i cant get the dmi data with any kernel version :( –  vandi Aug 6 '12 at 19:25
    
have you tried with another live distribution ? (fedora for example) –  sherpa Aug 6 '12 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. –  vandi Aug 6 '12 at 20:15
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.