Note: I did this in late 2005. I used the same laptop for years before the HDD died and after a simple replacement, I put ubuntu 7.10 on it. The installation was so simple it was not worth documenting - after eight years of having to coax Linux to work, for the first time everything just worked. Including the wireless card. When the laptop finally died, the best display - which I had chosen the Sony for - was on a MacBook, so I bought one of those.

For the Impatient

It works; my B3XP now runs both Debian 3.1 and Windows XP.

In More Detail

Here are some notes I made while installing Debian on my laptop. I was helped by the previous experience of Andreas Freise, but having a similar thing described by a different person might be useful. Also, that page recommends hacks for a couple of things where editing a config file is more appropriate (i.e. easier and The One True Way).

First Installation

The Vaio came preinstalled with Microsoft Windows on a 28GB partition, an empty 40GB NTFS partition, and a 9GB ‘recovery’ partition.

I wrote a Debian 3.1 stable (‘sarge’) netinst CD, and rebooted with it in the drive. All relevant hardware was detected, and the installation went without a hitch. I removed the empty NTFS partition, then updated /etc/fstab to mount the XP partition read-only, and the new FAT32 partition for sharing data between the operating systems:

/dev/hda2    /mnt/xp        ntfs    ro,user,auto,umask=0222    0    0
/dev/hda7    /mnt/shared    vfat    user,auto,umask=0000    0    0

Update the kernel

I updated the Linux kernel from 2.4 (the default in Debian 3.1) to 2.6, because battery status notification, USB mouse hotplugging and sound are much easier to get working with the newer kernel. This is as simple as:

aptitude install kernel-image-2.6-686

A new option of booting into the 2.6 kernel is automatically added to the grub boot loader, and the ability to boot into 2.4 remains. This is all that’s required to get hotplugging to work.

Video modes

By default, the XServer cannot give you a 1400×1050 display, because the BIOS doesn’t disclose that it is available. Luckily, it is easy to patch the BIOS (in memory only – not a permanent change) to get things working:

aptitude install 855resolution 855resolution -l

And you will have a list of the ‘disclosed’ resolutions. Choose one you won’t be using, and overwrite it:

855resolution 3c 1400 1050

Then restart the XServer (log out and in again), and you should have a wonderfully clear display. Make the change permanent by editing /etc/default/855resolution; a template version was installed by aptitude earlier. Here’s mine:

# 855resolution default
#
# find free modes by  /usr/sbin/855resolution -l
# and set it to MODE
#
# This is the mode you're replacing
# (i.e. pick one you're not using!)
MODE=3c
#
# and set resolutions for the mode.
#
XRESO=1400
YRESO=1050

Then, edit XF86Config-4.

Simply adding new modes to XF86Config-4 and allowing X to calculate the refresh rate didn’t work; it tried to run at 75Hz, but the screen will only handle 60Hz, so it flickered. Restricting the refresh rate lead to X thinking that the 1400×1050 resolution wasn’t valid, so X failed to start. In the end, I added the video mode explicitly.

Section "Device" 
    Identifier    "Generic Video Card" 
    Driver        "i810" 
EndSection

Section "Monitor" 
    Identifier    "LCD" 
    HorizSync    31.5-90
    VertRefresh    59-75
    Option        "DPMS" 

    # 1400x1050 @ 60Hz, 65.8 kHz hsync
    Modeline "1400x1050"  129   1400 1464 1656 1960
        1050 1051 1054 1100 +HSync +VSync

EndSection

Section "Screen" 
    Identifier    "Default Screen" 
    Device        "Generic Video Card" 
    Monitor        "LCD" 
    DefaultDepth    24
    SubSection "Display" 
        Depth        16
        Modes        "1400x1050" 
    EndSubSection
    SubSection "Display" 
        Depth        24
        Modes        "1400x1050" 
    EndSubSection
    SubSection "Display" 
        Depth        32
        Modes        "1400x1050" 
    EndSubSection
EndSection
Fonts

With the high resolution, the default desktop had tiny text, so I changed the DPI settings to make everything more legible. This is accessible through Applications->Desktop Preferences->Font->Details->Resolution. 118DPI works for me.

I also installed all the TrueType fonts from the MS Windows partition, which helps when displaying Word documents and websites which expect particular MS fonts. Since X Windows can handle .ttf files directly, it’s simply a case of copying the files across:

cp /mnt/xp/WINDOWS/Fonts/*.ttf /mnt/xp/WINDOWS/Fonts/*.TTF ~/.fonts

Sound

The default sound server of the 2.6 kernel is ALSA, which works perfectly after a couple of minor tweaks. Firstly, you need to stop the amplifier powering down:

amixer set 'External Amplifier' mute alsactl store

The second command makes the configuration change permanent.

You may be wondering why muting an amplifier enables sound, rather than disabling it. It seems that the name was changed [dead sourceforge link here, sorry] from ‘External Amplifier Power Down’, so I guess the ‘mute’ actually translates to a FALSE, meaning the amp doesn’t power down.

There are well documented issues with playing more than one sound at a time under Linux. There are ways around it, but one sound it good enough for me. However, in order to achieve one sound at a time (!), you must ensure everything else is silent. This means disabling the system sounds: Applications->Desktop Preferences->Sound, and uncheck “Enable sound server startup”.

Power Management

aptitude install acpi acpid – you can now add a battery status icon to your panel, and it will work.

aptitude install laptop-mode-tools which extends your battery life by caching writes to disk.

aptitude remove exim4 – not sure why a mailserver is included in the default workstation setup.