AFDB logo
mn :: comp :: hardware

VAIO VX88 -- Chupacabra the Third

This is a sweet laptop. More after I've had it for a while. UPDATE: It does everything in Linux that it would do under Windows XP except suspending (well) and sucking :-) I haven't gotten the modem going, but I haven't tried & I did make sure that the hsflinmodem package installs and detects okay. I am told that the instructions on this page for sound, video, and 802.11b are identical for a SRX87 as well, so have fun if that's your laptop. This page is written as a journal, so keep reading if a section says something doesn't work -- I fixed it further down. You should probably also read everything so you don't make the same mistakes I did, especially related to ACPI -- people have destroyed their laptops, so don't be needlessly careless.

GREAT BIG UPDATE: I upgraded to Mandrake 9.1. This is certainly worth doing as ACPI is now supported from the get-go (though turned off in /etc/lilo.conf...) However, it doesn't install any better than 9.0 did, so keep reading -- you will need to deal with this install procedure whether you're using 9.1 or 9.0. I also have to say that my upgrade install was seriously borked by some unknown factor... it chugged away for an hour and a half, then started running into problems unpacking packages. It had installed about a CD's worth of stuff. The good news is that it recovered and went on to reboot successfully, and the only casualty appears to be fonts used by XFce window titles, menus and icons.

Not So Big Update: Mandrake 10 brings working 2.6 kernel. Some changes are needed if upgrading from an earlier Mandrake:

The 2.6 kernel is definitely an improvement, and 10.0 improves the eyecandy department as well. That said, the new DrakConf is not so good. However, its navigational warts are readily forgiven in light of the fact that most (maybe all) of the little applets in it actually work now :-).

One more thing, swsusp STILL doesn't work. That is, it works if you disable DRI accelerated video, which IMHO means it doesn't work.


So, I got my brand new vx88 and promptly dropped my Mandrake 9.0 CD 1 into it. It boots up, realizes it's on an IEEE1394 drive, and dies. It actually seems to be detecting what needs to happen -- the logs show it loading ohci1394 and usb-storage, but then it tries to load sbp2 and fails. Last kernel message is as follows:

   ieee1394: Host added: Node[00:1023]  GUID[08004603011b3182]  [Linux OHCI-1394]

Fine by me, I didn't really expect that to work any way after installing Mandrake 7.2 on a 505R back in the day. Now, here's my problem: the work around is obviously to do a network install, but the only way Mandrake seems to offer for doing a network intall is to make a boot floppy. Boot floppies are fine and well, except this laptop has no floppy drive. Sure you could order one for a few more bucks, but what's the point when this is the last time you'll use it?

For comparison purposes, I then switched to a Red Hat 7.3 CD. It also fails to install (no shock there), but one of the LILO options is "linux checkmedia". If you choose this, it allows you to pick various network and HD related access methods to install with. Red Hat installed fine and ran okay -- if you're a Red Hat kind of person, go forth and be happy. Personally, I think Red Hat is a decent desktop choice for many people and is a great server choice, but it is not right for my desktop.

I'm sure Gentoo would have a similar experience if I did an all-network install with it, and the 1.2 CD in fact did boot fine and got me all the way to shell and modprobe. If you're a Gentoo/Lunar/LFS type of person, go forth and be happy. I on the other hand went looking for other options.

The two I can think of are:

  1. create an El Torito CD-ROM with the boot floppy image and then continue on with a network install.
  2. Get vaguely clever with ether boot and TFTP.

Faced with these, I R'd directly to TFM re: El Torito, which can be found here: http://www.tldp.org/HOWTO/Bootdisk-HOWTO/cd-roms.html. Going this way, success was mine. For the impatient:

  1. Mount your Mandrake 9.0 CD 1 under /mnt/cdrom and type this:
         mkisofs -r -b images/network.img -c boot.catalog \
         -o mandrake9-network.iso /mnt/cdrom/
    
  2. Burn the resulting image.
  3. Boot it.

There are still some problems -- for instance, network install assumes you've put all your RPMs into one directory instead of leaving them on three CD's, so some important stuff didn't get installed (dhcpcd, iptables and shorewall, and XFree86 for instance. If you've got disk space on your server and patience, copy all the RPMS from all the disks into one directory before starting the install, instead of just serving out /mnt/cdrom like I did. RedHat made the same assumption, but it retries after failing. With Mandrake I had to switch back to disc 1 and retry X and network set up, then manually install a few other packages after the first boot. On the plus side, Mandrake's hardware detection was perfect, whereas RedHat's was not so very (I'd even call it bad, except anaconda didn't actually lock up or kernel panic like it usually does :-). I used the entire disk for Linux, here's my /etc/fstab:

/dev/hda1 / ext3 noatime 1 1
none /dev/pts devpts mode=0620 0 0
/dev/hda3 /home ext3 noatime 1 2
none /proc proc defaults 0 0
none /tmp tmpfs defaults 0 0
/dev/hda6 /usr ext3 noatime 1 2
/dev/hda5 swap swap defaults 0 0
/dev/scd0 /mnt/disk supermount dev=/dev/scd0,fs=iso9660,ro,--,iocharset=iso8859-1,user 0 0
/dev/sda1 /mnt/memory_card auto user,iocharset=iso8859-1,kudzu,codepage=850,noauto,exec 0 0

