Difference between revisions of "Toshiba Tecra M4"

From ArchWiki
Jump to: navigation, search
(Installing X and WindowManager: don't duplicate other pages)
(rc.conf)
Line 161: Line 161:
 
etc etc  
 
etc etc  
 
in the "Optimizing" part insert the optimized values and in the "Resetting" part the original values.
 
in the "Optimizing" part insert the optimized values and in the "Resetting" part the original values.
 
= rc.conf =
 
Finally, we'll have to set some daemons in rc.conf
 
# nano -w /etc/rc.conf
 
 
add generally dbus, hal, laptop-mode, phc, cpufreq, networkmanager to daemons line
 
for gnome gdm (make sure, it is the LAST one in this line)
 
 
add some modules
 
MODULES=(phc-intel acpi-cpufreq cpufreq_powersave cpufreq_conservative)
 
  
 
= Mapping screen-key to something that makes sense =
 
= Mapping screen-key to something that makes sense =

Revision as of 19:22, 15 January 2011

The Tecra M4 is a convertible-PC produced by Toshiba.

Mine includes 512MByte of RAM, 60Gbyte SATA-HDD, NVidia 6200 graphics card and a serial Wacom tablet.

This will be a short introduction on how to make everything work perfectly.

This tutorial is a bit work in progress so stay tuned ;)

Installation

Just boot the ArchLinux Installation disc and install the basics

Wireless drivers

This PC contains an intel wireless card, that is supported by the ipw2200.

Therefor run a

# pacman -S ipw2200-fw

and afterwards reload the ipw2200 driver.

Installing Wacom Tablet

Install xf86-input-wacom from AUR - if you installed aurpac like me:

 $ aurpac -S xf86-input-wacom

Now, you'll have to configure xorg.conf:

# X -configure
# cp /root/xorg.conf.new /etc/X11/xorg.conf
# nano -w /etc/X11/xorg.conf

The ServerLayout Section should look like this:

Section "ServerLayout"
	Identifier      "Default Layout" 
	Screen "Screen0"
	Inputdevice     "cursor" "SendCoreEvents"
	Inputdevice     "stylus" "SendCoreEvents"
	Inputdevice     "eraser" "SendCoreEvents"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
       InputDevice    "Touchpad"  
EndSection

In section "Module" add

Load  "synaptics"

The Input-Sections:

Section "InputDevice"
 Driver          "wacom"
 Identifier      "cursor"
 Option          "Device" "/dev/ttyS0"
 Option          "Type" "cursor"
 Option          "ForceDevice" "ISDV4"
 Option          "Rotate" "NONE"
EndSection
Section "InputDevice"
 Driver          "wacom"
 Identifier      "stylus"
 Option          "Device" "/dev/ttyS0"
 Option          "Type" "stylus"
 Option          "ForceDevice" "ISDV4"
 Option          "Rotate" "NONE"
EndSection
Section "InputDevice"
  Driver          "wacom"
  Identifier      "eraser"
  Option          "Device" "/dev/ttyS0"
  Option          "Type" "eraser"
  Option          "ForceDevice" "ISDV4"
  Option          "Rotate" "NONE"
EndSection

This is my Input-Section for the touchpad

Section "InputDevice"
  Identifier  "Synaptics Touchpad"
  Driver      "synaptics"
  Option      "AlwaysCore"        "true"  # send events to CorePointer
  Option      "Device"            "/dev/psaux"
  Option      "Protocol"          "auto-dev"
  Option      "SHMConfig"         "false" # configurable at runtime? security risk
  Option      "LeftEdge"          "1700"  # x coord left
  Option      "RightEdge"         "5300"  # x coord right
  Option      "TopEdge"           "1700"  # y coord top
  Option      "BottomEdge"        "4200"  # y coord bottom
  Option      "FingerLow"         "25"    # pressure below this level triggers release
  Option      "FingerHigh"        "30"    # pressure above this level triggers touch
  Option      "MaxTapTime"        "180"   # max time in ms for detecting tap
  Option      "VertEdgeScroll"    "true"  # enable vertical scroll zone
  Option      "HorizEdgeScroll"   "true"  # enable horizontal scroll zone
  Option      "CornerCoasting"    "true"  # enable continuous scroll with finger in corner
  Option      "CoastingSpeed"     "0.30"  # corner coasting speed
  Option      "VertScrollDelta"   "100"   # edge-to-edge scroll distance of the vertical scroll
  Option      "HorizScrollDelta"  "100"   # edge-to-edge scroll distance of the horizontal scroll
  Option      "MinSpeed"          "0.10"  # speed factor for low pointer movement
  Option      "MaxSpeed"          "0.60"  # maximum speed factor for fast pointer movement
  Option      "AccelFactor"       "0.0020"    # acceleration factor for normal pointer movements
  Option      "VertTwoFingerScroll"   "true"  # vertical scroll anywhere with two fingers
  Option      "HorizTwoFingerScroll"  "true"  # horizontal scroll anywhere with two fingers
  Option      "TapButton1" "1"
  Option      "TapButton2" "2"
  Option      "TapButton3" "3"
