I have a Sony Vaio PCG-C1XF running Redhat 7.2 Linux with a 2.4.16 kernel. Also called the "Picturebook", the PCG-C1XF is the Japanese keyboard version of Sony's half-height screen laptop. There is a camera built into the top of the tft, 56k Winmodem, 12gig disk and memory that maxes out at 128 megs.
Internet access is via ADSL attached to a Sony PCWA-A100 access point and PCWA-C100 wireless pcmcia card. The card is essentially a rebranded lucent implementation of 802.11 so the standard wvlan_cs.o driver works fine.
Following are working notes kept while I sorted my preferred configuration. The main technical details should be relevant to configuring your "Picturebook" but note that some things are simply personal preference.
Install Base OS
After burning a rh-7.2 iso and installed. Did misc. customizations including:
- Adding passwd and group file entries for my account
- Installing fvwm2 and blackbox (I prefer a lightweight wm over kde or gnome)
- Turning off sendmail and most other non-essential xinetd managed services
Kernel
fixed kernel
fresh untar latest kernel linux-2.4.16
grab .config from previous
make xconfig
make depend
make install
make modules
make modules_install
PCMCIA and Wireless
While the 2.4.X series kernels now integrate more of the PCMCIA support into the kernel, quite a few drivers remain (and likely will continue to do so) in the pcmcia-cs package. For my configuration, the key driver I need was the wvlan_cs for Lucent Chipset 802.11 wireless cards.
So far wireless support, the first step was to compile and install the lastest pcmcia package, pcmcia-cs-3.1.29 as of this writing. Untar pcmcia package into /usr/src/linux and then:
cd /usr/src/linux/pcmcia-cs-3.1.29
make configure
make all
make install
cd clients
make
make install
cd ../wireless
make
make install
depmod -a
/etc/rc.d/init.d/pcmcia stop
/etc/rc.d/init.d/pcmcia start
to install the driver for my PCWA-C100 (among other things).
Then, make certain that /etc/pcmcia/config contains a clause similar to:
card "Intersil PRISM2 11 Mbps Wireless Adapter"
manfid 0x0156, 0x0002
bind "wvlan_cs"
and then configure /etc/pcmcia/wireless.opts with the following
script, substituting your access point's password for yourpasswordhere:
case "$ADDRESS" in
# Sony Branded Lucent Wavelan
# Note : wvlan_cs driver only, and version 1.0.4+ for encryption support
*,*,*,08:00:46:*)
INFO="VAIO Wavelan Clone"
# ESSID (extended network name) : My Network, any
ESSID="any"
# NWID/Domain (cell identifier) : 89AB, 100, off
NWID=""
# Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto
MODE="Managed"
# Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency)
FREQ=""
CHANNEL=""
# Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm)
SENS=""
# Bit rate : auto, 1M, 11M
RATE="auto"
# Encryption key : 4567-89AB-CD, s:password
KEY="s:yourpasswordhere"
# RTS threshold : off, 500
RTS=""
# Fragmentation threshold : off, 1000
FRAG=""
# Other iwconfig parameters : power off, ap 01:23:45:67:89:AB
IWCONFIG=""
# iwspy parameters : + 01:23:45:67:89:AB
IWSPY=""
# iwpriv parameters : set_port 2, set_histo 50 60
IWPRIV=""
;;
esac
GPM
If you want both the built in "knob" mouse as well as any USB mouse that happen to be attached to work with gpm, your /etc/sysconfig/gpm should look something like this:
# Additional options for gpm (e.g. acceleration), device
OPTIONS="-tps2 -m/dev/input/mice -M"
DEVICE="/dev/mouse"
Sound
Last time I looked closely, the standard kernel did not have the necessary driver support for sound on the pcg-c1xf. For that and other reasons, I turned to the " Advanced Linux Sound Architecture" project for the necessary drivers and support utilities. FYI, since I installed this package, the ALSA folks have subsequently declared version 0.5.12a to be the latest stable release:
fresh untar latest alsa alsa-driver-0.5.9c.tar into /usr/src/linux
cd /usr/src/linux/alsa-driver-0.5.9c
./configure
make install
add to /etc/conf.modules (if not already there):
--- clip here ---
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-card-ymfpci
# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
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-12 snd-pcm-oss
--- clip here ---
Note that at the time, after compile, depmod -a complained about missing symbols in the following:
- /lib/modules/2.4.16/misc/snd-rme9652_mem.o
- /lib/modules/2.4.16/misc/snd-rme9652.o
- /lib/modules/2.4.16/misc/snd-card-rme9652.o
In the name of expediency, I simply removed these files by hand since I don't use them but there was probably some option turned on the the ALSA tree or perhaps the kernel sources themselves that was triggering this. Need to see if latest release has this problem.
To set default volume, added following to /etc/rc.d/rc.local:
/sbin/modprobe snd-pcm-oss
/usr/bin/amixer set Master on
/usr/bin/amixer set PCM on
/usr/bin/amixer set Master 20
/usr/bin/amixer set PCM 20
Since I was already mucking with rc.local anyways and plenty tired of the harddrive constantly running, I also dropped in the following:
echo Optimzing /dev/hda
/sbin/hdparm -S 5 /dev/hda
The alsa sound drivers don't handle laptop suspension; device state gets lost after the first suspension and since they don't notice the suspension, sound silently falls silent. Fortunately, all we have to do is make a /etc/sysconfig/apm-scripts script like the following:
#!/bin/bash
/usr/bin/logger APMCONT: $*
case $* in
resume)
/etc/rc.d/init.d/alsasound restart
/sbin/hdparm -S 5 /dev/hda
;;
esac
Note that hdparm and ide drives suffer the same sort of loss of settings during suspension, so I also added the same hdparm command used in rc.local
IEEE1394 support
The code in the default 2.4.0 release is broken; you can update the sources by:
su
cd /usr/src/linux/drivers
mv ieee1394 ieee1394.old
cvs -d:pserver:anonymous@cvs.linux1394.sourceforge.net:/cvsroot/linux1394 login
(nb: press Enter when prompted for a password)
cvs -z3 -d:pserver:anonymous@cvs.linux1394.sourceforge.net:/cvsroot/linux1394 co ieee1394
cd /usr/src/linux
make xconfig
Turn on ieee1394 support, compile ohci as a module. This module of vaio uses the CXD3222 chip which is ohci compliant:
make modules;make modules_install
mknod -m 666 /dev/video1394 c 172 0
for i in raw1394 ohci1394 ieee1394; do rmmod $i;done
for i in ohci1394 raw1394; do modprobe $i;done
/dev/sonypi
Support for the Sony jogdial, camera and other Vaio specific features was quite primitive until the folks at Alcove Labs reverse engineered Sony's driver to produce a Linux driver. This driver provides a /dev/sonypi device file interface to the Sony Programmable I/O Control Device which manages a variety of functions on Vaio laptops including the "jogdial" and the "motion eye" built-in camera. This driver has been integrated into the official linux kernel since 2.4.7.
Detailed instructions on how to use this device along with pointers to some utilities are available by clicking on /dev/sonypi.
JOG dial
The above device having been installed, utilities are available that will allow you to make use of it:
Useful links for jogdial:
Camera
As with the sonypi driver, changes to video4linux driver were integrated into the official since 2.4.7. Information on configuration may be found on the video4linux driver page.
Alternatively, there is a user mode camera capture program available called capture which works with my pcg-c1xf and several other models of pcg-c1.