This is an ongoing dialog of Linux running on a Sony Vaio FS660. I will update it as I learn and explore.

Someone has emailed me to let me know the Sony Vaio VGN-FS660/W and the Sony Vaio VGN-FS285/M are the same model, just sold under different model numbers in different countries. Unfortunately I can’t verify this information but hopefully this page will be useful to those users as well. Have fun!

Contents:

Updates

2006-05-10
No updates really. Laptop still running great. If anyone has any questions feel free to drop me a line. Try to post comments below. I prefer comments that way everyone can benefit but also don’t hesitate to shoot me an email. My email addy is in the footer at the bottom of the page.

2006-04-17
Sorry about the “outage” on this page. When I switched the blog over to wordpress I munged the headers and this is the only page I forgot to test (I hope).

2006-03-16
Just dropping a quick note. Xgl is running very well and smoothly on the Vaio w/ the 6200 Go. Unfortunately twinview/Xinerama/dual monitors is not supported at this time. But I really like the way the interface feels.

Also bought a Seagate Momentus 7200.1 RPM 100Gig hard disk. Swapped it out for that old 4200 RPM snail of a hard drive and I’m amazed at the difference. IF you’re running Gentoo and find yourself constantly compiling things like I am you will notice a huge reduction of compilation times. VMWare’s performance is seriously improved (I typically run two VMs all day everyday at work). I would recommend this upgrade to anyone who spends a significant amount of time waiting for their hard disk to catch up ;)

2006-02-20
Franklin Marmon shot me an email to let me know he has suspend-to-ram (S3) working
on the Sony Vaio FS660. He was also gracious enough to package up all his relevant
configuration files. I have posted his file here and you can browse through the untarred files here. I’ve reviewed the files and nothing really jumps out at me as the source of the solution. Unfortunately I can’t just drop the files on and run since the patch is against 2.6.15 and I can’t run 2.6.14->2.6.16 (read previous update). I will do my best to isolate the solution by fixing one thing at a time and as a last resort back-porting the kernel patches. I’ll keep everyone updated on how it goes. A big thanks to Franklin!

While I’m here I might as well drop a second xorg.conf in the files section. This one is setup to use twinview with dual monitors. I got tired of two things: restarting X when I dropped my laptop on the port replicator just to get use of the second monitor, having to restart X when I use my laptop in meetings. Read the Video section for more information.

And I finally got around to testing firewire. It worked fine out of the box on a 2.6.13 kernel and the ieee1394 and ohci1394 modules loaded. My USB/Firewire external harddrive showed up and was available right away thanks to HAL and DBUS.

2005-12-14
Looks like I jumped to conclusions back in October. After working with 2.6.12 for awhile and a working S3 suspend/resume I decided to move ahead and try 2.6.13, 2.6.14, and 2.6.15-rc1. Resuming from the S3 state didn’t work in any of them. I ended up having to go back to <2.6.14 because of the broken security label support in XFS’s xattrs. It doesn’t have the conanicalization support added by Stephen Smalley to ext3/ext2. As a general rule of thumb you don’t break things in the kernel when you add new support, thats why the shit is in-tree in the first place (pointing to Mr. Smalley). How can the kernel devs claim that putting stuff in-tree means the kernel maintainers make sure it doesn’t break as the kernel API changes when things as major as file systems are broken without so much as an argument? How can the hardware manufacturers actually trust Linux kernel devs?

But I digress, you guys are here for Vaio stuff not SELinux, so continuing… I reverted to 2.6.12 but I had long since lost my .config and bzImage and now I can’t recreate the S3 successes I had before. Now I’m using 2.6.13 for dBus/hal reasons and still can’t seem to reproduce the situation. I know a few things for certain, 2.6.12, no acpi_sleep kernel parameter, the fixed dsdt were used, and suspension/resumption happened from a terminal running in KDE under X (not the commandline). Since all this happened from X, maybe this was tied to a particular nvidia driver build.

I’ve added a section for Sound and Networking. I can’t believe I left these out for this long.

2005-10-15
Well after some experimentation it looks like the fixed DSDT discussed in previous updates and in the ACPI section does actually do something! S3 (suspend-to-ram) finally works. Check out that section for the fixed DSDt and other details.