Note that last line for the Memory Stick, it works perfectly with no fuss, no muss. Thanks, MandrakeSoft.


ACPI is your only option for power management, and it really is something you need -- you risk destroying the laptop by overheating it if you don't enable ACPI. Because ACPI is still pretty immature, Mandrake doesn't enable it by default, preferring the older and more stable APM. This laptop doesn't have APM support, so you should enable ACPI quickly. I chose to do this simply by installing the kernel-source RPM, running make xconfig, and enabling ACPI (It's under General Setup, and you might as well disable APM while you're at it).

   make dep && make bzImage && make modules \ 
   && cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.19-16mdkcustom && make modules_install.
Then mkinitrd /boot/initrd-custom.img 2.4.19-16mdkcustom --with-jbd --with-ext3, edit /etc/lilo.conf and run /sbin/lilo, you should be good to reboot. There's more kernel stuff later, but I'm going to try to stick with modifications to the Mandrake source tree so this step is still useful.


Sound was annoying. It's an Intel 810 chip, there's lots of hoohah on the web about using Alsa or using OSS, and it came up after install sort of working (e.g. some apps played noise badly, others didn't play at all). I messed with it for a while, then just found the trusty old sndconfig on one of the install CD's and ran that. Note that it uses the old ALSA naming scheme, so you'll need to edit the generated /etc/modules.conf line to load snd-intel8x0 instead of snd-card-intel8x0. Boom, sound works fine. The Alsa drivers do seem to work more reliably, though, so keep that in mind if you decide to do your own kernel.


Jogdial is pretty simple. Just modprobe sonypi and put that into a startup file too, then pick your choice of sjog or jogdiald. I prefer sjog, but I've noticed that both will stop working every now and then -- I think this is related to xscreensaver locking the screen? Other projects that I didn't try are: this patch to imwheel and this driver to make it act like a regular scroll-wheel. UPDATE: I'm told that jiggling the sonypi module will cause the sjog-stopped-working problem to go away, so I've changed my /etc/rc.local thusly:

...
# Sony hardware related
modprobe sonypi
modprobe -r sonypi
modprobe sonypi
modprobe vaiostat

# ACPI related
modprobe ac
modprobe battery
modprobe button
modprobe fan
modprobe processor
modprobe thermal

touch /var/lock/subsys/local

Not sure if that fixed it yet, but I'll know in a day or two.

UPDATE: It did. I've also switched to rsjog, much nicer.


The iLink/IEEE1394/Firewire connected DVD/CDRW drive seems to have some problems -- it works intermittently, haven't diagnosed why. Some sites suggest kernel patches, but the only patches I've found are nearly a year old and are already integrated into the 2.4 series. Maybe I'm not looking in the right places. And indeed, I wasn't: look here instead: http://www.linux1394.org/tarballs/. The download is a drop in replacement for /usr/src/linux/drivers/ieee1394/, no need for patch. I'm using the ieee1394-582.tar.bz2 ball.


Wireless ethernet doesn't work: symptom is that pcmcia cannot initialize the card properly. dmesg shows:

...
hermes.c: 5 Apr 2002 David Gibson 
Linux Kernel Card Services Kernel Version
  options:  [pci] [cardbus] [pm]
ds: no socket drivers loaded!
unloading Kernel Card Services
ieee1394: Host added: Node[00:1023]  GUID[08004603011b3182]  [Linux OHCI-1394]
Linux Kernel Card Services Kernel Version
  options:  [pci] [cardbus] [pm]
PCI: No IRQ known for interrupt pin A of device 01:02.0.
PCI: Enabling device 01:05.0 (0000 -> 0002)
PCI: No IRQ known for interrupt pin A of device 01:05.0.
Yenta IRQ list 08b8, PCI irq0
Socket status: 30000006
Yenta IRQ list 0000, PCI irq0
Socket status: 30000011
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
cs: memory probe 0xa0000000-0xa0ffffff: clean.
...

/var/log/syslog shows:

...
Sep 30 16:18:38 chupacabra pcmcia: Starting PCMCIA services:  
Sep 30 16:18:39 chupacabra pcmcia: cardmgr[16567]: watching 2 sockets 
Sep 30 16:18:39 chupacabra cardmgr[16567]: watching 2 sockets 
Sep 30 16:18:39 chupacabra cardmgr[13651]: starting, version is 3.2.0 
Sep 30 16:18:39 chupacabra pcmcia: done. 
Sep 30 16:18:39 chupacabra rc: Starting pcmcia:  succeeded 
Sep 30 16:18:39 chupacabra cardmgr[13651]: executing: 'modprobe
orinoco_cs irq_list = 5 station_name = chupacabra' 
...
Sep 30 16:18:46 chupacabra ifup: Error for wireless request "Set Mode" (8B06) : 
Sep 30 16:18:46 chupacabra ifup:     SET failed on device eth1 ; No such device. 
Sep 30 16:18:46 chupacabra ifup: Error for wireless request "Set Bit Rate" (8B20) : 
Sep 30 16:18:46 chupacabra ifup:     SET failed on device eth1 ; No such device.
Sep 30 16:18:46 chupacabra ifup: Error for wireless request "Set Encode" (8B2A) : 
Sep 30 16:18:46 chupacabra ifup:     SET failed on device eth1 ; No such device.
Sep 30 16:18:46 chupacabra ifup: Determining IP information for eth1... 
Sep 30 16:18:46 chupacabra ifup: Error for wireless request "Set ESSID" (8B1A) :
Sep 30 16:18:46 chupacabra ifup:     SET failed on device eth1 ; No such device.

I had to edit /etc/pcmcia/conf to get orinoco_cs, Mandrake defaults to wvlan_cs for this card. lspci -vvv shows:

...
01:02.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 80)
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort->TAbort- <MAbort- >SERR- <PERR-
        Latency: 168
        Interrupt: pin A routed to IRQ 0
        Region 0: Memory at f4102000 (32-bit, non-prefetchable)[size=4K]
        Bus: primary=01, secondary=02, subordinate=05, sec-latency=176
        Memory window 0: 00000000-00000000 (prefetchable)
        Memory window 1: 00000000-00000000
        I/O window 0: 00000000-00000003
        I/O window 1: 00000000-00000003
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt-PostWrite+
...

