Vaio PCG-C1F Sub-notebook
My newest toy is a Vaio PCG-C1F sub-notebook. The great thing about it is that its so small you can bring it everywhere. And with the big screen (1024x480) and big hard disk (4GB) it's actually usable for real work on the road.
I purchased the Vaio from Sony Europe directly through the web page. This was the only place in Europe I could find that actually offered the Vaio PCG-C1F. They are selling the European version (called C1F), which is different from the Japanese (and American) version (C1X). The European version has no built-in modem. Instead a 4-in-1 PCMCIA card is included. This card can work as a 56kB-Modem, an ISDN-, GSM-, and Ethernet-Card. Only the cable for the Modem is included, all the other cables have to be bought extra and they are quite expensive. With the PCMCIA card you get a modem cable and eight telephone adapters for different countries.
Of course I wanted to run Linux on it. After consulting the Linux-Laptop-Homepage, which is an excellent place to start if you are planning to use Linux on any kind of mobile device, I found Kim Liu's excellent page (now defunct) on the Vaio PCG-C1X, which helped me a lot to get Linux running on my notebook. Thanks Kim!
I hope this page about some of my experiences with the notebook and Linux will be helpful for you.
See Kim's page for more info. If you don't have a CD-ROM you can install Linux like I did. Prepare a Linux system on another computer and use Windows to copy a tar file to the Vaio. Then boot Linux with a floppy, shrink the Windows file system (as described on Kim's page), make a new file system on the new partition and untar Linux. You can boot Linux from floppy if the whole system is on only one disk (kernel and initrd).
The Vaio has a track point (little thing between the G, H, and B keys) and three (!) buttons. The mouse is accessed as /dev/psaux if you compile your kernel with PS/2 mouse support. It works without problems in the Linux console with gpm and with X11.
The Vaio PCGA-UMS1 USB Wheel-Mouse works with newer 2.2 and all 2.4 kernels. Turn of "Plug and Play OS" support in the BIOS, otherwise it will not work. Create the device /dev/usbmouse (or whatever name you like) with mknod /dev/usbmouse c 10 32.
Use the following command line to start gpm:
gpm -t ps2 -m /dev/psaux -M -t imps2 -m /dev/usbmouse
Now the internal mouse and the external USB mouse work at the same time.
You have to kill gpm before you start X11. Use the following options in your XF86Config:
Section "Pointer" Protocol "imps/2" Device "/dev/usbmouse" Buttons 5 ZAxisMapping 4 5 EndSection
This will enable the wheel in the Vaio PCGA-UMS1.
gpm is able to take two input devices and output the combined date to a FIFO, so that it can be used for X11. This works, but the wheel is not usable. You can use this patch for gpm 1.18.0 to fix this. Additionally there is a new option -w to simulate the wheel movement by pressing the middle mouse button and y-axis movement as under Windows.
Start gpm as follows:
gpm -tps2 -m/dev/psaux -w -M -timps2 -m/dev/usbmouse -Rimps2
Use the following lines in your XF86Config:
Section "Pointer" Protocol "imps/2" Device "/dev/gpmdata" Buttons 5 ZAxisMapping 4 5 EndSection
Now everything works with and without X11.
XFree 4 supports using several mice at once, so you don't need gpm any more. Put the following lines in the ServerLayout section of your XF86Config-4:
Section "ServerLayout" ... InputDevice "Mouse0" "CorePointer" InputDevice "Mouse1" "SendCoreEvents" ... EndSection
Then add the following InputDevice sections:
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Device" "/dev/psaux" Option "Protocol" "PS/2" EndSection Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Device" "/dev/usbmouse" Option "Protocol" "imps/2" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection
The keyboard is basically a standard UK keyboard. I am using the normal uk.map for the Linux console, which I am not using too often and have a special .Xmodmap for X11. The definition of this key map is very close to the signs on the key caps, but I changed some things: Control instead of Caps Lock, Windows keys are usable, Umlaut and other special signs with AltGr, etc.
The only thing I found quite annoying with the keyboard is the need to press the Fn key for PageUp und PageDown, which means that for scrolling in a xterm you have to press three keys (Shift, Fn, and PageUp). This can be changed in the file .Xdefaults. My .Xdefaults has this and some more changes.
Soundblaster compatible. Works out of the box.
Text mode console
With the version 1.9 of SVGATextMode you can change the resolution of the text mode console to 128x32 or even 128x60 chars. David Billington <email@example.com> sent me a working example of the /etc/TextConfig file. Thanks David! On my system, if I start X11 and go back to text mode the console driver gets confused and sometimes part of the console is missing.
With the Fn+F7 you can switch between LCD only, LCD+external monitor, and external monitor only. This works without problems in text mode. When using an external monitor only the screen looks normal, when using both displays together the picture on the external monitor is squashed and uses only about half the screen width.
Get XFree86 3.3.3 or newer. Use the SVGA X server for the Neomagic graphics card. For Redhat users the rpm is XFree86-SVGA-220.127.116.11-1.i386.rpm. My XF86Config file is based on the one on Kim Liu's excellent page (now defunct) on the Vaio PCG-C1X. I only disabled the 3-button-emulation, because it's not needed.
The NeoMagic card supports 8, 16 or 24 bits depth. The 24 bit mode is noticeable slower when updating the screen (for instance in a scrolling xterm). Change the line with DefaultColorDepth in XF86Config to suit your needs.
This XF86Config works for external displays (At least with my monitor). It uses a resolution of 1024x768. It does not work with the internal LCD. You can switch between internal and external display with the Fn+F7 keys or use the options intern_disp and/or extern_disp in the Device section of your XF86Config but I haven't found a config that works for both, internal and external display at the same time. With Windows you can choose a normal resolution like 1024x768, which will show correctly on the external monitor. On the LCD you have to scroll up and down to see the whole screen, this is not possible with X11.
Note: To use XFree version 4 a line
has to be added to the "Device" section of the XF86Config file.
APM (Advanced Power Management)
To activate APM recompile the kernel with the following option enabled:
[*] Advanced Power Management BIOS support [ ] Ignore USER SUSPEND [ ] Enable PM at boot time [*] Make CPU Idle calls when idle [*] Enable console blanking using APM [*] Power off on shutdown [ ] Ignore multiple suspend [ ] Ignore multiple suspend/resume cycles [ ] RTC stores time in GMT [ ] Allow interrupts during APM BIOS calls
Get the APM utilities. Just untar it and type make. No problems so far with APM. Use apmd to warn you if the battery is low. The estimate from APM about battery lifetime is very optimistic for the small battery that is delivered with the Vaio (it says 3 hours, when the battery is full, but it's more like 2 hours). You can get a bigger battery which will really give you the 3 hours up-time.
When shutting down Linux, the kernel can shutdown the Vaio if you activate the option Power off on shutdown (as shown above) when compiling the kernel.
If you activate the Enable console blanking using APM option when compiling the kernel the console screen blanker will deactivate the LCD. (Use setterm -blank time to set the time (in minutes) till the screen blanker activates.)
Under X11 the screen blanker can be activated with xset dpms time (time in seconds) and it will deactivate the LCD too.
The combination Fn+D to switch of the display works in console and X11 mode.
There are several power save modi:
Suspend to RAM and suspend to disk both work even with PCMCIA Ethernet card. If your battery runs low, the Vaio will automatically suspend to disk. (Can be disabled in BIOS).
There is a 132 MByte partition of type Unknown on the hard disk. I presume that this partition is used for the suspend-to-disk feature.
You can use hdparm -S time /dev/hda to set spin-down time for the hard disk. See the manual page for the meaning of the time parameter. The disk will spin up again in under 2 seconds when accessed.
I have a 10MBit-Ethernet-PCMCIA-Card (Allnet IC-Card), which works under Windows98 and Linux. My /etc/sysconfig/pcmcia says:
PCMCIA=yes PCIC=i82365 PCIC_OPTS="irq_list=11" CORE_OPTS=
The modem card that comes with the Vaio works without problems. No configuration is necessary.
The Vaio PCG-C1F has a SMC IrCC IrDA chip, support for which seems to be under development. None of the different web pages on Linux IrDA are up of date and all the information to IrDA is very confusing.
It seems that you don't need support for the chip if you only want to use the slow IrDA mode (up to 115 kBit/s). Here is what I did to get some things running:
There are three IrDA mode in the BIOS: IrDA, FIR and ASK-IR. The first to modes work, ASK-IR doesn't. Here is how my BIOS settings look:
IrDA Configuration: [Enabled] IR Base I/O address: [3E8] Interrupt: [IRQ 10] Mode: [FIR] DMA channel: [DMA 0] FIR Base I/O address: 
Be sure to use a current kernel, 2.2.16 does it for me. Older kernels use different IrDA devices and modules.
This is how my kernel config looks:
<M> IrDA subsystem support --- IrDA protocols <M> IrLAN protocol <M> IrCOMM protocol [*] Ultra (connectionless) protocol [*] IrDA protocol options --- IrDA options [*] Cache last LSAP [*] Fast RRs [*] Debug information [*] IrLAP compression --- IrDA compressors <M> Deflate compression (EXPERIMENTAL) Infrared-port device drivers ---> --- SIR device drivers <M> IrTTY (uses Linux serial driver) <M> IrPORT (IrDA serial driver) --- FIR device drivers < > NSC PC87108/PC87338 < > Winbond W83977AF (IR) < > Toshiba Type-O IR Port < > SMC IrCC (Experimental) --- Dongle support [ ] Serial dongle support
3E8 is /dev/ttyS2 and to assign interrupt 10 to this port you have to call
setserial /dev/ttyS2 irq 10
Now get the IrDA-Utils and compile and install them. Change the file /etc/irda/drivers to call irattach /dev/ttyS2 (or copy the file from the web server). Then start irmanager -d. (Here is my Init-Skript for starting setserial and irmanager.) The IrDA modules should be loaded automatically at his point.
Start irdadump which should output some messages. If you don't see anything, something went wrong, check the log files. If you see messages like...
16:14:30.108596 xid:cmd 40f328ae > ffffffff S=6 s=5 (14) 16:14:30.198598 xid:cmd 40f328ae > ffffffff S=6 s=* hostname hint=0400 [ Computer ] (24)
... it means that IrDA is working on your computer. Next bring some IrDA devices like a printer or mobile phone into range. You should see the device announcing its name and capabilities.
Create some devices:
mknod /dev/ircomm0 c 161 0 mknod /dev/irlpt0 c 161 17
(I have no idea why the minor device number for /dev/irlpt0 is 17 and not 16, which sounds more logical to me, but it only works this way.)
Now you can print something to /dev/irlpt0 if you have a printer that supports IrDA and use /dev/ircomm0 as a normal serial port for accessing your mobile phone or similar device.
I haven't tried getting IrLAN to work, but IrOBEX to send phone book entries to my Nokia 7110 mobile phone sort of works. Use the Open OBEX software.
More information on IrDA:
The Sony CXD 1947A chip in the Vaio is currently (January 2002) not supported by the Linux IEEE-1394 Project.
Suspend-to-diskOn my Vaio I have the following partitions (printed with cfdisk):
cfdisk 0.8n Disk Drive: /dev/hda Heads: 240 Sectors per Track: 63 Cylinders: 559 Name Flags Part Type FS Type [Label] Size (MB) ------------------------------------------------------------------------------ hda1 Boot Primary Win95 FAT32 1816.18 hda2 Primary Linux swap 103.36 hda3 Primary Linux ext2 2067.19 hda4 Primary IBM Thinkpad hibernation 132.90 Unusable 7.39
Maybe this will help somebody who lost his 'IBM Thinkpad hibernation' partition.