HARDWARE Toshiba Satellite R20
From Gentoo Linux Wiki
| 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.