2005-10-12
I added a ACPI section detailing the DSDT usage and using a perl script to track AC adapter events through the battery. I’ve been using this script ever since I got this lappy up and running so I’m really surprised I never posted it here… Sorry :)

2005-10-10
I added the fixed DSDT for the FS660 in the Files section below. Looks like kernel 2.6.13 and ipw2200 1.0.6 don’t play nice together. Other than that… things still running nicely.

2005-09-26
A few more updates. I’m adding a link to Pierre and my Berlios project instead of the hosted files here. A few comments about my experience:

  • laptop performance in Linux is more admirable than stated in most reviews. I find I average just over 2 hours in Linux w/ on demand (speedstep) and low screen brightness. I bet I could hit 3 hours by turning off wifi and setting the speed governor to “powersave” instead of “ondemand”. The reason I’m thinking about this issue is recent travel. I was on a plane and watched a guy with a Dell laptop watch two DVDs on the flight. I doubt this unit could hang. On the other hand, the guy had a piece of shit Dell running Windows and I am running Linux on a sweet Vaio.
  • I am concerned about the maximum supported physical memory being 1GB. I don’t know why I didn’t notice this issue before I bought it… but it is my fault. I can’t blame Sony for well publicized specs. Besides, at this point I only have 1GB in my desktop. I’m just thinking down the road I might want more.

2005-08-27
I updated and added some files. The FN keys finally work
thanks to pijalu. I added xosd support and posted the file below. I also updated my xorg.conf and kernel .config file postings. I’ll update the text information later but judging by the emails I’ve been getting I thought these files should be posted ASAP. Enjoy!

Specifications

I’ve posted the FS660/W specifications in PDF form here. But to summarize:

  • Processor Intel® Pentium® M Processor 740 (1.73GHz , 2MB L2 Cache)
  • Operating System Microsoft® Windows® XP Home Edition with Service Pack 2
  • Front Side Bus Speed 533MHz
  • Chipset Intel® 915GM
  • Integrated Wireless LAN Intel® PRO/Wireless 2200BG Network Connection(802.11b/g)
  • LCD 15.4 WXGA5 (1280×800) with XBRITE technology
  • Hard Drive 80GB 4200rpm Ultra ATA
  • Memory 1GB PC-2700 333MHz DDR (512MB x 2)
  • Graphics NVIDIA® GeForce Go 6200 with TurboCache supporting 128MB

The list goes on but that plus USB 2.0, Firewire, Memory Stick, PCMCIA, 100Mbps ethernet pretty much summarizes the FS660.

Partitions

I started by removing Windows XP Home. Like many manufacturers Sony has chosen to reserve a portion of hard disk space for recovery data. On the FS660 I found they had a 5Gig partition reserved for this data. I installed XP Pro but gave it 20G and left the rest unpartitioned. I later decided that was too much space for XP so I booted off a System Rescue CD and repartitioned using qtparted. Long story short, here is my existing partition table:

# /sbin/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         654     5253223+   7  HPFS/NTFS
   /dev/hda2   *         655        2566    15358140    7  HPFS/NTFS
   /dev/hda3            2567        2579      104422+  83  Linux
   /dev/hda4            2580        9729    57432375    5  Extended
   /dev/hda5            2580        2823     1959898+  83  Linux
   /dev/hda6            2824        5255    19535008+  8e  Linux LVM
   /dev/hda7            5256        9729    35937373+   7  HPFS/NTFS

I decided to use NTFS for my data storage for a variety of reasons. I plan on using SELinux on the laptop so I really wanted to use something that supported extended attributes and security labels. Unfortunately as soon as I booted in XP and accessed the data drive those labels become worthless. I wanted a journaling file system so although ext2 is writable in XP Pro via some drivers, I needed ext3 write support which isn’t available last I checked. If someone knows of a driver please email me (see the footer). For now I will be using captive-ntfs to access the drive in Linux. Slower, not so elegant, but it works.

Update
Something wasn’t working right with the captive modules. It would create files (I’m assuming in some type of sandbox), the files would appear for about five seconds, then they would disappear. At the same time I was exploring a friend, Josh, ran across Ext2 IFS which is the first user friendly XP driver for Ext2 and Ext3 that supports Ext3 write support in Windows XP. ext2fsd reportedly supported ext3 write support. But last time I tried it registry hacking was required and then it still refused to mount the ext3 partition in r/w mode. Anyhow I’m now using ext3 on my data partition for sharing information between XP and Gentoo.

