ExoPC est une sympatique société canadienne qui vends du matos bien sympa bien que sur une archi x86 à base d’Atom de nos amis d’Intel. (Tiens, chpo, elle est pour toi celle la, mange ton caca ^^). Regardons un peu la Slate

Ca marche sous SaleOS, c’est même livré avec, mais avec un autre OS ?

Les gens qui suivent un peu les Hackathons d’Intel ou les OS fonctionnant avec ce matos savent que ca marche sous Windows, MeeGo (enfin aussi bien que MeeGo fonctionne).

L’idée est de voir ce que cela donne avec un Linux.

Le hardware est en gros un PC. c’est du x86 (Atom) avec du Stockage SSD en ATA, du intel en graphique et du broadcom pour le wireless (Wifi et bluetooth). On peut donc en theorie mettre un peu n’importe quoi dessus du moment que ca marche sur PC de Mme Michu.

Mais …

c’est une tablette et donc, il n’y a pas de clavier, juste un touchscreen. Un clavier USB est nécessaire pour les installs.

Apres un rapide tour d’horizon, j’en arrive à la conclusion suivante :

  • Windows marche
  • Linux marche ( MeeGO ou un truc standard )
  • Android en version x86 marchotte (pas pu vraiement testé, le gars qui a fait l’image a omis le support USB pour le clavier de l’installateur, balot hein ?).

Cependant, les linux ont un problème majeur, il n’y a pas vraiement d’interface réelement utilisable avec un gros doigt boudiné, Ubuntu, apres bricolage fonctionne mais c’est lent avec 10.01 et 11.04, avec 10.04 ca marche MAIS le ppa de utouch n’a plus de support pour cette version qui est pourtant une LTS. Debian marche mais faut reinventer la roue. MeeGo, bon comment dire, c’est pas vraiement mature, y’a qu’a voir la FAQ d’Intel pour les devs.

Durant mes longues péligrinations, je suis tombé sur Bodhi Linux qui à vocation à fournir un distro minimaliste mais qui a de la gueule pour les netbook/tablette/laptop et c’est avec du e17 dedans.

Principaux avantages de Bodhi :

  • un clavier virtuel qui marche !
  • Elfe (la couche tablette d’e17) est utilisable

Principal désavantage :

  • Les puristes vont hurler qand ils verront le sources.list :)

Je ne vais pas revenir sur comment installer l’iso sur l’exopc, c’est trivial, intéressons nous plutôt à ce qui fonctionne et qui ne fonctionne pas ;)

J’utlise le profil tablet qui me fournit un desktop avec Elfe (le desktop pour tablet du projet E17)

Les “bidouilles” ci dessous sont principalement des workarounds que j’ai appliqué histoire d’avoir un truc qui marche. Oui par moment c’est pas tres classe, oui y’a mieux ;)

Touchscreen, WiFi, driver graphique Intel, driver son, webcam

Ça marche out of the box. Cool, /me ondule problème suivant !

Bouton ACPI

Quand on met en veille la tablette via le bouton ACPI (le gros bouton power bleu derriere) , on se mange un joli power-off, j’ai pas cherché plus que cela, la gestion ACPI d’E17 ne semble pas fonctionner correctement, j’ai donc poser un petit workaround dans le /etc/acpi. Il faut noter qu’acpi_listen ne voit pas l’event…

#On se garde l'origine sous le coude
mv /etc/acpi/power-btn.sh /etc/acpi/powerbtn.sh.ORI
#On remplace par une copie du script de suspend.
cp /etc/acpi/sleep.sh /etc/acpi/powerbtn.sh

Comme ca, quand on appuie, on passe en veille (un pm-suspend)

Capteur de luminosité

Sur la batterie, j’ai trouvé comment desactiver la luminosité auto, mais pas encore comment la regler sur batterie. sur secteur, l’ajout de la commande suivante dans le /etc/acpi/power.sh permettra de mettre la luminosité à fond lors du branchement sur le secteur.

#!/bin/sh

test -f /usr/share/acpi-support/key-constants || exit 0

. /usr/share/acpi-support/policy-funcs

if [ -z "$*" ] && ( [ `CheckPolicy` = 0 ] || CheckUPowerPolicy ); then
    exit;
fi
#### AJOUT ####
echo 15 > /sys/class/backlight/acpi_video0/brightness
#############
pm-powersave $*

sur batterie, pour se débarasser si besoin de l’autoajustement, un petit echo 0 bien placé, une fois sur batterie fera l’affaire. Un fois desactivé, la methode ci-dessus ne fonctionne pas, il paraitrait que xbacklight fonctionne, j’ai pas encore testé. Il faut se débrouiller pour obtenir la luminosité désirée puis un petit echo bien placé :

