Project

General

Profile

Shuttle X50

Overview

This was a brand new model, I have bought the X50XA which ships without an OS, I'm running Ubuntu Jaunty on it.

I had a very hard time to get Linux running on it... took me days to find out what to do. (and nothing to find in google about this product and Linux yet)
But I have managed to get most working, only some work to do on getting the touchscreen to work (is a often used USB eGalaxy/Touchkit compatible one) the official driver is for Xorg version 1.4.0, and I need 1.6.0. touchscreen settings needs to be optimized.

There is also another (open-source) touchscreen driver for this device, which I still need to compile, so I'm confident this is going to work.
And the Mic input gives static (Intel HD Audio) also a matter of some more time/tweaks.

Sound, WLAN, LAN, Webcam, Intel accelerated VGA is working ok.
You need to install the very latest experimental Xorg intel driver (from 8 May or newer)

Graphics driver

You need to boot in F4 "Low Graphics Mode" when installing (to force it to use the vesa driver) after install you do this
to add a repository to get the experimental (but working) intel driver.
Couldn't find the exact change in the release notes which makes this one work though.
But without it is doesn't detect any connected output, and thus it cannot query for valid modes and the X server aborts.

$ sudo vi /etc/apt/sources.list
deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main

$ sudo apt-get update
$ sudo apt-get upgrade

Touchscreen driver

My evtouch config file:

$ sudo vi /etc/evtouch/config

MINX="523" 
MINY="800" 
MAXX="3627" 
MAXY="3337" 
X0="0" 
Y0="0" 
X1="0" 
Y1="0" 
X2="0" 
Y2="0" 
X3="0" 
Y3="0" 
X4="0" 
Y4="0" 
X5="0" 
Y5="0" 
X6="0" 
Y6="0" 
X7="0" 
Y7="0" 
X8="0" 
Y8="0" 

My HAL fdi file:
The "input.x11_options.swapx" line was the one missing to get it to work ok.

$ sudo vi /usr/share/hal/fdi/policy/50-eGalax.fdi

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.product" contains="eGalax">
      <match key="info.capabilities" contains="input">
        <merge key="input.x11_driver" type="string">evtouch</merge>
        <merge key="input.x11_options.minx" type="string">130</merge>
        <merge key="input.x11_options.miny" type="string">197</merge>
        <merge key="input.x11_options.maxx" type="string">3945</merge>
        <merge key="input.x11_options.maxy" type="string">3894</merge>
        <merge key="input.x11_options.taptimer" type="string">30</merge>
        <merge key="input.x11_options.longtouchtimer" type="string">750</merge>
        <merge key="input.x11_options.longtouched_action" type="string">click</merge>
        <merge key="input.x11_options.longtouched_button" type="string">3</merge>
        <merge key="input.x11_options.oneandhalftap_button" type="string">2</merge>
        <merge key="input.x11_options.movelimit" type="string">10</merge>
        <merge key="input.x11_options.touched_drag" type="string">1</merge>
        <merge key="input.x11_options.maybetapped_action" type="string">click</merge>
        <merge key="input.x11_options.maybetapped_button" type="string">1</merge>
        <merge key="input.x11_options.swapx" type="bool">true</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Restart HAL and X server:

$ sudo /etc/init.d/hal restart
$ sudo /etc/init.d/gdm restart

It seems that after a reboot settings are lost, have to check where and how ...

IT8720F support

$ sensors -v
sensors version 3.0.2 with libsensors version 3.0.2

The lm_sensors version that comes with Jaunty doesn't detect the IT8720F chipset used in the X50.

So we need to install a later snaphot, and compile it, could find any .deb version yet.

Download latest snapshot:

$ wget http://dl.lm-sensors.org/lm-sensors/snapshots/lm-sensors-r5725-20090515.tar.bz2
$ sudo apt-get install bison flex
$ tar xjvf lm-sensors-r5725-20090515.tar.bz2
$ cd lm-sensors-r5725-20090515
$ make
$ sudo make install
$ sudo cp prog/init/lm_sensors.init /etc/init.d/lm-sensors

Start detect script to detect chip:

$ sudo /usr/local/sbin/sensors-detect
# sensors-detect revision 5715 (2009-05-08 10:37:41 +0200)
# System: Shuttle Inc SX50

...
Trying family @ITE'...                                      Yes
Found @ITE IT8720F Super IO Sensors'                        Success!
    (address 0x290, driver @it87')
Probing for Super-I/O at 0x4e/0x4f
...
Now follows a summary of the probes I have just done.
Just press ENTER to continue:

Driver @it87':
** ISA bus, address 0x290
    Chip @ITE IT8720F Super IO Sensors' (confidence: 9)
...

So normally you should do

$ sudo modprobe it87

FATAL: Error inserting it87 (/lib/modules/2.6.28-11-generic/kernel/drivers/hwmon/it87.ko): No such device

Great, the module is there but the kernel cannot load it, it's a bug.
"We need to install the -proposed kernel version.

Look here for more info about the -proposed tree.
https://wiki.ubuntu.com/Testing/EnableProposed
https://bugs.launchpad.net/ubuntu/jaunty/+source/linux/+bug/357766

To enable it:

$ sudo vi /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu/ jaunty-proposed restricted main multiverse universe

Create the file /etc/apt/preferences with this content:

$ sudo vi /etc/apt/preferences
Package: *
Pin: release a=jaunty-security
Pin-Priority: 990

Package: *
Pin: release a=jaunty-updates
Pin-Priority: 900

Package: *
Pin: release a=jaunty-proposed
Pin-Priority: 400

This is to prevent that upgrades install more than you want.

Start aptitude

$ sudo aptitude -t jaunty-proposed

Choose upgradeable package and select linux and linux-image to install it.

You have now:

$ uname -a
Linux rons-touch 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux

You will get:

$ uname -a
Linux rons-touch 2.6.28-12-generic #43-Ubuntu SMP Fri May 1 19:27:06 UTC 2009 i686 GNU/Linux

And it works too:

$ sudo modprobe it87
WARNING: All config files need .conf: /etc/modprobe.d/usbtouchscreen, it will be ignored in a future release.

$ sensors
it8720-isa-0290
Adapter: ISA adapter
in0:         +1.09 V  (min =  +0.00 V, max =  +1.02 V)   ALARM
in1:         +1.07 V  (min =  +0.00 V, max =  +0.00 V)   ALARM
in2:         +3.38 V  (min =  +2.05 V, max =  +0.00 V)   ALARM
in3:         +2.99 V  (min =  +0.00 V, max =  +0.00 V)   ALARM
in4:         +3.04 V  (min =  +0.00 V, max =  +0.00 V)   ALARM
in5:         +1.46 V  (min =  +0.00 V, max =  +0.00 V)   ALARM
in6:         +1.78 V  (min =  +0.00 V, max =  +0.00 V)   ALARM
in7:         +2.98 V  (min =  +0.00 V, max =  +0.00 V)   ALARM
in8:         +3.34 V
fan1:       1473 RPM  (min = 337500 RPM)  ALARM
fan2:          0 RPM  (min =   -1 RPM)  ALARM
fan3:          0 RPM  (min =   -1 RPM)  ALARM
temp1:       +49.0°C  (low  = -128.0°C, high =  +1.0°C)  ALARM  sensor = thermal diode
temp2:       +54.0°C  (low  =  +0.0°C, high =  +4.0°C)  ALARM  sensor = thermistor
temp3:       +45.0°C  (low  =  +0.0°C, high =  +0.0°C)  ALARM  sensor = thermistor
cpu0_vid:   +2.050 V

To be continued ...

Related Resources

    Updated by: rdnzl, Updated almost 8 years ago
    Access count: 68604 since 2011-08-25

    Attached Files

    Also available in: PDF HTML TXT