TuxMobil - Linux on Laptops, PDAs and mobile Phones

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.

My disk partitioning:
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:

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:

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.