Logo ©1994-2007 Kevin Boone
My professional interests
Computing
Law
Education
Science and research

My leisure interests
Martial arts
Heritage railways
Garden railways
Motorcycles
DIY

Downloads
Linux downloads
Windows downloads
Java downloads
Perl downloads
Home automation downloads

About me
Home & family
My CV

Site info
Contact the author
Download policy
Keyword index

  Home > Computing > Linux

Running Linux on the Sony Picturebook PCG-C1VFK

Last modified: Wed Feb 8 00:07:33 2006

Overview

I needed an inexpensive and, above all, cheap notebook computer for note-taking, playing music, and occasional Web surfing, and I came across this Sony Picturebook on eBay. It is an impressively small unit -- just a bit bigger than two DVD cases stacked together. This compactness has its disadvantages, as you might imagine, but there are very few PC-type computers on the market that approach it for portability. Even the units in the new Sony TR range -- which are about as small as notebooks come these days -- are bigger.
      The Picturebook was about four years old when I got it. It was supplied with unlicenced Windows XP left behind by the previous owner. I'm not a huge fan of Windows in any of its varieties, but XP is particularly inappropriate on a machine like this. It has a maximum 112Mb RAM, and a 600 MHz CPU. Windows applications of any sophistication are completely unusable. Moreover, the odd-shaped screen (letterbox format, 1024x480 pixels) was largely consumed by the huge menus and window decorations that Windows XP uses. To be fair, large sophisticated Linux applications like OpenOffice do quite badly on this notebook, but there simple alternatives that work perfectly well. I don't think I'd want to run Gnome on it either, but there are simpler user interface for Linux which work very well. I am using the ICE window manager, which offers a reasonable compromise between memory consumption and flexibility.

Like most Sony computers, the Picture has no useable APM support. You must use an ACPI-enabled kernel on this machine, or you'll have no power management. I never did get suspend-to-RAM working, but I did get suspend-to-disk in kernel 2.6.15. At the time of writing that's more recent than any shrink-wrapped Linux distribution uses, even Fedora Core 4 (the most up-to-date distribution available at the time of installation). So you're going to have to look forward to updating the kernel, in addition to all the usual Linux installation stuff.

The unit

The PCG-C1VFK is a very tiny notebook, based on the Transmeta Crusoe 600 MHz CPU. The CPU is fully x86 compatible, but has some enhancements that can be used by a suitably aware kernel. If you're compiling a kernel yourself, you can select the Crusoe as a CPU option. The graphics system is based on that old favourite, ATI's Rage Mobility, which is now well supported by Linux X implementations (include XVideo, which is vital if you want to play movies). Audio support is provided by a Yamaha YMF754 chip, supported both by OSS and ALSA. There is one CardBus PCMCIA slot, and one USB (1.1) port. It has a built-in bluetooth transceiver, but I've not tried it. Nor have I tried the built-in FireWire port, or the TV out, or the external VGA output (because it requires a special cable that I didn't get with the unit). There is a 12Gb hard drive, and a slot for Sony memory sticks, none of which I have. An interesting feature is the small jogdial, next to the power connector on the right of the keyboard. This can be made to act in the same way as the scroll wheel on a mouse (but I prefer to use a real mouse).
      So far as I can tell, the Picturebook has no built-in ethernet port, so you'll need to use a firewire, PCMCIA, or USB ethernet adapter. In a way, PCMCIA is the least useful option, because there's only one slot, and you might need it for something else (e.g., a CDROM drive). However, I have a PCMCIA wireless ethernet adapter, and I don't have anything for USB or FireWire, so I'm sticking with what I've got.
      A potentially interesting feature of the Picturebook is a built-in MotionEye camera. It sits in the lid, and normally points at the operator. Presumably it's intended for video-conferencing, although it can be rotated aware from the operator if desired. I don't have much use for such a feature, and haven't spent any time playing with it beyond what was necessary to make it work.

Linux installation

