Linux on Sony Vaio PCG-Z1VAP1
Introduction
This howto was built upon Mark's (PCG-Z1A) and Yves' (PCG-Z1SP) experiences with installing Linux on similar laptop models. PCG-Z1VAP1 is a very nice and powerful laptop, especially when upgraded to 1 GB of RAM. Linux runs great on it with the exception of missing drivers for the built-in wireless adapter. Check the status of Linux on the Intel Centrino laptops for the latest development.
I have installed a source-based Linux distribution Sorcerer on this laptop.
Compatibility Matrix
Subsystem | Compatibility | Driver(s) | Comments |
Graphics | Yes | radeon |
DRI works with XFree86 4.3.99.902 and newer |
Sound | Yes | ALSA i8x0 |
|
Ethernet | Yes | e100 or eepro100 |
|
Wireless | Alternative solutions | The integrated Intel miniPCI card is not supported | |
CDRW/DVD | Yes | ide |
|
USB | Yes | uhci (usb-uhci), ehci-hcd |
|
IEEE1394 | Yes | ohci1394, ieee1394 |
|
Memory Stick | Yes | usb-storage |
|
Modem | Untested | Linuxant HSF modem drivers might work | |
Bluetooth | Untested |
Specifications
- Intel Pentium M (Centrino) 1.6 GHz CPU
- 14.1" SXGA+ LCD TFT display (1400x1050)
- ATI Mobility Radeon 16 MB video DDR SDRAM, Dual display support
- RAM 512 MB (upgraded to 1 GB)
- 60 GB hard disk
- Internal CD-RW/DVD Combo drive (CD-ROM read 24x max; CD-R write 16x max; CD-RW write 10x max; DVD-ROM read 8x max)
- Memory Stick slot
- Integrated V.90 modem
- Integrated Ethernet card 10/100 Mbps
- Integrated (miniPCI) Intel PRO/Wireless 2100 802.11b card (Centrino) with 128-bit WEP
- One PCMCIA I/II slot
- Integrated Intel 81x sound chip
- PS/2 touch pad
- USB 2.0 and IEEE1394 (i-link) controllers
- Bluetooth
Output of the lspci (version 2.1.11) command:
00:00.0 Host bridge: Intel Corp.: Unknown device 3340
(rev 03)
00:01.0 PCI bridge: Intel Corp.: Unknown device 3341 (rev
03)
00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev
03)
00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev
03)
00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev
03)
00:1d.7 USB Controller: Intel Corp. 82801DB USB EHCI
Controller (rev 03)
00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev
83)
00:1f.0 ISA bridge: Intel Corp.: Unknown device 24cc (rev
03)
00:1f.1 IDE interface: Intel Corp.: Unknown device 24ca (rev
03)
00:1f.3 SMBus: Intel Corp. 82801DB SMBus (rev 03)
00:1f.5 Multimedia audio controller: Intel Corp. 82801DB
AC'97 Audio (rev 03)
00:1f.6 Modem: Intel Corp. 82801DB AC'97 Modem (rev 03)
01:00.0 VGA compatible controller: ATI Technologies Inc
Radeon Mobility M6 LY
02:05.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev b8)
02:05.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C551 IEEE 1394
Controller
02:08.0 Ethernet controller: Intel Corp. 82801BD PRO/100 VE
(MOB) Ethernet Controller (rev 83)
02:0b.0 Network controller: Intel Corp.: Unknown device 1043
(rev 04)
Installation
This computer came with Windows XP preinstalled. Thus, I used Partition Magic to shrink the Windows partition and create new partitions for Linux. However, my experience with preinstalled MS/Sony software strengthened my decision to keep my exposure to this horrible product to a minimum. Do you think that I am exaggerating? Read on and judge yourself.
The laptop came with so called Recovery Wizard that is
supposed to restore the operating system in case of an emergency.
Basically, it keeps a copy of the system on a hidden 5 GB
partition. The disk is divided to three partitions: (1) hidden
restore partition (5 GB), (2) disk C:
, and (3)
disk D:
. The Sony guide book suggests that you can
create a set of 10 recovery CDs and then you can remove the
hidden partition to gain more disk space. However, the Recovery
Wizard was so badly written that it always stopped after burning
a few CDs with a message (quoting from what I remember it said):
"Error writing to the CD. Close the wizard and the computer will
be restarted. Then create the CD again." Sure enough, upon
closing the message and the wizard the computer rebooted. After
reboot, the wizard started creating the recovery CDs from the
first one again! Believe me, I searched for an option but did not
find any. I do not understand why Sony (MS?) creates such a piece
of c**p instead of packing a restore DVD with this $2500
computer, especially if Sony sells the restore kit for a mere
$15. If they added the CD/DVD kit, I might have never needed it
so I would have never discovered how badly written this software
is. Their attempt to save lousy $15 will cost them negative
feedback shared with many other potential customers. In the end,
I have ordered the recovery DVD.
Partition | Size | Mounting Point | File System |
/dev/hda1 (primary) |
23 MB | /boot |
ext3 |
/dev/hda2 (primary) |
9 GB | /mnt/win, C: |
FAT32 |
/dev/hda3 (primary) |
3 GB | none | linux-swap |
/dev/hda5 (logical) |
45 GB | / |
ext3 |
Note that I have converted the Windows NTFS file system to FAT32 because writing from Linux to the NTFS file system is still dangerous. I need to write there because the computer dual boots Linux and Windows XP. The 3 GB swap partition may seem to be too generous but I want the software suspend to work properly even though the large tmpfs partitions can use approximately 2.3 GB total and the RAM itself is 1 GB.
Let's get to business and start the real installation. Sorcerer's installation CD (version 20031108) is recognized on boot and soon a prompt awaits your command. Because I want to install the system and know that the CD drive is /dev/hdc, I type
boot: linux root=/dev/hdc
Soon, configuration menus are displayed and it is time to
configure the system: sorcery settings, compilation preferences,
kernel, LILO, /etc/fstab
, set
up networking, etc. Sorcerer documentation is
your best friend. Before you restart the computer, do not forget
to set up the dual booting.
The compiler flags were set to
CFLAGS="-O2 -pipe -march=pentium4"
CXXFLAGS="-O2 -pipe -march=pentium4"
LDFLAGS="-Wl,-s"
After you reboot to your fresh kernel,
it is time to synchronize the grimoire (augur synch
)
and to check whether your gcc and glibc are up to date:
augur available gcc; augur version gcc
should show
the same versions. If not, update to new gcc (cast
gcc
). Then do the same for glibc. The next step is to
recompile all of the installed spells (packages) for your box.
Simple command sorcery rebuild
will fully load the
CPU and give you a few hours break. Then start
sorcery
to select and install programs that you
want. As a minimum, I recommend to cast
useful-profile
. Have fun!
Kernel
My 2.4.22 kernel configuration. The 2.4.22 kernel is patched in order to enable software suspend to disk (2.0-rc1) and scsi hotplug ( the scsi hotplug patch for 2.4 kernels). The SCSI patch adds support for per device hotplugging into the SCSI subsystem. It can make your life much easier because the most common devices (CDRW/DVD, digital camera, external hard drive, etc.) plug into the ieee1394 port and are attached to the SCSI subsystem.
Notes:
- I have not experimented with the CPU throttling yet as I expect the 2.6 kernel released soon. The control of CPU's performance is part of the 2.6 kernel.
- Enable ACPI and almost every option under it. This is very important as ACPI is needed to regulate the CPU temperature. Without ACPI, your CPU will eventually get toasted.
- SCSI emulation of cdrom drive is deprecated since
approximately kernel 2.4.21. In fact, the
ide-scsi
driver does not work anymore. However, theide
driver works perfectly, even burning CDs. - Enable IEEE1394. You will need ohci1394, ieee1394 and sbp2 modules at least.
- There are currently no Linux drivers for the integrated wireless card although some solutions exist. I have replaced the Intel Wireless card by Dell's TrueMobile 1150 miniPCI card that requires the orinoco driver (module), also referred to as "hermes".
- ALSA i8x0 driver (version 0.9.8 and newer) works fine with the laptop's sound card. Note that the sound is muted after you install the driver.
- Sonypi can be used to adjust screen brightness and to catch Fn-key events.
- Use e100 or eepro100 drivers for the integrated ethernet card. I do not observe any difference between the two.
X11 Configuration
XFree86 works with the radeon driver and the configuration is quite straightforward. I have configured XFree86 (version 4.3.0.1) for 1400x1050 resolution, touch pad and a USB mouse. Check my XF86Config-4. DRI seems to be not working properly based on messages in /var/log/XFree86.0.log but I am in no hurry to resolve it as the 3D capabilities are not essential for me. However, your suggestions are welcome.
When XFree86/DPMS blanks the screen, the backlight stays on. Yves's page provides a patch to rectify the problem. In order to control the backlight directly, install radeontool.
Update: Both DRI and backlight work fine with XFree86 4.3.99.902 and newer.
Screen Brightness and Fn Keys
If you want to control screen brightness and use the Fn keys,
make sure to compile the sonypi driver and put the following
lines in /etc/modules.conf
:
alias char-major-10-250 sonypi
options sonypi minor=250
This supposes the use of minor 250 for the sonypi device:
mknod /dev/sonypi c 10 250
Then compile and install sonypid and sonypidd. I made some minor changes in the sonypidd script:
sed -i 's:^$click.*:$click =
"/usr/bin/play /usr/share/sounds/KDE_Click.wav" ;:' sonypidd
sed -i 's:, undef.*# 12:, ["hibernate"]\t\t # 12:'
sonypidd
Note that the second line hooks up the software suspend action on the Fn-F12 key press. The sonypidd script is started at system boot and provides almost the same functionality of the Fn keys as the Sony utility in Windows XP.
Software Suspend
Suspending the system to disk is a great convenience feature for the laptop users. If you need to turn off the laptop, suspend saves the memory content to the disk so it can be restored on the next boot in order to continue working exactly where you stopped. Software suspend (swsusp) stores the memory pages (including graphics pages) on the swap partition or in the swap file. Personally, I tend to have a dedicated partition for swapping. Swsusp is almost stable for the 2.4 kernels although some problems may still occur. You backup your data, don't you?
In order to install the software suspend feature, you need to download a kernel patch and an optional suspend script. I currently use the 2.0-rc1 version (my partitions are ext3) and the suspend script. Note:
- Do not initiate the hibernation from acpid or it will be impossible to unload/load some kernel modules (usb and ieee1394 related). Rather use the Fn-F12 key press to suspend the system as it is already marked on the keyboard.
- The laptop freezes on resume when I use the
ehci-hcd
module. I prefer working swsusp over USB 2.0 so I do not use the module. - Set
SWSUSP_UNLOAD_MODULES_BEFORE_SUSPEND="yes"
in the /etc/suspend.conf script. - Before suspend:
- Unmount NFS and external drives including memory stick.
- Stop any network connections like ssh, ftp, etc.
- Stop ALSA.
- Unload (
modprobe -r <module>
) the following modules in the stated order: sbp2, ohci1394, usb-storage, hid, uhci. - Stop ethernet adapters and PCMCIA.
- On resume start the ethernet and PCMCIA, load required modules, start ALSA.
This recipe works for me. It takes care of the wireless network connection and all usb/ieee1394 devices. As a matter of convenient implementation of the recipe, I suggest using the swsusp script. Swsusp is a work in fast progress thanks to the excellent work of the project's main developer Niguel Cunningham. Therefore, my description is rather brief. Please do not hesitate to contact me if you need more information about swsusp.
Wireless
The integrated wireless card does not work on Linux yet. Possible solutions:
- Sign up the petition for Intel Support of Centrino Under Linux and wait until Intel writes drivers for Linux.
- Replace the integrated card with a mini-PCI card based on
Linux-supported chip. Nigel Spengler reports successful
replacement with Dell TrueMobile 1150 mini-PCI card. I have
followed his experience and replaced the Intel's card by the
Dell TrueMobile 1150 mini-PCI card. I could not find the card
on Dell's web pages but bought it on eBay from someone who
pulled it from the Dell Latitude C640 laptop. The chips on the
card are made by Agere and an inscription on the board says
Agere Ruby miniPCI card. However,
cardctl ident
identifies the card as
The card works flawlessly with the orinoco driver.product info: "Dell", "TrueMobile 1150 Series PC Card", "Version 01.01", ""
manfid: 0x0156, 0x0002
function: 6 (network) - You can try the Linuxant driver
loader that allows to load the Windows XP drivers on Linux.
Here is Scott Brown's experience:
I would like to report that I have found that the Linuxant driver loader works quite well. Given that it is only $20, it's a nice alternative to buying a new wireless card, especially since the Dell TrueMobile 1150 mini-PCI card is getting rather hard to come by.
- Use a wireless PCMCIA card instead.
Disclaimer
This HowTo is provided for your information only and whatever you do with your laptop is solely your discretion. The author is not liable for whatever happens to you, your laptop and any person at all (for example but not limited to: explosion, CPU speed increase, lottery win, drowning, etc.) if you follow these instructions.