Linux on the Sony PCG-VX88/VX89

Table of Contents



Component Supported? notes
CPU: Intel Pentium-III 850mhz (900mhz for VX89) yes Drops to 500mhz if booted without the ac adapter.
Display: 14.1" LCD, 1024x768 yes brightness adjustable in linux
Graphics chip: Intel 815EM chip yes XFree86 4.0+ i810
RAM: 256mb
Hard drive: 30gb yes Comes pre-partitioned!
Battery: 5+ hours with lcd on low yes PLEASE use the most recent ACPI patch! (see warnings below)
i.link (ieee1394) CDRW/DVD combo drive yes :D required newest snapshot of ieee1394 driver
Memory stick slot yes mount /dev/sda1 like a normal partition
Modem yes See the description below under 10/15/02.
Intel 10/100mbps ethernet yes I saw mention on another site that this freezes things, but I've seen no problem.
Orinico (lucent) MiniPCI Wireless w/128bit WEP yes :D requires latest ACPI patch
PS/2 Touch-pad with "jogdial" yes Jogdial can be used to emulate a scroll wheel.
PCMCIA: 1 type I or II I think so Seems to detect ok, but I have no cards to try.
Audio: intel 815 sound chip yes Use the alsa driver
USB yes USB support in linux rocks my world.



