Sony Vaio

Installing Linux on a Sony Vaio Z505SX notebook

This webpage describes my experiences with installing Linux on a Sony Vaio Z505SX. I wouldn't have been able to do this successfully without the help of many sources of information on the Internet. This is my attempt to give something back to the community.

Note that I will only explain what I have been doing, I'm not trying to write a tutorial. If you are using another Linux distribution, other settings, or even other hardware, your mileage may vary.

Please send comments, additions, corrections, and updated information to edi(at)agharta(dot)de. I will try to keep the page updated. Please feel free to correct my English, too. I'm not a native speaker.

I have switched to IBM/Lenovo Thinkpads (and heartily recommend them!), so this page will no longer be actively maintained by me.

Contents

Disclaimer

If you apply any of this information to your own laptop, you may end up causing damage to your software, your hardware, or your mental health. I take no responsibility for anything that you may do as a result of reading this page. The contents of this page are provided 'as is' with no warranty. Yada, yada, yada...

The hardware

For those of you who don't have a Vaio, here's a short description of the hardware: Intel Pentium II processor at 366 MHz, 128 MB RAM, 12.1" XGA TFT screen (1024x768 pixels), integrated 10Base-T/100Base-TX Ethernet interface, 6.4 GB fixed hard drive, one Type II PC card slot, two USB ports, infrared, integrated V.90 WinModem (see below), IEEE-1394 (i.e. FireWire) interface, built-in microphone and stereo speakers, Sony Memory Stick media slot, external USB floppy drive. See Sony's website for more details.

Please note that the Z505 series models are different from other 505 models. If you have one of these machines or another Vaio laptop, this is probably not the right place for you. The other Z505 models (RX, R, and S) are more or less the same, but I've heard that there are slight differences.

Useful links

You shouldn't think that I came up with this all by myself. In fact, I've gathered almost all information that I needed through various places on the Internet. Here are some of them:

Which distribution?

I used SuSE Linux 6.1, mainly because I've been deploying SuSE distributions successfully for more than two years and I really like it. Installation and configuration of Linux with SuSE is really easy, and I think you should give them a try if you haven't made a decision about your distribution yet.

Of course, you will also be able to install Linux on your Z505 with other distributions, but many of the things that I'm describing here might be specific to SuSE 6.1.

Re-partitioning the hard disk

I wanted to keep Windows 98 until I was sure that everything worked fine with my new Linux setup. Since I didn't have a CD-ROM drive, I had to re-partition my hard drive without erasing its contents. This procedure is explained in the SuSE manual and on various websites, so I'll just give an outline here:

First, you should ask Windows to defragment your hard disk. (This might take a couple of hours.) Also, you should temporarily disable virtual memory because Windows might use the end of your partition for this task. Afterwards, you can use fips to change the size of the Windows partition and add new partitions for Linux. I chose 2 GB for Windows, a 128 MB swap partition for Linux, and devoted the rest to the root mounting point. As a couple of people have pointed out, altering the /dev/hda4 partition is not recommended since it is used by the BIOS hibernation feature. (If you accidentally removed or damaged this partition, these notes from Erez Strauss might help you.)

Note that fips 1.5 didn't work for me, I had to use the 2.0 version. Both versions are provided as part of the "dosutils" of the SuSE distribution. (SuSE recommends to use the 1.5 version...)

Installation with or without a CD-ROM drive

Again, I didn't have a CD-ROM drive when I installed Linux, so I had to do an NFS install. This procedure is also well explained in SuSE's documentation, so I'll only note what's specific for the Vaio Z505SX:

First, you will need another Linux/Unix machine with a CD-ROM drive and an Ethernet connection. Insert the first SuSE CD into this drive, mount it and export this directory via NFS. Make sure you know the necessary TCP/IP settings to connect to this machine.

Put the Linux boot floppy into your floppy drive, connect the drive to your Vaio, connect the Vaio to your Ethernet, and turn on the computer. Please be patient. Booting Linux from a floppy disk took more than ten minutes on my Vaio - no kidding. (This might be due to the USB connection, due to the Sony floppy drive, or maybe it is just my personal bad luck with the hardware that I've bought...)

Before you can start the installation, you will have to load the right network kernel module. You need the "eepro 100" module. That's it, you can now follow the SuSE instructions. (If you have to change CDs during installation, you will have to unmount, change the CD, and mount again on the machine that's exporting your directory.)

If you have a Sony CD-ROM drive, you can directly boot from the first SuSE CD-ROM to start the installation. You must answer "linux ide2=0x180,0x386" to the "boot:" prompt (i.e. pass these parameters to the kernel) to make this work.

How to boot your new Linux system

The usual way to boot your new Linux installation is to put lilo into your Master Boot Record. Unfortunately, a couple of people have described Windows-related problems with this method which they could only solve by re-installing Windows from the CDs provided by Sony.