Kernel

Checkout the Files section for a .config. I’m not going to write a how-to for
kernel compilation. Pay attention to the graphics devices (agpgart and vesa) and speedstep/cpufreq support.

Video

Checkout the Files section for a xorg.conf. A quick note while I’m thinking about it: framebuffer support works with vesa-tng compiled into kernel. I managed to get bootslash and some slick framebuffer console graphics running with this driver set to 1280×800@60.

Also the Nvidia chipset allows this laptop to use the Xorg composite extension. I run KDE and the translucency support can be found in the control panel->window behavior. The smoothness and fluid opacity changes border on amazing. Thank god for kompmgr. All you Gnome people are pretty much S.O.L. as far as I know, unless you want to suffer with xcompmgr and transset…

Update 2006-02-20:
OK I’ve added a second xorg.conf to the file section with better support for multiple monitors. I was tired of restarting X whenever the state of the dual monitor changed. Supposedly the NVidia driver reconfigures itself whenever a second monitor is plugged in as long as you’re using twinview but this never worked for me. So my problem is this:
I turn on my laptop when I’m not near my port replicator on my desk at work, then I drop the lappy on the port replicator and have to restart X just to use the second display. Alternatively I would start X at one location, then go to a meeting and whenever I wanted to use the projectors I would have to restart X. I was always getting made fun of by the Windows users ;) So what I did was force the twinview second monitor settings to some general resolutions and frequencies, that is I told twinview to ignore the fact that a second monitor might not be attached. So now I have a list of like six common settings for my laptop. I just use the XRANDR extension to switch between them (or krandrtray).

ACPI

The ACPI seems to function fine. I have disassembled and rebuilt the DSDT using Intel’s compiler for good measure. I found a few bugs that slipped through thanks to Sony using Microsoft’s broken ACPI compiler but nothing “show-stopping”. I also noticed that it sets some system settings based on the OS name. Basically it checks the length of the name string returned by the OS and compares that length to some well known lengths. To fix this problem set the kernel command line parameter acpi_os_name=”Microsoft Windows XP”. But if you really hate MS Windows any 0×14 or 20 character string will work. Check the Files section for the fixed DSDT. To include the file in your kernel:

  1. download the hex file place it somewhere w/ a “.h” extension instead of “.hex” (probably not strictly required)
  2. then reconfigure your kernel
    • select the STANDALONE option (generic driver options I think)
    • select Custom DSDT in the ACPI section
    • point the Custom DSDT file location to the file you saved in step 1
  3. rebuild and reboot into your new kernel.

Update 2005-12-14: Looks like it wasn’t the DSDT (or at least wasn’t
just the DSDT.) Please see Updates for more information
(Update 2005-12-14 or whatever it is).

Update 2005-10-15: Looks like this fixed DSDT allows S3 (suspend-to-ram) to work properly. I can now suspend-to-ram from the console or X and any keypress will awaken the laptop to a usable state. No acpi_sleep kernel parameter is necessary.

I have had some problems switching from X->console after awakening the laptop from an S3 state but this is a small price to pay. When I first started working on this I thought the lack of S3 was not important. However, many times I have found myself wishing I could suspend-to-ram for the night or for a few hours. Now that I’m using my laptop 95% of the time I am begining to realize how long computers still take to boot. It’s not a big deal on a desktop that never gets turned off… a laptop is a totally different story.

The only thing I can complain about is the lack of AC adapter events. Basically the problem is this: since there are no AC adapter events we have to track online/offline status through battery events. Since battery events are sent for more than just AC status changes we have to track the “last known” status. When the previous AC status does not match the current AC status we know the battery event is due to an AC status change. Basically we’re simulating an AC adapter event. This works all fine and dandy except for at bootup. Lets say you shutdown Linux w/ AC power turned on. You go into BIOS or boot into Windows (remember I’m dual booting here) and the settings are changed. You boot back into Linux w/ the AC adapter online. The tracked status hasn’t changed but the settings aren’t what you really wanted in Linux.

