Running GNU/Linux on a Sony VAIO PCG-FX805 laptop
Update
This article was written in mid-2003, and many things have changed up to now. Linux 2.6 kernel has been released and no longer needs to be patched, the modem driver has unfortunatly become commercial and finally, most GNU/Linux distributions are now shipping X.org in replacement of XFree86. Keep all these points in mind while reading!Please note that I personally use a Slackware 9.0, so it is possible that some of the manipulations I do here have already been done or work differently on your distribution.
Overview of the laptop

This laptop is in stores since approximatively June 2002 and is directly inherited from the FX7xx series, which means that its main hardware is quite old for the time it’s sold. That’s almost a good news as we don’t have to wait for years to see it running GNU/Linux.
| Component | Specification | Notes |
| Processor | AMD Athlon XP 1600+ | Works including CPU Throttling and PowerNow! |
| Memory | 256MB SDram | Extensible to 512MB |
| Mainboard chipset | Apollo KT133 | Works |
| Power management | ACPI | Works (APM is also supported) |
| Harddrive | Hitachi 30GB UDMA100 | Works |
| Graphic chipset | ATI Rage Mobility P/M - 8MB | Works including 2D acceleration, DRI support, XVideo extensions and TV-Out |
| Screen | LCD SXGA+ (1400x1050) | Works |
| Sound | VT82C686 AC97 Audio Controller | Works with OSS or ALSA |
| Network Interface | Realtek 8139 10/100Mb | Works |
| Modem | Connexant HSF Softmodem (special VIA version) | Works |
| USB 1.1 | VIA USB uhci controller | Works |
| Cardbus (PCMCIA) | Texas Instruments PCI1420 | Works |
| FireWire (i.Link) | Texas Instruments TSB12LV26 | Works |
| DVD player/CD-RW Burner | MATSHITA UJDA730 8/16/10/24 | Works |
| Floppy disk | Sony 1.44MB | Works ![]() |
| Keyboard, Touchpad | Sony... | Works |
As you can see, about 95% of the hardware is correctly working under GNU/Linux. The lack comes from the hardware suspend-on-disk feature but however, as the name I used suggests, we can use software suspend-on-disk which works for the end-user exactly the same. Moreover, the ACPI Linux team makes progresses very fast so it isn’t impossible that it will work in the future...
Partitioning the harddisk
I’m not going to describe the full installation of GNU/Linux but simply to tell you how I cut my hardisk. This might give you ideas when you’ll come to this section of your distribution installer. Basically, I use three partitions, in this order on the harddisk :
SWAP - 256MB [1]
/ - 6.5GB
/home - 21.2 GB
I prefered to only set ReiserFS filesystems, but after all this choice is up to you!
Compiling your own kernel
First of all I should indicate that this step, as well as the others, might not be necessary with your distribution. I personally use a Slackware 9.0 installation which requires the build of a patched kernel but I suspect that distros like Mandrake 9.1 already include these type of patches.
To make my customized kernel, I started from the Linus 2.4.20 kernel (alias "Vanilla"). In addition to the standard Linux kernel, we must apply at least two patches :
ACPI patch : although ACPI is already present in the standard kernel, it seems to not correctly work with our laptop. No problem as patching with the latest version of ACPI gets all going fine;
cpufreq patch, or in other words, PowerNow! support.
You might also want to apply the "Software Suspend" patch. In this case, be careful to apply the ACPI version of the patch, and to apply it AFTER the real ACPI patch (and certainly after the cpufreq patch as well). I won’t go further about software suspending as I don’t use it.
First of all, get the correct files; this means the 2.4.20 kernel sources (get linux-2.4.20.tar.bz2 from kernel.org) as well as the two patches I taked about before. Log on your system with root privileges and copy these three files to /usr/src/
From the /usr/src/ directory, type these commands:
cd linux-2.4.20
bzip2 -cd ../acpi.bz2|patch -p1
bzip2 -cd ../cpufreq.bz2|patch -p1
make mrproper
make xconfig
A window should open which lets you choose the settings for the kernel we are building. First click on "Load configuration file" and indicate the full path to the file you downloaded from this page "vaiokernel.config".
This will load my kernel config, saving a lot of your time! Normally, most of the settings should be ok for you but however :
If you use a file system other than ReiserFS for your root partition, go to the Filesystem section and specify your filesystem type (ext2, ext3, jfs, etc...) to "y" instead of "m";
If you applied the software suspend-on-disk patch, enable it in power management section;
If you intend to use any usb/firewire/pcmcia hardware, add their associated drivers in the appropriate section;
If your boot loader (e.g. LILO) uses a graphical mode, add "Framebuffer support" in the "Video" section (using VESA driver).
Once you’re done, press "Save & Exit". Finally edit the /usr/src/linux-2.4.20/Makefile file with your favorite text editor and modify one of the first line like this :
EXTRAVERSION = "-vaio"
We do this modification to avoid to overwrite any existing 2.4.20 modules on your system. Now it’s time to compile our kernel :
make modules
make modules_install
cp arch/i386/boot/bzImage /boot/vaio
If you use LILO, lets add a section to it for our new kernel. To do that, edit your /etc/lilo.conf file and append these lines to it:
image = /boot/vaio
root = /dev/hda2
# append = ""
label = Vaio
read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Vaio bootable partition config ends
Then type "lilo" at the prompt to install the new version of LILO.
Hopefully all has been right and your new kernel works perfectly fine as it does for me!
Setting up energy policy
Now that ACPI and PowerNow! are working, lets have a useful use of them to increase the battery life!
In addition to this, don’t forget that decreasing the brightness of the screen (Fn+Shift+F5) also helps saving A LOT of battery time!
Make the integrated modem working
It is rare to get a laptop modem working under GNU/Linux, as it is usually what is called "winmodems". The good news is that despite our modem is also a winmodem, it works under GNU/Linux! I know I may be one of the last guy to use a modem, or lets say from time to time, so if you are one of these men who use a broadband connection, simply skip this section!
Thanks to the efforts of Marc Boucher, a full working driver is available for the 2.4.20 kernel.
Having root privileges and using our kernel, type these commands from the directory where you put the archived driver :
cd hsflinmodem
make install
hsfconfig
At this point, you are normally asked some questions; you can normally press Enter to each one as the default answers should be the correct ones. When finished, the /dev/modem device is usable to set up your internet connexion.
About the sound
Usually to make a sound card working under Linux, we get two alternative drivers system : OSS and ALSA. OSS is the oldest one which comes with the 2.4.20 kernel whereas ALSA will come with the next 2.6 kernel generation. As you can guess, ALSA is more powerful by offering by instance Full-Duplex support, and stills compatible with OSS.
The sound chipset shipped with our laptop works with any of these both drivers. It’s up to you to choose one of them, by default our built kernel uses OSS but I’ve taken care to allow installing ALSA without having to recompile it.
Configuring XFree
By default, XFree 4.3.0 only supports 2D acceleration for our graphic chipset. If you only use your laptop to do word processing, it should be enough but if you expect to use its multimedia capabilities like watching Videos and DVDs, playing 3D games or even using the TV-Out, this section is your friend!
Most of people posting on the usenet seems to get difficulties using 2D, 3D and XVideo together with video cards based on our graphic chipset. This is due to the fact there are one driver to get full 2D acceleration, another for 3D and finally a third for XVideo extension! Usually people have to choose from one of these depending of how they intends to use their system. However, a nice guy found this situation stupid and decided to provide a merged driver taking the best features from each driver, and has added TV-out support in bonus! This is his driver I use and there’s nothing to say about it : easy to install, works as expected, stable, etc...
Problems encountered
The main problem comes with Klaptop, a smart KDE utility which regularly read ACPI information (mainly the battery level). It works great except that each time it tries to refresh, it produces a high CPU load for half a second, which results in other opened applications to freeze for this half-second. That’s not the death, but I find this irritating! To reduce this effect, I currently use a refresh delay of 180 seconds. I don’t know if it comes from Klaptop specifically of from the current ACPI kernel implementation, but hopefully this will be corrected in the future.
Footnotes
[1] If you intend to use software suspend-on-disk, be careful to set a bit more than your current available memory as this partition will be used to store the whole content of your RAM.
In the same section
Stay tuned!
What others think
«Firstly thanks for the gusb. Indispensable and beautifully simple to install, use. (...) Btw i curently work at a graphic design firm and was extrememly impressed by your web design, Nice work.»
Tim L.