Recent Events & Rants
  • 2/24/05 - That nifty little wireless on/off switch? Yeah, that failed. :P Of course. Superfluous, ill-implemented feature, and it has to fail, rendering a perfectly good wireless card flakey. Fortunately, the circuit board upon which the switch lies is on sale at the Sony Parts Center for $10 (part CNX-173). This makes me willing to risk breaking the circuit board by trying to rip off the wireless switch and solder the pins together to make the card always on. A side note -- you can also buy a replacement keyboard at the sony site in case you spill yours by pouring water on it like I did. Simple replacement, just remove the screws on the bottom labelled with dots and arrows (5), and the keyboard falls out when you open the lid. Replacing the wireless switch PCB isn't as easy... this requires a full disassemble, removing EVERY screw with an arrow (including the ones under the black feet, the ones under the hard drive cover, and the hard drive itself). Once you're sure you've got them all, flip the laptop over, pull the keyboard out, undo its connector, and make sure you get the two black screws that are underneath it holding the main black plastic housing on. Then carefully pull it apart. The bastards put an adhesive strip in the lower right side... you'll have to pull that apart. Be gentle. Anyway, the wireless switch PCB and all the other internal assemblies are exposed at this point.

  • 4/26/03 - Haven't updated in awhile. The long and short of it is that my sony representative is a class A asshole. He went back on what he said and gave me a VX-89 (same thing as the 88, but with a 900mhz cpu). Seemed to think he was doing me a real favor. I had my heart set on using the check to buy a powerbook :P Anyway, recently, I got the memory stick reader to work. Just use /dev/sda1 as a normal block device... you can really put whatever kind of file system you want on it.

  • 1/3/03 - Grumble. I sent my laptop in for the third time on December 30th. Yesterday I received a call from my sony representative that the repair department head suggests replacing the laptop, because he can't reproduce the problem. Because he won't spend the time to reproduce the problem. Well, I'm happy, because they don't have any more of this model in stock, and so they're going to write me a check. I'm annoyed, because this process will take "about three weeks". School starts on the 9th, and I need a laptop... my main machine caught fire (!) the other day. I'm getting a powerbook G4. Suggestion: never buy sony computers. Their support is horrible... they just don't want to spend the energy to back up their product. Along with that, there's a complete rift in communication between the repair department and, well, the rest of the company. You not only have to convince a support technician that you have a problem, you have to convince them to convince the repair department, as well. What a nightmare.

  • 12/20/02 - AUGH. I sent in the laptop for service AGAIN, Monday, because I'm finally on break and can spare it. I took it into a local repair center, where they wrote up the repair order (so a real tech saw it first). The repair order said to replace the motherboard this time, since replacing the touchpad didn't do it. I got the laptop back today (surprisingly quickly), and the repair invoice says they replaced the touchpad again. Not only that, but there are now DEEP scratches on the top and bottom of the outside of the laptop. I'm pissed.

  • 11/5/02 - I just successfully used suspend-to-disk in linux. There's a new patch at the swsusp project page, for swsusp on acpi-20020918. I applied this patch, followed directions, and BAM, it suspended like a charm. Some swsusp users report problems with i815 chips, but my system suspended from and resumed to X just fine. Now, this laptop does everything in linux that it did in windows. And it suspends faster than windows, too.

  • 11/4/02 - Ok, I finally got my touchpad back. For the whole saga, look at SonySupport. To summarize: they didn't fix the problem. I am PISSED. They'd better ship me a new laptop. :P

  • 10/16/02 - I was looking at the european sonystyle site, and discovered that this laptop is also known as the VX71P (or possibly just VX71, if they sell it with XP Home). Just trying to get more search terms into my page :)

  • 10/15/02 3:00 am - Get this. I got the WinModem working in linux. The driver is available here. Just download the tarball and follow the directions. Worked like a charm. Devfs support works fine. I tested it, and it most definitely works. With that, I have 100% linux support on this laptop! That's right, every single hardware device is supported. Crazy.

  • 10/15/02 2:30 am - Got USB working, including the Memstick reader! Not sure if the reader itself works, but it's detected. Required memstick.patch, see Jack's site linked to on 10/01/02. Applying that made everything work fine. No tons of interrupt errors in 2.4.19 with acpi 20020918. I'm almost there with full compatibility: last is the modem. I want to try it, just to say this thing is completely supported in linux (I have no use for it, really...).

  • 10/13/02 - Talked to the tech support people, and after two days, finally convinced them that, in fact, my touchpad hardware was flakey. Seems they have to go through their little motions, etc etc *annoyed*. The symptoms: the touchpad freezes up for 5-10 seconds, sporadically, in windows or linux (yeah, hardware problem, I'd say). Anyone else have this? Anyway, I have to give up my baby for a week, sending it to them in the box they send me on Tuesday.

  • 10/4/02 - 7:37 pm - The fine folks at Emperor Linux did finally respond to the email I sent, though a bit after I already found the information elsewhere... Check them out if you're considering one of these laptops and want to buy it preconfigured in linux. Also, they told me that you can overnight your laptop to them, and they'll install your distro of choice and overnight it back.

  • 10/4/02 - 10:00 am - I paid attention to my boot scripts and saw a note to configure /etc/default/noflushd. Doing this makes my disk spin down after a specified amount of time with no use. Combine this with the nice huge cache that 256mb ram allows, and I get more battery life.

  • 10/01/02 11:30 am - I was pointed to this page by its author, Jack Coates, on the linux-sony mailing list

  • 10/01/02 10:30 am - Initial posting of document.


Introduction

I recently (9/20/2002) purchased a Sony VAOI PCG-VX88 laptop. This thing is sleek, sexy looking, and very lightweight, and has all of the CPU power I need, while still having a nice long 5+ hours of battery life. It's almost completely silent. The hard drive is a small whisper, and when the fan kicks in, it's just a soft purr. About the only thing that's not to like about it is that the right-shift key is only the size of a normal letter key (common among slim vaoi notebooks). I had to reteach myself how to type some of the punctuation on the right, notably smileys. I might put a little pice of tape on there to use as a hint. Ah well, nothing's perfect. Being a linux addict, er, advocate, I quickly started trying to get linux installed. This page documents my efforts, because I've only found one other website related to linux on the VX-88.

Overall

I've gotten nearly everything to work. The install is not quite straightforward, so I would suggest that you only attempt it if you have a little bit of linux knowledge. It was made easier by the fact that the disk was already split into two partitions, but it was made harder by the fact that the dvd drive wasn't supported by my distrubition's installer. Wireless gave me a bit of trouble too, but it works now. Barring these difficulties, the rest of the installation wasn't too difficult.

As this install is more tricky than a standard linux installation anyway, I'll assume you have installed linux at least once before, and therefore, be a little less verbose about standard linux installation issues. You also need to know how to compile a kernel.

Installing

My distribution of choice was Debian. I recently became hooked on it, and decided it'd be the easiest to install on my new laptop.

First off, of course, is choosing where to put linux. Quite conveniently, the laptop ships with the 30gb drive split into two roughly equal partitions, with Windows XP (home or office depends on PCG-VX88 vs PCG-VX88P, this appears to be the only difference). So, I made sure nothing important was on the second partition. If you'd like to change the size of the partition, I think there are utilities out there to do this for you (can they resize NTFS partitions, though?). However, the recovery CD conveniently comes with an option to resize your partitions. If you've just opened up the laptop for the first time, it seems that doing this before doing anything else is the easiest way to give your linux partition more or less space.

Booting the Installer

Immediately, I was faced with my first challenge. This system doesn't come with a floppy drive. So, I decided that I'd do a Debian FTP-install (I have DSL). I suggest that you do it this way, for reasons that I'll uncover in a bit. If you don't have broadband, try to borrow from a friend or something. Trust me, CD-based installing will probably be at least a little difficult.

I grabbed and burned a Debian Net installation CD image. Since the system doesn't have burning software included (XP handles that), I downloaded an evaluation copy of Nero.

Create a Shared Partition

If you go through the installation, soon you'll see the first big issue. Debian wants to install a very minimal system (namely, the kernel) onto your hard drive before it starts getting packages via ftp. It can't, however, because it can't read the kernels off of the CD. The BIOS supports the DVD drive just long enough to boot the Debian rescue image, but after that, debian's on its own, and it doesn't have support for the DVD drive (yet?), nor, I imagine, does it have support for the network card. The easiest way I found to get around this is to create a partition with filesystem msdos (yes, fat16, it's the best that the installer system can support), and put the necessary files on from XP. So, press CTRL-ALT-F2, and go partition your disk. Make a shared partition, say, 100mb (more or less as you see fit, the install needs only a few mb). Set the type to DOS Fat 16.

