Sunday, April 15, 2012

gentoo on the samsung 900x3a - the tricky parts

I installed gentoo about two months ago on my shiny new samsung 900x3a, most things work out of the box but some don't.

Kernel module

To make it work first build a custom kernel module created by Corentin Chary (iksaif) . As of 3.3.1 it hasn't made it to mainline yet, although it is scheduled for inclusion. Make sure you have a recent kernel emerged, symlinked, built and installed.
su - cd /usr/src/ git clone https://github.com/iksaif/samsung-laptop-dkms cd samsung-laptop-dkms make make install modprobe samsung-laptop If this works without errors then depmod -a
If you have an error 2 you likely have /usr/src/linux/ pointing to a kernel that isn't the one you are running.

Udev Rules

Enter the following into /lib/udev/keymaps/samsung-90x3a
0x96 kbdillumup # Fn+F8
0x97 kbdillumdown # Fn+F7
0xD5 wlan
This will make the scancodes known to udev.
The next step is create a rule in /lib/udev/rules.d/95-keymap.rules.
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="90X3A", RUN+="keymap $name samsung-90x3a"
This file serves to match the laptop to the keyboard, i.e. in our case it finds a samsung 90x3a and will then load the file we created earlier. This is not triggered right now, to activate them now run:
 grep -A 2 keyboard /proc/bus/input/devices  | grep Sysfs
This will tell you the device name for your keyboard, in my case event5
/lib/udev/keymap input/event5 /lib/udev/keymaps/samsung-90x3a
Now these new rules should be loaded, check that you can see them by running xev in a terminal emulator in X. If you press Fn+F8, then you should see events. If you don't see any, then it isn't working.
More to come...

No comments:

Post a Comment