Running linux on the Sony vaio
pcg-u1 (and vaio u3)
updated: 2003-12-25 20.33
Here's a screenshot to whet your
appetities
As of 2003/12/25 sony's vaio u-series are one of the smallest
complete laptops on the market (unfortunately was only available in the
japanese market). Much like its bigger brother the picturebook c1
series, the u1 has no internal removable media. If you shelled out the
extra cash for the bootable floppy or cd/dvd drive, then installing a
new os is mostly straightfowrard.
The Sony U-series are the smallest PC laptops currently
around. Only marketed in Japan, these vaios have found their way
across the world via travelers and importers. Like the larger
picturebook c1 series, the u series has no internal optical media (no
cd or dvd drive). As of 2003/12/25, there are three models
in the series:
- PCG-U1: 866mhz Transmeta Crusoe, 20gb 1.8" HD, 128MB to 384MB
ram, 1x PCCard, 1x Memory Stick, 2x USB 1.1, 1x 1394 (firewire/i.s400,
4-pin with sony dc out port), 1x mini-VGA (requires dongle), 10/100
ethernet
- PCG-U3: 933mhz Transmeta Crusoe, 20gb 1.8" HD, 256MB to 512MB
ram,
1x PCCard, 1x Memory Stick, 2x USB 1.1, 1x 1394 (firewire/i.s400, 4-pin
with sony dc out port), 1x mini-VGA (requires dongle), 10/100 ethernet
- PCG-U101: The first of the second generation U-Series,
Completely different hardware.
As you can see, the U1 and the U3 are basically the same machine in
different color cases and with minor changes. As such, the
following information from my U1 should work exactly the same on a
U3. Other U-Series users are welcome to let me know how
things work on their models.
Installation
This page was originally focused on installing Debian over the
network via PXE. I've moved all that to it's own page Netbooting the U1which will hopefully get you
up and running in no time. This should also be useful if you find
yourself with a completely unbootable system.
The Kernel
I recommend running a 2.6.x kernel. Stock 2.6.0 does not require
any patches to work with the U1. Early -test releases did not
support the Zoom and ThumbPhrase buttons due to a change in the sonypi
driver.
Mouse / Pointer Caps
This could just be an isolated problem, but the rubber caps wear
out very quickly when they are unprotected. For whatever reason, 2 of
my caps started to get mushy in as many weeks. When the cap starts to
break down, the normally very sensitive pointer becomes difficult to
move around. It may be possible the oils on your skin will speed up the
breakdown of the rubber caps. At least, this seems to be the case
here.
I went down to the local craft store and bought a pack of 1/2" round
Velcro tabs. They come with and without glue on the back, I
recommend getting them without as the adhesive they come with is very
messy and will probably not hold well. A roll of thin 1/2"
3M brand double sided tape is what I use to affix the tabs directly
over the rubber Mouse/Pointer Caps. This works great as both a
preventative method to keep your caps in good shape as well as
rejuvinating old worn-out caps. Change the double sided tape
every few weeks for best responsiveness results.
Originally i was using a bit of heavy clear plastic and some thread,
and i put together a little protective slip cover for the caps. These
worked well and prevented damage to the rubber. But they were
useless on already worn out caps and would break when i least expected.
Then I moved on to cutting out circles of velcro tape. The
stiff backing of the velcro, along with the traction provided by the
hook-side was a great plus. I could carry a few rounds in case of
emergency, and even better, allowed me to use my worn out caps as if
they were new.
Personally, I recommend you do this, there doesn't seem to be any
ready source for replacement caps, and fighting with the pointer isn't
worth the pocket change in materials and time involved in making the
covers.
Jogdial, sjog, and the wardrobe
I use a fairly modified version of sjog-0.5 to control the jogdial and
extra buttons on the Vaio U1. Because of the way I use the
jogdail under linux, these changes may not work out for everyone.
- Zoom cycles through available xfree86 video modes (same as
ctrl-alt-+/-)
- ThumbPhase sends middle mouse button (for left side easy access)
- Back sends left mouse button (for easy right side access)
- Jogdial pushed sends middle mouse button (for easy right side
access)
- Standby opens menu
- Volume Control panel modifies PCM device volume (as apposed to
only headphone-out volume)
ACPI
**WARNING:
DONT TRY TO USE THE ACPI SUSPEND TO RAM UNLESS YOU ARE FOND OF
REBOOTING BY REMOVING THE BATTERY. THE CURRENT ACPI
IMPLEMENTATION APPEARS TO SUCESSFULLY SAVES TO RAM BUT HAS NO WAY OF
WAKING
UP. If you have this working PLEASE email me: Francois Gurin
<matrix@spic.net>
None of the patching that used to be necessary is needed
anymore. 2.6.0 supports everything out of the box. Most of
the packages in testing and unstable are already using the new acpi
interface and life is good.
the debian acpid package includes Joey Hess's example ac power event
handler in /usr/share/doc/acpid/examples/. he uses a picturebook, so
it's all set to use vaio bits and just need to be edited to taste of
power conservation. you can find this here if
you're not a debian user.
swsuspend / suspend-to-disk / hibernation mode
Total re-write of this section. There are currently 3 different
ways (that I know of):
- 2.6.x SWSuspend implementation
- SWSuspend 2 (patch from swsusp.sf.net
)
- 2.6.x PM_Disk fork
So far I haven't had much luck successfully suspending and resuming
with the stock 2.6.0 code. It appears to be problems with the
ACPI interfaces and the Vaio's ACPI. I use the SWSuspend2 code
(currently using -rc3) and everything works perfectly with the new
hibernate script also on the sourceforge page. The only problem
I've encountered so far is that I cannot resume to X11 when XFree86 is
running with hardware acceleration.
I have hibernation setup through acpid, so hitting the power button
calls the hibernation script instead of init 0.
The more you have compiled into the kernel as opposed to loading as
a module, the smoother your hibernation experiences will be. of
particular note is sonypi:
-
the stock sjog uses system() to launch programs from the menus.
what ends up happening is the spawned applications keep /dev/sonypi
open for no reason, and removing the module while these programs are
running is impossible.
by compiling the sonypi driver into the kernel, it doesnt
matter what keeps the device open (even tho sjog should really be
fixed)
-
with sonypi compiled in, you don't have to kill sjog (see
above), which means you don't have top worry about running sjog as the
correct user upon resume.
- Watch the output of the hibernate script in verbose mode.
By looking through the output, you can sometimes find ways to speed up
the process. For example, I saw the bluetooth rfcomm module was
taking about 5 seconds to unload so if I compile that in to the
kernel, the system will suspend that much faster
3D acceleration
Yes this works now! glxgears reports from 300-400 FPS. Not
amazing for games, but it makes 3D applications bearable. If you
find the 3D is running towards the slow side, try connecting the AC for
a few moments. Looks like the Radeon chip has some power-saving
tech
going on.
Of course, you currently have to choose between 3D acceleration and
being able to suspend to disk. I haven't looked into this enough
to even guess what's choking. At some point I'll need to try the more
recent DRI drivers.
There are fortunately no special tricks involved here. The 2.6.0
kernel radeon drivers will JustWork without any patching or
configuration. If you run Debian, you will probably need to be
running XFree86 4.3.x currently available in experimental as it has
support for PCIMode Radeons (I don't think the 4.2.x packages did
).
The other caveat is you cannot run more than 16 bpp in 1024 x
768. This is because the PCI Radeon only has 8MB of ram, and at
24 bpp, there isn't enough free memory for the textures (nor can you
use system memory since this isn't AGP)
In my XF86Config-4, the Radeon section looks like:
Section "Device"
Identifier "Generic Video Card"
Driver "ati"
Option
"ForcePCIMode" "true"
Option
"EnablePageFlip" "true"
EndSection
Where ForcePCIMode will make sure XFree86 will enable DRM via
PCIGART and EnablePageFlip I picked up as a performance tip from
somewhere.
useful apps
- xmag: zoom in on a section of the screen without
having to switch resolutions
- xzoom: flexible util similar to xmag with updates
- xvkbd: little on screen keyboard, comes in handy
although a touch screen would be nicer
Misc
Toss the following hdparm options into a startup script to get some
extra performance out of the slow drive:
hdparm -A1 -c1 -d1 -X69 -m16 -u1 /dev/hda
you may want to put this in your earliets startup scripts
My kernel parameters:
idebus=50 resume2=/dev/hda1
TODO
- would be nice to get the usbvision drivers working.
Links
http://browncat.org/linux/vaio-u1.html
the first linux u1 site i found, in japanese, has great info. by Naoki
Yamaya
http://www.ottaky.com/linux/vaiou1.html
another great u1 site. by Steve Brown
http://www.stevebarr.com/cgi-bin/cgiwrap/barrst/goto.pl?c1mv
a good site with info on the vaio c1 picturebook series (much is
applicable to the u1/3 series)
http://www.toshiba.com/taissdd/techdocs/mk2003gah/2003index.shtml
toshiba page with info on the 1.8" hd in the pcg-u1
http://shop.conics.net/laptop/sony-acc/index.html
accessories for sale