Toshiba Satellite P500-ST2G02
This is a tutorial on how to install and configure Arch Linux on a Toshiba Satellite P500 Laptop.
- 1 Hardware
- 2 Removing Windows
- 3 Arch Installation
- 4 Install an AUR package manager
- 5 Install the Realtek wireless card driver
- 6 Install NVIDIA driver
- 7 Install the Synaptic driver
- 8 Setup permissions
- 9 ACPI
- 10 X11
- 11 Laptop Mode Tools
- 12 Multimedia Buttons
- 13 External Microphone
- 14 Compiling the kernel with PAE included
Custom configuration, purchased on 11/29/2010 from Toshiba Direct:
- Intel® Core™ i5-460M processor
- Genuine Windows 7 Home Premium (64-bit)
- 4GB DDR3 1066MHz memory
- 500GB HDD (7200rpm)
- 1GB GDDR3 NVIDIA® GeForce® GT 330M
- 18.4" screen
lspci reports this:
# lspci 00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02) 00:01.0 PCI bridge: Intel Corporation Core Processor PCI Express x16 Root Port (rev 02) 00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06) 00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05) 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 05) 00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 05) 00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 05) 00:1c.4 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 (rev 05) 00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 05) 00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a5) 00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 05) 00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA AHCI Controller (rev 05) 00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 05) 00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 05) 01:00.0 VGA compatible controller: nVidia Corporation Device 0a29 (rev a2) 01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1) 07:00.0 FireWire (IEEE 1394): O2 Micro, Inc. Device 10f7 (rev 01) 07:00.1 SD Host controller: O2 Micro, Inc. Device 8120 (rev 01) 07:00.2 Mass storage controller: O2 Micro, Inc. Device 8130 (rev 01) 0a:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8172 (rev 10) 0b:00.0 Ethernet controller: Atheros Communications Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0) ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 05) ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 05) ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 05) ff:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 05) ff:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 05) ff:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 05)
I was thinking of keeping Windows in its own partition, but I had trouble with repartitioning the hard disk. Since I don't really use Windows, I ended up deleting all Windows and Toshiba Restore partitions. For some reason cfdisk (my tool of choice) didn't work here, so I had to use fdisk to do that.
Both Arch 32 and Arch 64 install flawlessly on the laptop. For compatibility reasons, I decided to go with Arch 32, given that I had to later recompile the kernel with PAE option turned on, in order to access 4GB of RAM.
Install an AUR package manager
First I installed yaourt:
# vim /etc/pacman.conf
Add the following repository:
[archlinuxfr] Server = http://repo.archlinux.fr/$arch
# pacman -Syu # pacman -S yaourt
Install the Realtek wireless card driver
The wireles card does not work out of the box, so I had to install the 8192cu driver from AUR. Note that my card model is 8172, but it does seem to work fine with the 8192cu driver.
$ yaourt -S 8192cu
Install NVIDIA driver
# pacman -S nvidia
This also adds the proper xorg configuration. X starts and works fine right out of the box. It works in 1680x945 right away - no issues here.
Install the Synaptic driver
The mouse pad works, but it has issues. You need to install Synaptic:
# pacman -S xf86-input-synaptic
In order to use everything your user must be added to several groups
# gpasswd -a $USER wheel # gpasswd -a $USER network # gpasswd -a $USER video # gpasswd -a $USER audio # gpasswd -a $USER optical # gpasswd -a $USER storage # gpasswd -a $USER scanner # gpasswd -a $USER power
You have to tweak acpi a little, otherwise the laptop will randomly freeze. First add the following modules to your rc.conf: ac, battery, button, fan, thermal. Second edit /etc/acpi/handler.sh and under battery create another case for BAT1) which is the same as BAT0).
Here is an example of my /etc/acpi/handler.sh:
#!/bin/sh # Default acpi script that takes an entry for all actions # NOTE: This is a 2.6-centric script. If you use 2.4.x, you'll have to # modify it to not use /sys minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq` maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq` setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed" set $* case "$1" in button/power) #echo "PowerButton pressed!">/dev/tty5 case "$2" in PWRF) logger "PowerButton pressed: $2" ;; *) logger "ACPI action undefined: $2" ;; esac ;; button/sleep) case "$2" in SLPB) echo -n mem >/sys/power/state ;; *) logger "ACPI action undefined: $2" ;; esac ;; ac_adapter) case "$2" in AC) case "$4" in 00000000) echo -n $minspeed >$setspeed #/etc/laptop-mode/laptop-mode start ;; 00000001) echo -n $maxspeed >$setspeed #/etc/laptop-mode/laptop-mode stop ;; esac ;; *) logger "ACPI action undefined: $2" ;; esac ;; battery) case "$2" in BAT0) case "$4" in 00000000) #echo "offline" >/dev/tty5 ;; 00000001) #echo "online" >/dev/tty5 ;; esac ;; BAT1) case "$4" in 00000000) #echo "offline" >/dev/tty5 ;; 00000001) #echo "online" >/dev/tty5 ;; esac ;; CPU0) ;; *) logger "ACPI action undefined: $2" ;; esac ;; button/lid) #echo "LID switched!">/dev/tty5 ;; *) logger "ACPI group/action undefined: $1 / $2" ;; esac
You may also want to add pm-suspend under button/lid) to make your laptop suspend when closed. I particularly do not ever close my laptop, because I use it as a desktop computer.
I use Openbox, so in order to get everything on your computer accessible to you, you need to execute it with ck-launch-session:
exec ck-launch-session openbox-session
Same goes for any other GUI.
Laptop Mode Tools
I installed laptop-mode-tools, but it didn't seem to improve anything so I disabled it. The battery life of this laptop is less than an hour and there is not much you can do. I use the laptop as a replacement for a desktop computer, so it's always plugged in.
The volume buttons work out of the box. I am, however, slightly annoyed with them, because they are a little too close to the keyboard and can be accidentally pressed when typing. They can be disabled from the Gnome menu System -> Preferences -> Keyboard Shortcuts
The external microphone works well with OSS, but in order to work with ALSA, you have to add this line to /etc/modprobe.d/alsa-base.conf
options snd-hda-intel model=dell-vostro
Compiling the kernel with PAE included
If you chose to install Arch 86_64, you can skip this section. This is only for those who installed Arch 32 and would like to access more than 3GB of RAM.
You have two options:
- Install kernel26-pae from AUR
- Recompile the current Arch kernel to turn on the PAE option
I chose to recompile the kernel, which also gave me the opportunity to remove some modules I won't use.
Install the PAE kernel from AUR
If you chose to install the PAE kernel from AUR:
# yaourt -S kernel26-pae # yaourt -S nvidia-pae
It will take about an hour for the kernel to compile.
Recompile the current kernel
I compiled the kernel from ABS. Besides turning on PAE, I also did the following changes to my kernel:
- Removed bluetooth and infrared support (my laptop came w/o any of that)
- Removed ATA support
- Removed tablet, touch screen and others
- Changed the CPU type to Core 2/Newer Xenon
After you log in to the new kernel, you will have to recompile the nvidia package too