Linux on a Sony Vaio PCG-Z600RE

Current status:
25 Sept 2003: This page is no longer actively maintained. I leave it here in case anyone is interested though surely now it must be merely of historic value. I recently replaced the hard disk on this machine using the wonderful instructions found here from Alan Miller. It now has a 60GB disk. I used the original restore CD to reinstall windows (it only created partitions on the first 12GB). I then installed Redhat 9. The old trick of supplying "ide2=0x180,0x386" no longer seems to get the pcmcia cdrom recognized during the install process so the only way I could install was by copying the images onto the FAT32 drive and do a hard disk install. Everything works on this machine under linux so there seems nothing more to add.

10 Sept 2002: A breakthrough - The ComOne Discovery Card winmodem DOES work under linux. All this time I have not tried to get it to work because the pcmcia-cs package states that this card will never be supported. It took a while to get it to work, but now it works great.

24 May 2002: I've not been maintaining this page very well. I am currently running Redhat 7.1 which essentially works "out of the box" on this machine. I happen to be using a prestine kernel 2.4.10. The jogdial works, and the USB floppy no longer produces errors and can be hot-plugged.

20 October 2000: I have upgraded to Redhat 7.0 (and found out how to do it off the CD) but otherwise left the configuration below unchanged. I do not intend to upgrade the kernel until 2.4.0 is finally released - my current 2.3.99-pre6 one is working just fine.

13 June 2000: I am in the following situation. I am using a modified 2.3.99-pre6 kernel -see below.

- Can dual boot both linux and windows 98 (without any loss of functionality to windows - see kernel details below).
- X windows works fine.
- CD is recognized
- Ethernet adaptor works fine (uses ethpro100).
- Suspend, and hibernate functions work with both operating systems. You need to switch off sound before doing this and you will need to restart networking and sound afterwards.
- I have a (linux) bootable floppy for rescue purposes.
- USB mouse is recognized and configured.
- USB floppy drive is recognized and configured (but not hot swappable very easily).
- Sound works using the ALSA sound system (version>0.5.8) - see below.

To avoid timeout errors on the floppy, you need to have it plugged in at boot up time. I think this is to do with the double pci-irq scan which the hint below forces.
The supplied PCMCIA modem card is a winmodem - so is not supported. (10/9/2002 - it does work now!)
the jog dial is not recognized (it is with the sonypci module now).

Kernel details:
In order to get the USB sub-system to work with the BIOS set to plug-and-play operating system (which seems to be necessary to run windows) you need to follow the hint. [For my machine, change "irq == 10" to "irq == 9" for that is where the usb controller is - and practically everything else too.] You also need kernel 2.3.99-pre6 or greater to get the new pci-irq routine or it will complain that IRQ's are not set.
Here are some resources that may help:

- My kernel configuration (for 2.3.99-pre6)
- My hacked version of linux/arch/i386/kernel/pci-pc.c

There is no option to build the usb-storage module into the kernel so you need to `manually' load it before the USB floppy will be recognized. I have a line in my /etc/rc.d/rc.local file which is
/sbin/insmod usb-storage
to do this at boot time.

Machine Details:
The Sony Vaio PCG-Z600RE is a new (March 2000 in Europe) superslim-pro notebook in the Vaio range. It has the following specs
- mobile PIII 500MHz
- 128MB RAM as standard expandable to 256MB
- 12.0GB hard disk
- Video chip: Neomagic 256AV with 2.5MB RAM
- TFT XGA screen (1024x768)
- built in ethernet adaptor (Intel 82559)
- Sound Chip: Yamaha DS-XG
- USB floppy drive (supplied as standard)
- PCMCIA CDROM (supplied as standard)
- PCMCIA modem card (supplied as standard) - but its a winmodem (Comone discovery card).

Installation of linux:
New: I have now upgraded to Redhat 7.0 though I am still using my 2.3.99-pre6 kernel. However, it is not necessary to do a hard disk install - see below.
I have installed Redhat 6.2 (zoot) which comes with a 2.2.14 kernel. I used the redhat 6.2 CD image to write a bootable CD.

- Resize and repartition the disk. I tend to use partition magic for this but there is no reason why fips and fdisk shouldn't work. The machine comes with a 7GB FAT32 C: drive and a 4.5GB FAT32 D: logical partition which completely fills the rest of the disk. I deleted the extended partition, resized the remaining primary partition to 5GB. Then created a 16MB primary partition (hda2) for the /boot , then a 384MB primary partition for the root file system. The rest of the disk I used for an extended partition containing a 1GB FAT32 (D:) , a 2GB ext2 (/home), a 3BG ext2 (/usr) and 125MB swap logical partitions.
- CDROM installation (New): This is by far the easiest way to install - though not the way I did it. The laptop will happily boot off the CDROM but , unless you give it more information, it will forget where the CDROM is later in the install process, which is why I originally did a hard disk install (see below for details). To remedy this you need to type linux ide2=0x180,0x386 at the redhat boot prompt. Then you should be able to proceed with the usual installation. Thanks to Holger Frahm for the hint.
- Hard disk installation: Now boot to windows. I did a hard disk installation since I found that even using the pcmcia boot image, redhat 6.2 would not recognize the CDROM as a CDROM but just as an IDE drive. I believe a network install should work though but I have not tried it.

  • Create a directory called RedHat on the windows C: drive and fill it with the contents of the same directory on the CDRom. I think you only need the contents of `base' and 'RPMS'.
  • Now install Redhat. Note you can boot the system off the CD even though the kernel won't recognize the CD later in the installation. I guess the same is true with the bootable floppy. Your installation medium is the hard disk /dev/hda1.
  • Installation is straightforward - it will be text based.

