HARDWARE Toshiba Satellite R20

From Gentoo Linux Wiki

Jump to: navigation, search
This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

[edit] Introduction

This is a reference/guide for installing Gentoo on a Toshiba Satellite R20/R25 Tablet. The R20 is a customized version of R25 which on the contrary comes in one configuration.

[edit] My Configuration

  • Intel Core Duo: T2500 @2.00GHz
  • 1024 MB PC5300 DDR2 SDRAM
  • 120 GB SATA drive
  • Atheros WIFI card instead of Intel 3945
  • Bluetooth

[edit] Overall

I have to admit, that this computer is rather sweet, with its wide screen and tablet features. But there is one thing that disappoints me. It is the battery life and the noisy fan that keeps spinning all the time. I don't know if that is a similar problem to what was reported on the Tecra M4, but I certainly think it is unnecessary to have the fan spinning if the CPU's temperature is about 35 Celsius. I just recently helped my friend with Fedora on a Toshiba M100 laptop (also Core Duo (1,66 GHz), 14,1 WXGA etc.) - it is not a tablet but with similar hardware except for the BIOS (this one has a Phoenix BIOS). The M100 doesn't waste energy on the fan, it is quieter and with the same battery capacity it works for around 4 hours, whereas my R20 no more than 2 hours. On top of that on the M100 Suspend2disk and Suspend2ram works perfectly on Fedora Core 6.

[edit] Hardware

lscpi -v output:

Code: lscpi
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, fast devsel, latency 0
        Capabilities: [e0] Vendor Specific Information

00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03) (prog-if 00 [VGA])
        Subsystem: Toshiba America Info Systems Unknown device 0007
        Flags: bus master, fast devsel, latency 0, IRQ 18
        Memory at ffd80000 (32-bit, non-prefetchable) [size=512K]
        I/O ports at cff8 [size=8]
        Memory at e0000000 (32-bit, prefetchable) [size=256M]
        Memory at ffd40000 (32-bit, non-prefetchable) [size=256K]
        Capabilities: [90] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
        Capabilities: [d0] Power Management version 2

00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
        Subsystem: Toshiba America Info Systems Unknown device 0007
        Flags: bus master, fast devsel, latency 0
        Memory at ffc80000 (32-bit, non-prefetchable) [size=512K]
        Capabilities: [d0] Power Management version 2

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, fast devsel, latency 0, IRQ 23
        Memory at ffd3c000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 2
        Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
        Capabilities: [70] Express Unknown type IRQ 0

00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        Capabilities: [40] Express Root Port (Slot-) IRQ 0
        Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
        Capabilities: [90] #0d [0000]
        Capabilities: [a0] Power Management version 2

00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        Memory behind bridge: ffa00000-ffafffff
        Capabilities: [40] Express Root Port (Slot-) IRQ 0
        Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
        Capabilities: [90] #0d [0000]
        Capabilities: [a0] Power Management version 2

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02) (prog-if 00 [UHCI])
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 0, IRQ 21
        I/O ports at cf80 [size=32]

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02) (prog-if 00 [UHCI])
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 0, IRQ 20
        I/O ports at cf60 [size=32]

00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02) (prog-if 00 [UHCI])
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 0, IRQ 22
        I/O ports at cf40 [size=32]