I didn't have a CD-ROM drive (did I mention that already?) so I had to choose another solution. I tried loadlin and the Windows boot menu. Everything worked fine until I started to fiddle with autoexec.bat, config.sys, and all that stuff. The result was that I couldn't use Windows anymore, and so I decided to install lilo. The reason why I'm bothering you with this story is that I was able to reanimate Windows afterwards, and now I have a working dual-boot setup without the need to re-install Windows. The conclusion might be that installing lilo in your MBR (using SuSE's yast) won't prevent you from deploying Windows even if you don't have a CD-ROM drive. As I said in the disclaimer, your mileage may vary...

Some people have reported kernel panics at boot time. I never had these problems, maybe because I added

	append "mem=128M"
to my /etc/lilo.conf file (thanks to a hint from Dave Foster's Vaio page). Of course, 128M might be the wrong value if you use another Vaio model...

[Update: William Cattey recommends disabling the lilo timeout and not putting the "append" line in your /etc/lilo.conf if the procedure described above doesn't work for you.]

Using X and other basic stuff

Most of the topics that I'm not talking about in the following sections will be taken care of by the tools that are provided by SuSE, especially by yast and sax. In particular, you should be able to use your notebook with X without any further assistance. (At least I hope so.) [Note that I had very special problems using X in 16 bit mode. I'm using 24 bit mode without any problems. vnc won't work with 24 bit mode, though.]

You can use gpm without any problems. You're using a PS/2 mouse.

The BIOS

I didn't know where to put this information, so I put it here: You can access the BIOS setup by pressing F2 at boot time. It's mentioned in the Notebook User's Guide (on page 64, thanks to Mark Powell for pointing me there) but hard to find. You can change some settings (password, power management, ...) but not all. (If someone knows how to reach this part of the BIOS, I'd be really glad if he/she could send a note.)

Memory Stick

I have no use for Sony's "memory stick", so I just disabled it in the BIOS setup. (I'm glad that I mentioned it already...) If you don't do this, Linux might complain about problems with /dev/hdc during boot time. I don't think that this will influence the system's performance, though. Christian Wehrfritz told me that you can use these memory sticks without any problems because they are DOS-formatted: Just mount them from /dev/hdc1 with type "msdos".

My kernel

In the following sections I will refer to custom-made kernels occasionally. In order to avoid including code snippets here and there, here is the .config file that works for me. Note that I am using a standard (i.e. non-SuSE) 2.2.12 kernel now and that the .config file posted here is for this 2.2.12 kernel. You should be able to extract the relevant information, though.

Power Management (and your Ethernet card)

Power Management works fine if you compile APM support into your kernel. You should be aware of the fact that the apmd version that comes with SuSE 6.1 will not provide you with everything that you need. Specifically, your system won't report the right time after an idle time period. You'll need a 3.0 version of apmd to get it right. (Don't forget to start apmd at boot time. You can do this by editing /etc/rc.config if you're using SuSE Linux.)

In order to be able to shut down your notebook with the halt or shutdown -h command, you will have to change your shutdown script /sbin/init.d/halt. Just add the option "-p":

...
case "$0" in
        *halt)
                message="The system is halted."
                command="halt -p"
                ;;
        *reboot)
...

Blanking the screen (video suspend) will work fine with your console. In order to make it work with X you will need to use a tool like xcnf (provided by SuSE). Alternatively, you can change your XF86Config settings. Here is what Reiner Klenk proposed in comp.os.linux.portable:

add	Option	"power_saver" to Section "Device"

add	BlankTime	10
	StandbyTime	11
	SuspendTime	12
	OffTime	15	to Section "Screen"
