Sony Vaio VGN FJ 1S Installation

Box Characteristics

nihil:~# lspci
0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
0000:00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
0000:00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
0000:00:1b.0 0403: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
0000:06:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:06:09.0 CardBus bridge: Texas Instruments PCI7420 CardBus Controller
0000:06:09.2 FireWire (IEEE 1394): Texas Instruments PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller
0000:06:09.3 Mass storage controller: Texas Instruments PCI7420/PCI7620 Dual Socket CardBus and Smart Card Cont. w/ 1394a-2000 OHCI Two-Port  PHY/Link-Layer Cont. an
0000:06:0a.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05) 
nihil:~# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6    
model           : 13    
model name      : Intel(R) Pentium(R) M processor 1.73GHz
stepping        : 8
cpu MHz         : 1729.305
cache size      : 2048 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 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2
bogomips        : 3463.28
nihil:~# free
             total       used       free     shared    buffers     cached
Mem:        505360     166736     338624          0       6592      78652
-/+ buffers/cache:      81492     423868
Swap:      1967952          0    1967952
nihil:~# fdisk -l /dev/hda

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1216     9767488+  83  Linux
/dev/hda2            1217        3648    19535040   83  Linux
/dev/hda3            3649        9484    46877670   83  Linux
/dev/hda4            9485        9729     1967962+  82  Linux swap / Solaris

Base Installation

You only need to download the last version of Debian Stable and install it following step by step the installer instructions.
NB: the installation won't work from 2.6 kernel, so you have to give the linux24 command at the installation boot prompt.
NNB: the partition scheme you read above is totally up to you to decide. the one above was the scheme i was comfortable with.

Personally I installed the base system and passed to Debian Unstable, adding then packages as it was needed.

Kernel

I prefer to compile my own kernel, even if I am an ass and make many mistakes. This said, here is my 2.6.15 config file. If you notice any optimization that could be made, feel free to write me and educate me :)

THe final part of your /boot/grub/menu.lst file should look like this:

### MY KERNEL ###

title           nihil
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.15 root=/dev/hda1 ro vga=792
savedefault
boot
I tried to use intelfb instead of vesa console driver, but had no result insofar.

In /etc/modules you shouldn't have any line, since kernel, udev, hotplug should do the trick.

Network

The network runs smoothly a 8139too driver for linux. Most precompiled kernel already include it.

Wireless

The wireless card is a standard IPW2200. From 2.6.15 they re-included a proper driver you can find at ipw2200.sf.net alond with links to the firmware and to the ieee80211 implementation needed to correctly have it working.
You basically need to make sure you have both ipw2200 wireless driver and ieee80211 implementation ticked in your kernel config.

Internal Modem

Have not tried to install it. I think one could try to patch the kernel for internal modem drivers. The sheet says: Integrated V.90 modem (RJ-11)

Audio

The Audio board is an Intel 82801: every kernel likes it, provided you include this following directive (put m instead of y if you want modules :)
CONFIG_SND_INTEL8X0=y
CONFIG_SND_INTEL8X0M=y
CONFIG_SND_HDA_INTEL=y

Graphics

After the basic installation install the xserver-xorg package. Then you can just substitute my xorg.conf file with the officially distributed one.

Recently I have been hacking around my video board and discovered a number of things

The first one fixes a better use of video board memory, even if I think we could do better understanding clearly the meaning of the following lines from Xorg.log
(--) PCI:*(0:2:0) Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller rev 3, Mem @ 0xb0080000
/19, 0xc0000000/28, 0xb0040000/18, I/O @ 0x1800/3
(--) PCI: (0:2:1) Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller rev 3, Mem @ 0x32000000
/19
The second on seems to fix a "rtc error" the log was giving

If anyone knows more on mtrr and rtc and the like feel free to educate me! :)

Firewire

Standard ohci1394 firewire. Still untested but i guess it should work.

Usb

Standard UHCI USB 2.0 ports.

Memory Card Reader

I don't have the slightest idea (nor use) of it. There is a project working to support it on linux: tifm.

Motion Eye Webcam

Most Vaio use the sonypi interface to deal with the integrated webcam and the like. Unfortunately mine seems not too. I did not fathom how to make it work and it graudges me beyond concern.
I read much about it but could not make any use of this informations:

Keyboard, mouse

Nothing to be said about them

Fn functions

Unfortunately the Fn+Fx combinations won't work unles you trouble a little with them. I tried many different approaches basically following this links:

After that I stumbled on a ubuntu forum page explaining failry well how to have fsfn software working together with sony_acpi kernel module and this proved at the moment the most satisfying solution.
Both sonypid and spictrl proved useless on my laptop, while the sonyfn hack from the second page linked above proved to work.

To have the sony_acpi / fsfn connection to work you have to:

more detailed information here: this ubuntu forum thread

i810switch software should do the trick of VGA/LCD/CRT switch but i do not have a beamer to try it out around so be careful :)

Home Directory Encryption

I add this part on how to encrypt you home directory even if you can find wide documentation on line. This is because the latest Debian unstable packages do not allow you to encrypt your home using the easy cryptsetup wrapper. cryptsetup will return you error on the device mapper system even if the device is up and working. On line I could not find any more hazy solution to rebuild the package, but in my case still was not working.

Normally you would have encrypted you homedir using the very well-done documentation at DM Debian Grimoire.
In our case we had to use directly dmsetup and hashalot tools and hack around an init script to launch at startup. All this helped by the never-too-much-thanked dm-crypt documentation.

The only original contribution to the matter on my part has been the init script I wrote and that I link here in case someone find it useful: nihilcrypt. In case you want to use it, download it, put it in the /etc/init.d directory, and link it in rcS.d, rc0.d and rc6.d directory (boot, halt and reboot directories).

Latest Updates