To handle the situation described above I am using a special script to monitor the battery status and handle other miscellaneous ACPI events. These scripts were written by Garry Williams and I found them here. I’ve slightly modified the battery.pl script to adjust the CPU power mode when the system goes to battery power. I also modified it to set the appropriate power profile on boot. I just call it from /etc/conf.d/local.start as “/etc/acpi/events/actions/battery.pl -df”. I have it place the state file in /var/run since this is cleaner from a security perspective (remember I’m running SELinux on this box). The location of this file raised another issue where the state wasn’t changed the first time the file is created. By using the “-f” flag this isn’t a problem but I went ahead and had the script treat the non-existent state file case the same way. Basically it does a state transition just in-case the AC status isn’t reflected by the power settings. My modified version of version of the battery script can be found in the Files section.

Sound

Sound works fine with the snd-hda-intel module from ALSA cvs. As of August 2005 the hardware support was only in the latest ALSA releases, not in the kernel. I checked, and 2.6.15 has the necessary support, maybe 2.6.14 does as well. You must add:

options snd-hda-intel position_fix=1

to the modules.conf (or /etc/modules.d/alsa in Gentoo). This fixes the static sound problems you will notice out the parameter. If you’re on Gentoo don’t forget to run modules-update to rebuild the modules.conf and related files after you change the module option.

Networking

Use the ipw2200 modules and firmware. Information on this process is abundant and I’m not repeating here. Kernel
2.6.15 actually includes these modules in-tree.

Files

  • xorg-twinview.conf - A xorg.conf that supports dual-displays and switching resolution, frequencies, multiple
    monitor configurations via the XRANDR extension.
  • Franklin Marmon’s Configuration - A set of configuration files from Franklin Marmon’s system that should enable suspend-to-ram (S3) to work properly.
  • config-2.6.12-gentoo-r9-CHP4 - One of the kernel configs I used. I’ve been through so many trying to get suspend to ram working I don’t remember everything in this one. Be forewarned, I run SELinux on my laptop, so this kernel config reflects that.
  • make.conf - make.conf used to configure Gentoo’s build system. This would only be useful to Gentoo users.
  • xorg.conf - Note a refresh rate of 60Hz is out of range of that reported by the hardware, so this uses 58Hz. I used gtf to generate my modelines:
    $ gtf 1280 800 58
    
      # 1280x800 @ 58.00 Hz (GTF) hsync: 47.97 kHz; pclk: 80.58 MHz
        Modeline "1280x800_58.00"  80.58  1280 1344 1480 1680  800 801 804 827  -HSync +Vsync
    

    Also note I have GLX and the Composite extension turned on in this file. This means cool transparency effects (see Video above or checkout xcompmgr/transset or kompmgr) and hardware 3d rendering support!

  • fsfn - fnkey support for the Sony Vaio FS Series. Site also includes patch/support for fn key entry in ACPI proc FS. This must be installed for fsfn to function properly.
  • DSDT (source) - A DSDT I “fixed”. Later testing reveals this fixes the S3 suspend-to-ram issues. I’m posting this here for those who are interested. Disclaimer: this is only for the FS660. See the ACPI section for more details.
  • DSDT (hex) - The compiled version of DSDT above. See the ACPI section for more details.
  • battery.pl - The ACPI battery script. See
    the ACPI section for more details.

Todo

  • Suspend-to-Ram (ACPI S3) does not work. I think I’ve tried all the possible ACPI, framebuffer, and console/X combinations. All of the ACPI kernel command line options seem to fail on wakeup: acpi_sleep=s3_mode, acpi_sleep=s3_bios, acpi_sleep=s3_mode,s3_bios. However, acpi_sleep=s3_mode suceeded in waking up properly except for the video. The screen remained dark but all other system functionality was present (tested via ssh). All the other combinations failed completely. I had this working for a brief period of time, unfortunately since I can’t reproduce the success I had to removed the “Fixed” note on this to-do item. Please refer to ACPI and Updates (12-14-2005 update) for more information on this subject.
  • Memory stick and PCMCIA support. Rumor has it these don’t work. To tell you the truth I haven’t even tried any of these yet.

Links

This is a list of links I found very helpful when I was setting
up the FS660. They might not directly discuss the FS660, but
it was more than enough to get me here!

Add your own comment or set a trackback

Currently no comments

  1. No comment yet

Add your own comment

Powered by WP Hashcash



Follow comments according to this article through a RSS 2.0 feed


Jump to start of page | Jump to posts