Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Gentoo on Samsung X30 WVC 1500 Notebook (Howto & Discuss
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
c_t
n00b
n00b


Joined: 29 Oct 2003
Posts: 36
Location: Berlin, Germany

PostPosted: Sun Jul 04, 2004 5:57 pm    Post subject: Gentoo on Samsung X30 WVC 1500 Notebook (Howto & Discuss Reply with quote

This topic is no longer beeing updated, you will find the most recent Version in the gentoo-wiki!

Gentoo on Samsung X30

Announcements:
I'd be very pleased if some more X30-owners could contribute their experiences with s3 resum to this bug:
http://bugme.osdl.org/show_bug.cgi?id=3203 Thanks!!


Updates:
  • 2005-02-06: Changed some things concerning Kernel & ACPI, especially acpid-config
  • 2004-11-17: Added links at the end of this howto
  • 2004-11-09: Added changes concerning new Kernel: gentoo-dev-sources-2.6.9-r1

In March 2004 I bought a new Samsung X30 Laptop. It is a pretty nice machine, very silent, fast, very good widescreen-display, not too heavy and its design definately has style.
The first thing I did was to fire up the pre-installed Windows XP to start the long way of a gentoo installation.

Most things work perfectly right now, but there are still some limitations. So if anyone has any suggestions how to fix any of the problems I'll mention, feel free to post it right here.

So now let's begin. I'll just write down the problems I was confronted with during the installation and which solutions I found.

Table of Contents

1. Installation
1.1 Basic install
1.2 x.org install

2. Hardware Support
2.1 Network
2.2 WLAN
2.3 Powersaving and ACPI
2.4 USB
2.5 FireWire
2.6 Touchpad
2.7 Special-Keys

3. Extra-Tuning
3.1 Gensplash / Frambuffer-Console

4. Resources

1. Installation

1.1 Basic installation

The basic installation of gentoo works without problems. Just follow the installation-guide on www.gentoo.org/doc. To benefit from the full performance of my Pentium M and to optimize the code I use the following CFLAGS which I found somewhere on the net. I also set a lot of USE-flags which you perhaps do not need:
/etc/make.conf
Code:

USE="acpi alsa avi cups curl dga dvd encode ethereal fbcon gd gif gphoto2 gpm -gtk -gnome imagemagick imap innodb jpeg junit kde kerberos lcms lirc maildir mmx mozilla mpeg mpi mysql oggvorbis opengl pam pcmcia plotutils png pnp qt quicktime samba sasl scanner sdl slp snmp socks5 sse ssl tiff truetype trusted usb wmf X xinerama xml zlib x86 -apm -arm -alpha -berkdb -slang -sparc"

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=pentium3 -pipe -O2 -fomit-frame-pointer -fforce-addr -frename-registers -fprefetch-loop-arrays -falign-functions=64"
CXXFLAGS="${CFLAGS}"


I currently use gentoo-dev-sources-2.6.10-r6. There are still some problems with the Standbymodes in that release, I hope they will fix that soon (it's a known issue). Despite of that they work really fine!


1.2 x.org installation

First of all you best follow the desktop configuration guide which can be found in the documentation section of gentoo.org. BTW: I decided to switch to x.org, it works perfectly!
So after you have emerged xorg-x11 you need to install the video drivers:
Code:
$ ACCEPT_KEYWORDS="~x86" emerge nvidia-kernel nvidia-glx

I first didn't really know how to configure my X-Server, since the resolution of 1280x800 is not so common but I fortunately found hendrik_x30 in this forum who gave me his working XF86Config / xorg.conf. If you're interested in my config file have a look at the second post down in this topic. Note that it will not work with the Samsung X30 WVC1700 since it has a higher resolution.
Now copy my xorg.conf to /etc/X11/. If you are sure that you have setup everything according to the guide you can try to start the x-server:
Code:
$ startx

Now you should see a nice Nvidia-Logo and the x-session you previously defined in /etc/rc.conf should be started. I currently use KDE-3.3.0 which works just fine for me.
If everything is working you can now add your loginmanager to the default runlevel. In my case this is kdm:
Code:
$ rc-update add kdm default

Ok, X is running, but now we can start the tricky part on a graphical interface which is much more comfortable than always googeling the web with lynx ;).



2. Hardware Support

Before you proceed be sure to have module support activated in the kernel:
Code:

    Loadable module support  --->
    [*] Enable loadable module support
    [*]   Module unloading
    [*]   Automatic kernel module loading



2.1 Network
The Broadcom Corporation BCM4401 100Base-T ethernet controller is supported by the kernel:
Code:

    Device Drivers  --->
     Networking support  --->
     [*] Networking support
     [*]   Network device support
             Ethernet (10 or 100Mbit)  --->
            [*] EISA, VLB, PCI and on board controllers
            <*>   Broadcom 4400 ethernet support (EXPERIMENTAL)

I saw no need to compile this as a module. You can now configure eth0 in /etc/conf.d/net and add it to the boot-runlevel.


2.2 WLAN
I am currently using the the ipw2100 drivers from http://ipw2100.sourceforge.net , which work already pretty fine. They are also in the portage tree:
Code:

$ emerge net-wireless/wireless-tools
$ ACCEPT_KEYWORDS="~x86" emerge net-wireless/ipw2100

To configure my WLAN I'm usign the wireless-config ebuild. You can find a good description of how it works in another thread.


2.3 Powersaving and ACPI
OK, welcome to the probably most tricky chapter of this howto. Let's start with the configuration of the SpeedStepping-Functions since this is not so complicated. We will configure ACPI later.


2.3.1 Speedfreq
First you should install the necessary software:
Code:

emerge sys-apps/speedfreq

Now you have to enable speedstepping in you kernel:
Code:

    Power management options (ACPI, APM)  --->
    [*] Power Management support
        CPU Frequency scaling  --->
        [*] CPU Frequency scaling
              Default CPUFreq governor (userspace)  --->
        <*>   'performance' governor
        <*>   'powersave' governor
        [*]     /proc/sys/cpu/ interface (2.4. / OLD)
        <*>   CPU frequency table helpers
        ---   CPUFreq processor drivers
        <*> Intel Enhanced SpeedStep

Now lets have a look at the config-file located in /etc/conf.d/speedfreq :
Code:

SPEEDFREQ_SPEED="dynamic"
SPEEDFREQ_OPTS=""
#SPEEDFREQ_USERS="yes"

If it looks like this you're done! Start the speedfreqd with /etc/init.d/speedfreq start . You can now control the speedfreqd using the tool speedfreq. You shouldn't forget to rc-update add speedfreq boot .


2.3.1 ACPI
This was the part on which I lost hours and hours... But finally I've got it working!
I actually can use nearly every ACPI-Feature except the Standby-Modes. None of them works right now, neither S1 nore S3. I think S4 can be set up with PM_DISK but I didn't try that yet.

First it is a good thing to upgrade to the latest BIOS-Version (I'm running UE05 at the moment). Just get the CD-Image or wahtever from samsungpc.com and follow the instructions described there.
Unfortunately also the new BIOS still comes with a broken DSDT so you have to follow the great howto in this forum to fix the DSDT or if you're too lazy just download my fixed one from: acpi.sourceforge.net
A fixed DSDT for the "big brother" of this laptop, the WVC 1700, can also be found there.

The new 2.6.9-kernel brings built-in-support for custom-DSDT-loading! Just check the following:
Code:
cd /usr/src/linux
make menuconfig
In Device Drivers ---> Generic Driver Options ---> make sure that it looks like this:
Code:
[ ] Select only drivers that don't need compile-time external firmware
[*] Prevent firmware from being built
<*> Hotplug firmware loading support

Recompile the kernel and now all needed options for ACPI-Support can be activated in the kernel config (I renamed the dsdt.hex-file to acpi_dsdt.h and placed it in /usr/src/ct!!!):
Code:

    Power management options (ACPI, APM)  --->
    [*] Power Management support
      [*] ACPI Support                                                                                                 
      [*]   Sleep States (EXPERIMENTAL)
      <*>   AC Adapter
      <*>   Battery
      <*>   Button
      <*>   Video
      <*>   Fan
      <*>   Processor
      <*>     Thermal Zone
      < >   ASUS/Medion Laptop Extras
      < >   IBM ThinkPad Laptop Extras
      < >   Toshiba Laptop Extras
      [*]   Include Custom DSDT
        (/usr/src/ct/acpi_dsdt.h) Custom DSDT Table file to include
      (0) Disable ACPI for systems before Jan 1st this year
      [*] Debug Statements
      [*] Power Management Timer Support

Recompile and install the kernel.

Finally, don't forget to install the acpid and to edit /etc/acpi/events/default to your needs:
Code:

$ emerge acpid
$ /etc/init.d/acpid start
$ rc-update add acpid boot


Now we can continue by tweaking the acpid a little bit. Since I'm using KDE and the suspend-modes aren't working yet, I wanted the following things to work:
  • When I close the lid, the screen should be turned off (dpms) and my kde-session should be locked
  • When I press the power-button, the KDE-Logout-menu where you can choose between "End session", "Turn off" and "Restart" should be displayed.
To realize this neuron from this forum helped me out and I changed /etc/acpi/default.sh to the following (wherever you find "ct" in this script, change it to your local username):
Code:
#!/bin/sh
# Default acpi script that takes an entry for all actions

set $*

group=${1/\/*/}
action=${1/*\//}

case "$group" in
 button)
  case "$action" in

   # open kde-logout-screen
   power)
    if pidof X &>/dev/null; then
     if su ct -c "DISPLAY=:0.0 /usr/kde/3.3/bin/dcop kdesktop" &>/dev/null; then
      su ct -c "DISPLAY=:0.0 /usr/kde/3.3/bin/dcop kdesktop KDesktopIface logout"
      for a in 1 2 3 4 5 6 7 8 9 10
      do
       sleep 2
       if pidof gdmgreeter &>/dev/null; then
        sleep 5
        /etc/init.d/xdm stop
        chvt 1
        sync
        #halt
        exit
       fi
      done
      exit
     fi
    fi
    halt
    ;;

   # lock screen on lid close
   lid) if pidof X &>/dev/null; then
     su ct -c "REMOTEHOST= DISPLAY=:0.0 /usr/X11R6/bin/xset dpms force off"                    # suspend display
     su ct -c "REMOTEHOST= DISPLAY=:0.0 /usr/kde/3.3/bin/dcop kdesktop KScreensaverIface lock" # lock screen
    fi
    logger "lid switch"
    #echo -n "standby" > /sys/power/state
    ;;

   # suspend notebook to s3
   sleep) logger "sleep state"
    echo -n "standby" > /sys/power/state
    ;;

   # no event
   *) logger "ACPI action $action is not defined"
    ;;
  esac
  ;;

 *)
  logger "ACPI group $group / action $action is not defined"
  ;;
esac

Note: If you have a very recent Version of pam running on your system you may have to uncomment the following lines in /etc/security/pam_env.conf:
Code:
#REMOTEHOST     DEFAULT= OVERRIDE=@{PAM_RHOST}
#
# Set the DISPLAY variable if it seems reasonable
#DISPLAY                DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}


2.4 USB
[...]


2.5 FireWire
[...]


2.6 Touchpad
[...]


2.7 FN-Keys

Rest-Button (FN + Esc)
This button produces the acpi-event button/sleep SLPB and can be configured using acpid.

Battery Level (FN + F2)
Button makes raw bios calls and works out of the box.

LCD/CRT (FN + F4)
I was not able to get this button work, yet.

Mute (FN + F6)
See volume keys below.

Numlock (FN + F11) & Scroll Lock (FN + F12)
Again raw bios calls, they always work.

Display Brightness (FN + Uparrow / FN + Downarrow)
Again raw bios calls, they always work.

Volume Keys (FN + Leftarrow / FN + Rightarrow / FN + F6)
They send standard keycodes which you can read-out using xev.

KDE: I used Xmodmap to get the FN-Volume-Keys working. Simply create a File named Xmodmap wherever you like (I put it into /etc/X11) with the following content:
Code:
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute

Now you have to execute xmodmap /etc/X11/Xmodmap & on every KDE-startup. For this reason I added a start-script ~/.kde/Autostart/xmod-start.sh with the content:
Code:
#!/bin/bash
xmodmap /etc/X11/Xmodmap &


Gnome: Go to 'Desktop preferences' -> 'Keyboard shortcuts' and set the shortcuts by pressing the appropriate fn-key-combos for 'volume mute/down/up' (hex-codes are 0xa0, 0xae, 0xb0) in the dialog box.


3. Extra Tuning

3.1 Gensplash / Frambuffer-Console
I found this nice toturial which describes very well, how to get the gensplash framebuffer console up and running. Simply have a look at this thread.
As kernel-parameters in my grub.conf I use:
Code:
video=vesafb:ywrap,pmipal,mtrr,1024x768-32@60 splash=verbose,theme:emergence



4. Resources
http://www.debianforum.de/forum/viewtopic.php?t=34600
http://bugme.osdl.org/show_bug.cgi?id=3203


Last edited by c_t on Thu Feb 17, 2005 7:18 pm; edited 16 times in total
Back to top
View user's profile Send private message
liamX30
n00b
n00b


Joined: 09 Aug 2004
Posts: 2

PostPosted: Thu Aug 12, 2004 12:10 am    Post subject: Re: Gentoo on Samsung X30 WVC 1500 Notebook (Howto & Dis Reply with quote

c_t wrote:

2.7 FN-Keys
[...]


howto make the volume control keys work in gnome 2.6.2:

go to 'desktop preferences' -> 'keyboard shortcuts' and set the shortcuts by pressing the appropriate fn-key-combos for 'volume mute/down/up' (hex-codes are 0xa0, 0xae, 0xb0) in the dialog box.

done so, each time you press those fn-shortcuts, gnome shows a gui-element showing the current volume level and status (mute|unmute)
Back to top
View user's profile Send private message
c_t
n00b
n00b


Joined: 29 Oct 2003
Posts: 36
Location: Berlin, Germany

PostPosted: Mon Oct 04, 2004 7:55 pm    Post subject: xorg.conf Reply with quote

This is my working xorg.conf file with Synaptics-Touchpad-Support. TV-Out- and Twin-View don't work yet.

Code:
Section "Files"
 RgbPath  "/usr/X11R6/lib/X11/rgb"
 ModulePath "/usr/X11R6/lib/modules"
 FontPath  "/usr/share/fonts/misc"
 FontPath  "/usr/share/fonts/Speedo"
 FontPath  "/usr/share/fonts/Type1"
 FontPath  "/usr/share/fonts/CID"
 FontPath  "/usr/share/fonts/75dpi"
 FontPath  "/usr/share/fonts/100dpi"
 FontPath  "/usr/share/fonts"
 FontPath  "/usr/share/fonts/cyrillic"
 FontPath  "/usr/share/fonts/local"
 FontPath  "/usr/share/fonts/TTF"
 FontPath "/usr/share/fonts/ukr"
 FontPath "/usr/share/fonts/encodings/"
 FontPath "/usr/share/fonts/util/"
 FontPath  "/usr/local/share/fonts"
EndSection


Section "ServerFlags"
 AllowMouseOpenFail # allows the server to start up even if the mouse doesn't work
 #DontZap # disable <Crtl><Alt><BS> (server abort)
 DontZoom # disable <Crtl><Alt><KP_+>/<KP_-> (resolution switching)
EndSection


Section "Module"
 Load "dbe" # Double-Buffering Extension
 #Load "v4l" # Video for Linux
 Load "extmod"
 Load "type1"
 Load "speedo"
 Load "freetype"
 Load "glx"
 Load "synaptics" # touchpad
EndSection


Section "InputDevice"
 Identifier "Keyboard1"
 Driver "Keyboard"
   Option "XkbModel" "pc105"
   Option "XkbLayout" "de"
   #Option "XkbVariant" "nodeadkeys"
   #Option "XkbOptions" ""
EndSection


Section "InputDevice"
   Identifier   "USBMouse"
   Driver      "mouse"
   Option      "Protocol"   "IMPS/2"
   Option      "Device"   "/dev/usbmouse"
   Option      "ZAxisMapping"   "4 5"
EndSection


Section "InputDevice"
   Identifier   "SynapticsMouse"
   Driver      "synaptics"
   Option      "Device"   "/dev/psaux"
   Option      "Protocol"   "auto-dev"
   Option      "Buttons"   "5"
   Option      "LeftEdge"   "1700"
   Option      "RightEdge"   "5300"
   Option      "TopEdge"   "1700"
   Option      "BottomEdge"   "4200"
   Option      "FingerLow"   "25"
   Option      "FingerHigh"   "30"
   Option      "MaxTapTime"   "180"
   Option      "MaxTapMove"   "220"
   Option      "VertScrollDelta" "100"
   Option      "MinSpeed"   "0.06"
   Option      "MaxSpeed"   "0.12"
   Option      "AccelFactor"   "0.0010"
   Option      "SHMConfig"   "on"
   #Option      "Repeater"   "/dev/ps2mouse"
EndSection


Section "Monitor"
   Identifier   "Monitor1"
   VendorName   "Generic"
   ModelName   "Flat Panel 1280x800"
   HorizSync   31.5-100
   VertRefresh   59-76
   Option      "IgnoreEDID"         "1"
   Modeline   "1280x800" 83.91 1280 1312 1624 1656 800 816 824 841

   # TV fullscreen mode or DVD fullscreen output.
   # 768x576 @ 79 Hz, 50 kHz hsync
   ModeLine    "768x576" 50.00 768 832 846 1000 576 590 595 630

   # 768x576 @ 100 Hz, 61.6 kHz hsync
   ModeLine    "768x576" 63.07 768 800 960 1024 576 578 590 616
EndSection


Section "Device"
   Identifier   "NvidiaGFX"
   Driver      "nvidia"
   Option      "NvAGP"            "1"
   Option      "DPMS"
   #Option      "TwinView"
   #Option      "UseEdidFreqs"         "on"
   #Option      "SecondMonitorHorizSync"   "30-50"
   #Option      "SecondMonitorVertRefresh"   "60"
   #Option      "MetaModes"         "1024x768, 1024x768; 800x600, 800x600; 640x480, 640x480;"
   #Option      "TVStandard"         "PAL-B"
   #Option "NoLogo" "on"
   #Option "TwinView" "on"
   #Option "TwinViewOrientation" "RightOf"
        #Option "SecondMonitorHorizSync" "range(s)"
        #Option "SecondMonitorVertRefresh" "range(s)"
        #Option "MetaModes" "string"
   #Option "NoTwinViewXineramaInfo" "on"
        #Option "TVStandard" "string"
        #Option "TVOutFormat" "string"
        #Option "TVOverScan" "Dezimalwert zwischen 0.0 und 1.0"
EndSection


Section "Screen"
   Identifier   "Screen1"
   Device      "NvidiaGFX"
   Monitor      "Monitor1"
   DefaultColorDepth 24

   Subsection "Display"
      Depth   24
      Modes   "1280x800"
      Viewport 0 0
      #Virtual 1280 800
   EndSubsection
EndSection


Section "ServerLayout"
 Identifier "Layout1"
 #InputDevice "USBMouse"  "CorePointer"
 InputDevice "SynapticsMouse" "AlwaysCore"
 InputDevice "Keyboard1"  "CoreKeyboard"
 Screen  "Screen1"
 # Using display power control features
 #Option  "StandbyTime"  "2" # Blank screen after 2 minutes
 #Option  "OffTime"  "5" # Turn off screen after 5 minutes
 #Option  "BlankTime"  "1"
 #Option  "SuspendTime"  "10"
EndSection
Back to top
View user's profile Send private message
andreas2000
Tux's lil' helper
Tux's lil' helper


Joined: 02 Nov 2004
Posts: 143
Location: Austria/Vienna

PostPosted: Mon Nov 22, 2004 3:18 pm    Post subject: Another way for the Synaptics Touchpad Reply with quote

I think there are lot of people who are missing the scrollwheel for the synaptics touchpad on Samsung X30 Notbeook - here is the way I solved this issue.

This works with kernel 2.6 - I don't know if it also works no 2.4 kernels.

At first: You don't have to emerge synaptics drivers - if you emerge synaptics drivers, the scrollwheel won't work - and therefore scrolling on the touchpad itself won't work - but the scrollwheel is working fine.

You have to enable the evdev Interface in Kernel 2.6

in grub or lilo bootloader you have to add the folowing parameter for booting:

Code:

psmouse.proto=imps


and the xorg.conf looks like following:

Code:

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen         "Screen0" 0 0
        InputDevice    "SynapticsTouchpad" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
        Identifier  "SynapticsTouchpad"
        Driver      "mouse"
        Option      "Device"            "/dev/psaux"
        Option      "ZAxisMapping"      "4 5"
        Option      "Protocol"          "IMPS/2"
        Option      "CorePointer"
        Option      "SendCoreEvents"    "true"
EndSection


But don't forget: SCROLLING ON THE PAD ITSELF WON'T WORK, BUT TAPPING ON THE PAD WILL !


[/list]
_________________
Registered Linux User 371244
Back to top
View user's profile Send private message
phasezero
n00b
n00b


Joined: 06 Oct 2003
Posts: 12
Location: Bad Brückenau

PostPosted: Sat Dec 11, 2004 12:34 am    Post subject: Re: Gentoo on Samsung X30 WVC 1500 Notebook (Howto & Dis Reply with quote

[quote="c_t"]Gentoo on Samsung X30

...
Volume Keys (FN + Leftarrow / FN + Rightarrow / FN + F6)
They send standard keycodes which you can read-out using xev.

KDE: I used Xmodmap to get the FN-Volume-Keys working. Simply create a File named Xmodmap wherever you like (I put it into /etc/X11) with the following content:
Code:
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute

Now you have to execute xmodmap /etc/X11/Xmodmap & on every KDE-startup. For this reason I added a start-script ~/.kde/Autostart/xmod-start.sh with the content:
Code:
#!/bin/bash
xmodmap /etc/X11/Xmodmap &


What is xmodmap? It looks like something XFree specific. I'm using x.org-x11. How do I configure the VolumeKeys there?
Back to top
View user's profile Send private message
c_t
n00b
n00b


Joined: 29 Oct 2003
Posts: 36
Location: Berlin, Germany

PostPosted: Sun Feb 06, 2005 9:31 am    Post subject: Reply with quote

hmm.. It's not really Xfree-specific, I also use xorg and Xmodmap is still part of the xorg-package. So just follow the steps I described above. Normally it should be sufficient to put the file Xmodmap to your home-directory (you would have to name it .Xmodmap instead), then it should be executed on every kde startup automatically.

I don't know why it is not executed....

I hope I could help you...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum