contact Me

Use the form on the right to contact me.

You are welcome, to contact me regarding the topics of this page, my open source projects, or my work. Please use the contact form and leave a valid email address for me to respond to.

Thank you.

Egidestr. 9
44892 Bochum
Germany

/brain/dump

Random thoughts, bright ideas and interesting experiments. In short the ramblings of a fulltime nerd.

 

Sony Vaio X - An Ubuntu installation experience

Jakob Westhoff

Recently DPD had an express delivery for me. They delivered the Sony Vaio X I pre-ordered the day it became available. Vaio X is Sonys newest development in the ultra portable market. Even though it has an Intel Atom processor and therefore seems to belong into the netbook category of products it is much more. It is bleeding edge technology in an ultra slim and nearly weightless carbon shell. I bloody love this thing. Unfortunately it came preinstalled with Microsofts new Windows 7 operating system, which is an absolute no go for me ;). One of the first things I did was installing Ubuntu Karmic Koala on it.

Black Sony Vaio X (Source: Flickr user nDevilTV, Licensed under Creative Commons Attribution 2.0 Generic)

Black Sony Vaio X (Source: Flickr user nDevilTV, Licensed under Creative Commons Attribution 2.0 Generic)

Short overview about working components

Unfortunately I haven't been able to get every hardware component in this machine to work with Ubuntu. But most of the available features and hardware does play nicely along with Karmic Koala. The following list provides a summary of the working and non working features.

Working:

  • 2D/3D graphics acceleration (using the poulsbo driver)
  • Compositing effects with Compiz
  • Intel HD Audio device
  • Wireless LAN (Atheros AR9285) (using madwifi)
  • Suspend/Hibernate (see below)
  • External VGA with XRandR 1.2 support
  • Bluetooth

Non-working:

  • WWAN HSDPA modem
  • Multitouch functionality of the touchpad (The touchpad itself works flawlessly, though)

My installation log

I will give an overview about the things I did to install Karmic Koala on the Vaio X and get its hardware to work properly. I will describe in detail the pitfalls I encountered and provide solutions for them, where possible.

Downloading and preparing the install media

I installed the Karmic port for the LPIA architecture. LPIA is a special architectural port named "Low Power Intel Architecture". It is a normal x86 32bit based platform, which simply utilizes some special compileflags to optimize for battery life on Intel Atom systems.

The LPIA port can be retrieved as alternate install image from the ports subtree of the Ubuntu cdimage server:

http://cdimage.ubuntulinux.org/ports/daily/current/

If you prefer to install the normal x86 architecture version you can get the Desktop version providing a graphical installer at the usual Ubuntu download page. Everything in this guide, though not tested with it, should work with this as well.

After you download either one of the iso images you need to create a bootable usb stick containing their files. As you may have realized the Vaio X does understandably have no disc drive.

usb_creator.png

Ubuntu provides a nice little application for this called "USB Startup disc creator", which I used on one of my workstations to prepare the needed usb pen drive.

If you do not have an installed Ubuntu on another machine, you may read here about UNetbootin an independent tool for the task, which is available for Linux as well as windows.

Installing from USB

With the usb drive containing all the needed installation files you are ready to boot from it in order to install Ubuntu.

Unfortunately the Vaio X is configured to only boot from internal devices by default. To be able to boot from the usb drive you need to enter the bios at boot enabling the bootoption for external devices.

The bios can be entered by pressing the F2 key during the Sony Vaio logo is on screen, right after powering up the machine. This can be a little tricky, as the time period the bios accepts this key is very small. Try pushing the button multiple times, to capture the right time frame.

After you have entered the bios selected the Boot tab using the left/right cursor keys. Seeing the boot configuration you will need to change two different things. First enable the option named External Device Boot.

Secondly the boot order needs to be changed to prefer booting from external devices. Select the External Device entry in the Boot priority section of the page and press F5 as many times as needed to move it to the first position in the list. After that exit the bios saving your made changes and you are ready to boot from the created usb drive. Just insert it into one of the free usb ports and reboot the Vaio X.

After some time the ubuntu desktop with the installer icon on it will appear (or in case you used the LPIA install image the a text based installer screen will appear).

Just follow the instructions the installer provides and choose all configurations to your likings. When it comes to partitioning you need to decide for yourself what to do with the installed Windows 7. Keep it for a dual boot solution or completely remove it in favor of having more space for your Ubuntu. I did the latter one, as I do not use windows for anything during my daily work.

After the installation finished remove the usb stick and reboot the Vaio X. The following components should just work out of the box: WLAN, Bluetooth, Sound.

Installing the poulsbo driver

Even though after the installation you get a working X session, neither 2D nor 3D acceleration do work at all. The brightness of the display can't be controlled either.

Therefore my first goal was to get the graphics card driver up and running. The Vaio X uses a Intel GMA 500 graphics chip, which does unfortunately have quite poor Linux support. As Intel mainly bought the technology of this chip at PowerVR they are not allowed to release the driver under some open source license. A badly maintained proprietary binary driver does exist however.

Even though the driver situation sounds quite bad, I had no real problems with the driver once it was installed. I have working 2D acceleration as well as 3D acceleration (including Compiz) and XRandR 1.2 support. A simple test playing a video did as well work like a charm. (Video playing is not important for me on my portable, therefore I did not test it in detail)

To retrieve and install all the needed driver components I followed this guide in the Ubuntu wiki:

https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo

After having installed the driver X did unfortunately not come up after reboot. The Xorg.log listed some sort of memory mapping and allocation error. After some googling and thinking about the problem the solution was easy. If you supply a manual memory amount to the Linux kernel at boot time taking less memory, than is actually available it starts working again.

To do so the grub configuration needs to be changed. Since Grub2 is used with Karmic Koala the grub configuration is auto-generated by some scripts stored under /etc/grub.d. The script which needs some tweaking is /etc/grub.d/10linux_. Open this script in your favorite editor and search for the following line:

linux   ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro $2 

Append a mem=2000MB to it and by this change it to:

linux   ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro $2 mem=2000MB 

After the this script has been changed the grub configuration needs to be updated. Just call update-grub on the commandline, to do just that.

Reboot your Vaio X and enjoy a 2D/3D accelerated desktop. The brightness control keys, which did not work before, are magically working now, as well.

Suspend/Resume

After having working graphics I started playing around with suspend and hibernate. Unfortunately resuming always crashed the graphics completely leaving me in front of a black screen, without chance of recovering.

I discovered that this was only the case if compositing aka. Compiz had been active active. Therefore I disabled Compiz and tried again. This time the netbook wakeup again, but the display brightness was below the minimum and the picture looked distorted somehow. Nevertheless having the system back up accepting my commands and at least display something was a reason for hope. I tried a few more things until I discovered, that a switch to one of the text consoles (Strg+Alt+F1) and back restored the brightness as well as corrected the image distortion problems.

Even though I do not completely understand what the problem is in details, I wrote a little pm-suspend script to automatically switch to the text console and back on resume, This solution makes wakeups take about 1-2 seconds more time, but they work at least ;).

Copy the script below and paste it to the following file: /etc/pm/sleep.d/99psbfix:

#!/bin/sh

ACTION=$1

case "$ACTION" in
    suspend|hibernate)
        fgconsole >/tmp/xconsole.pm-sleep.tmp
        ;;  
    resume|thaw)
        chvt 1
        chvt `cat /tmp/xconsole.pm-sleep.tmp`
        ;;  
esac

If you know what is going on after the wakeup and can provide a less hackish fix, I would be glad to hear about it :). Until then I think this one will do.

WLAN after wakeup

I had some strange problems with my wlan connectivity after wakeups from suspend. The wlan connection had been reestablished without problems, but a great amount of network packets got lost on their way to the AP and back. I tested this behavior after a clean reboot and compared it to the one after a wakeup, discovering that it only appeared after a wakeup.

Just removing the madwifi modules from the kernel and reloading them to reinitialize the device seems to do the job. By the creation of another simple pm-suspend script I got this under control as well:

#!/bin/sh

ACTION=$1

case "$ACTION" in
    resume|thaw)
        for i in `lsmod|grep ath9k|awk '{print $1}'`; do 
            rmmod $i 
        done
        sleep 1;
        modprobe ath9k
        ;;
esac

Just save this script as /etc/pm/sleep.d/99ath9kreload and you are ready to go.

WWAN HSDPA modem

I ordered my Vaio X with a WWAN HSDPA modem hoping I might be able to get it to work under Linux. Even though I knew the chances would be quite low. Unfortunately until know I wasn't able to even access the hardware of it.

I watched a quite interesting behavior of the modem. During my initial Ubuntu installation, which I did right after a soft reset out of the original Windows 7 I found some Qualcomm device in the output of lsusb. However after powering down the laptop completely and rebooting Ubuntu directly the device can not be found any longer on the usb bus. This effect is reproducible. If Windows is booted first, the UMTS modem activated in it and then Ubuntu is booted directly afterwards the device is found. Without using windows to activate the device it isn't even found on the bus using Linux.

This is quite a strange behavior, which leads me to the suspicion, that there is some sort activation which needs to be done on the Sony hardware for the modem to even appear. Maybe it is done to save power, in case the modem is not used. I honestly don't know.

If anyone of you has the slightest idea what this might be, or how it could be fixed, please contact me by mail, comment, or any other way. I would really love to get this modem working :).

Conclusion

After having worked with the Vaio X for about 3 days now, I can only say: I love this thing. It has a great display, a great keyboard, an incredibly small form factor and the battery life is great. I haven't really timed the battery yet, but I would make the educated guess it lasts at least 5 hours, based on my current real-life tests.

I have already ordered the long-life battery Sony offers as an additional component for the machine. It has twice the power than the one I actually have. When it arrives I will might do a proper timing of it and post a follow up.