Now shutdown the system, and go back to XP, and format the drive (E: in my system, I believe). Make sure that you set the file system type to FAT (not FAT32, yet, at least). Copy files from the net installation CD. You will need access to the rescue image (rescue.bin) and drivers.tgz.

Now go back and boot the installer once more, and go back to the second console. Make the rest of your partitions (swap and root, and any others). Make the filesystems on them (you can do all of this in the debian installer, too). Now, mount your root filesystem, and create a /debianinst directory. In it, place drivers.tgz. Make a subdirectory images-1.44/, and put rescue.bin in that. Make sure these files are named lowercased (dosfs may have messed with the file names). Unmount the root filesystem. Now you can go back to the debian installer. When it prompts for the files, give it the paths you created when it asks.

Other Options

You could, of course, create your own custom boot floppy image. You would either get drivers.tgz into there somehow, or put in firewire support as described below. I don't think the former would work, because I believe bootable CD's just have 1.44mb floppy images on them. Anothe roption is to compile in eepro100 support and grab the necessary files from elsewhere, or compile in NTFS support so you don't have that annoying dos partition lying around forever. Let me know of your successes/failures.

Installation Notes

Now select FTP install, and go about your merry way. Everything should work fine. One note: the network card is supported by the eepro100.o module. I saw a note here that this driver may freeze the system, but I never saw that problem, and I downloaded hundreds of megs for my installation.


Configuration

Now comes the fun part. Be ready to get your hands dirty. It took me quite a bit of kernel compilation to get this right.

X-Windows

All that you should need to get X working is above. I didn't have any problems, it just worked.

Configure the kernel

ACPI SUPPORT! IMPORTANT!

WARNING! It's very important that you get ACPI configured and run the ACPI daemon! The bios won't support APM, I tried. As far as I understand, if you don't get acpid running, the fan won't turn on when your CPU gets hot, and it could bake itself to death, so get it running!
That said, it's time to recompile the kernel (whee!)

