Installing Linux (Whitebox EL - a RedHat EL clone) on a Samsung X05


I bought a Samsung X05 laptop, the version with a 1.5Ghz Pentium M, 512Mb RAM and a 30Gb harddrive.
I wanted dual boot Linux and XP.


At this point I had a fully working dual boot system.  GRUB happily let me boot into XP or Linux.
Here's some things I found:

X11:
I downloaded the Intel 855 Linux driver from http://support.intel.com/support/graphics/sb/CS-010512.htm and installed it as per the instructions (I used the tar.gz, but there's also an rpm).  With this, X only ran in 800x600 resolution.  I fixed this by changing my XF86Config file (relevant bits here):

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Depth    16
                Modes    "1024x768" "800x600"
        EndSubSection
        SubSection "Display"
                Depth    24
                Modes    "1024x768" "800x600"
        EndSubSection
EndSection

and

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Unprobed Monitor"
        HorizSync    31.5 - 60
        VertRefresh  50.0 - 70.0
        Option       "dpms"
EndSection

note the 60Hz HSync.  Possibly this is unwise?  But it made it work at 1024x768.

I decided to map the three silver buttons to something.  Using xev I found that they were:
    WWW keycode 125
    Email keycode 128
    User keycode 124
I'm running Gnome, and so thought that:
    gconftool-2 -t int -s /apps/metacity/global_keybindings/run_command_4 124
would set the button to a run command, and:
    gconftool-2 -t string -s /apps/metacity/keybinding_commands/command_4 "xterm"
would then make it spawn an xterm.  However, this didn't seem to work.  I eventually made it work after looking at another "linux on a samsung" page by creating a ~/.Xmodmap file of:
    keycode 124 = XF86Terminal
    keycode 125 = XF86WWW
    keycode 128 = XF86Mail
    keycode 160 = XF86AudioMute
    keycode 174 = XF86AudioLowerVolume
    keycode 176 = XF86AudioRaiseVolume
and then setting the key binding as a string with:
    gconftool-2 -t string -s /apps/metacity/global_keybindings/run_command_4 XF86Terminal

and the other two, obviously.

I found I kept pressing 'Func' instead of 'Ctrl' (on my other keyboards 'Ctrl' is in the bottom left corner where 'Func' is), so I thought I'd map 'Func' to 'Ctrl' .... but xev doesn't respond to either 'Func' button!  Bollox.

The graphics seem pretty quick to me; my OpenGL apps run quite fast.  Though I'm tempted to buy the one from Xig.

Touchpad:
The touchpad worked fine with the default /dev/mouse driver, including the roller wheel.  I did install a beta Synaptic driver from here, and while that worked fine, it stopped the rollerwheel from working, so I went back to the default driver.
I find the 'tap to select' feature of the touch pad irritating (I keep accidentally triggering it!), but hopefully I'll get used to it.

Ethernet:
The internal ethernet card worked first time, but I've not tried the wireless card yet due to not having a wireless hub yet ...

ACPI:
My current kernel is 2.4.21, which doesn't include ACPI support, so I have absolutely no battery status info.  Also the machine won't shut down fully (it get's to "Shutting down system" and then waits).  And there's no working "Standby" mode, which my old Toshiba Portege had and was very useful.
I'm hoping that when the 2.4.22 kernel turns up these will magically be fixed :) 
I tried building a 2.6.7 kernel, and that went fine (ish) and created a /proc/acpi directory with things in it, but the 'battery' sub directory was suspiciously empty. The Intel 'iasl' program doesn't work on my setup; "iasl -d /proc/acpi/dsdt" throws up a "Could not install table, AE_TABLE_NOT_SUPPORTED" error. I'm already out of my depth here, so I'll have to estimate the battery life by time.
So in a moment of lateral thought, I copied /proc/acpi/dsdt to /tmp and then ran iasl -d /tmp/dsdt and that worked!. Hope rose again ...
I downloaded the 2.4.26 kernel, and got that working, with ACPI switched on. I then applied the 2.4.26 kernel ACPI patch from here and rebuilt the kernel. All the files in /proc/acpi were empty, and dmseg reported an "EmbeddedControl returned AE_BAD_PARAMETER" type messages.
So.
I broadly following these instructions, I created a new dsdt.hex file, which I put in /usr/src/linux-2.4.26/drivers/acpi. I then doctored /usr/src/linux-2.4.26/drivers/acpi/osl.c to this.
I then rebuilt my kernel and rebooted and BINGO /proc/acpi/ had useful stuff in it!
But then X failt to start. "startx" put up a blank screen, then nothing. Ctr+Alt+F1 got back to the console, but curiously there were no errors in the logs. After much fiddling, someone on the WBEL mailing list came up with the solution:
mv /lib/tls /lib/tls-dontuse
rebuilt the Intel 855 driver
And that worked! The default Gnome battery monitor works too I found.
I knocked up a little script to control the CPU speed. You have to be root to run it.

Sound:
This out of the box with things like xine.  I'm not actually fussed about the sound output, so haven't looked into it any further.

CPU Speedstep:
Again, the 2.4.21 kernel doesn't support this, though I think 2.4.22 will do.



Last update 16th July 2004, Bevis

TuxMobil - Linux on laptops, notebooks, PDAs and mobile phones