GNU/Linux on a Samsung X20

This document describes how I installed and configured GNU/Linux (SuSE 9.3 distribution) on a Samsung X20 laptop.


Technical specifications

Component Details
CPU Intel Centrino 1.6 GHz
RAM 1024 MB
Hard disk 60 GB
Display 15" 1400×1050 LCD
Graphics controller Intel i915
Modem 56 Kbps V.92 AC'97 S/W modem
Ethernet BCM4401-B0 100Base-TX
Wireless LAN PRO/Wireless 220BG
DVD drive TSST 8x DVD-ROM, 24x RW, 24x CD-R, 24x CD
Sound AC'97
Ports IEEE 1394 (FireWire)
3× USB 2.0
RJ45 (Ethernet)
RJ11 (modem)
memory stick


Component Status
ACPI not tested
DVD working
Ethernet working
wireless working
FireWire not tested
graphics working
graphics, dual monitor mode not tested
hard disk working
modem not tested
PCMCIA not tested
sound, MIDI not tested
sound, wave working
TV-out not tested
memory stick not tested
S/PDIF not tested
USB working


Preparation and installation

Before booting for the first time, press F2 to enter the BIOS setup and make a note of which version you have. If necessary, upgrade your BIOS as there are some bugs in older versions which may affect the WLAN on/off button and other components.

The X20 comes with Windows XP preinstalled. Its hard drive partition must be shrunk in order to make room for GNU/Linux.

SuSE 9.3 was installed via network through my company's LAN. Except for the display setup, installation went off without a hitch.


SuSE's X configuration utility, SaX, had trouble setting up the graphics card and display. I had to use the default /etc/X11/ file produced during installation. This gave me a respectable display of 1280×1024 at 24 bpp.

To achieve the maximum LCD resolution of 1400×1050, you need to make several changes to the system. First, download and install 915resolution and add the following line to /etc/init.d/boot.local:

915resolution 5c 1400 1050 

You may need to obtain the latest i810 driver; be sure you download the one appropriate for your version of X.Org. Install the driver in /usr/X11R6/lib/modules/drivers. The i810 driver that comes with SuSE 9.3 does not support 1400×1050 mode; I'm not sure about later versions of SuSE.

Finally, modify the relevant sections of your /etc/X11/xorg.conf file to read as follows:

Section "Module"
  Load         "dbe"
  Load         "dri"
  Load         "extmod"
  Load         "glx"
  Load         "freetype"

Section "Monitor"
  Identifier	"LaptopLCD"
  Option	"DPMS"
  DisplaySize   304 228

Section "Device"
  Identifier  "i915Chipset"
  Driver      "i810"
  BusID	      "PCI:0:2:0"
  VideoRam    131072
  Option      "NoAccel"       "false"
  Option      "DRI"           "true"

Section "Screen"
  Identifier	"LaptopScreen"
  Device	"i915Chipset"
  Monitor	"LaptopLCD"
  DefaultDepth	24
  SubSection "Display"
    Viewport	0 0
    Depth	8
  SubSection "Display"
    Viewport	0 0
    Depth	16
  SubSection "Display"
    Viewport	0 0
    Depth	24

Section "ServerLayout"
  Screen       0  "LaptopScreen" 0 0

Section "DRI"
    Group      "video"
    Mode       0660


The following hotkeys work out of the box:

adjust LCD brightness
toggle LCD/external monitor
toggle S/PDIF
toggle 3D sound
toggle "Etiquette mode"
toggle touchpad
touchpad middle button
toggle touchpad
WLAN button
toggle WLAN

Volume hotkeys

To get Fn-F6 (mute), Fn-Left (volume down), and Fn-Right (volume up) to work, put the following in /etc/X11/Xmodmap:

keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute 

If you are using KDE and the package `kdeutils3-laptop' is installed, then you will get nice popups for volume adjustment. (If this not enabled by default, go to Control Center→KDE Components→Service Manager, make sure the "Use" box for "KMilo" is ticked, and if necessary, start it by clicking the "Start" button.

ACPI hotkeys

Not tested; check back later.

Application hotkeys

To enable the three application buttons, add the following lines to /etc/init.d/boot.local:

setkeycodes 74 93
setkeycodes 75 94

Then add the following to /etc/X11/Xmodmap:

keycode 131 = F13
keycode 128 = F14
keycode 208 = F15