Toshiba Tecra M4

From ArchWiki
Revision as of 16:47, 11 June 2013 by Karol (Talk | contribs) (Wireless drivers: rm red link)

Jump to: navigation, search

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/

## https://wiki.archlinux.org/index.php/Tablet_PC
## REQUIRES: linuxwacom (http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Main_Page)

#### 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