Linux on the Sony Vaio PCG-C1XS and the Sony Vaio PCG-F680

Last updated on May 16, 2002 to include information on the Conexant modem driver. Stay tuned for an update of this page to include more new information about the camera, the Fn key, the Capture button, and the Jog Dial.

This document is somewhat Red Hat centric. Many of the tips contained herein may be useful for all laptops and will most certainly be useful for other Sony laptop models.

The Kernel

You can install Linux on either of these machines without any kernel work whatsoever, but the best part of the Linux system is the ability to compile your own kernel with exactly those features you're interested in. You will have to compile your own kernel if you're interested in getting the C1XS's USB floppy drive to work, because distributions have not yet caught up with this new feature.

On my C1XS, I am running 2.2.18 with the following patch: I have not yet tried this patch with 2.2.18: Here is my 2.2.18 .config (tested unmodified on my C1XS and tested on my F680 with CONFIG_PCI_OLD_PROC and CONFIG_USB_STORAGE turned off) and my 2.4.1 .config (tested only on my F680). As far as I know, the C1XS and the F680 are identical where they share hardware. You can use the same .config on both machines, except that you don't need to enable CONFIG_USB_STORAGE for the F680 unless you purchase a USB storage device for it. I suppose you could leave out the serial and parallel drivers on the C1XS, though you might wind up purchasing PCMCIA cards and/or USB components that will use them. (I left the serial driver enabled on the C1XS because I use a PCMCIA modem).

2.2.x logs this warning on my C1XS, but not my F680:
Uhhuh. NMI received for unknown reason 20.
Dazed and confused, but trying to continue
Do you have a strange power saving mode enabled?
It does not appear to affect system stability. I have also enabled CONFIG_APM_REAL_MODE_POWER_OFF because occasionally I get freezes just as the machines halt/reboot. This appears to neither help nor cause any harm with either machine with 2.2.18 or with the F680 with 2.4.1.

Plug & Play O/S

If you're running 2.2.x, you must boot with this BIOS option turned off. Windows must have it turned on or else the software modem won't work (among other things). Leaving this option on can cause USB, ALSA, and/or PCMCIA to not work under Linux. You may also need to completely halt the machine when going between Windows and Linux (presumably to reset Plug & Play settings).

You don't have to turn off Plug & Play O/S with 2.4.1 anymore. I still have to halt the F680 when switching between Windows ME and Linux. There does appear to be a strange interaction in 2.4.1 between ALSA and the in-kernel PCMCIA drivers. My F680 crashes unless I comment out the following lines from /etc/rc.d/rc.sysinit and insure that the alsasound service is started after pcmcia:
alias=`egrep -s "^alias[[:space:]]+sound-slot-0[[:space:]]+" /etc/modules.conf | awk '{ print $3 }'`
if [ -n "$alias" -a "$alias" != "off" ] ; then
      action "Loading sound module ($alias): " modprobe $alias
      RETURN=$?
fi
You don't need any of the sound driver setup routines in rc.sysinit anyway, since the alsasound script takes care of all of this for you. It's pretty safe just to remove the entire "over-engineered" sound module handling section.

i.Link

According to the Linux IEEE 1394 Project, the CXD3222 controller present in both machines should be supported, but I do not yet have any i.Link devices to try out. It should be possible to connect two i.Link equipped laptops for things like high-speed FTP. See above for more information.

IrDA

First, be sure you haven't modified the default IrDA settings (io=0x3e8, irq=10, dma=0). Then, add the following to your /etc/conf.modules or /etc/modules.conf:
alias irda0 nsc-ircc
alias char-major-160  irda0
alias char-major-161  ircomm-tty
options nsc-ircc dongle_id=0x09 io=0x3e8,0x3e8,0x3e8,0x3e8 irq=10,10,10,10
You will need to add the following to your /etc/rc.d/rc.local:
setserial /dev/ttyS2 uart none
You should probably add
exclude irq 10
to /etc/pcmcia/config.opts to be on the safe side. (I had IRQ conflicts on the F680 but not on the C1XS.)

To start communicating with a device, run the following:
irattach irda0 -s
I don't recommend running this all the time because it will constantly send out infrared pulses, wasting power.