EndSection

My Device Section

Section "Device"
	Identifier  "Card0"
	Option	"NoLogo" "1" # I do not like the NVidia Logo
	Option "RandRRotation" "true" # making it possible to rotate the screen
	Option "Coolbits" "1"
	Option "RegistryDwords" "PerfLevelSrc=0x3333" # for saving battery lifetime
	Driver      "nvidia"
	VendorName  "nVidia Corporation"
	BoardName   "NV43 [Geforce Go 6600TE/6200TE]"
	BusID       "PCI:1:0:0"
EndSection

Optimizing battery lifetime

CPUFreq

Just install cpufrequtils

PHC

I reduced VCores to make my battery live longer: install intel-phc and linux-phc-optimize from AUR

$ aurpac -S intel-phc linux-phc-optimize

then run

# linux-phc-optimize

remember the original and the optimized values - you'll need them ;) then I created the following script /etc/rc.d/phc

#!/bin/bash

case "$1" in
 start)
   stat_busy "Optimizing PHC VIDs"
   echo "14:21 12:15 10:9 8:4 6:3" > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
     stat_done
   ;;
 stop)
   stat_busy "Resetting PHC VIDs"
   echo "14:41 12:36 10:30 8:24 6:18" > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
     stat_done
   ;;
 restart)
   $0 stop
   sleep 1
   $0 start
   ;;
 *)
   echo "usage: $0 {start|stop|restart}"  
esac
exit 0

the bold passages are the optimized and original values - these are for my Pentium M 1,86GHz the formate is the following:

14:value_for_full_speed 12:value_for_speed2 10:value_for_speed3

etc etc in the "Optimizing" part insert the optimized values and in the "Resetting" part the original values.

Mapping screen-key to something that makes sense

by default, the buttons on the screen return the combinations Super_L + [1-7] I prefer this tiny joystick to use as page up and page down - so I tried xmodmap

$ nano -w .Xmodmap

change the line of keycode 134 to

keycode 134 = Mode_switch NoSymbol Mode_switch NoSymbol Super_R

and the following lines:

keycode  10 = 1 exclam Prior Prior onesuperior exclamdown
keycode  11 = 2 quotedbl Next Next twosuperior oneeighth
keycode  12 = 3 section Prior Prior threesuperior sterling
keycode  13 = 4 dollar Next Next onequarter currency

that produces: tablet is landscape and orientation "normal" - joystick up -> page up, down -> page down tablet is portrait and orientation "left" - joystick up -> page up, down -> page down

Script for changing orientation

# nano -w /usr/bin/rotate
#!/bin/bash

#### rotate.sh - A script for tablet PCs to rotate the display.

## This software is licensed under the CC-GNU GPL.
## http://creativecommons.org/licenses/GPL/2.0/

## http://wiki.archlinux.org/index.php/Tablet_PC
## REQUIRES: linuxwacom (http://linuxwacom.sourceforge.net/)

#### Function(s)
function set_normal {
 xrandr -o normal
 xsetwacom set "stylus" Rotate NONE
 xsetwacom set "cursor" Rotate NONE
 xsetwacom set "eraser" Rotate NONE
 orientation="normal"
}

function set_left {
 xrandr -o left
 xsetwacom set "stylus" Rotate CCW
 xsetwacom set "cursor" Rotate CCW
 xsetwacom set "eraser" Rotate CCW
 orientation="left"
}

#### Variable(s)
orientation="$(xrandr --query --verbose | grep '(normal left inverted right) 0mm x 0mm' | awk '{print $5}')"

#### Main
if [ "$orientation" = "normal" ]; then
	set_left
elif [ "$orientation" = "right" ]; then
	set_normal
elif [ "$orientation" = "inverted" ]; then
	set_normal
elif [ "$orientation" = "left" ]; then
	set_normal
fi

#### EOF


# chmod 0755 /usr/bin/rotate

I customized the given script a bit, because turning right and inverted made no sense for me. This script can now be used with gnome-keybinding-properties

What does not work

  • Mapping joystick to page_up/down AND using the rotate button in gnome-keybinding-properties at the same time
  • sound does work, if you reload the snd_intel8x0 module after boot - do not know, why