Para obter as chaves fn funcionando, primeiro tive que atualizar o BIOS (instalar janelas, atualizar bios, instalar o Ubuntu novamente - > muito divertido!) porque o ubuntu não podia ler os dados dmi necessários para carregar configurações e módulos específicos do fornecedor. Você pode verificar se os dados dmi estão acessíveis usando a ferramenta "dmidecode", que deve retornar muitos dados (veja outra resposta):
$ sudo dmidecode
Eu atualizei o kernel para versão 3.5.3 porque ele tem alguns módulos samsung necessários compilados para ele.
Eu também criei dois arquivos keymap e adicionei duas regras do udev, conforme descrito no blog Linux e Samsung Series 9 Teclas Fn para Laptop . É necessário substituir algumas strings específicas do módulo (90X3A > 900X3C *, 90x3a > 900x3c) conforme descrito abaixo.
# /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
adicione esta linha abaixo das outras linhas relacionadas da samsung
# /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"
adicione esta linha abaixo das outras linhas relacionadas da samsung
# /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"
As teclas fn para o teclado retroiluminado e o brilho da tela funcionam agora. As teclas do modo wifi e desempenho ainda não funcionam. Você provavelmente deve seguir as instruções no blog mencionado acima.