Note that it wants Interrupt 0, which is non-existent :-) Also note that it's ignoring my attempt to pass it IRQ 5. This requires a patch to fix, but the patch won't apply cleanly against Mandrake's source tree. I'm still working on a solution, but the patch will apply cleanly against a clean 2.4.19 tree if you'd rather do that. UPDATE: All this stuff is out of date -- if you're having ACPI issues, just add acpi=on to your config in /etc/lilo.conf. If you need to build a new kernel, read the ACPI howto on TLDP.


ACPI monitoring -- once you have ACPI working by hook or crook, you'd probably like to know what your system status is - particularly for battery life. There are KDE and command line clients easily found via Google, and I am using Grahame Bowland's acpi client 0.06. However, I really like gkrellm. There's a plugin called gkacpi, but I couldn't get it to work. UPDATE: It works now with no issues: using gkacpi2-0.4, from source. What I'm using instead is vaiostat and vaio_krellm from this site. I don't much like the idea of having a second kernel module that provides the same information as the ACPI modules, but it works and I don't have the time or skills to change it, so I'll keep my complaining down :-)


Other pages with good stuff on them (not all VX88-specific):


A cool tool for monitoring your hard disk can be found here. To compile on Mandrake, download the src.rpm and rpm -ivh it. Then edit the /usr/src/RPM/SPEC/smartsuite-2.1.spec file, go to the bottom and replace:

/usr/man/man8/smartctl.8.gz
/usr/man/man8/smartd.8.gz
with
/usr/man/man8/smartctl.8.bz2
/usr/man/man8/smartd.8.bz2

Now rpm -bb /usr/src/RPM/SPEC/smartsuite-2.1.spec and rpm -ivh the generated RPM. Next edit /etc/init.d/smartd and insert something like:

# chkconfig: 2345 05 97
in the comments at the top & run chkconfig smartd on, then service smartd start. This will dump any SMART errors into the syslog as they happen. You can also get extended info on the fly and run some intensive tests with smartctl, but that data looks tough to interpret.

Huh, turns out that project was obsoleted by this one, which is based on the same code and acts the same: Smartsuite. The big differences are: there's no need to do anything special to rebuild the .src.rm, and there's now a configuration file in /etc/smartd.conf. In other news, I was reminded of the hdparm config file in /etc/sysconfig/harddisk. I enabled all the options and gained another MB/s of performance -- it's still not a barn-burner at ~19.5 MB/s, but speed ain't exactly high on the list of design criteria for a laptop hard drive.


swsusp UPDATE: The latest pre-MDK9.1 kernel, 2.4.21.0-pre4.10mdk using swsusp beta 18, actually sorta kinda works. It suspends and resumes, but on resume I've been kicked out of X and back to a GDM screen. This is much better than the repeating-crash loop...

acpid UPDATE: I'm getting tired of hitting the power button by accident, so I've rearranged things a bit... /etc/acpi/events/button now calls /usr/local/sbin/halt-dialog, which is this script:

#!/bin/sh
export DISPLAY=":0.0"
RESULTS=`Xdialog --screen-center --default-no --yesno "The system is about to shut down, do you want to continue?" 10 50`
EXIT_CODE=$?
case $EXIT_CODE in
        0) /sbin/halt
        ;;
        1) exit
        ;;
        255) exit
        ;;
esac
When swsusp is working to my satisfaction, I'll just rearrange so that this is stopping the hibernate script instead. One other thing to consider is that you'll need to make sure that xhost +localhost is being executed wherever your desktop environment of choice wants these things done.

Last modified: Nov 25, 2005 12:48 pm.
Contact me.

Powered by Zope