Ubuntu on the samsung 900X3C

Recently I got my hands on a (actual several) samsung 900X3C laptop(s). If anything competes with the macbook air it has got be these these laptops. Samsung has done a great job on this one.

But unfortunately running Ubuntu precise or even Quantal on these beautiful machines doesn’t come without glitches. So I decided to write up my experiences with it, resulting in a laptop that can definitely compete with the Windows version.

When it came out of the box, the first thing I did was boot it with an Ubuntu 12.04 alternate 64 bit CD:

After installing, the first thing I noticed after the first reboot was the error:

Error: no video mode activated

Now I’ve seen that one before and it actually never bothered me, but this time it did. Booting a laptop like this and starting with an error is just not done. So I decided to dig in to it. These errors only show up on machines installed with encrypted harddrives. I figured the problem must be in grub trying to access some files outside the bootpartition since in that stage of booting it is the only partition available. A quick search led me to the following Bug. So my hunch was right. I did a:

sudo cp /usr/share/grub/*pf2 /boot/grub

And fixed the first problem. Unfortunately there were a few to come.

FN-Keys

The first thing I noticed after booting in my freshly installed Ubuntu 12.04 was the lack of some Fn-keys working. Now I’ve dealt with that before, so the first thing I looked for was the udev keymap rules. I ran into an excellent article on it:

There are actually several other distros reporting the problem. The problem is that the udev keymap files are actually different from the 900X3A/B and these are the ones that ship with ubuntu. So we have to create our own:

Before you do make sure you did a apt-get update and apt-get dist-upgrade. There is a new version of udev which will overwrite our changes (I learned that the hard way ;) )

The following bugreport actually saved me some work:

Steps to fix:

1. add /lib/udev/keymaps/samsung-900x3c

# /lib/udev/keymaps/samsung-900x3c
0xCE prog1               # FN+F1 System Settings
0x89 brightnessdown      # FN+F2 Brightness down
0x88 brightnessup        # FN+F3 Brightness up
0x82 switchvideomode     # FN+F4 Switch video mode
0xF9 f23                 # FN+F5 Turn touchpad off
0xA0 mute                # FN+F6 Mute
0xAE volumedown          # FN+F7 Volume down
0xB0 volumeup            # FN+F8 Volume up
0x97 kbdillumdown        # FN+F9 Keyboard backlight down
0x96 kbdillumup          # FN+F10 Keyboard backlight up
0xB3 silentmode          # FN+F11 Silentmode
0xD5 wlan                # FN+F12 WiFi

2. add /lib/udev/keymaps/force-release/samsung-900x3c

# /lib/udev/keymaps/force-release/samsung-900x3c
0xCE # FN+F1 System Settings
0x89 # FN+F2 Brightness down
0x88 # FN+F3 Brightness up
0x82 # FN+F4 Switch video mode
0xF9 # FN+F5 Turn touchpad off
0xA0 # FN+F6 Mute
0xAE # FN+F7 Volume down
0xB0 # FN+F8 Volume up
0x97 # FN+F9 Keyboard backlight down
0x96 # FN+F10 Keyboard backlight up
0xB3 # FN+F11 Silentmode
0xD5 # FN+F12 WiFi

3. edit /lib/udev/rules.d/95-keymap.rules
add following line to the other Samsung specific lines

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

4. edit /lib/udev/rules.d/95-keyboard-force-release.rules
add following line to the other Samsung specific lines

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

Now that we’ve done that reboot your machine and see the backlight Fn-keys are actually working. Leaving us with a few dead keys, the wireless, CPU fan and the Fn-1, which I assume has to open up some controlpanel.

Luckily there’s the “Samsung on my laptop” project by Voria:

Just add the repository with:

apt-add-repository ppa:voria/ppa
apt-get update
apt-get install samsung-tools xbindkeys-config.

Now the first thing we want to do is open the samsung-tools configuration editor:

samsung-tools-preferences


Next configure the dead keys with xbindkeys-config. It will result in a .xbindkeysrc file in your homedirectory. Mine looks like this:

#fnf1

"/usr/bin/gnome-control-center"
m:0x0 + c:156
XF86Launch1

#fnf11
"/usr/bin/samsung-tools --show-notify --quiet --cpu hotkey"
m:0x0 + c:210
XF86Launch3

#fnf12
"/usr/bin/samsung-tools --show-notify --quiet --wireless hotkey"
m:0x0 + c:246
XF86WLAN

# End of xbindkeys configuration
"SamsungToolsDummyCommand"
Control+Alt+Shift+Mod4+F1+F2+F3

#
# End of xbindkeys configuration

For future users you might want to copy this file to /etc/skel.

Hibernation and suspend

Hibernation en Linux never seemed to go hand in hand. There were loads of times it got fixed, then broken then fixed  and then again broken. For now using the 3.5 kernel seems to fix most issues. I’ve compiled the latest 64 bit kernel from ubuntu. This kernel also includes the latest samsung_laptop module. You can download the kernel and the headers here.
I did remove the samsung-tools power management file from /etc/pm/sleep.d. Since I’m using the 3.5 kernel it shouldn’t be nescesarry.

The only problem that I cannot pinpoint is randomness in suspending when closing the lid. Sometimes it works, sometimes it doesn’t. If anyone can shine a light on that I’d be happy to know. I know acpi sees the lid close. I’ve tested that with acpi_listen. Maybe I’ll come back on that in a future post.

- EDIT- I’m actually having the problem right now and ACPI doesn’t see the lid closed. So suspending works like a charm, but is has to be triggered and it’s not if acpi doesn’t see the lidclose. I also noted that acpi cannot detect ac-power / battery power changes. I’ve unplugged my powercable but it still shows:

acpi -a -b -i
Battery 0: Charging, 95%, 00:11:24 until charged
Battery 0: design capacity 5440 mAh, last full capacity 5400 mAh = 99%
Adapter 0: off-line

I think it’s due to this bug

-EDIT2-

I have upgraded the bios of two 900x3c’s to this version. Although a lot of people claimed the acpi-issues returned after a few days or sometimes weeks after a bios upgrade, these laptops are still doing ok. One of them for 3 weeks now. Both running ubuntu 12.10 now but I think 12.04 would be the same.

Trackpad

Now the trackpad actually seems to work pretty ok out of the box. You can set some settings in the control-center but I’d like to tweak it a bit more. After reading about the synaptics touchpad driver, synclient and xorg configuration I resulted in the following config:

/usr/share/X11/xorg.conf.d/52-synaptics-custom.conf

Section "InputClass"
Identifier      "samsung n900x3c clickpad"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "SHMConfig"     "On"
Option "RTCornerButton" "2" #right-click to bottom right
Option "RBCornerButton" "3" #right-click to bottom right
Option "LTCornerButton" "6" #right-click to bottom right
Option "LBCornerButton" "7" #right-click to bottom right
Option "TapAndDragGesture" "1" #tap&release then tap&drag
Option "PalmDetect" "1" #avoid bad track behavior
Option "VertTwoFingerScroll" "1" #two-finger vertical scroll
Option "VertEdgeScroll" "0" #right edge vertical scroll
Option "TapButton1" "1" #one-finger tap = left-click
Option "TapButton2" "3" #two-finger tap = right-click1
Option "ClickPad=1"
EndSection

Now some options only seem not to work in xorg config, so I’ve created a little script to let synclient apply them at boot:

/usr/local/bin/synaptics.sh

#!/bin/sh
synclient RightButtonAreaLeft=1600
synclient RightButtonAreaRight=2946
synclient RightButtonAreaTop=1040
synclient RightButtonAreaBottom=1872

/etc/xdg/autostart/synaptics.desktop

[Desktop Entry]
Type=Application
Exec=/usr/local/bin/synaptics.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=touchpad
Name=touchpad
Comment[en_US]=touchpad addons
Comment=touchpad addons

Now reboot and enjoy your fully functional samsung 900 laptop.

 

 

Comments & Responses

23 Responses so far.

  1. Ricardo says:

    Hi @nonobis,

    Maybe this is the only place on earth where I can find a solution. I bought a Samsung 900X3C and have some of the same issues. The bad thing is that it doesn’t work doing sudo cp /usr/share/grub/*pf2 /boot/grub to fix the boot error. Here you can see the errors I have. Sometimes the system loads after showing that, sometines it just freezes and I have to restart again 2, 3 or 4 times :( Some other times it shows the errors uncomplete, like “erro” (instead of “error: no suitable…”), or “error: no” (instead of “error: no suitable…”).

    Can you please help me? I am not an advanced user but I love using and promoting Ubuntu. Regards from Chile!

    • nonobis says:

      Hi Ricardo, you might want to checkout the full bugreport. Try the suggested changes to /etc/default/grub. Is your hard drive encrypted?

      • Ricardo says:

        OMG! Thanks for your answer, but when I started changing the /etc/default/grub, the first thing I did was Decommenting “#GRUB_GFXMODE=640×480″ and then run “sudo update-grub”, which someone said it would solve the problem.

        The thing is that my computer didn’t boot ever again, and I had to do a fresh install!! I wasted a lot of time configurating and installing software previously, but well… here I am again, with the same problem.

        I’m planning to don’t stop until I can fix this. Do you have any recommendation for a specific change in /etc/default/grub?

        I really need your help. I’m not advanced user and my english is not perfect. Thanks in advance!

      • Ricardo says:

        BTW: how do I find out if my hard drive is encrypted?

  2. Anonymous says:

    Thanks, these is the best touchpad instructions that I could find. And I looked a lot!

  3. Nonobis says:

    Are you able to solve the Hibernation and Suspend issue.
    Have a look here:

  4. Ricardo says:

    Hi again, Nonobis. Do you think you can help me with the problem mentioned above in the comments? I’m having a hard time going through these errors. Most of the times they show up, and some other times not. When they appear, sometimes the system boots anyways, sometimes it doesn’t and I have to restart.

    I don’t want to mess up my system again as I already did :(

  5. Where can I find the best online creative writing courses? I live in NYC so which colleges offer the best online creative writing course? If not in a college than where else?.

  6. in0ni says:

    Nonobis have you tried this for the lid-close suspend issue?
    http://ubuntuforums.org/showthread.php?p=12181670

    i am looking to buy this laptop, and the only thing holding me back it the lid-close issue. otherwise, if you manually suspend does it work just fine? in other words… if you never rely on closing the lid, you can suspend and wake without problems?

    your feedback will be appreciated!

    • nonobis says:

      I tried something similar. The problem is acpi events are, at some point, lost at all. So custom scripts which depend on those events won’t work either. Suspending through the button or the menu works like a charm (I’m using the 3.5 kernel). Another annoying side effect when acpi events are lost is that ubuntu does not see the battery charging or discharging. Same cause.

      • in0ni says:

        i figured. from my searching it seems like this is a common problem with several samsung laptops, and it might be a hardware problem that linux exacerbates:
        https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1027316

        this issue is very concerning, what would you say the bottom line is? you’ve had this laptop for about a month now, i assume… if ubuntu cannot detect the battery charging or discharging — how has that affected your usage? has the laptop ever warned about running low on battery when you know its fully charged? has it ever shutdown due to this abruptly? does it make the laptop unusable at times? do you have a workaround to determine the battery level?

        sadly, this is in my opinion the best option for a linux ultrabook (after the zenbook). but i am having second thoughts about it… i will be traveling a lot w/o internet at times and need something that will be reliable. from your experience so far… is this reliable, or should i just forget about this beautiful laptop?

        your feedback (and this post) is very much appreciated!

        • nonobis says:

          I also noted samsung laptops seem to be affected a lot, so this indeed might be a hardware issue. I’ve updated the bios to the latest available but that doesn’t seem to make a difference.
          https://bugs.launchpad.net/ubuntu/+source/linux/+bug/986724?comments=all

          The bottom line is it is a very annoying “feature”. For now I’ve learned to live with. I try to keep the laptop on AC-power as much as I can. I haven’t had it shutdown abruptly but I’ve read about users who had. No warnings when the battery was fully charged neither when it was fully drained. I do not have a workaround for the batterylevels. The indicator does seem to pick up a one time update after a reboot however. I can tell you one thing, I’d still choose this laptop over the asus zenbook (I have one of those as well).

          For now I’ve installed opensuse 12.2 on it since in the bugreport above it is reported to work “perfectly”. I have my doubts because the laptop showed the exact same issues after installation but this might be due to the fact ubuntu was installed previously. So I did a battery reset which seems to solve the issue for at least a couple of days in ubuntu. Lets see how opensuse does. This might actually shed a light on whether this is a hardware issue or not.

          • in0ni says:

            :/ i definitely did not want to hear that users had the laptop abruptly shutdown, as i will be using it on battery a whole lot…

            please keep us updated on your findings with opensuse. i have also read it was not an issue on opensuse (unless for one case where ubuntu was previously installed).

            anyways… i already ordered the laptop (inpatient), and it receive it on monday. after this discussion and your feedback… i think i will just install opensuse on it instead. being that ubuntu seems to be problematic with this issue, i probably should not even bother installing it. so thanks for the discussion.

            if all works perfectly fine with opensuse i will keep you guys updated, and will also make sure to address it on the ubuntu bug reports.

  7. VaD says:

    I am considering buying series 9, I was wondering how is the battery life on ubuntu?

  8. Mike says:

    You can put the Right and Middle ClickPad button areas in xorg.conf – It’s just that the option does not match the synclient options you’re using in “synaptics.sh”.

    Take a look at the SoftButtonAreas option in the synaptics(5) manpage. As an example, I have:


    Option "SoftButtonAreas" "2300 0 1200 0 1800 2299 1200 0"

    In my xorg.conf.d/52-synaptics-custom.conf

  9. Hi,

    Thanks for this great article. I have most of it working. However, I’m unable to set the Keyboard backlight.

    The backlight is always fully on. If I press the FnF9, the backlight status bar is show in the notification area, but nothing happends :/

    Also pressing FnF1 turns of the screen and I’m unable to turn it on again.

    Any ideas? Thanks!

    • nonobis says:

      You probably don’t have the latest samsung_laptop module. Try upgrading your kernel to at least 3.4 or upgrade to ubuntu 12.10. Both should fix the problem.

  10. ipLynx says:

    Many thanks to everybody.

Leave a Reply to Arnold Daniels Cancel reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>