The only major issue that I have not been able to resolve is missing GPS - the kernel simply does not see the device.
The Sony has 2GB RAM, 60 GB HDD (unfortunately, I could not get the SSD version), 8" LCD, wifi, 2× USB, SD Card reader, bluetooth, 3G HSDPA, 1.33GHz Z520 Intel Atom CPU, external VGA and ethernet via an adapter and Windows Vista.
Standard text mode (80x25) is fine, the resolution is so high that you do not see the pixelisation, unfortunately the screen is too wide -- wide enough to be uncomfortable (the characters are wider that their height). Framebuffer works well, but the native resolution has tiny tiny letters, almost unreadable. So good bye text console... we'll do our daily work in fullscreen xterm (or rxvt).
There are two possibilities how to run the X11 in non-native mode. One is fbdev, another one vesa. Both work well, both run on the native resolution, both are equally slow. The slowness would not be much of an issue (I am not going to play OpenArena on this), but what is crucial is that neither of them supports external display. And that is essential (yes, I do a lot of presentations).
So that left me with attempts to run native psb drivers.
The X11 driver won't work without corresponding kernel module and some binary blobs; the last kernel module available is for 2.6.28, it does not even compile with 2.6.30, due to some changes in API.
At the end, I used the method outlined at http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=30;bug=533450 I used jaunty instead of intrepid, though.
So now I am running 2.6.28, debian lenny, with X11 server from jaunty, I added psb to the /etc/modules file.
I had to add Option "IgnoreACPI" "true" to the /etc/X11/xorg.file and boot the kernel with mem=1800M.
The X feels pretty slow, but not unusably so. Running it in 16bpp mode helps a bit. It is accelerated, though -- playing video through mplayer and xv works perfectly.
The X11 server was rather unstable, from time to time (after ~1 hour of work) X11 stopped reacting to keyboard -- not even Crtl+Alt+Bksp nor Ctrl+Alt+Fn. Mouse worked, I could ssh into the machine, I could kill X with Alt+SysRq+K and blindly log in and start new X, which worked for another hour. First I thought the xmonad window manager is responsible, but after some trials and errors I booted kernel in uniprocessor mode (kernel parameter nosmp) and had no crash ever since.
Opera was still unusably slow, though. While browsing was OKish, editing forms was impossible -- it took 2 seconds from pressing a key for the character to display. Firefox was fine, though. Finally I discovered that turning xft fonts off (via about:config) helped -- without them, opera is super fast again. The glyphs are a bit jarred, unfortunately.
#!/bin/sh umountpy sync sudo chvt 1 sudo sh -c '(echo mem > /sys/power/state)' sudo chvt 7and this to hibernate to disk:
#!/bin/sh umountpy sync sudo chvt 1 sudo sh -c '(echo shutdown > /sys/power/disk)' sudo sh -c '(echo disk > /sys/power/state)' sudo sh -c '(echo 3 > /proc/sys/vm/drop_caches)' sudo chvt 7Waking from suspend to RAM still takes a while, because the X server has to re-initialise the graphics adapter.
Using "proper" desktop environment, there will be probably an icon for these actions, displayed when logging off.
I decided to wait until poulsbo driver becomes available for kernels >=2.6.30 and then patch my kernel with TuxOnIce, which will give it better hibernate speeds.
Without poulsbo driver (console, vesa or fbdev X11) setpci -s 00:02.0 F4.B=XX, where XX∈<0, FF> (hexadecimal) (see also zbright script) can be used to change the brightness.
However, with poulsbo X11, this no longer works, but xbacklight does - so I guess that with appropriate hotkey/window manager configuration, it will work out of the box
There are these files connecting with backlight control:
I am using following script to change LCD monitor resolution:
#!/bin/sh x="$1" # x resolution y="$2" # y resolution r="$3" # refresh rate, use 60 out=`gtf $x $y $r |grep Modeline` name=`echo $out|cut -d ' ' -f 2` mode=`echo $out|cut -d ' ' -f 2-` str="xrandr --newmode $mode" $str xrandr --addmode LVDS0 $name xrandr --output LVDS0 --mode $nameI saved it as setmodes.sh and I am using it e.g. setmodes 1000 480 60. The native resolution is so great that there is no pixelization visible, and you do not have to turn up DPI to an insanely huge value (like 220) and using huge fonts (size 20+), which messes up layout of some pages etc... And lower resolution is easier on the CPU when playing fullscreen games :-)
HSDPA is not recognised in 2.6.28, however in 2.6.30, kernel sees the USB device. I have not investigated the matter further, having no spare SIM card. I am connecting either via Huawei 220 USB dongle (works perfectly) or bluetooth via my phone (works perfectly, but I have to issue hcitool scan at the beginning of the first connection, otherwise the phone won't be found, despite being already paired). 3g via bluetooth takes by ~10% less battery power than via USB.
You can install Ubuntu lpia packages (they are optimized for the Atom processor), e.g. from https://launchpad.net/ubuntu/karmic/lpia, they perform faster than stock debian i386 packages. However, you have to force their install: dpkg -i --force-architecture package.deb, because lpia is considered a different architecture.
lpia version of rxvt-unicode-ml definitely feels snappier. Calculating simple function (l(f(2000), where f is a recursively defined factorial) went down from 12 seconds with stock debian unstable bc to 8 seconds for the lpia version (bc_1.06.94-3ubuntu1_lpia.deb), but increased up to 20 seconds (!) with bc_1.06.94-3.1_lpia.deb.
So at the end I installed libdrm-poulsbo1_2.3.0-0ubuntu1~904um1_lpia.deb linux-backports-modules-2.6.28-11-lpia_2.6.28-11.11_lpia.deb linux-headers-2.6.28-11-lpia_2.6.28-11.41_lpia.deb linux-image-2.6.28-11-lpia_2.6.28-11.42_lpia.deb psb-modules_4.40-0ubuntu1~904um1_lpia.deb rxvt-unicode-ml_9.06-1_lpia.deb wireless-crda_1.7_lpia.deb xpsb-glx_0.18-0ubuntu1~904um1_lpia.deb xserver-xorg-video-psb_0.31.0-0ubuntu1~904um1_lpia.deb xpsb-glx_0.18-0ubuntu1~904um1_lpia.deb and xserver-xorg-video-psb_0.31.0-0ubuntu1~904um1_lpia.deb. Installing the kernel significantly improved time of resuming from suspend to RAM. (Display initialisation was much faster). Though that probably has nothing to do with gcc optimisation.