So, go to your favorite kernel mirror and grab the source for the newest 2.4 kernel. I used 2.4.19. I didn't use the debian sources, because I had some problems getting patches to apply. Be sure to grab the debian package kernel-package, too, it's very useful. To see how to use it, go to the Debian Website and read up on how to compiel your own kernel (it's under documentation, try the Debian Reference). Note: various debian docs say that if you compile your own kernel, it requires the cramfs patch to use the debian initrd scripts. They never mention where to get this patch. Therefore, don't use the --initrd option to make-kpkg, and be sure to compile in all of the drivers you need (ide, ext2, etc).

Now, unpack your kernel source, and then go grab the latest stable acpi patch (20020918 worked for me) from the ACPI project page. Apply the patch. Now go to the linux-ieee1394 page and grab the latest subversion snapshot. It'll be a tarball that you can unpack directly into the drivers/ieee1394 directory of your kernel source. Now you're ready to configure.

Here is my kernel .config file. Of note: In general, you should probably just use my config as an example and tailor the kernel to your own needs. However, I take no responsibility for teaching you to compile a kernel, there are documents out there for this :) Note: turn of devfs unless you'd like to configure this. I like it, but it took some tweaking, and alsa won't work if devfs is enabled but not in use.

Compile the kernel

Here's the command I used to make the kernel (run make-kpkg clean first), from in the kernel source directory:
make-kpkg --revision 2.4.19.custom.1 --append-to-version -686 kernel_image modules_image Let that go for awhile. Takes about 10 minutes on my system. Then, go up a directory and use dpkg -i to install the package. Tell it to run lilo. Reboot. Good luck. :)

ACPI

Check your dmesg output, be sure acpi configured everything right. It handles your cpu temperature (did I mention, enable thermal zone, along with everything else, in the kernel config?), your battery status, and also enumerates all of your IRQ's (wireless won't work without this). I wrote a little perl script to read /proc/acpi for battery status. It sits in an xterm and updates every 30 seconds. Here's the source. Note, I already had to rewrite it once going from 2.4.16 to 2.4.19, they changed the proc entries. Use at your own discretion. No support provided. It worked for me.

Wireless

This is easy. If all goes well, somewhere during bootup, the PCMCIA driver (did I mention, edit /etc/default/pcmcia and put in PCIC=yenta_socket) will detect the wireless card, and load the module. Then the hotplug daemon will notice the card and try to configure it with ifup. This will fail; go play with the scripts in /etc/network/interfaces (man interfaces, man ifup, check /usr/share/doc/ifupdown). You should use iwconfig to give it an ESSID and encryption keys (if necessary), then configure your IP address (dhcp, static, whatever). Give it a go. Check the log to make sure you didn't get an error message like "orinoco_cs.o: RequestIRQ: resource in use" (this means that ACPI isn't the newest version, or isn't loaded, or isn't working right).

As for the PCMCIA thing... it seems that, though this card is MiniPCI, it includes a little PCMCIA bridge in it. I'm not exactly sure why this is done this way, except perhaps so that the existing driver for the pcmcia card version can be used as is. Go figure. Anyway, I think that I see the pcmcia driver also detecting the real pcmcia socket... but I don't know if it actually works.

As for the wireless on/off switch... when I first saw this in the pictures at sony's site, I was thrilled. I figured, since it's a hardware switch, I'd be able to turn off wireless and save battery, from hardware. Wouldn't it be very convenient, even, if the built in pcmcia card bridge disabled the card and sent a pcmcia card-removed event? Well, it doesn't quite work this way (I don't think so anyway...). As far as I can see, it merely disconnects the antenna. WinXP figures this out and disables the interface (and then takes a correspondingly long time to figure out that you've turned it back on, :P). In linux, all you see is that your signal strength drops to 0 (run iwconfig eth1). Maybe the card is also turned off to conserve battery life, I can't tell. The little LED goes off, though, and I'm sure that saves a few microwatts ;)

Configuring that little wheel thing

JogDial is such a dumb name :) I absolutely hate what it does in windows; it's no help at all, and I want a scroll-wheel. Try installing the sjog package (apt-get install sjog). I love this little program. It interfaces the sonypi module to let you change brightness, and it also lets you run arbitrary commands from an easy-to-use menu. Plus, it can act as a scroll wheel (I've gotten this to work, check the web for scroll wheels and linux). I hacked the source in quite a few ways. One thing I did was to make brightness/volume adjustments more fine-grained, and another was to make the "back" button act as a second mouse button (sonypi only registers a down-click, so you only get a click, not a hold-down. Works beautifully to paste, though). Last, I made it respond to Fn-F4 and Fn-F5 to pull up the appropriate setting window, and Fn-F3 to drop the sound level to 0 (alsa automatically mutes the card). I might get my changes rolled in, but for now, email me and I'll send you the source. Now I love the jogdial... it makes a lot of things much quicker. :D Also, check here for alternative ways to use the jogdial and keys.

