One day, I came into work and found a box on my chair. Inside the box was a Sony Vaio C1XS Picturebook. A sub-compact laptop weighing in at 2.2 pounds (about 1 kilogram), with a touch-typeable keyboard, one PCMCIA card slot, and a digital camera mounted above the screen.

Let's see if it'll run Linux.

  1. Linux Picturebook: partitioning
  2. Linux Picturebook: installing RedHat
  3. Linux Picturebook: X-Window System
  4. Linux Picturebook: WaveLAN IEEE 802.11 wireless networking
  5. Linux Picturebook: Sound
  6. Linux Picturebook: USB
  7. Linux Picturebook: Camera
  8. Linux Picturebook: Firewire

Partitioning

Partitioning your hard drive was necessary for me because I opted not to buy Sony's custom CD-ROM drive just to install Linux.

First, I shrank my Windows 98 partitions using Partition Magic, and freed up space for Linux. You could use fips. I just happened to have a copy of PM lying around.

I find that 3 (or so) gigs is enough for a swap partition and a root partition, especially since I can simply mount my FAT32 drives as vfat type if I need more space for files.

Once this was done, I downloaded RedHat Linux to one of my FAT32 partitions.

Installing RedHat

I installed Red Hat by habit. There are plenty of Linux distributions to choose from. I'm just familiar with Red Hat.

The Picturebook has a USB floppy drive. As it turns out, you can boot from it into the Red Hat installer, which makes bootstrapping with loadlin or something similar totally unnecessary.

From here, you install as normal from your hard drive (the Red Hat installer quite happily reads from VFAT partitions).

X-Window System

Getting the X-Window system installed was surprisingly easy. The kinda weird 1024x480 resolution of the screen doesn't matter since all you need to do is adjust your view port in your XF86Config file.

The Picturebook uses a Neomagic chipset, much like most of the newer Dell laptops out there. Even nicer, Neomagic has written an xserver for their chipset, available from ftp://ftp.redhat.com/pub/XFCom/.

If you don't have access to a network connection just yet, you can use the standard SVGA xserver bundled with RedHat, though I'd get the Neomagic xserver at some point anyway.

Once you've installed the Neomagic xserver, you need an XF86Config file. They're not fun to write, so why don't you just grab one from
http://www.solluna.org/~bookwyrm/pcg-c1x.html

As it turns out, the Sony C1X (an older generation of the picturebook) uses the same neomagic chipset.

WaveLAN IEEE 802.11 wireless networking

WaveLAN is now Orinoco, just so's you know, but it's still really all Lucent.

The older WaveLAN wireless networking cards are supported by the PCMCIA package in Linux (at the time of this writing, pcmcia_cs-3.1.17), however the newer WaveLAN Silver Turbo cards are not supported.

Lucent was gracious enough to supply a wavelan2_cs driver for us available from
http://www.wavelan.com/support/

In order to compile this, though, you still need to download the PCMCIA package from
http://pcmcia.sourceforge.org/

Unpack Lucent's drivers into the pcmcia directory created by the PCMCIA package. Then build the card services as normal.

Configuration is outlined in the readme included with the WaveLAN drivers from Lucent.

Sound

Before you start, you should turn off the 'PnP operating system' option in the BIOS.

The Picturebook contains a Yamaha YMF-744B sound chip. This chip, while not supported by the current linux kernels, is supported commercially by OSS (available at http://www.openssound.com/).

The OSS drivers are not APM aware making them irritating to use with a linux-based laptop -- You don't turn it off, you suspend/sleep it.

ALSA supports the picturebook sound chip with it's latest drivers. You can grab them from http://www.alsa-project.org.

Once you've got them, you need to install them in this order: drivers, lib, utils. Note that you probably won't need to compile them again, probably just ./configure, and make install.

Then you need to edit your /etc/conf.modules or /etc/modules.conf (one is just an older name for the other... you probably won't have both). You should add something like the following lines:

alias char-major-116 snd
alias snd-card-0 snd-card-ymfpci
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-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss 

The next part was weird for me... not sure what went wrong here, but I couldn't get my sound working without rebooting. In theory (i think), I should have been able to get away with simply running '/sbin/depmod -a'... hrm...

USB

Quick note: You need to turn off the "PnP OS" option in the BIOS setup. (hit Esc while booting, then F2.

USB isn't supported by Linux 2.2.X kernels by default. You have to go into your arch/i386/config.in and find the back patch. I've found using back patches to be pretty unreliable...

Still, the line you need to uncomment in the config file looks like this: # source drivers/usb/Config.in

That's bad.

OTOH, Linux 2.3.X kernels do support USB which means, if you're willing to try a newer beta kernel (they're usually pretty stable), you'll likely find a more stable Linux USB solution.

That's good.

Once I'd compiled and tested my USB stuff (I had a nicer mouse than the annoying eraser-head mouse), I tried to recompile all my modules (not a problem), and the PCMCIA package (with the WaveLAN driver in it). I couldn't seem to make the PCMCIA package compile with the new kernel despite numerous attempts.

That's bad.

So, it's a trade off. If you're going to be hooked in at a desk with an external k/b and mouse most of the time, go with the 2.3.X kernel. If you're like me, and your aim is to walk around with your cool toy, go with the 2.2.X kernel and the back patch... just, erm... face having to reboot to make your USB mouse work properly once in a while.

Some other notes:

You probably need to: mknod /dev/usbmouse c 10 32 to make a usbmouse device, and the edit your XF86Config to make it work under X by adding some lines:

          Section "ServerFlags"
              AllowMouseOpenFail
          EndSection

          Section "XInput"
              SubSection "Mouse"
                  Port            "/dev/usbmouse"
                  DeviceName      "Pointer"
                  Protocol        "PS/2"
                  AlwaysCore
              EndSubSection
          EndSection

Camera

After searching around online for an extended period of time, I managed to find that someone had written linux camera drivers for the picturebook. You can grab them from http://samba.org/picturebook/, though they're rather primitive right now...

Firewire

I haven't actually tried it not having another Firewire device to play with, but the 2.3.X kernels support Firewire. Once compiled into the kernel, you should be able to use NFS over it (since it's capable of TCP/IP).

Anyone tried it?