echo 0 > /sys/devices/platform/asus_laptop/ls_switch

Pour retourner à l’etat normal, echo 1 ou rebrancher l’alim.

EDIT : xbacklight ne semble pas marcher non plus.

CrystalHD

Un peu de compil est nécessaire, en se basant sur les howto existants

On recupere les sources (j’ai mis un snapshot des fois que)

git clone git://git.wilsonet.com/crystalhd.git 

#On compile la lib
cd crystalhd/linux_lib/libcrystalhd/
make 
make install
#On compile le module 
cd ../../driver/linux/
autoconf
./configure
###### SUR UN KERNEL RECENT , GENRE 3.2 AMD64
sed -i 's/-Werror/-Wno-error=implicit-function-declaration/g' Makefile.in
make 
make install
./bcm_70012_run.sh
#On a le driver, on va faire un tour pour gstreamer
cd ../../filters/gst/gst-plugin/
autoconf
./configure
make 
make install
#Normalement on a tout

Il existe un git pour avoir un mplayer qui supporte CrystalHD mais c’est pas encore ça d’apres mes tests. VLC ne supporte pas la carte, XBMC la supporte.

Sortie HDMI

alors la, va y a voir du lulz, ca se complique un peu. Le HDMI de la tablette n’est pas fourni par le driver graphique, vous pouvez donc vous assoir avec grâce, tact et délicatesse sur les methodes connues (a base de xrandr etc ..).

J’ai reussi a faire un truc en partant des seuls gars que j’ai trouvé (et qui parlent cette belle langue chantante qu’est l’allemand) et en allant chercher un vague driver pour le chip Chrontel 7036 qui s’occupe de cela. La FAQ MeeGo cite d’ailleurs cette thead en de_DE.

MAIS C’EST UN PIEGE ! Les drivers WeTab sont tout bricolé pour etre QTifiés.

Apres moulte recherches, on trouve un truc dans les 3rd parties de ChromiumOS. Un snap du git est dispo ici

#on git
git clone http://git.chromium.org/chromiumos/third_party/chrontel.git
make
#on recupere les deux binaires 
cp ch7036_monitor /usr/local/bin/hdmi-daemon
cp ch7036_debug /usr/local/bin/hdmi-debug

il faut brancher le device HDMI avant de lancer le daemon. Sur ma samsung 1080p FullHD, ca passe tout seul apres quelques secondes, sur ma Samsung HDReady 720p, les EDIDs sont foireux, j’arrive à avoir un truc pas trop moche avec /usr/local/bin/hdmi-daemon -M6 -v

/usr/local/bin/hdmi-debug file de l’info sur de qu’il se passe et /usr/local/bin/hdmi-daemon a un -h pas trop mal fourni.

Accelerometre

Il existe un patch pour le ADXL345/346 d’Analog Devices, mais j’ai pas encore testé.

Rotation de l’écran

xrandr -o permet bien de basculer l’ecran, mais le touchscreen ne l’est pas. touchscreen-helper ayant aussi un ppa lacunaire, on va recuperer les sources et les compiler

wget http://ppa.launchpad.net/plippo/t101mt/ubuntu/pool/main/t/touchscreen-helper/touchscreen-helper_0.0.1.orig.tar.gz
tar xzvf touchscreen-helper_0.0.1.orig.tar.gz
cd touchscreen-helper
make 
make install 

et la le xrandr va orienter le touchscreen de facon cohérente.

Notez quand même que le clavier virtuel, lui, se tape une barre.

Bluetooth

A tester / j’ai des pistes

Hot button

Encore rien trouvé, si vous avez des idées … OMADIKE c’etait un event ACPI mais je ne trouve rien de particulier.

Tips de confs

XBMC et libSDL

La libSDL kiffe pas des masses les touchscreens, ceci est principalement dû au fonctionnement du système de pointage qui revoie des ccordonées relatives et non absolue, il suffit donc de prevenir SDL avec un simple export. A priori, elle ne veut pas se retrouver system-wide, du coup j’ai mis un petit script dans /usr/bin/xbmcRUN

#!/bin/bash
export SDL_MOUSE_RELATIVE=0
/usr/bin/xbmc
exit $?

ensuite, on modifie le /usr/share/applications/xbmc.desktop en replacant

Exec=xbmc

par

Exec=xbmcRUN

EDIT : Tips fonctionnant avec un peu tout les trucs a base de libSDL (genre ScummVM)

Chrom{e,ium} et la navigation au doigt.

Par défaut, c’est midori, c’est bien mais au doigt, c’est coton, Firefox le gere depuis la 4.0 qui n’est pas dans les depots founit. Reste Chrome qui avec l’extention “ChromeTouch” fait tres bien son taff.

Sources

En plus des liens inline, quelques ressources qui m’ont servi