To perform an infrared HotSync with the Handspring Visor or the Visor Deluxe you will need to obtain IrLink from IS/Complete. Be sure to carefully follow the installation instructions. (If you own a newer model such as the Visor Pro, you do not need to install IrLink.) Next you must create a symlink from /dev/pilot to /dev/ircomm0. (Use "mknod -m 666 /dev/ircomm0 c 161 0" if you're missing /dev/ircomm0). Now you can use pilot-link or any of its associated front ends.

USB

So far I've gotten the USB floppy drive (both tested), a USB scroll mouse (both tested), a USB keyboard (both tested), and the USB Handspring Visor cradle (C1XS tested) to work. (To perform a HotSync, make sure /dev/pilot is a symlink to /dev/ttyUSB1. You can create /dev/ttyUSB1 with "mknod -m 666 /dev/ttyUSB1 c 188 1".)

Here are my C1XS's XFree86 3.x XF86Config and my
F680's XFree86 3.x XF86Config configured for
the laptops' respective built-in pointing devices and an external USB scroll
mouse.  (The external mouse need not be connected.  It will automagically work
when attached).  If you choose to use a USB scroll mouse, be sure that
/dev/input/mice exists (already present in Red Hat 7.0).  To create it, run:
cd /dev
mkdir input
chmod 755 input
cd input
mknod -m 666 mice c 13 63
I just switched to XFree86 4.0.2 on my F680 because 3.3.6 performed like a real turkey. (I was unable to get XFree86 4.0.1 to work). If you're using Red Hat 7.0, you can grab XFree86 4.0.2 from Rawhide. If you don't know what I'm talking about, you should probably stick with XFree86 3.3.6. In any case, here is my XF86Config. It was generated by Xconfigurator and modified by me after considerable research.

Also, gpm is supposed to be able to multiplex the two devices but it doesn't
so you can either configure it in the standard way to use the built-in PS/2 two
or three button device or remove /etc/rc.d/rc?.d/S??gpm and add the following
to your /etc/rc.d/rc.local to only enable the external mouse:
gpm -t imps2 -m /dev/input/mice
Depending upon which USB devices you actually want to use, you can add the following to your /etc/rc.d/rc.local:
# USB driver.
modprobe usb-uhci
# USB keyboard driver.
modprobe keybdev
modprobe usbkbd
# USB mouse driver.
modprobe mousedev
modprobe usbmouse
# USB storage driver (for the USB floppy).
modprobe usb-storage
Here is the entry you will need to add to /etc/fstab for the USB floppy:
/dev/sda                /mnt/floppy             vfat    noauto    0 0
Now you can mount /mnt/floppy as usual. Of note is that the USB floppy behaves like a SCSI hard disk, so you have to make sure you've enabled both SCSI and SCSI hard disks.

You will need this Netscape application defaults file
for the scroll mouse to work under Netscape 4.x and earlier.  Normally you
will need to set XUSERFILESEARCHPATH to $HOME/lib/app-defaults/%N and copy this
file to that location.  Mozilla and Netscape 6.x work correctly with the scroll
mouse as shipped.

Sound

I recommend ALSA for sound support, though there are one commercial and two in-kernel alternatives.

Here is the relevant snippet of my /etc/conf.modules:
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-card-ymfpci
alias snd-card-1 off
alias snd-card-2 off
alias snd-card-3 off
alias snd-card-4 off
alias snd-card-5 off
alias snd-card-6 off
alias snd-card-7 off
alias sound-slot-0 snd-card-0
alias sound-slot-0 off
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias sound-service-1-0 off
Both laptops have the same sound chip, though the sound quality of the F680's internal speakers is orders of magnitude better.

Be sure to set your mixer levels some time between when the machine boots and
when you need to use sound, since the ALSA drivers reset the mixer levels to
zero when they're first loaded.  You can add gmix --initonly to your GNOME
startup applications list to correct this problem.

Power Management (APM/ACPI)

I haven't played around much with power management, because I use both machines as mobile desktops. See below for utilities to dim the backlight.

Conexant Software Modem

Drivers are now available from Conexant. When prompted, select linux_hsf.inf. I have only tested my F680 with the 2.4.18 kernel.

PCMCIA

You may want to install the latest version of the PCMCIA driver if you have trouble with your PCMCIA card(s). I recommend the Linksys PCMLM56 combo card for the C1XS. Installed in my F680 I have a US Robotics 28.8 Sportster modem and a LinkSys Network Everywhere NP100 10/100 Ethernet card. Both the Ethernet card and the modem work fine with the 2.4.1 in-kernel driver. Some bugs still remain, however, because removing the modem hangs 2.4.1. Attempting to stop and restart the pcmcia service hangs 2.4.1. Also, the NetGear FA510 CardBus Ethernet adapter I tried which worked with 2.2.x does not work with 2.4.1. For now, I recommend sticking with the standalone driver.

Sony Programmable I/O Controller

If you're running 2.4.x, I recommend enabling the CONFIG_SONYPI option and obtaining these utilites to control the the backlight, among other things.

Backlight

You can dim the backlight on both laptops to reduce battery consumption using this utility.

C1XS Jog Dial

Takaya Kinjo has written a utility to use the Jog Dial under Linux. It includes a device driver for 2.2.x and a simple Gtk+ user interface. It might be possible to use the Jog Dial as a mouse wheel in XFree86, though Takaya's utility emulates the Jog Dial's behavior in Windows.

C1XS Motion Eye Camera

Also of interest is the camera driver for the C1XS. The camera driver utilizes the Capture button and the Jog Dial.

F680 ALPS Glidepad/Stickpointer

You can turn off "tap mode" using this utility.

F680 DVD-ROM

xine works very well. You will also need this plugin to actually play DVD's. GATOS provides Xv support for the video card. Xv can speed up DVD playback. I strongly recommend XFree86 4.2 if you decide to use GATOS.

Installing Red Hat Linux 7.x on the F680

Note that you can install Red Hat Linux 7.x on the empty extended partition without making any changes to your Windows ME partition. (You didn't pay extra for Windows 2000, did you?) For simplicity's sake, I recommend splitting the partition into two parts. I created an approximately 400 MB swap partition and I devoted the rest to ext2fs. During the installation process, you will need to make a boot floppy to boot Linux for the first time. Once you have the system up and running, you just need to add the "lba32" option to your /etc/lilo.conf and rerun lilo. From now on, you will be able to boot Linux without a floppy.

Links

Please direct any questions or comments to jgotts@linuxsavvy.com.


[Home]