Linux on a
Sony Vaio

Maintained by Digital Force / Mario Trams

with substantial input from Adi Kriegisch


F809K = F690 ? I'm not completely sure, but I guess the F809K is the European version of the F690. At least the F690 is not available in Europe but has exactly the same specifications as the F809K.
So the things described below might also be applicable for a Vaio F690 model.

Table of Contents


Please note that the information on this page is given without any warranty. It is based on my knowledge and experience as well as the recommendations from other Linux users.
I'm not responsible for any damage on your hard- and/or software that may be caused when applying my hints.
However, if you find some errors on this page you are welcome to let me know them so that I can correct them.

Notebook Specifications

CPU: PIII 850MHz with SpeedStep
Memory: 128MB, extendable to 256MB (I did it! :-)
Graphics: ATI Rage Mobility, 8MB Video RAM, 1400x1050 15" TFT Display
Hard Disk: 30GB IDE, fixed
Audio: Yamaha YMF 744, Headphone out, Mic in,
(neither Line out, nor Line in - only with docking station)
PCMCIA: 2xType II or 1xType III PCMCIA, CardBus support
CD Drive: internal 8xDVD
Floppy Drive: internal, can be removed and replaced by 2nd accu or weight safer
Others: 1x Sony iLink, 2x USB, PS2 Connector,
1x Serial Port, 1x Parallel Port,
internal 56k Modem, VGA Output, TV Output,
Docking Station Port
IrDA: NONE!!!!

General Comments

The Vaio F809K is a quite nice machine. It is a little large and not the best solution for travelers, but it is fine as portable desktop replacement with its big high-resolution screen (1400x1050 pixels @ 15 inch).

Initially, there were several problems to get some functionality of the notebook running under Linux. But meanwhile almost everything is working fine and I'm happy with this machine.

Basic Installation

Currently, I'm running Mandrake 8.2 on the notebook - basically without any major problems and just like in case of a normal machine. Even the graphical installation worked well.

The notebook came with Windows 2000 Professional installed. The large hard disk was divided into two partitions. I re-partitioned the disk as follows:
DeviceSizeMount PointFS-TypePurpose
/dev/hda16306MB/mnt/windowsvfatSpace for Win2000
/dev/hda5123MB/bootext3Boot Kernels
/dev/hda6250MB  Swap Partition
/dev/hda81GB/ext3Root Partiton
/dev/hda33.8GB/usrext3Majority of Code
/dev/hda109.8GB/homeext3Home Filesystem

The remaining space is not allocated yet and is reserved for future experiments (e.g. installation of a new Linux Distribution without deleting the current one).

Of course, this partitioning of the hard drive is not mandatory and yours may differ from that.

The journaling filesystem (ext3) is working very well, even if it is still marked as EXPERIMENTAL in the kernel.

X Server

The X Server that is coming with Mandrake 8.2 (X Rev. 4.2.0) is working out of the box without any problems and additional modifications.

For older Linux distributions you might want to have a look at this obsolete page for X installation.

Linux Kernel

Currently I'm running Linux 2.4.18 on the notebook. I applied a small patch to the kernel regarding power management. If somebody is interested in it, here is my Kernel Configuration File.

Because I experienced problems with the ECP support for the parallel port I made the following modifications in the kernel:
Instead using the original files, I replaced ieee1284.c, ieee1284_ops.c, and parport_pc.c in the source directory drivers/parport/ with the older files from kernel 2.4.9 (where the ECP support worked fine).
Additionally, two lines in parport_pc.c that contain PCI_DEVICE_ID_AFAVLAB_TK9902 have to be commented out.


I installed the PCMCIA 3.1.33 package and this is working without any major problems for me.
One additional change I had to make was to change a line in /etc/sysconfig/pcmcia from "PCIC=yenta_socket" in "PCIC=i82365".
Also, I applied a special patch to the PCMCIA package that is needed for my AVM A1 Fritz! PCMCIA ISDN card. This patch is available here. Unfortunately, this patch is only available for the PCMCIA 3.1.23 package. However, it was possible to apply this patch to the 3.1.33 package.

Other PCMCIA cards I have, a D-Link DFE660-TX 10/100MBit network card and a Adaptec ... SCSI cards are working as well appart from one minor problem:
When PCMCIA cards are removed the system crashes sometimes (in case of the SCSI card it crashes always). I'm not sure what the problem is, but there is a simple work around. Cards can be removed safely when the system is suspended or when the PCMCIA service is stopped manually before removal of the card (/etc/init.d/pcmcia stop) and started afterwards (/etc/init.d/pcmcia start).

