HARDWARE Samsung X30 WVC 1500
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
Contents |
[edit] Announcements & Updates
[edit] Announcements
- I'd be very pleased if some more X30-owners could contribute their experiences with s3 resume to this bug: http://bugme.osdl.org/show_bug.cgi?id=3203 Thanks!!
[edit] Updates
- 2005-09-13 Split up the WLAN-section into two: added the new way using wpa_supplicant.
- 2005-04-24 Fixed a little Bug in FN-Keys-Section: Info-Button was defined so that it had the same keycode as the Menu-Key (next to the Right CTRL-Key)
- 2005-04-20 Added the Sound- and the Modem-Section + Updated to gentoo-dev-sources-2.6.11-r4 + Added the USB- and FireWire-Section
- 2005-04-18 Updated FN-Key-Section. Now configuration of special-buttons is done properly using xkb and no longer using xmodmap! In addition the buttons on the left side of the notebook can now be used. Added links & resources.
- 2005-04-03 Everything from the forum is now in the wiki. Feel free to make further updates.
- 2005-02-17 Moved from forum to wiki.
[edit] General
In this guide I want to describe howto install Gentoo Linux on a Samsung X30 Laptop. It is based on my topic in the gentoo-forum. Discussion can still be done there.
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.
[edit] 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:
| File: /etc/make.conf |
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.11-r4. Nearly everything works with that release. Even S3 suspend works fine, the only problem is, that the nvidia-video-card doesn't support ACPI, yet, and that the display isn't reinitialized after S3 resume so practically S3 is unusable. This is not a kernel-side but a driver-side bug!
[edit] Graphics card
nvidia provides pretty good drivers, which are also in the portage tree. Unfortunately the still seem to have problems with s3-suspend.
It is important that the module is loaded at startup. Even if you have automatic module loading enabled you should append the following line to your /etc/modules.autoload.d/kernel-2.6:
| File: /etc/modules.autoload.d/kernel-2.6 |
# video-card nvidia |
[edit] Synaptics touchpad
A second thing we should do before configuring the x-server is to emerge x11-misc/synaptics to support our touchpad. Configuration of the touchpad will be done in the next section.
[edit] x.org
Simply follow the desktop-configuration-recources provided by gentoo.org. The tricky part is to set up your {filename|/etc/X11/xorg.conf} to use the 1280x800-display resolution of the internal display. Simply use the following xorg.conf. Note that I have not yet gotten TV-Out and the VGA-Out to work properly.
| File: /etc/X11/xorg.conf |
Section "Files" RgbPath "/usr/lib/X11/rgb" ModulePath "/usr/X11R6/lib/modules" FontPath "unix/:-1" EndSection Section "ServerFlags" AllowMouseOpenFail # allows the server to start up even if the mouse doesn't work #DontZoom # disable <Crtl><Alt><KP_+>/<KP_-> (resolution switching) # Disable Xinerama Option "Xinerama" "false" EndSection Section "Module" # Basic extensions Load "extmod" # Graphics-Card Load "dbe" # Double-Buffering Extension Load "dri" # Direct Rendering Interface Load "glx" # Touchpad Load "synaptics" # Font Modules Load "freetype" Load "type1" # Video for Linux (TV-Card) #Load "v4l" EndSection Section "InputDevice" Identifier "KeyboardLaptop" Driver "keyboard" Option "CoreKeyboard" Option "XkbModel" "pc105" Option "XkbRules" "xorg" Option "XkbLayout" "de" #Option "XkbVariant" "nodeadkeys" #Option "XkbOptions" "" EndSection Section "InputDevice" Identifier "MouseUSB" Driver "mouse" Option "CorePointer" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "MouseSynaptics" Driver "synaptics" Option "AlwaysCore" 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 "MonitorLaptop" VendorName "Samsung" 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 "DeviceNvidia" Driver "nvidia" Option "NvAGP" "1" Option "DPMS" Option "backingstore" #Screen 0 Option "TwinView" "on" Option "HorizSync" "CRT-0: 30-50; DFP-0: 31.5-100" Option "VertRefresh" "CRT-0: 60; DFP-0: 59-76" Option "MetaModes" "CRT-0: 1024x768, DFP-0: 1280x800" #Option "ConnectedMonitor" "CRT-0, DFP-0" #Option "SecondMonitorHorizSync" "31.5-100" #Option "SecondMonitorVertRefresh" "59-76" #Option "TVStandard" "PAL-B" #Option "UseEdidFreqs" "on" Option "TwinViewOrientation" "Clone" EndSection Section "Screen" Identifier "ScreenLaptop" Device "DeviceNvidia" Monitor "MonitorLaptop" DefaultColorDepth 24 Subsection "Display" Depth 24 Modes "1280x800" "1024x768" "800x600" Viewport 0 0 EndSubsection EndSection Section "ServerLayout" Identifier "LayoutDefault" InputDevice "MouseUSB" "CorePointer" InputDevice "MouseSynaptics" "AlwaysCore" InputDevice "KeyboardLaptop" "CoreKeyboard" Screen "ScreenLaptop" # Using display power control features (I do this via kde) #Option "StandbyTime" "2" # Blank screen after 2 minutes #Option "OffTime" "5" # Turn off screen after 5 minutes #Option "BlankTime" "1" #Option "SuspendTime" "10" EndSection |
Now type startx to test whether your x-server is working. If you see a nice nvidia-logo you're done! You can now add a graphical login-manager to the default runlevel:
rc-update add xdm default
[edit] Ethernet
The Broadcom Corporation BCM4401 100Base-T ethernet controller is supported by the kernel
| Linux Kernel Configuration: Ethernet |
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 default-runlevel.
[edit] WLAN
Since configuring WLAN-adapters has become much easier with recent baselayout-versions, you should first of all make sure that you've installed sys-apps/baselayout-1.11 or above.
Now install the ipw2100-drivers:
| Code: Install ipw2100-drivers |
emerge ipw2100 ipw2100-firmware |
Now there are two ways to configure your wireless networks. The old way is to use the wireless-tools-package. The new way which I recommend is a bit more tricky but allows using wpa-secured-connections.
[edit] wpa_supplicant
Add the following lines to /etc/conf.d/net to use net-wireless/wpa_supplicant instead of net-wireless/wireless-tools:
| File: /etc/conf.d/net |
# Prefer wpa_supplicant over wireless-tools modules=( "wpa_supplicant" ) # It's important that we tell wpa_supplicant which driver we should # be using as it's not very good at guessing yet wpa_supplicant_eth1="-Dipw" |
Have a look at /etc/wpa_supplicant.conf.example and set up your /etc/wpa_supplicant.conf according to your needs. For more information on how to configure wireless networks in gentoo refer to the gentoo-handbook.
[edit] Wireless Tools [deprecated]
Install net-wireless/wireless-tools:
| Code: Install wireless-tools |
emerge wireless-tools |
Now configure your WLAN-adapter as eth1 in /etc/conf.d/net and add net.eth1 to the default-runlevel if you want.
[edit] Sound
The Soundcard is a AC97-Compliant "Cirrus Logic CS4202" which is supported by the kernel thanks to the ALSA-Project. Simply enable the appropriate module in your kernel-config:
| Linux Kernel Configuration: Sound |
Device Drivers --->
Sound --->
<M> Sound card support
Advanced Linux Sound Architecture --->
<M> Advanced Linux Sound Architecture
<M> Sequencer support
<M> Sequencer dummy client
<M> OSS Mixer API
<M> OSS PCM (digital audio) API
[ ] OSS Sequencer API
[ ] Verbose printk
[ ] Debug
PCI devices --->
<M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
|
To avoid problems you should ensure that the sound-module is loaded at start-up even if you have module-auto-loading enabled. So append the following line to /etc/modules.autoload.d/kernel-2.6:
| File: /etc/modules.autoload.d/kernel-2.6 |
# sound snd-intel8x0 |
You can test the audio-device after having loaded the module:
| Code: Loading sound-module |
modprobe snd-intel8x0 |
[edit] Modem
The modem is a winmodem. Samsung says it is a AC97-compliant "SENS LT56ADW Modem" but actually I do not really care. The important thing is that it is supported by the kernel and the slmodem-package.
To make it work you need additional kernel modules and a userspace program. Enable the Kernel-Module:
| Linux Kernel Configuration: Modem |
Device Drivers --->
Sound --->
<M> Sound card support
Advanced Linux Sound Architecture --->
PCI devices --->
<M> Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL)
|
And recompile the Kernel.
The package is net-dialup/slmodem.
| Code: Emerge slmodem |
emerge '>=net-dialup/slmodem-2.9.9-r2' |
Lookup your country in the list of supported countries.
| Code: List supported countries |
slmodemd --countrylist |
Configure the modem-daemon. Be sure to substitute the COUNTRY parameter by the one you looked up.
| File: /etc/conf.d/slmodem |
# Config file for /etc/init.d/slmodemd DEV=/dev/ttySL0 COUNTRY=GERMANY GROUP=dialout # the group should be kept in sync with: # /etc/devfs.d/slmodem (devfs) # /etc/udev/rules.d/55-slmodem.rules (udev) # The following symlink will be created if uncommented LN_DEV=/dev/modem # Raise priority to reduce modem dropouts NICE=-6 # ALSA Options: # The following sets the ALSA (alsasound) init script to # be a dependency of the slmodem one. It does also provides # ALSA support. # MODULE=alsa # The modem hardware slot # use "modem:0", "modem:1", etc. # usually modem:1 is used # HW_SLOT=modem:1 # Non-ALSA OPTIONS: MODULE=slamr # or # MODULE=slusb |
Now you can start the modem-daemon:
| Code: Startup the modem-daemon |
/etc/init.d/slmodem start |
For dialing up there are some programs available. A list could be found at the Gentoo Packages Dialup-Category. I use wvdial.
| Code: Emerge wvdial |
emerge wvdial |
Adopt the configuration to your needs. Substitute the Phone, Username and Password with the ones your provider gave you.
| File: /etc/wvdial.conf |
# # wvdial.conf by ChristophTavan <chefturner@web.de> # # 2005-04-20 # [Dialer Defaults] Modem = /dev/ttySL0 Stupid Mode = 1 Baud = 460800 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ISDN = 0 Modem Type = Analog Modem # account for yourISP [Dialer yourISP] Phone = PHONENUMBER Username = USERNAME Password = PASSWORD Carrier Check = no |
If you want to add other accounts to your /etc/wvdial.conf then always include Carrier Check = no code>. Otherwise wvdial wont work with slmodem.
Now you are ready to connect to the internet (of course substitute yourisp with the appropriate account-name).
| Code: Connect to the internet |
wvdial yourisp |
If you receive "Cannot open /dev/ttySL0: Cannot get information for serial port." code> you must update your libwvstreams to at least 4.0.2.
| Code: Update libwvstreams |
ACCEPT_KEYWORDS="~x86" emerge >=net-libs/wvstreams-4.0.2 |
Congratulations! Have fun surfing the web with amazing 5.3K/s!!!!!!!!!
[edit] Powersaving & 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.
[edit] Speedstepping
First you should install the necessary software:
| Code: Install speedfreq |
emerge sys-power/speedfreq |
Now you have to enable speedstepping in you kernel:
| Code: Kernel Config |
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
|
Lets have a look at the config-file located in /etc/conf.d/speedfreq:
| File: /etc/conf.d/speedfreq |
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 -m. You shouldn't forget to rc-update add speedfreq boot to make speedfreqd start up automatically with every system-reboot.
[edit] 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 the gentoo-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 in your kernel config:
| Linux Kernel Configuration: Hotplug |
Device Drivers --->
Generic Driver Options --->
[ ] 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!!!):
| Linux Kernel Configuration: ACPI |
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: Install acpid |
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 the gentoo-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. Also if you use a kde-version different to 3.3 replace that to your apporpriate number!):
| File: /etc/acpi/default.sh |
#!/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 some lines in the pam-config to get the stuff above to work:
| File: /etc/security/pam_env.conf |
#REMOTEHOST DEFAULT= OVERRIDE=@{PAM_RHOST}
#
# Set the DISPLAY variable if it seems reasonable
#DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
|
[edit] USB
USB is supported by default by the kernel. You just have to enable it:
| Linux Kernel Configuration: USB |
Device Drivers --->
USB support --->
<*> Support for Host-side USB
<M> EHCI HCD (USB 2.0) support
[ ] Full speed ISO transactions (EXPERIMENTAL)
[ ] Root Hub Transaction Translators (EXPERIMENTAL)
<M> OHCI HCD support
<M> UHCI HCD (most Intel and VIA) support
|
At least these three modules should be enabled. In addition USB device filesystem code> and especially USB Mass Storage support code> could be interesing. Simply enable everything you need in the USB-options and then recompile the kernel.
Now it is a good idea to emerge the hotplug-utilitie so that devices like mice or USB-sticks that you plug in while your laptop is running are initialized automatically:
| Code: emerge hotplug |
emerge hotplug hotplug-base coldplug |
[edit] FireWire
FireWire (IEEE 1394) is also supported by the Kernel:
| Linux Kernel Configuration: FireWire |
Device Drivers ---> IEEE 1394 (FireWire) support ---> <M> IEEE 1394 (FireWire) support <M> OHCI-1394 support --- Protocol Drivers <M> OHCI-1394 Video support <M> SBP-2 support (Harddisks etc.) [ ] Enable Phys DMA support for SBP2 (Debug) <M> Ethernet over 1394 <M> OHCI-DV I/O support <M> Raw IEEE1394 I/O support < > IEC61883-1 Plug support |
Simply enable everything you may need. I suppose FireWire will work fine then but I do not have any firewire-device for testing-purposes...
[edit] Special-Keys (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)
LSee 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. I mapped the keycodes to symbols using xkb, see next point.
- Info-, E-Mail-,OK- and WLAN-Keys
- The Wlan-Key is working out of the box. To make all the other keys on the left side work, you have to add these two lines to your /etc/conf.d/local.start:
| File: /etc/conf.d/local.start |
# Enable Info- and OK-MM-Keys on Samsung X30 setkeycodes 75 128 setkeycodes 74 129 |
Now all the multimedia-keys produce keycodes you can read out using xev. To make these keys usable we have to map the keycodes to corresponding symbols using xkb. Let me summarize first what keycodes the keys produce and which symbol we want to give each key:
| Key | Keycode | XKB-Alias | Symbol |
| FN + F6 | 160 | <I20> | XF86Mute |
| FN + Leftarrow | 174 | <I2E> | XF86AudioLowerVolume |
| FN + Rightarrow | 176 | <I30> | XF86AudioRaiseVolume |
| Info | 232 | <I68> | XF86WWW |
| 128 | <HYPR> | XF86Mail | |
| OK | 133 | <AE13> | XF86Terminal |
To make this work we have to add the following lines to /etc/X11/xkb/symbols/inet:
| File: /etc/X11/xkb/symbols/inet |
//
// Keycode-to-symbol mappings for Samsung X30
// by Christoph Tavan <chefturner@web.de>
//
partial alphanumeric_keys
xkb_symbols "samsungx30" {
name[Group1]= "Samsung X30";
// Audio-Keys
key <I20> { [ XF86AudioMute ] };
key <I2E> { [ XF86AudioLowerVolume ] };
key <I30> { [ XF86AudioRaiseVolume ] };
// Special-Keys on the left
key <I68> { [ XF86WWW ] };
key <HYPR> { [ XF86Mail ] };
key <AE13> { [ XF86Terminal ] };
};
|
Now we have to tell xkb that there are new keycode-to-symbol mappings called samsungx30 in the "inet"-symbols-table. So we have to edit a line in /etc/X11/xkb/rules/xorg:
| File: /etc/X11/xkb/rules/xorg |
! $inetkbds = airkey acpi scorpius azonaRF2300 \
...
samsungx30 samsung4500 samsung4510 \
...
|
All we have to do is to ensure, that the InputDevice-section for the keyboard in /etc/X11/xorg.conf looks like:
| File: /etc/X11/xorg.conf |
...
Section "InputDevice"
Identifier "KeyboardLaptop"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "samsungx30"
Option "XkbLayout" "de"
#Option "XkbVariant" "nodeadkeys"
#Option "XkbOptions" ""
EndSection
...
|
Restart your X-server and if setxkbmap -print outputs the following, congratulations, you're (almost) done!
| Code: setxkbmap output |
xkb_keymap {
xkb_keycodes { include "xfree86+aliases(qwertz)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc/pc(pc105)+pc/de+inet(samsungx30)" };
xkb_geometry { include "pc(pc104)" };
};
|
Now all your MM-keys produce symbols your windowmanager can understand. You can configure the functionality of the keys with the configuration-utilities of your windowmanager (e.g. KDE-Control Center) or with some other software (e.g. x11-misc/hotkeys).
Note for KDE-users: In KDE the Control Center-settings overwrite the settings from your xorg.conf! So if you have Keyboard Layouts enabled in your KDE-Control Center make sure, that you choose "Samsung X30 Notebook" as keyboard-model there.