Sometimes, it doesn't work on startup. I'm not sure, but this seems to be the case any time when I've started the laptop cold (not rebooted into linux from XP or from linux). I have to kill sjog, remove the sonypi module, then put it back in (or let it get autoloaded) and run sjog again. What a pain. I created a boot script linked into /etc/rcS.d that just loads the module and unloads it. It's kind of hacky, but it works like a charm, and now the jogdial always works by the time I've booted.

Sound

If you have alsa installed, deinstall it. Now grab the newest packages off of http://www.alsa-project.org (driver, library, and utils, and you probably want alsaconf). Compile and install, in order: driver, library, then utils. Run alsaconf, select intel-8x0. If the test doesn't work, you may not have the right permissions set, so modify the permissions to the /dev/ entries. I used devfs; I gave up trying to figure out what devs should be there. You can too, but it'll take some work, especially for old-style /dev/mixer (which sjog uses) and sonypi (add alias /dev/sonypi sonypi to your modules.conf). Now sound should work just fine.

In retrospect, you could probably use apt-get source alsa-base (and a few other packages) to get the debian patches for it, and so you can build a debian package and install that. You have to rebuild, because there isn't an alsa modules package for kernel 2.4.19 in debian (that I know of, try unstable?)

DVD/CDRW

This is what made me really happy. It's the icing on the cake. This thing works like a charm. Go to the linux1394 page and go through their "getting started" section. In brief: insmod ohci1394, tail -f your log file, and plug in the drive (hotplugging works fine). The drive shows up as a scsi drive. I don't know where it'll be in a nondevfs system, but in devfs, it just goes into /dev/cdroms/cdrom0 (this is a symlink). Now burn away, this thing uses scsi natively. I just finished burning a cd, it works beautifully. :D

Note that if you don't use the newest snapshot of linux1394 (I used snapshot 582), your system will freeze. My system locked up until I pinged it (!). Also, it triggered numlock, confusing me to no end (try hitting numlock, and typing, pretending you didn't expect it!). Use the newest version.

USB

Oh man USB support in linux rocks. There's really not much to put in this section. I installed cups for printing, plugged in my Epson Stylus Color 860 printer via usb, and connected to http://localhost:631/, selected "usb epson printer" from the list, and bam. First try. I think the concept of true Plug and Play has finally reached Linux :)

To get the memory stick reader working, just pop in a memory stick and mount /dev/sda1. As far as I can tell, you can partition it how you want, and put any file system you want on there. The memory stick reader communicates internally through a secondary USB host, and works as a generic scsi hard drive. I also found that my roommate's digital camera could be connected directly via usb (rather than transferring the memory stick), and it, too, pretended to be a scsi hard drive.

In conclusion...

Everything that I want works. In fact, I'm pretty sure that this laptop is 100% supported in linux. Check the Linux-Sony page for info about linux on other sony laptops (this may help, especially info about the sonypi driver). Check the only other linux/vx88 page that I found, from which I got the idea to try the newest snapshots of acpi and ieee1394. It's rather terse, so I wrote this page. I remember how happy I was to find a similar page for my HP Pavilion N3310 laptop a few years ago, and how happy I was that I found the abovementioned page which let me get wireless and the dvd/cdrw working finally (it had been over a week, jeez! ;)). Plus, I like to give back to the linux community.

So, this ends it. I hope everything worked out for you. Email me at the address listed below, although I'm a college student, and I can't help everyone learn linux. This page is only a reference; you should know linux before you try to use this information. Also, I can't help you with debian. I just learned it myself, from all the fine documents at http://www.debian.org, so you can too.




©2002 John F. Waymouth IV <waymouth at wpi dot edu>