Installation of RedHat Fedora Core 4 from CDROM is straightforward, once you've figured out how to boot from the PCMCIA CDROM drive. The tricky part is preventing the Linux installer getting in the way of the BIOS IDE emulation for this drive -- it works perfectly well as an IDE device, but if you want to treat it as a PCMCIA device, you'll have to boot from a floppy containing PCMCIA drivers, which is a drag. In addition, you'll need to install in console (non-graphical) mode, because the Fedora installer can't figure out the screen resolution, and draws the graphical display too large to fit. There may be some clever way around this, but I couldn't find one.
      So, after a bit of digging around, the magic command line to give to the installer boot prompt turns out to be:
:linux ide2=0x180 nopcmcia text
Because I was planning to use a PCMCIA wireless network adapter, and because I couldn't plug it in during installation (because there's only one PCMCIA slot and it had the CDROM drive connected to it), no network configuration got done during installation. It's not a big deal to run system-config-network after installation, which is all I had to do to be up and running. My wireless card is an elderly Hermes/Orinoco, which was one of the first wireless devices to get Linux support, so it just worked.

Now the tricky bit. If you install Fedora Core 4, you'll get an ACPI-aware kernel by default, which means you'll get some sort of power management. The unit won't blow the fan at full speed or overheat, most likely. Mine runs at about 40 Celcius under low load, rising to about 55 celcius under full load, and the fan whirrs gently, but not obtrusively, most of the time. But the 2.6.11 kernel supplied with FC4 just doesn't cut the mustard with suspend-to-disk (or suspend-to-RAM, but I've never got suspend-to-RAM working with any kernel). You need the machine to be able to sleep, because a full boot takes ages (minutes). By upgrading to 2.6.15, I was able to get suspend-to-disk working. You'll need to compile this option in (it's not enabled by default), and of course you'll need to enable modules for all the hardware you plan to run. I just enabled everything as modules, in the hope that the autoloader would sort it out at runtime, which has mostly proven to be the case.
      The basic process for doing a suspend to disk is to

echo disk >/sys/power/state
However, you're at the mercy of non-suspendable hardware and drivers if you do that. You need to script the unloading and reloading of all such drivers (which means, in practice, most of them), as well as initiating the suspend. Alternatively, there is a utility called hibernate (Google is your friend) which automates this, but might still need a bit of hand-tweaking for troublesome drivers.
      I've found that a suspend and a resume each take about 30 seconds, which surely beats the five minutes or so it takes to boot normally. A suspend to RAM takes two seconds, but it doesn't wake up again every other time, so that's not very useful. Watch out -- when you wake up after s suspend, the screen will blank automatically because the kernel thinks enough time has elapsed to invoke the screensaver. So it looks like it's crashed. Of course, it might have crashed, but don't assume it has just because the screen doesn't come back on.
      The Fedora installer correctly identifies the video hardware, and configures X to use the ati driver. It does not, however, correctly probe the screen dimensions, and defaults to 640x480. This does fit the screen, but the aspect ratio is distorted. To use the proper 1024x480 screen mode, you'll need to add the following Modeline to the Monitor section of xorg.conf. ModeLine "1024x480" 65.0 1024 1032 1176 1344 480 488 494 563 -hsync -vsync

In short, once you've figured out the correct installer boot paramters to get the PCMCIA CDROM to work, installation is by the book, except for a trivial tweak to the X configuration, and the less trivial installation of a more recent kernel.

Things that work

The section describe the hardware I've had working, and what I had to do (if anything) to make it work, and which I didn't necessarily expect to be straightforward to get working. Please bear in mind I'm using Fedora Core 4 -- anything less recent might be less successful.

Video

The letterbox screen shape is ideal for playing widescreen movies. I've installed the Fedora RPM of Xine (and all its (considerable) dependencies), and it plays video surprisingly well (surprising, that is, for a 600 MHz CPU with no decode acceleration). It does lose the plot a bit with high-bandwidth or high-resolution movies, but since I generally rip my DVDs to fit the screen of my Archos portable media play (see elswhere on this site), that's not too much of a problem for me. Recent Xine versions cope reasonably well with under-resourced machines -- you get some framedropping, but it generally keeps up.
      So long as you've got an X video driver that supports the XVideo extension, Xine (and other decent players like Ogle and Mplayer) will use it to scale to fit the full screen without loading the CPU. Without XVideo, the best you can hope for is playback at the encoded size, because this CPU will never be able to scale video in realtime.

PCMCIA

I've only so far tried my Buffalo wireless ethernet card, and unbranded multi-format memory card reader, and both work fine. The hotplug system in Fedora Core 4 is quite good at enabling and disabling drivers as cards are inserted and removed, but it doesn't hurt to eject cards at the software level if you can.

Jogdial

If you load the sonypi driver, the jogdial generates scroll events which many X applications respond to. For example, Mozilla scrolls up or down three lines for each click of the wheel. xterm scolls the screen buffer back, in the same way as clicking the mouse of the scroll bar. This is a useful feature if you don't have an external mouse.

Power management and battery life

By default, the Picturebook screen runs on full brightness, all the time, unless something is done in software to change this. The screen is a major consumer of battery capacity, and you don't necessarily need full brightness. There is a utility called spicctrl which works in conjuction with the sonypi kernel driver to adjust the screen brightness (among other things). If you wanted to be really clever, you could sample the ambient brightness using the built-in camera, and adjust yhe brightness on the fly. But that's a job for another day.

Canon IXUS 700 camera

The version of gphoto2 supplied with Fedora Core 4 supported my IXUS 700 over USB immediately, although I had to tell gphoto2 that it was an IXUS 500 (official support for the 700 is very recent).

Built-in MotionEye camera

The kernel driver meye.ko makes this device a Video4Linux-compatible video source. You can, in principle, capture images in any format that you have a Video4Linux (V4L) capture utility for. The meye is compatible with V4L version 2, but most V4L applications are still using version 1. You can make the meye driver conform to version 1, by loading it with the module option forcev4l1=1. I've got reasonable results loading the module like this:
modprobe meye gbuffers=32 video_nr=0 forcev4l1=1
The meye driver has a dependency on sonypi, which must be loaded with the option camera=1 to enable the camera. If you're using auto-loading, you'll need to modify your modprobe.conf or equivalent to ensure that this option gets appended at load time. I've captured stills and video successfully at 320x240 resolution; I don't know whether the hardware and the driver support a higher resolution that this.
      The only capture utility I've tried is xawtv, which works fine when invoked as:
xawtv -c /dev/video0 -geometry 320x240

Software that works

This is the software I'm currently running on the Picturebook.

GIMP v2 -- not blazingly fast, but perfectly useable
Thunderbird and Firefox -- Some versions of these require libstd++.so.5, while Fedora Core 4 uses libstdc++.so.6. A compatibility module for the earlier version is available from the RedHat web sit.
RealPlayer 10 -- ditto
xine -- so long as you've got the XVideo extension working under XFree86/Xorg, xine should play in full screen mode with no increased CPU load
JPilot -- synchronization and PIM utility for Palm handheld devices. I use this to manage and syncrhonize data with my Treo 600 cellphone.
ICE window manager -- a simple X window manager and program manager. Hugely smaller and faster to load the Gnome and all its little minions, but way more functional than old-fashioned stuff like twn. This can be configured to use very little space (a few pixels) for window decorations, which is crucial when the display is only 480 pixels high
xpdf and acroread -- PDF viewers. xpdf loads much faster than acroread, but doesn't handle all PDF formats as well
xmms -- Fedora Core 4 doesn't have an XMMS plug-in for MP3 format, but if you Google for the xmms-mp3 RPM, you should be able to rectify that fairly quickly.
jpilot and pilot-link -- I could not get the Fedora versions of these to work properly, so in the end I went back to the versions I used with RedHat 9 and these worked fine

Not tested yet

The following may work, but I can't comment one way or the other at this stage because I haven't tried them.
  • Bluetooth
  • Firewire
  • Memory stick reader
  • External VGA
  • TV out

   
Search

WebThis site

Shameless plug

By the author of this site. Buy on-line from Amazon USA | UK

Editorial
So you want to be a university lecturer? Read this first!

Speak like your boss: new developments in managerese

Computing features
File handling in the Linux kernel: an in-depth look at how Linux handles files, filesystems, and file I/O

All sorts of Linux stuff

Confused about CLASSPATH? answers are here

First steps in EJB using jBoss (recently revised for jBoss 3.2)