00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02) (prog-if 00 [UHCI])
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 0, IRQ 18
        I/O ports at cf20 [size=32]

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) (prog-if 20 [EHCI])
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 0, IRQ 21
        Memory at ffd3bc00 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] Debug port

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) (prog-if 01 [Subtractive decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=03, subordinate=07, sec-latency=32
        I/O behind bridge: 0000b000-0000bfff
        Memory behind bridge: ff900000-ff9fffff
        Prefetchable memory behind bridge: 0000000050000000-0000000051f00000
        Capabilities: [50] #0d [0000]

00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 0
        Capabilities: [e0] Vendor Specific Information

00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 02) (prog-if 80 [Master])
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 20
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at afa0 [size=16]
        Capabilities: [70] Power Management version 2

02:00.0 Ethernet controller: Atheros Communications, Inc. Unknown device 001c (rev 01)
        Subsystem: Askey Computer Corp. Unknown device 7096
        Flags: bus master, fast devsel, latency 0, IRQ 17
        Memory at ffaf0000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: [40] Power Management version 2
        Capabilities: [50] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
        Capabilities: [60] Express Legacy Endpoint IRQ 0
        Capabilities: [90] MSI-X: Enable- Mask- TabSize=1

03:08.0 Ethernet controller: Intel Corporation Intel(R) PRO/100 VE Network Connection (rev 02)
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 64, IRQ 16
        Memory at ff9ff000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at bf40 [size=64]
        Capabilities: [dc] Power Management version 2

03:0b.0 CardBus bridge: Texas Instruments Unknown device 8039
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 168, IRQ 19
        Memory at ff900000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=03, secondary=04, subordinate=07, sec-latency=176
        Memory window 0: 50000000-51fff000 (prefetchable)
        Memory window 1: 52000000-53fff000
        I/O window 0: 0000b000-0000b0ff
        I/O window 1: 0000b400-0000b4ff
        16-bit legacy interface ports at 0001

03:0b.1 FireWire (IEEE 1394): Texas Instruments Unknown device 803a (prog-if 10 [OHCI])
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 64, IRQ 16
        Memory at ff9fe800 (32-bit, non-prefetchable) [size=2K]
        Memory at ff9f8000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: [44] Power Management version 2

03:0b.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 64, IRQ 21
        Memory at ff9fd000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2

03:0b.3 Class 0805: Texas Instruments Unknown device 803c (prog-if 01)
        Subsystem: Toshiba America Info Systems Unknown device 0001
        Flags: bus master, medium devsel, latency 64, IRQ 21
        Memory at ff9fe700 (32-bit, non-prefetchable) [size=256]
        Capabilities: [80] Power Management version 2

[edit] Kernel

I use gentoo sources, 2.6.19-gentoo-r4 at the moment, but I messed up a lot with the configuration. I have also added a patch which you can find here: [1]. This patch allows you to turn the bluetooth on and off, as well as gives access to many extra features, which you may access with the toshset utility.

What works for me is the following kernel config: Kernl config

[edit] Things that just work

  • Intel(R) PRO/100 VE Network Card (e100 kernel module)
  • ALPS Touchpad (but to have scrolling you need synaptics, see the Xorg section)
  • Atheros WIFI card (with the madwifi-ng driver)
  • Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (snd_hda_intel, snd_hda_codec kernel modules)


[edit] Things that need configuring

[edit] CPU Frequency

Needs the following kernel parameters (could be modules as well)

Code: Kernel parameters
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_SPEEDSTEP_CENTRINO=y
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
CONFIG_X86_SPEEDSTEP_ICH=y

[edit] Graphics and 1440x900 resolution

This tablet has a 14.1" WXGA 1440 x 900 native resolution on Intel Graphics Media Accelerator 945 (GMA 945) (shared memory 8-128 MB) Xorg on LiveCD 2006.0 doesn't start. To get the right resolution you have to use 915resolution:

emerge 915resolution

put:

replace=(
  "4d 1440 900 24"
  "5c 1440 900 16"
)

Into your /etc/conf.d/915resolution file and add 915resolution to start automatically:

rc-update add 915resolution default

[edit] Wacom Stylus

I followed the instruction at: HARDWARE Toshiba Tecra M4 and [2]

To have on the fly rotation I installed the latest linuxwacom 0.7.6-4.

My screen rotating script looks like that:

File: screen_rotate.sh
#!/bin/sh
orientation=`/usr/bin/xrandr --query | /bin/grep "Current rotation" | /usr/bin/awk '{print $4}'`
if [ "$orientation" == "normal" ]; then
/usr/bin/xrandr --orientation right
/usr/bin/xsetwacom set stylus Rotate CW
/usr/bin/xsetwacom set cursor Rotate CW
/usr/bin/xsetwacom set eraser Rotate CW
/usr/bin/xmodmap -e "keycode 11 = KP_Left"
/usr/bin/xmodmap -e "keycode 13 = KP_Up"
/usr/bin/xmodmap -e "keycode 10 = KP_Right"
/usr/bin/xmodmap -e "keycode 12 = KP_Down"
/usr/bin/xmodmap -e "keycode 14 = KP_Enter"
else
/usr/bin/xrandr --orientation normal
/usr/bin/xsetwacom set stylus Rotate NONE
/usr/bin/xsetwacom set cursor Rotate NONE
/usr/bin/xsetwacom set eraser Rotate NONE
/usr/bin/xmodmap -e "keycode 11 = 2 at at"
/usr/bin/xmodmap -e "keycode 13 = 4 dollar dollar"
/usr/bin/xmodmap -e "keycode 10 = 1 exclam"
/usr/bin/xmodmap -e "keycode 12 = 3 numbersign"
/usr/bin/xmodmap -e "keycode 14 = 5 percent onehalf threeeighths onehalf threeeighths"
fi

and here you have my xorg.conf with Wacom Stylus and ALPS/Glidepoint touchpad.

I still haven't gotten the eraser to work even in Gimp and Inkscape. When I try, it just works the same way as the stylus.

[edit] Fn keys

To enable the FN keys you need the toshiba_acpi module loaded (remember to unload the standard toshiba module if using the patch described here Kernel You have to install the fnfxd module ([3]). Fortunately it is in the portage, so just do:

emerge fnfx


Then configure the fnfxd.conf and .fnfxrc files Here you have mine:


File: /etc/fnfx/fnfxd.conf
# FnFX daemon (fnfxd) configuration file
#
# Author: Timo Hoenig <thoenig@nouse.net>
# Copyright (c) 2003 Timo Hoenig <thoenig@nouse.net>
#                    All rights reserved
#
# FnFX project page: http://fnfx.sf.net
#
#

[actions]
#action(key="Fn-Escape";command="mute")
action(key="Fn-F5";command="toggle video")
action(key="Fn-F6";command="brightness down")
action(key="Fn-F7";command="brightness up")
#action(key="Fn-F8";command="toggle bluetooth")
action(key="Fn-F1";command="toggle fan")
#action(key="Fn-1";command="volume down")
#action(key="Fn-2";command="volume up")

action(key="Fn-F2";command="toggle cpu")
#action(key="Fn-F3";command="suspend to ram")
#action(key="Fn-F4";command="suspend to disk")

[mixer]
#mixer(device="/dev/mixer")

[defaults]
defaults(brightness="5")
defaults(fan="off")


File: $HOME/.fnfxrc
# FnFX daemon (fnfxd) configuration file
#
# Author: Timo Hoenig <thoenig@nouse.net>
# Copyright (c) 2003 Timo Hoenig <thoenig@nouse.net>
#                    All rights reserved
#
# FnFX project page: http://fnfx.sf.net
#
# Modify and copy this example file to your home directory.
#
# !! Don't forget to rename it to ".fnfxrc" !!
#
# Something like that: /home/user/.fnfxrc
#
# All available Fn-Keys can be obtained in the Documentation and/or from /etc/fnfx/keymap
#

[actions]

action(key="Fn-F3";command="sudo konsole")
action(key="Fn-F4";command="konsole")
action(key="Fn-q";command="krusader")
action(key="Fn-F6";command="brightness down")
action(key="Fn-F7";command="brightness up")
action(key="Fn-F8";command="/home/pol/bin/bluetooth.sh")

action(key="Hotbutton (E-Button)";command="evolution")
action(key="Hotbutton (I-Button)";command="firefox")


action(key="Hotbutton (Media)";command="/usr/bin/amarok")
action(key="Hotbutton (Stop)";command="dcop amarok player stop")
action(key="Hotbutton (Skip Track Back)";command="dcop amarok player prev")
action(key="Hotbutton (Skip Track Forward)";command="dcop amarok player next")
action(key="Hotbutton (Play/Pause)";command="dcop amarok player playPause")
action(key="Hotbutton (TV-Button)";command="konsole")

As you may have noticed I use the media keys to control Amarok, unfortunately the email and webbrowser buttons don't work at the moment, although they have at some point worked


[edit] Fingerprint Reader

The built-in fingerprint reader comes from UPEK. The company offers proprietary drivers which I couldn't get to work. See the UPEK Fingerprint Reader page. However I managed to setup the fingerprint reader using the new open source driver: Thinkfinger [4]. To use pam (version 0.99) I added this file to /etc/pam.d/

File: /etc/pam.d/think
auth       required     pam_env.so
auth       sufficient   pam_thinkfinger.so
auth       sufficient   pam_unix.so likeauth nullok
auth       required     pam_deny.so

account    required     pam_unix.so

session    required     pam_limits.so
session    required     pam_unix.so

Then I changed the file /etc/pam.d/login to look like this:

File: /etc/pam.d/login
#%PAM-1.0

auth       required     pam_securetty.so
auth       include      think
auth       required     pam_tally.so file=/var/log/faillog onerr=succeed no_magic_root
auth       required     pam_shells.so
auth       required     pam_nologin.so

account    required     pam_access.so
account    include      think
account    required     pam_tally.so deny=0 file=/var/log/faillog onerr=succeed no_magic_root

password   include      think

session    include      think
session    required     pam_env.so
session    optional     pam_lastlog.so
session    optional     pam_motd.so motd=/etc/motd
session    optional     pam_mail.so

# If you want to enable pam_console, uncomment the following line
# and read carefully README.pam_console in /usr/share/doc/pam*
#session    optional    pam_console.so

And that's it. Now I can login on the console using my finger instead of typing my password. Since I use gdm as my graphical login manager I just changed the file: /etc/pam.d/gdm to be able to login to kde/gnome my finger.

File: /etc/pam.d/gdm
#%PAM-1.0
auth       optional             pam_env.so
auth       include              think
auth       required             pam_nologin.so
account    include              system-auth
password   include              system-auth
session    include              system-auth

I also tried to get the gnome-screensaver to work with my fingerprint reader - it works but doesn't seem stable. The screensaver very often freezes and I couldn't get it to work with the keyboard and the fingerprint reader at the same time so that I could use the keyboard if the fingerprint reader does not respond.

[edit] Suspend 2 disk

It works. I've tried 3 different implementations. At the moment I'am using the regular suspend. It sometimes hangs but it is ok. The suspend2 from suspend2-sources has sometimes problems with resuming the tablet features. After resuming for instance, I wasn't able to rotate my screen anymore. Today I played around with the s2disk utility from [5]. I noticed that OpenSuSE uses that and it works stable there. The latest genkernel has a patch to enable the resume utility in the initrd. But in Gentoo my system hangs just after resuming.

No matter what implementation you would use, remember to start the 915resolution utility before returning to Xorg after resume, otherwise you won't get the right resolution.

Since I'am using the hibernate-script

emerge hibernate-script

I put that into my /etc/hibernate/commons.conf file:

File: $HOME/.fnfxrc
# Configuration options common for suspending to disk or RAM.
# Options are not case sensitive.
#
# See hibernate.conf(5) for help on the configuration items.

##############################################################################
### Some global settings
##############################################################################

Verbosity 1
LogFile /var/log/hibernate.log
LogVerbosity 5
# LogTimestamp yes
AlwaysForce yes
# AlwaysKill yes
HibernateVT 9
Distribution gentoo
### clock
SaveClock restore-only

### devices
# IncompatibleDevices /dev/dsp /dev/video*

### diskcache
# DisableWriteCacheOn /dev/hda

### grub
ChangeGrubMenu yes
# GrubMenuFile /boot/grub/menu.lst
# AlternateGrubMenuFile /boot/grub/menu-suspended.lst
# BackupGrubMenuFile /boot/grub/menu.lst.hibernate.bak

### hardware_tweaks
# IbmAcpi yes
# Runi855resolution yes
FullSpeedCPU yes


### modules
#UnloadModules tifm_7xx1 tifm_core sdhci mmc_core ath_cpi ath_rate_sample ath_hal wlan_scan_sta wlan toshiba
UnloadModules sdhci mmc_core
#UnloadAllModules yes
UnloadBlacklistedModules yes
LoadModules auto
# LoadModulesFromFile /etc/modules

### modules-gentoo
#GentooModulesAutoload yes

### network
DownInterfaces eth0
UpInterfaces auto

### services
RestartServices 915resolution
#net.eth1
# StopServices alsasound
# StartServices aumix

### xhacks
SwitchToTextMode yes


[edit] Things that don't work

[edit] Suspend 2 RAM

This is a great disappointment for me. I've spent many many hours without any success. It would be very useful, especially since this machine isn't very economic as far as the battery is concerned. I tried the hibernate-ram script, I tried s2ram. I experimented with these boot parameters:

acpi_sleep=s3_bios,s3_mode

I tried various setting on different kernels in Gentoo, OpenSuse 10.2 and Fedora Core 6. It never even suspends. The screen goes black and the laptop just hangs, the Caps Lock doesn't work, nor can you work via SSH and the CPU Fan and all the blue control LEDs keep working. I'd be very happy to know if someone succeeded with Suspend 2 RAM on this or similar machine.


[edit] Links

Personal tools