The latest PCMCIA package you can get from


Since I'm using an ISDN card for my internet connection, I have not yet attempted to get the internal 56k modem running.

However, Adi has reported that this modem is working flawlessly for him. Drivers can be obtained from

Appart from my ISDN connection I'm planning to get the modem running soon, as it is quite useful when someone is traveling around (i.e. to get into the net from a hotel room). As soon as I managed to do this I will put some more detailed information here.


Note: Before you start experimenting with sound you must disable PNP in the BIOS. To enter the BIOS setup you must press F2 when you see the Sony logo during the boot process. Then go to "Advanced" and set PNP BIOS from YES (default) to NO. Windows 2000 is still working with this setting.

Here is some outdated information regarding sound installation.

In the current insallation I'm using the kernel OSS modules and they are working perfectly. The Alsa drivers should work as well, but it appears a little bit easier for me to use the kernel modules because no additional settings have to be performed.
You might also have a look at the my Kernel Configuration File.

Hard Disk Spin-Down

Although the hard disk (it's an IBM-DJSA-230) is relatively silent, the notebook is even more quiet when the disk is switched off totally.
Using the program hdparm it is possible to set a hard disk spin-down timeout (refer also to the man page of hdparm). When there was no activity for the given period, the disk spins down automatically.

For instance you can add the following lines at the end of your /etc/rc.d/rc.local file:
echo "Setting Hard Disk Spin-Down"
hdparm -S 36 /dev/hda
This command is executed at startup and sets a spin-down timeout of 3 minutes.

So far, so nice. Unfortunately this is not enough. The problem is that the linux kernel or rather the built-in bdflush daemon makes more or less permanently disk accesses to keep consistency between disk and buffer cache. If you want to know more about that, take a look at /usr/src/linux/Documentation/sysctl/vm.txt

So it is required to change some settings of the bdflush daemon so that disk accesses are minimized.

Note: Decreasing bdflush activity causes higher temporal inconsistency between buffer cache and disk and therefore leads to higher probability of data loss when the system crashes.

Generally, the bdflush behaviour can be changed on-the-fly by writing new values into /proc/sys/vm/bdflush. However, the problem is that there are hardcoded max-values for all bdflush parameters. But since Linux is an open-source operating system we can change that, fortunately ...

For this go into your Linux source directory and open the file fs/buffer.c
There you find somewhere a declaration of a union called bdf_prm together with an initial assignment (in kernel 2.4.18 with
{{40, 0, 0, 0, 5*HZ, 30*HZ, 60, 0, 0}}.
I changed this initial assignment to
{{90, 2000, 64, 1024, 360000, 360000, 90, 0, 0}}
which decreases bdflush activity significantly. The contents of bdflush_min[] and bdflush_max[] can be kept at their original values.

Note: You can still change bdflush parameters during runtime by changing the contents of /proc/sys/vm/bdflush.
Note: Some programs (especially editors) tend to make implicite writes to disk followed by an explicit sync command to insure that data is really written onto disk. So it maybe that you experience disk accesses relatively often even with the special bdflush settings. The vim is such an example. When vim is started with the option "-n" these backup-writes can be suppressed. But, of course, there's no recovery possible - nothing is for free...

Suspending the System

First of all there's to say that I couldn't get the key combinations Fn+ESC (suspend-to-RAM) and Fn+F12 (suspend-to-Disk) working until now. If anybody has an idea here, I appreciate your hints. I doubt that these functions will ever work because it seems that Sony has removed large parts of the original BIOS. Probably a BIOS upgrade helps here. The strange thing is that I know about other Sony notebooks that have more or less the same BIOS version (the Vaio F809K has Phoenix 4.0 Release 6.0) where the suspend-to-RAM and suspend-to-Disk keys are working fine under Linux.


Suspend-to-RAM is working fine and is invoked by pressing the power switch for a short moment. The system can be resumed by pressing a key. In very very rare cases I experienced a crash of the system after resume. But this happens extremely seldom (may be twice per year).

Anyways, a few precautions have to be taken for correct suspend operation. First of all, the APM support has to be enabled. For details refer to my Kernel Configuration File.

A few hardware components have to be re-initialized after resume, so my ISDN card. I made the following steps:

  • In /etc/sysconfig/apmd I set PCMCIARESTART="yes"

  • I changed /etc/sysconfig/apm-scripts/resume.d/5pcmcia as following
    # -*- Mode: shell-script -*-

    [ -e /etc/sysconfig/apmd ] && . /etc/sysconfig/apmd

    if [ "$PCMCIARESTART" = "yes" ] ; then
    /etc/init.d/pcmcia restart
    # if [ "$PCMCIABIOSBUG" = "yes" ]; then
    # /sbin/cardctl insert
    # else
    # /sbin/cardctl resume
    # fi
    The original stuff with /sbin/cardctl had to be commented out because it was not working for some reason.

  • The command for setting the hard disk spin-down (hdparm -S 36 /dev/hda) has to be appended at the end of the file /etc/sysconfig/apm-scripts/resume.d/9hdparm because this information seems to be lost during suspend.


Suspend-to-Disk is not working with my current setup.

However, Adi has reported that it is working with kernel 2.5.31 and the latest ACPI-patch.

The suspend-to-disk operation is invoked by
echo 4 > /proc/acpi/sleep
where the content of the RAM is copied into the swap partition. For proper resume the parameter resume=/dev/hdaswap has to be add to the append line (e.g. in lilo.conf). I guess that other partitions can be used as well, because there is a potential problem when the swap cannot keep its own contents plus RAM.


USB is working out of the box without problems. Once I attached a small webcam and it was working fine.

Sony iLink / FireWire

FireWire is working as well, although I couldn't really use it yet. The problems were located more at the protocol / application level for comunication with an iLink device rather than on basic FireWire support.

Adi reported that he got several FireWire devices working under Linux.

Display Brightness

There are several programs available for regulating the brightness of the TFT panel:
  • gvaiocontrols
    gvaiocontrols is a small project of Drew Bertola that is intended for control of various special functions of Vaio computers. Currently, only the display brightness control is implemented and is working fine.

    You might download gvaiocontrols from the original website: or you might use this local copy (the original website seems to be down).

  • Nick Brown stripped down gvaiocontrols to a command-line version that can be downloaded here. I did not test this one but I think it is working as well.
  • spicctrl
    spicctrl is a frontend for the sonypi kernel driver (refer also to section Special Function Keys) that can be used to control varions things of the so-called Sony Vaio SPIC.
    spicctrl can be downloaded from here:

VGA and TV Outputs

Both the VGA and the TV output can be switched on or off using atitvout. This small program makes use of BIOS functions provided by the ATI BIOS. More information and downloads can be obtained from these websites:

Note: The TV output can only be activated with an X-resolution of 800x600!

Note: atitvout must be started by root!

For convienence, Adi has written small scripts that might be used for toggling the TV or VGA output:

Note: atitvout is assumed to reside in /usr/X11R6/bin/

Note: requires a program called chgres that is used to switch the X-resolution. chgres can be obtained from here:

Special Function Keys (Fn-? and P1-P3)

Although these function keys cannot be used directly for the purpose they are intented for (e.g. toggling the VGA output), there is a way to detect whether they were pressed.

To use this functionality, you have to put the sonypi-stuff in your kernel. See also my Kernel Configuration File.

A small deamon (sonypid) that listens for events and executes appropriate commands can be downloaded from here:

Adi made some small changes on this daemon that makes it a little bit easier to specify the end-programs that are executed on certain key-events. You can download this sourcefile here: sonypid_adi.c and modify it for your needs.
A more convienent way for sonypid configuration would be to obtain the event definitions from a configuration file. But this (rather small) thing has to be programmed yet...

Note: To be able to evaluate the Fn-Keys ACPI must be enabled That is, it must be compiled into the kernel (see my Kernel Configuration File) and enabled (e.g. acpi=on apm=off in the append-line of the boot configuration in /etc/lilo.conf

I tried this and it is working well. However, because APM has to be disabled, lots of other things do not work anymore in the "old way" (e.g. suspend, xosview, ...). Therefore I decided to not use ACPI and therefore I'm not able to use the Fn-Keys.

However, the special buttons P1, P2, and P3 are working well without ACPI.

Useful Links

Here are some notebook-specific links that may help to solve your problems:

Last modified: 23. January 2017 by Mario Trams