- Installing LILO. You need to put this on the master boot record (MBR) so you will need boot=/dev/hda if you write your own lilo.conf. If you don't and install it on the linux /boot partition then the hibernate function doesn't work properly and just behaves like suspend. For some reason hibernate only works when the active partition is /dev/hda1 (ie your windows C: drive). If you insist on putting LILO on your linux boot partition and not the MBR, then remember to check that it is the only partition marked as active or the MBR will neve pass control to LILO (RedHat 6.2 does not seem to check for this).
- Setting up X11. It found the right video card but I had to tell it the amount of memory. There is an option for a 1078x768 LCD screen for the monitor which I took. Probing clocks didn't work but nothing hung during the proceedure. Works fine!
- Don't bother creating a rescue disk 'cos, as far as linux is concerned, you don't have a floppy drive.

That gets you a functioning system after which you can work on the details. The ethernet card was detected and correctly configured, out of the box.

Creating a rescue disk:
I found it slightly disconcerting not having an alternative method of booting linux so I have created a bootable floppy (bootable from a floppy drive which linux doesn't yet see). This was easy but I used a second machine. Compile yourself a new kernel (or alternatively I guess you could lift the current kernel). Make sure that it has the correct root device (`rdev vmlinuz /dev/hda3' for me). Then copy this to your FAT32 partition. You can then transfer it to another linux machine which does have a recognized floppy. I then followed the instructions in the lilo users guide for creating a LILO bootable floppy. (Make an ext2 file system, copy /boot/boot.b and the compressed image to the file system and run lilo with the command line given in the Users guide).
Okay - supposing you didn't have access to another linux machine. I guess you could do the same thing by using a file on the windows partition as a loopback device. You would construct your filesystem on it and then when you are happy with it you could use the rawrite utility under DOS to make the bootable floppy. I have not tried this. (Actually I don't think it will work either as lilo needs to know absolutely where it will be during the boot process.)

Other things
There is a sound driver for the Yamaha chip produced by OSS . This you need to pay for and if you use it you will get feedback between the speakers and the microphone until you mute the microphone using aumix -m 0.
Alternatively use the new drivers from the ALSA project. This requires marginally more work to set up, but it is free and the devices are initally all muted so there is no feedback. You obviously need to unmute them before you can hear anything. First you need to have enable sound in the kernel, but you don't need to specify any devices. After compiling the ALSA modules you would install the following modules if you wanted to do everything by hand:

insmod soundcore
insmod snd
insmod snd-timer
insmod snd-pcm
insmod snd-mixer
insmod snd-ac97-codec
insmod snd-ymfpci
insmod snd-hwdep
insmod snd-opl3
insmod snd-seq-device
insmod snd-rawmidi
insmod snd-mpu401-uart
insmod snd-card-ymfpci

Then, for compatibility with the OSS drivers (to get Gnome to work) you should:

insmod snd-pcm-plugin
insmod snd-mixer-oss
insmod snd-pcm-oss

Finally, switch on the sound devices using:

amixer set "Master" 19 unmute
amixer set "PCM" 19 unmute

After suspend you will need to remove and reinstall the snd-card-ymfpci module.

The ethernet card seems to need to be cold booted after it has first been configured with windows.

Sometimes the CD-rom PCMCIA needs to be removed and reinserted for it to be configured successful. When it is, it appears as /dev/hdc or /dev/hde.

Sources of help
The spec of this machine seems to be identical to that of the z505-hs, which is sold in the States. I am not completely convinced that these are the same beasts though since I tried using the kernel config that seems to work reasonably well on those machines with little improvement for me. However, there is a community working on full linux functionality for that machine, and they can be found at sourceforge.

Theoretical Physics Research Group.