Linux on a Sony Vaio 505CT

I purchased a Sony Vaio 505CT at the end of June 2001. This model is a sub-notebook, with a detachable base (included). The base has a DVD-ROM/CD-RW, Floppy, AC in, plus a set of connectivity ports on the back: 2 USB ports, one firewire (1394), Video out, 10/100 ethernet, parallel and serial. The main unit has one PCMCIA slot, two USB ports, one firewire port, audio in, audio out, video out, modem, 10/100 ethernet, and memory stick slot.

Being a Debian user and developer myself, I wanted Debian installed on it. So, at 1am in the morning, Cyrille Chépélov and I commenced to install it. We had everything working by 5am or so (the building security had come on at around 2am and trapped us in the building until 8am at the LSM/Debian conference 1 in Bordeaux).

Background

The machine originally shipped with Microsoft Windows Millenium Edition. There was no option for Windows 2000 or any other operating system despite a sticker on the box for Win2000: Sony said their drivers were not ready. I believe this has now been fixed, but I haven't seen anything yet from Sony about this.

By default, the 20 GB disk is divided into two partitions, with everything installed on the first partition. I was happy with this; despite being a heavy Linux user, my girlfriend likes using MS Word, and there are occasions when it needs to be resorted to: the second parition was a perfect candidate. Furthermore, the recovery CD can only install the provided operating system and tools onto the first partition.

Main install

The trick came with getting the install files on to the system. The standard bootable CD-ROMS would not work: we had several, including Christoper Lameter's Telemetry Box business cards, however, the catch here is that the CD-ROM is not IDE, not ATAPI, but... 1394/Firewire. It was possible to boot from the CD-ROM drive, but not access it again from the install kernel, since as an install kernel, it had no 1394 drivers.

The work around was to prepare the disk, and then copy all the reqired files to the Windows parition (since under windows it could ready the install CD and copy it to the hard disk), and then mount the Windows parition as a vfat filesystem, get them and continue the install.

Random Notes

The X Windows video driver is for the Intel i810. I'm using ALSA for sound, and Gnome for my desktop.

This is not a cheap Laptop, and while the size/weight it very good, there are a few things that Sony left out:

A few things are very broken

Things I'd Like to see Sony do

Links

I found the following things useful for me. Although no one had anything specific to this model I had (PCGR505CT), the ideas helped.

Some links to other people's work:

Linux system info

/proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 10
cpu MHz         : 844.620
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 1684.27

/proc/devices

Character devices:
  1 mem
  2 pty/m%d
  3 pty/s%d
  4 tts/%d
  5 cua/%d
  7 vcs
 10 misc
 13 input
 14 sound
 29 fb
128 ptm
136 pts/%d
162 raw
172 video1394
180 usb
203 cpu/cpuid
254 pcmcia

Block devices:
  1 ramdisk
  2 fd
  3 ide0

/proc/interrupts

           CPU0       
  0:     553335          XT-PIC  timer
  1:       1135          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  3:          1          XT-PIC  ohci1394
  5:       2904          XT-PIC  Intel ICH2
  9:        459          XT-PIC  usb-uhci, eth0
 10:         11          XT-PIC  usb-uhci
 11:          3          XT-PIC  sonypi
 12:        863          XT-PIC  PS/2 Mouse
 14:     139034          XT-PIC  ide0
NMI:          0 
ERR:          0

/proc/ioports

0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(set)
0cf8-0cff : PCI conf1
1080-109f : Sony Programable I/O Device
1800-180f : Intel Corporation 82801BAM IDE U100
  1800-1807 : ide0
  1808-180f : ide1
1810-181f : Intel Corporation 82801BA(M) SMBus
1820-183f : Intel Corporation 82801BA(M) USB (Hub A)
  1820-183f : usb-uhci
1840-187f : Intel Corporation 82801BA(M) AC'97 Audio
  1840-187f : Intel ICH2
1880-18ff : Intel Corporation 82801BA(M) AC'97 Modem
1c00-1cff : Intel Corporation 82801BA(M) AC'97 Audio
  1c00-1cff : Intel ICH2
2000-20ff : Intel Corporation 82801BA(M) AC'97 Modem
2400-241f : Intel Corporation 82801BA(M) USB (Hub B)
  2400-241f : usb-uhci
3000-3fff : PCI Bus #01
  3000-303f : Intel Corporation 82801BA(M) Ethernet
    3000-303f : eepro100
  3400-34ff : PCI CardBus #02
  3800-38ff : PCI CardBus #02

My XF86Config-4

Section "ServerLayout"
	Identifier     "XFree86 Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	RgbPath      "/usr/X11R6/lib/X11/rgb"
	ModulePath   "/usr/X11R6/lib/modules"
	FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
	FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
	Load  "dbe"
	Load  "dri"
	Load  "extmod"
	Load  "glx"
	Load  "pex5"
	Load  "record"
	Load  "xie"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option      "Protocol" "ps/2"
	Option      "Device" "/dev/misc/psaux"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
	HorizSync    30-70
	VertRefresh  43-90
	Option       "DPMS"
EndSection

