R505 JL/C

Linux on a Sony R505 JL/C

This information on this page is provided to help anyone configure and install various pieces of hardware under Linux on a Sony Vaio Slimline PCG-R505JL or similar notebook computer. Sony frequently shuffles its models around with no notice, so if you don't have exactly the same model, my experiences might or might not be relevant to you. Much of the following is reconstructed from memory, so there is no guarantee that it is accurate and it is almost certain to contain omissions. Use it as a hint for where to start looking rather than a step by step guide.

The following devices are now working on my machine:

To achieve this, I needed to configure or tweak the following subsystems:

Technical specifications for Vaios can be found here. The following accounts of fellow sufferers struggling with their laptops can be very useful: Sam Revitsch, Jan Spluski, Ryan, Jordan Ritter, Ben, John Davin, Jon Gans, Pater Akkana. Finally, the central information repository for hacking Linux to work on Vaios is the Linux-Sony Documentation Site and Message Board.



Kernel

I use Redhat 7.2 with a standard issue 2.4-20 kernel. You can take a look at my current .config file, but you shouldn't take it too seriously, since it is mostly a product of trial and error. Before you compile the kernel, make sure to apply Jan Spluski's patch (described below) if you are having trouble with USB interrupts. I didn't apply any other patches.

USB

For some strange reason, the interrupt routing table on certain Vaios (including the R505JL) is broken. The wrong IRQ is assigned to USB devices and the jogdial by default. If this quirk is not recognized, input from these devices will only be read sporadically, when something else promts an interrupt. When you move the mouse, nothing happens for a while, and then suddenly the cursor goes berserk running all over the screen.

This bug thwarted my attemtps to use USB gear for almost a year, until I found Jan Spluski's precious page where the problem is described and a simple patch is given to fix it. An easy way to test if your machine is suffering from this ailment is to try playing some audio in the background, which generates interrupts on the same IRQ as where the kernel expects USB interrupts. If this magically makes your mouse or jogdial work, chances are, you need Jan's patch.

To check on the Linux compatibility of particular devices, go to the Linux USB site or the working devices list. Documentation for the USB subsystem is here.

Firewire

PCMCIA


Jogdial

Use the sonypi module. If you suffer from the IRQ bug you must patch your kernel first. Use the device /dev/sonypi c 10 250 (do mknod /dev/sonypi c 10 250 if it doens't exist) and insert the line alias char-major-10-250 sonypi in your /etc/modules.conf file.

I use a modified sonypid deamon that simulates a mouse wheel (buttons 4 and 5). To compile it use the Makefile. To run it in the background, I put exec /usr/local/bin/sonypid & in my .xinitrc file, but this is not the only possible way to start it up automatically. If you are using fvwm2 like I am, putting these lines in your .fvwm2rc file will let you move between desktops by rolling the jogdial.

Ethernet Card [eepro100]

This ethernet card has a feature (probably never used) designed to optimize performance on low bandwidth networks, called PCI sleep mode. Thanks to this innovation of which the Linux driver is not aware, if you try connecting to a 10/100 network, after about 20 seconds the connection will break, the kernel reporting: eepro100 wait_for_cmd_done timeout.

The solution is simple, as described here. Download and compile eepro100-diag.c. and run it with the -ee option. If you see PCI sleep mode enabled, run it again with -G 0 -w -w -f. Do a cold reboot and use your ethernet card happily ever after. Once the sleep mode enable flag is switched off, it is written to the ethernet card's internal eeprom, and you never need to worry about it again.

SMC Barricade SMC 7004VWBR

This router/firewall/wireless-hub worked straight out of the box. Use the URL http://192.168.2.1/ to configure it from behind the firewall itself.

Orinoco

Microsoft Natural Keyboard Elite

Works fine. See USB section for how to fix the evil interrupt problem.

Micro Innovations MO32UO optical mouse

This cute little infrared mouse works fine with the mousedev module. I find it more comfortable than regular sized mice. See the USB section on how to fix the evil interrupt problem.

LaCie d2 Firewire Hard Drive

Works fine with the sbp2, scsi_mod and ohci1394 modules. Note that the d2 comes with a 6-pin to 6-pin Firewire cable so a 6-pin to 4-pin cable needs to be bought separately. A cheap 10 dollar cable works for me, although you can buy fancy cables for five times as much. The drive is identified as a SCSI device, so its partitions will be accessible under /dev/sda1, /dev/sda2, .... .

Canon PowerShot C200

Works through USB with gphoto2 version 2.1.1. You also need to install the libgphoto libraries accessible from the same place. See Ole Aamot's page for details. I had to hack into the ./configure file because it couldn't find libgphoto2.so, despite the fact that it was sitting in my /usr/local/lib directory. Just disable the line checking for it in the script if you are having trouble. I also needed to set the the LD_LIBRARY_PATH environment variable to /usr/local/lib because gphoto2 couldn't find the library at run time.

Sandisk PCMCIA Compact Flash Reader

This might be a better way to download pictures from a digital camera: no cables to carry around, the camera doesn't need to be turned on, and leaner on the software side, too. The gadget itself costs less than 10 dollars. You need the ide-cs kernel module (look for PCMCIA IDE) in the IDE section of the kernel configuration. The CF card appears as /dev/hde1. My /etc/pcmcia/ide.opts file is really simple. I created the /camera directory and added the line /dev/hde1 /camera auto noauto,user 0 0 to /etc/fstab. Just type mount /camera and the files on the CF card should be accessible in that directory.