This document describes how I installed Linux onto my Sony VAIO R505EL.
Warning: The Sony Vaio R505EL is not exactly Linux-friendly. This document assumes a high level of proficiency in driver debugging, kernel recompiling, and system administration.
Notice: The Sony Vaio R505EL uses an Intel 82801 to
provide PCI Bus, LAN Controller (10/100 Ethernet),
IDE Controller, USB, Interrupt Controller, Timers, ACPI, DMA Controller, AC'97 Sound codec,
Real-Time Clock, and SMBus.
Except for the CPU and memory, this chip is the computer.
82801CAM Technical Specs (Mobile Intel 830 Chipset Family)
|Table of Contents|
Recompiling the Kernel - Hints
VAIO R505EL Specs
Which Linux Distribution?
I tried Slackware 8.1; it hung before I was done with the boot disks.
I tried Gentoo 1.4rc1; I booted into a stage 3 CD-ROM and it hung.
I tried Gentoo 1.4rc1 again. I did a minimal debian install in a temporary partition, loaded the Gentoo stage 3 tarball onto the computer via the network, and then followed the regular Gentoo stage 3 setup instructions. It seemed to work. I was in a hurry, however, and Gentoo is slow to install, so I didn't finish the install.
I finally settled on Debian (Woody). I booted from floppy, and installed via the network.
I did not try Red Hat, Mandrake, nor SuSE.
After installing Debian Woody, I installed a custom kernel (2.4.20-pre7) with ACPI patches. I also converted over to devfs.
|Chipset:||Intel 82801CAM (ICH3)|
2.2.x kernel: eepro100-scyld driver|
2.4.x kernel: eepro100 driver
Linux on the Sony VAIO R505JL|
IRQ and ACPI
On the Sony Vaio R505EL, IRQ routing is performed by ACPI.
If you do not have adequate ACPI support in your kernel, many hardware devices such as Firewire and the Modem will not get an IRQ assigned to them. Without an IRQ, they won't work. The symptom is errors like this in /var/log/message:
"PCI: No IRQ known for interrupt pin C of device 00:1d.2. Please try using pci=biosirq."
Setting "pci=biosirq" will not help.
Changing the BIOS "Advanced -> Plug & Play OS" setting will not help.
The Linux kernel "Plug and Play configuration" setting will not help.
As of Linux 2.4.20-pre7, you need the most recent ACPI patch from
the ACPI4Linux project
The required code has not made it into the stock kernel yet.
Download and install the ACPI patch for your kernel. Then set the following options:
Enable "General Setup -> Power Management support"
You can also install and run acpid; this can respond to power button presses, lid close events, etc.
Use the command "lspci -vv" to query the status of the devices in your
computer. If a device you're trying to use has "Interrupt: pin C routed to IRQ 0",
IE: its IRQ is ZERO, it ain't gunna work.
You can also use the command "cat /proc/pci".
Linux on a Medion 9626 laptop|
Firewire & DVD/CD-RW
|Chipset:||Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller|
Matshita UJDA730 DVD/CDRW (rev 1.0)|
24x CD-ROM read, 16x CD-R write, 10x CD-RW write, 8x DVD read
|Problem:||The DVD/CD-RW is a SCSI device connected via the IEEE1394 Firewire interface (Sony calls it the i.LINK® port). Obviously the DVD/CD-RW will not work unless Firewire is working first. The stock kernel has adequate support for both SCSI and Firewire.|
On the SCSI side, you need to enable the following options in the kernel:|
"SCSI support -> SCSI support"
On the Firewire side, you need:
"IEEE 1394 support -> IEEE 1394" - required by OHCI1394
If the Firewire SBP-2 option is greyed-out, it's because you haven't enabled SCSI support yet!
If everything is built via modules, you will need to load the modules in this order:
Once you do that, it should automatically detect your DVD/CD-RW. If you use devfs, it should appear as something like /dev/scsi/host0/bus0/target0/lun0/cd.
Using Linux on the Sony Vaio Z505GA|
|Problem:||None. Standard floppy works out of the box.|
The floppy drive is not managed by the hot-swap infrastructure. If you remove
the Vaio from the docking station while Linux is running, and then re-dock the laptop,
the floppy drive will not work. You need to reboot.
You probably shouldn't be docking and undocking with the computer when powered anyways; hard drives do not enjoy physical movement while spining.
Intel 82801CA/CAM AC'97 ICH Modem (rev 2)|
System: 8086:2486 (8086 = Intel)
Subsystem: 104D:8100 (104D = Sony)
The built-in modem is a winmodem.|
The Conexant drivers kinda work. They implement
a Hayes AT-compatible command set.
I use the 5.03.03 version of the drivers (local cache).
The drivers do not load properly using the hsfconfig tool. Use hsfconfig to install the tools and modules, but then use rmmod to remove all of the hsf modules.
The linmodem in the Vaio R505EL is an Intel ICH modem; you need the hsfich module.
Load the modules manually in this order:
Watch your /var/log/messages and /var/log/syslog. Nothing much will happen until you load hsfserial. When you load hsfserial, devices in /dev will be created, messages will get logged, magic will happen.
When you load hsfserial, you should not get an error. You should get a couple lines telling you the module initialized properly. If you get an error, you have done something wrong; unload all hsf modules and try again.
/dev/ttySHSF0 will automatically be created. /dev/ttySHSF0 acts like a regular modem. You do not need to use setserial.
If you want/need to create /dev/ttySHSF0 manually, use the following comand:
mknod /dev/ttySHSF0 c 240 64
It looks like there is no effort to make a generic AC'97 driver;
this effort seems to have been abandoned.|
Linux drivers for Conexant modem chipsets|
PCTEL modem on linux
AC'97 Modem Driver Project
Modem Details for the Samsung SensQ 10 Notebook Internal Modem
Locally cached copy: hsflinmodem 5.03.03
|Chipset:||Ricoh RL5c475 (rev 128)|
|Problem:||Warning! If you have not successfully setup IRQ routing via ACPI, attempting to use PCMCIA devices will hang your machine.|
Ensure IRQ routing via ACPI is working.|
In your kernel configuration,
Once IRQ routing is working, PCMCIA works flawlessly.
Todd Troxell claims he uses the i82365 driver on his R505JL.
However, on my R505EL, I have disabled both the i82365 and i82092 drivers, and it works fine. I've only tried it with ATA-Flashdisks,
but I'm thinking the generic driver is sufficient. |
Ryan claims on his R505TL he has to stop PCMCIA services before inserting or removing a card. I did not find this to be true for my R505EL and my version of the kernel.
|Chipset:||Intel 82830 CGC [Chipset Graphics Controller] (rev 0)|
|Problem:||XFree86 (X11) 4.1 and earlier do not support the i830 chipset. Debian Woody comes with version 4.1.|
Download XFree86 4.2.99+ source code via CVS directly from XFree86.org and compile it.
Use the i810 driver. My video device section looks like this:|
If you want to use DRI, you must use a color depth of 16-bits. Otherwise you can use 8, 24, whatever.
|Caveot:||32-bit color is not supported.|
|Caveot:||Using 24-bit color screws up the graphics hardware; upon returning to a text console, the top of the screen is sometimes polluted by strange flickering. Rebooting resolves the issue. Graphics modes are unaffected.|
The keyboard is not a standard PC 104-key keyboard. |
For example, under X11, using the left "Ctrl" key puts you in a strange caps-lock mode which can only be un-done by the key combination (left-Ctrl)-(Windows Key).
|Solution:||None so far.|
GPM: autops2 |
XFree86: GlidePointPS/2 or PS/2
|Problem:||The mouse is a "single open" device. This means X11 and gpm fight over the mouse, resulting in X11 sucking dirt.|
With GPM and X11|
Use the "-Rraw" option with gpm. Example:
In this configuration, gpm will mirror the mouse data on /dev/gpmdata. In XF86Config, the mouse device should point to /dev/gpmdata, and the mouse Protocol is "PS/2" or "GlidePointPS/2".
Note: If you set the mouse Protocol to "Auto", the mouse will be detected as a MouseManPlusPS/2. This works, but the mouse doesn't get initialized properly. I suggest you use the "PS/2" protocol.
With only X11|
In XF86Config, the mouse device should point to /dev/misc/psaux (devfs), and the mouse Protocol is "PS/2" or "GlidePointPS/2"
Man page for "gpm".|
Jog Dial / Screen Brightness
|Problem:||The Vaio has a proprietary programmable I/O controller which handles jog dial events, screen brightness, function keys, lid open/close events, and more.|
In your kernel configuration, |
Enable "Character devices -> Sony Vaio Programmable I/O Control Device "
Put the following lines in "/etc/modules.conf":
If you use devfs, you might want to modify /etc/devfs/perms:
If you do not use devfs, you need:
You need user-land tools to go along with this.
To use jog-dial as a middle mouse button:
Control over screen brightness, etc.: spicctrl, also under the debian package "spicctrl".
I put links to "sjog" or "sonypid" into ~/.kde/Autorun so they get started with KDE.
|Caveot:||I have been unable to get the jog dial to operate as a middle button for gpm.|
"Documentation/sonypi.txt" in the Linux kernel source tree. |
Sony Programmable I/O User-Land Utilities
Locally cached files: sonypid spicctrl
|Chipset:||Intel 82801CA/CAM ICH AC'97 Audio (rev 2)|
In your kernel configuration, |
Enable "Sound -> Sound card support"
Enable "Sound -> Intel ICH (i8xx), ..."
|Problem:||The sound device only runs at 48KHz.|
|Solution:||mpg123: use "-r 48000".|
KDE: In the Sound Server
setup (go K -> Preferences -> Sound -> Sound Server),
select "Sound I/O" tab, select "Use custom sampling rate",
and set it to 48000. |
To use programs like mpg123 through the KDE sound server, use "artsdsp". Example:
artsdsp mpg123 mysong.mpg
Gnome: Configure the "esound"
sound server to use only 48KHz sampling. |
To use programs like mpg123 through the KDE sound server, use "esddsp". Example:
esddsp mpg123 mysong.mpg
|Caveot:||I've found the KDE "artsdsp" rocks, whereas "esddsp" sucks with this chipset. However, mpg123 can be compiled with esound support which I did not try.|
USB / Memory Stick
|Chipset:||Intel 82801CA/CAM USB (rev 2) (uhci)|
In your kernel configuration, |
Enable "Input core support -> Input core support"
Enable "USB support -> Preliminary USB device filesystem"
The Sony Memory Stick is connected via USB. The USB subsystem wants to
load the "usb-storage" module to handle this. On my system, the module
hangs with the following message in /var/log/messages:|
kernel: Initializing USB Mass Storage driver...
I don't have a memory stick, so I'm abandoning this device. I don't build the "usb-storage" module.
VAIO® Computer Specifications
The following table details the hardware specifications of your computer.