(I haven't tried it yet.)

The 3.0 version of apmd will also provide you with an apmd_proxy feature in your /etc directory. This is what I added to make my Ethernet card work after a suspend or hibernate event:

	...
	# other common actions:  reload troublesome drivers
	# EXAMPLE: reload OSS sound drivers.  Path may vary.
	#	/usr/local/bin/soundon
	if [ $2 = suspend ] || [ $2 = critical ]; then
	    /sbin/init.d/network restart
	    /sbin/init.d/route start
	fi
	;;
	...

[Harald Ganziger told me that restarting /sbin/init.d/dhclient will work in case you're using DHCP.]

You will also have problems with your Ethernet card after a warm reboot from Windows. (Windows is leaving your chip in suspended state.) Therefore, I recommend to do a cold reboot after using Windows 98. Please note that Donald Becker, the author of the eepro 100 driver, is aware of these problems and that they'll be fixed in future releases of Linux. (An alternative solution can be found on this page.)

A nice text console

If you think that you don't have enough space on your console desktop, you're right. One solution might be to change your console font. A better solution - in my opinion - is to enable the VESA framebuffer support of your notebook. In order to do this, you will have to do two things: You will have to compile VESA framebuffer support into your kernel, and you will have to replace the line "vga=normal" with "vga=791" in your lilo.conf file. More details (in German) can be found on SuSE's website.

IrDA and my cell phone

In this section I will describe how I connect to the Internet using IrDA and my cell phone (an Ericsson SH888 model). You will probably use other IrDA devices, but maybe the following paragraphs will give you some hints about what to do:

I am using a 2.2.12 kernel and I also applied the latest IrDA patch although I don't think this was really necessary. You will also need a recent version of the Linux/IrDA-Utils.

After you've compiled and installed the software, you will have to create the devices that you need. You only have to do this once:

	mknod /dev/ircomm c 161 0
	mknod /dev/ircomm0 c 161 0
	mknod /dev/ircomm1 c 161 1
I think the first line will suffice, but it won't hurt to create the other devices. (Note that older versions of the IrDA software used other major and minor numbers, namely 60 and 64.)

The kernel assigns interrupt 4 to /dev/ttyS2 although the BIOS wants interrupt 10 by default. To correct this, you'll have to say

	setserial /dev/ttyS2 irq 10
(I recommend adding this line to your /sbin/init.d/boot.local file.) The following two lines need to be added to your /etc/conf.modules file:
	alias tty-ldisc-11 irtty
	alias char-major-161 ircomm-tty
(With older versions of the IrDA software the last line would have been "alias char-major-60 ircomm_tty". Nope, no typo: That's an underline instead of the hyphen above.)

If you have installed the IrDA software correctly, you will now have a file /etc/irda/drivers. Edit it to look like

	...
	'start')
		irattach /dev/ttyS2
	;;
	...
Now you can start irmanager. I use a script in /sbin/init.d/ (linked to files in the appropriate rcx.d subdirectories) to start irmanager at boot time.

What remains to be done is to start a PPP connection to your ISP. This is described in detail in the Linux PPP HOWTO, you just have to use /dev/ircomm instead of /dev/modem. (And if you usually connect to the Internet through a gateway on your LAN you have to delete your default route before you start.) If you think you need further assistance, you can take a look at my /etc/ppp/ directory.

If you want to try something similar yourself, good places to start are the Linux IR HOWTO and the archive of the Linux-IrDA mailing list.

Keyboard settings

I bought a US Vaio Model (through eBay) because you can only find rather out-of-date Vaio models here in Germany. My main problem is that the US Vaio keyboard doesn't provide the German umlauts that I really need now and then. On the other hand, you will find two Windows keys (on both sides of the ALT-SPACE-ALT sequence) that you can't use with Linux. Here's my solution to this problem:

Add the following lines to the end of your console keyboard layout (us.map.gz):

	keycode 125 = AltGr
	keycode 127 = AltGr
	keymaps 0-4
	keycode 30 = +a +A adiaeresis Adiaeresis Control_a
	keycode 24 = +o +O odiaeresis Odiaeresis Control_o
	keycode 22 = +u +U udiaeresis Udiaeresis Control_u
	keycode 31 = +s +S ssharp ssharp Control_s
This will provide you with ä (Windows key + a), ö (Windows key + o), ü (Windows key + u), and ß (Windows key + s). (The capitals work as well if you press the SHIFT key.)

To get the same result under X, you'll have to add these lines to your Xmodmap:

	keycode 115 = Mode_switch
	keycode 117 = Mode_switch
	keycode 38 = a A adiaeresis Adiaeresis 
	keycode 32 = o O odiaeresis Odiaeresis
	keycode 30 = u U udiaeresis Udiaeresis
	keycode 39 = s S ssharp
	clear Mod2
	add Mod2 = Mode_switch
(I was finally able to find a working solution for both X and the console after studying Aldo Valente's website.)

The Touchpad

Forget what I wrote about the VersaPad driver, I was wrong. What you'll need is the ALPS Glidepad driver from http://compass.com/synaptics/. Doesn't have a lot of features yet, but you can disable the 'tapping' feature if you want.

Sound

It took them some time, but 4front is finally supporting the Neomagic NM 2200 chipset. The driver is still in beta stage, though. See their sound card list and the README page for details.

However, you don't have to pay for sound support! A nice guy has written a driver for the Neomagic card. To get it, you either have to use a new kernel (2.2.13 or higher) or you have to patch your old kernel.

If you've never patched your kernel before, here are some instructions:

  1. Download the patch and put it into your /tmp directory.
  2. cd /usr/src/linux
  3. patch -b -p1 < /tmp/sony-patch-2.2.11 2> out
    (The -b option will make a backup of your original files.)
  4. Check the out file to see if you got any error messages.
  5. Compile a new kernel and new modules (as described in the SuSE manual).
No matter if you've patched your pre-2.2.13-kernel or if you're using a newer one, you have to edit your /etc/conf.modules file now. You'll have to comment out (or delete) three lines and add two:
#alias char-major-14 off
#alias sound off
#alias midi off
alias char-major-14 nm256av
post-install nm256av /usr/bin/aumix -v 100,100
(The last line is optional. You can use a command of your choice after "post-install nm256av" to automatically set the sound volume to your preferred level. For 2.2.13 and newer kernels you should replace "nm256av" with "nm256"!)

That's it. You should have sound now...

Modem

The modem provided with this notebook is one of those f**king "WinModems". The majority of Linux developers doesn't seem to be willing to support these kind of "modems", so you shouldn't expect to be able to use it with Linux soon. There is hope, though: I've heard rumors on the "LinModem" mailing list, that Rockwell (the manufacturer of the Vaio Z505 modem) is planning to develop a driver for Linux. Let's see what happens...

Update: A French company named Olitec has released binary-only drivers for their modems that - according to some reports on the above-mentioned mailing list (check the archives) - might work with the Vaio modem. They started with a release that worked with RedHat 6.2 exclusively, but now they seem to offer different versions for 2.2.14, 2.2.16, and 2.2.17 kernels as well. I haven't tried it myself. If somebody is able to successfully use his modem with these drivers, I'd be glad to post his report here.

PCMCIA

PCMCIA works fine if you set
	PCMCIA_PCIC_OPTS="cs_irq=11"
in SuSE's /etc/rc.config. If you don't, your system will hang after inserting or removing a card! More information about this interrupt-related problem and the work-around (provided by Kerry Clendinning) can be found on the sound patch webpage.

You can now mount CD-ROMs with something like 'mount -t iso9660 /dev/hde /cdrom' if you're using Sony's CD-ROM drive.

[A side note for SuSE users: I've installed a newer version (3.1.4) of the PCMCIA package. Unfortunately, the Makefile will recognize Red Hat, Debian, and Slackware, but NOT SuSE. Thus, it will overwrite SuSE's "pcmcia" start script in /sbin/init.d, and - as a result - the new script won't source /etc/rc.config anymore. I suggest that you simply reinstall the old script after upgrading the PCMCIA package.]

More information about PCMCIA can be found at the Linux PCMCIA information page.

USB

Rich Martin was so nice to send a first USB success report for the Vaio. Erez Strauss describes how to use Sony's USB floppy drive. Additional information can be found on John McDermon's website. My personal experiences can be found in the SuSE 6.3 section below.

General USB information can be found on this website.

FireWire

I have had no use for FireWire (i.e. "i.LINK", i.e. "IEEE 1394") yet. More Linux-specific details can be found on this website.

Port replicator

Haven't tried it yet. If you want to boot from floppy with the port replicator attached you have to plug the floppy drive into the port replicator. Thanks to James Mullens for this information.

Tuning your hard disk

Here's another tip from Erez Strauss that might increase your hard disk's performance. As always, this comes with no warranty!!

The hard disk can be made about three times faster with "hdparm -c3 -m16 -d1 /dev/hda". Even better results can be achieved by -c2 instead of -c3 but the man page states that this is not safe. Erez reports that -X34 crashed his system (Z505RX).

You can test your hard disk with "hdparm -t -T /dev/hda" before and after you apply the new parameters. If you want to make these changes permanent, put them into your boot.local file. And, before you begin: RTFM!!

Update: SuSE 6.3

A couple of weeks ago I bought the knew SuSE distribution 6.3. It comes with a lot of software (six CDs!!), a new graphical installation tool, and a 2.2.13 kernel. The nice part is that most of the stuff that used to be hard with 6.1 works out-of-the-box now. (Please note that I built my own custom kernel, but I think this ain't really necessary. The SuSE 6.3 kernel sources include PCMCIA, USB and Firewire support.) Let me try to summarize the main differences:

My opinion

The Z505SX is a really nice laptop. What I especially like about this machine is the fact that you get a "grown-up" computer (fast Pentium II, 128 MB RAM, Ethernet, etc.) in such a light and small case. As far as Linux is concerned, almost everything works and is rather easy to set up. After using it for more than six months now I would definitely buy it again. Having said this, here are some things that I don't like:

Credits

Manfred Spiller added the shadow to the pinguin. Dr. Rolf Heckemann and Werner Heuser sent very useful corrections and/or additions. Jim Jennett and Matthias Glubrecht were so nice to correct my English when I asked them. Karl Heinz Kremer helped me a lot with my APM problems. Very special thanks to the guy who wrote the sound patch. He helped me make it work on my notebook and with a lot of other things.

$Header: /usr/local/cvsrep/weitz.de/vaio.html,v 1.11 2012-12-03 18:35:16 edi Exp $

BACK TO MY HOMEPAGE