Section "Device"
	### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq^gt;: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"            	# []
        #Option     "SWcursor"           	# []
        #Option     "ColorKey"           	# <>i
        #Option     "CacheLines"         	# <i>
        #Option     "Dac6Bit"            	# [<bool>]
        Option     "DRI"                	# [<bool>]
        #Option     "NoDDC"              	# [<bool>]
	Identifier  "Card0"
	Driver      "i810"
	Option	     "power_saver"
	#VendorName  "Intel"
	#BoardName   "i815"
	#BusID       "PCI:0:2:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	DefaultDepth	24
	#BlankTime	10
	SubSection "Display"
		Depth     24
		#Modes	"Native panel mode"
		Modes	"1024x768"
	EndSubSection
EndSection

My filesystem layout

Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda2     ext2    7.5G  1.9G  5.2G  27% /
/dev/hda1     vfat     12G  5.8G  6.2G  49% /win

Modules I use with the standard Debian Kernel

Module                  Size  Used by
mousedev                4256   0 (unused)
hid                    11952   0 (unused)
input                   3680   0 [mousedev hid]
ds                      6832   1
yenta_socket            9104   1
pcmcia_core            40032   0 [ds yenta_socket]
nls_cp437               4384   2 (autoclean)
vfat                    9072   1 (autoclean)
fat                    31648   0 (autoclean) [vfat]
floppy                 45168   0 (autoclean)
sonypi                  6656   0 (unused)
i810_audio             13616   0
soundcore               4400   2 [i810_audio]
ac97_codec              8960   0 [i810_audio]
agpgart                25696   5
apm                     8928   3
eepro100               16400   1
video1394              14832   0 (unused)
ohci1394               16912   1 [video1394]
ieee1394               24592   0 [video1394 ohci1394]
cpuid                   1280   0 (unused)
usb-uhci               20928   0 (unused)
usbcore                49152   1 [hid usb-uhci]
unix                   15520  82 (autoclean)
ide-disk                7008   3 (autoclean)
ide-probe-mod           8848   0 (autoclean)
ide-mod               141360   3 (autoclean) [ide-disk ide-probe-mod]
ext2                   34896   1 (autoclean)

What SonyPI says

sonypi: Sony Programmable I/O Controller Driver v1.2.
sonypi: detected R505 model, camera = off
sonypi: enabled at irq=11, port1=0x1080, port2=0x1084
sonypi: device allocated minor is 63

In summary

A reasonably good machine, and easy on the eye (it looks nice). But a few missing features, and a company that could sell more of these by releasing some information to Linux developers.

Update: 19/August/2002: PCMCIA works with 2.4.19 kernel

Finally! I installed the Debian 2.4.19-686 and corresponding kernel-pcmcia-modules package, and there it was. Working perfectly. Excellent work, kernel hackers!

Update: 11/April/2003: Hard Disk Dead

Well, I left it on overnight downloading the Matrix trailer, and in the morning, the system had locked up solid. I rebooted, and instead of the Sony logo disappearing, it hung, while a loud clicking sounds came from within. Next reboot I pressed escape on the sony logo to see the bios booting, and then it hangs. Then SMART reports a drive failure, and GRUB gets an Error 18. No more data.

Sony support sux: they want £12.50 just to talk to me on the telephone. Their warranty is only 1 year. It will cost heaps to get a drive repleaced with them. So... time for a screwdriver. Its a Hitachi DK23BA-20 drive inside, located at the front to the right of the touch pad. Comes out easilly. I got a replacement one from a colleauge for £40 (they are £60 new).

Update: this link is cool

Go here for cool information. I like i810switch!

Update: 2.4.73 bk 7 fixes heaps, and works!

I have been playing with 2.5 kernels to see what that fixes, and now have one as my default kernel. One of my bug-bears has been the 2.4 kernel, and the problem with ACPI and USB being assigned the same IRQ (typlically 9) causing USB to fail with messages like 'device not accepting address'. While there is a patch for it, I find it easier to grab a fixed upstream source... so... grab 2.5 (soon to be 2.6). My config file for configuring the kernel to my taste is here.

Steps:

  1. cd /usr/src
  2. wget http://www.kernel.org/pub/linux/kernel/v2.5/linux-2.5.73.bz2 # or later...
  3. wget http://www.kernel.org/pub/linux/kernel/v2.5/snapshots/patch-2.5.73-bk10.bz2 # or later
  4. tar -xjf linux-2.5.*
  5. cd linux-2.5.*
  6. bzcat ../patch-2.5.* | patch -p1 -s -N -E -d .
  7. wget http://www.james.rcpt.to/2001/config-2.4.73-bk7.txt
  8. mv config-2.4.73-bk7.txt .config

From here you can use the kernel-package Debian package to create a .deb of your kernel... or

  1. make oldconfig
  2. make bzImage && make modules
  3. make modules_install
  4. cp System.map /boot/System.map-2.5.73-bk7 # or later
  5. cp .config /boot/config-2.5.73-bk7 # or later
  6. cp arch/i386/boo/bzImage /boot/vmlinuz-2.5.73-bk7 # or later

Dont forget that you'll need an updated modutils (module-init-tools package) and generate an initrd image (mkinitrd -o /boot/initrd.img-2.5.73-bk7 /lib/modules/2.5.73-bk7), and then set up your boot manager (lilo or grub).