Linux et Tablette-PC

GUY LESSARD
PROFESSEUR
GÉNIE ÉLECTRIQUE
CEGEP DE L'OUTAOUAIS
WWW.LINUX-GATINEAU.ORG
MAI 2009

Cette présentation est également disponible en format PDF

Utilisation

Tablette-PC vs autres portables

Choix d'une distribution appropriée

 

 

 

Le Tablet-PC

La tablette PC Toshiba M700

 

 

Ce qui fonctionne OTB (Out of The Box)

 

Ce qui doit être fait

 Paramétrer la tablette Wacom (superposée sur l'écran) et non externe.

 

Tablette externe

Exemple de Tablette Wacom externe

 

Paramétrage de la tablette Wacom

Les sections pad et touch dans le fichier xorg.conf sont
disponible sur des wacom externe, inutile pour moi.

(Sous RedHat/Centos/fedora, yum linuxwacom)

 

Scripts de rotation

Rotation de l'écran se fait via un/des script(s) et l'outil xsetwacom de wacom tools.
 

# Ecran anti­horaire portrait

#xrandr ­-o left

xrandr ­­--output LVDS ­­--rotate left

xsetwacom set "stylus" Rotate CCW

xsetwacom set "cursor" Rotate CCW

xsetwacom set "eraser" Rotate CCW

exit 0

 

Sauvegarde ce fichier sous "/usr/local/bin/portrait­anti­horaire"

et lance 'sudo chmod +x /usr/local/bin/portrait­anti­horaire' pour le rendre exécutable

 

Faire la même chose pour les trois autres scripts :

#!/bin/bash
# Ecran horaire portrait
xrandr ­­--output LVDS ­­--rotate right
xsetwacom set "stylus" Rotate CW
xsetwacom set "cursor" Rotate CW
xsetwacom set "eraser" Rotate CW
exit 0

#!/bin/bash
# Ecran normal paysage
xrandr ­­--output LVDS ­­--rotate normal
xsetwacom set "stylus" Rotate none
xsetwacom set "cursor" Rotate none
xsetwacom set "eraser" Rotate none
exit 0

#!/bin/bash
# Ecran Inverse paysage
xrandr ­­--output LVDS ­­--rotate inverted
xsetwacom set "stylus" Rotate HALF
xsetwacom set "cursor" Rotate HALF
xsetwacom set "eraser" Rotate HALF
exit 0

 

 

Dans la section "Device" de "/etc/X11/xorg.conf" ajoutez:
   Option "RandRRotation" "True"  pour permettre la rotation de l'écran et
   Option "DRI" "False"  pour éliminer des mouvements sporadiques de l'écran et souris.
Dans la section "stylus" ajoutez:
   Option "PressCurve"     "50,0,100,50"
   Option "Button2"            "3"
   Option "Button1"           "1"

Dans la section "cursor" ajoutez:
   Option "Button2"            "3"
   Option "Button1"            "1"
Dans la section "eraser" ajoutez:
   Option "Button1"     "2"
Lancez le script approprié pour la rotation désiré de votre
écran.
Pour plus de convivialité, j'ai ajouté un dossier au panneau
d'outil qui contient des lanceurs «Launchers» pour chaque
scripts.

Exemple de script de rotation

 

Voici un script de rotation qui tourne l'écran de 90 degrés
à chaque lancement. Ce script est utilisé plus bas avec un
bouton de cadre.
#!/bin/sh
# Find the line in "xrandr ­-q ­­--verbose" output that contains current
screen orientation and "strip" out current orientation.

# Modification pour discriminer entre trois ecrans dont LVDS

# (Nota : sur une seule ligne)

rotation="$(xrandr ­-q ­­--verbose | grep 'LVDS connected' | egrep ­-o  '\) (normal|left|inverted|right) \(' | egrep ­-o  '(normal|left|inverted| right)')"

# Using current screen orientation proceed to rotate screen and input tools.

case "$rotation" in
    normal)
#    ­-rotate to the left
    xrandr ­-o left
    xsetwacom set stylus rotate CCW
    xsetwacom set touch rotate CCW
    xsetwacom set eraser rotate CCW
    ;;
    left)
#    -­rotate to inverted
    xrandr ­-o inverted
    xsetwacom set stylus rotate HALF
    xsetwacom set touch rotate HALF
    xsetwacom set eraser rotate HALF
 
    ;;
    inverted)
#    -rotate to the right
    xrandr ­-o right
    xsetwacom set stylus rotate  CW
    xsetwacom set touch rotate CW
    xsetwacom set eraser rotate CW
    ;;
    right)
#    -­rotate to normal
    xrandr ­-o normal
    xsetwacom set stylus rotate NONE
    xsetwacom set touch rotate NONE
    xsetwacom set eraser rotate NONE
    ;;
esac

 

Scripts de rotation (suite)

Lier le/les scripts de rotation à un bouton du cadre «Bezel».
 
Utiliser xbindkeys pour détecter la touche puis associer la
touche au script de rotation ou autre.

Il est possible d'associer la rotation de l'écran à un bouton du cadre «Bezel» en cliquant «New» puis dans la section «Edit» entrez un nom approprié, disons “Rotation de l'écran” ensuite cliquez «Get Key» et pressez le bouton du cadre désiré. Une chaine de caractère comme celle­ci: "Mod4 + 6|m0x40+c:15" devrais apparaitre. Dans
la section «Action», entrez "/usr/local/bin/MonScriptDeRotation" puis sauvegardez en cliquant "Save&Apply&Exit".
Maintenant si vous lancez xbindkeys, vous devez pouvoir effectuer la rotation de l'écran via votre script en actionnant le bouton sur le cadre.
Ajoutez le lancement de xbindkeys en l'insérant dans les scripts/programmes de démarrage de gnome via
System->Preferences->Startup Applications
 

Carte de son

Il faut charger l'empaquetage
    linux-­backports-­modules-­jaunty
et ajouter l'option
    snd-­hda-­intel   model=toshiba
à la fin du fichier
     /etc/modprobe.d/alsa­base
puis redémarrer le poste.
 

Clavier virtuel

GoK (Gnome on screen  Keyboard): Pour assistance (U. Toronto) dernier message en 2005! Supporté par Ubuntu
9.04.

Klavier (Kde): Clavier disparait sans avertissement, ajustement limité, il faut deviner certaines touches à cause
du lettrage à taille fixe.

Florence (Gnome): Ne fonctionne pas, erreur d'exécution lancé par X­Window.

GTKeyboard (Gnu): N'a pas personne pour faire avancer/
maintenir le projet.

Clavier virtuel de Ubuntu “onBoard” sur le bureau

Avec ubuntu, vous avez onBoard (onboard) déjà intégré, il suffit de l'activer avec System/Assistive Technologies/Preferred applications/Mobility.  Sélectionnez onBoard et cochez Run at Start. Ceci permet
d'avoir un clavier virtuel démarré sur le bureau. Des sections grises à droite du clavier permet de faire
apparaitre d'autes claviers (pavé numérique,.touches fonctions,....) ainsi que le menu de configuration.
Redimensionne bien, reste sur le dessus par défaut, peut être iconisé, lettrage proportionnel sur les touches, bref
utilisable.
À l'écran d'authentification «Login screen»
Il faut ajouter ces lignes ci­-dessous juste avant le exit 0 au fichier /etc/gdm/Init/Default.
 exec onboard ­x 0 ­y 470 –size=600x200 &
De plus, vous devez changer le theme du “login screen” pour "Plain" ou "plain with face browser" sinon le clavier
sera derrière le “login screen”.
Je préfère le deuxième theme car cela évite d'entrer le nom d'usager au clavier.

 

Ce qui refuse de fonctionner

L'écran tactile «touchscreen»

Wacom ne supporte pas le “touchscreen” tel qu'implanté sur le M700, une rustine «patch» est proposé par Rene
vanPaassen :

Download the isdv4.patch (8KB)
Download the linuxwacom­-0.7.9­-7.tar.bz2 (24KB)
sudo apt­-get install build­-essential tk tk-­dev patch
tar xvjf linuxwacom­-0.7.9-­7.tar.bz2
cd linuxwacom-­0.7.9-­7

patch ­p1 <../isdv4.patch
./configure
make
sudo make instal
l

Bouton console Activer/Désactiver Wifi, il est capable de le désactiver mais pour de bon  8-­(

 

 

Les applications intéressantes pour une tablette PC

Tablette-PC et projecteur

Remerciements

Ces deux sites m'ont beaucoup aidé dans cette transition de Windows à Linux sur une tablette PC :

Ainsi que de nombreux autres sites où j'ai pu glaner des informations pertinentes, merci à tous.
 

 

Annexe 1

/etc/X11/xorg.conf

# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver­xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver­xorg
# package.
#
# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-­reconfigure ­-phigh xserver-­xorg
# Section "InputDevice"
#   Driver        "wacom"
#    Identifier    "pad"
#   Option        "Device"        "/dev/input/wacom"    # USB ONLY
#  Option        "Device"        "/dev/ttyS0"         # SERIAL ONLY
#  Option        "Type"          "pad"
#   Option        "USB"           "on"                  # USB ONLY
# EndSection
# Uncomment the following section if you you have a TabletPC that supports touch
# Section "InputDevice"
#  Driver        "wacom"
#  Identifier    "touch"
#  Option        "Device"        "/dev/ttyS0"       # SERIAL ONLY
#  Option        "Device"        "/dev/input/wacom" # USB ONLY
#  Option        "Type"          "touch"
#  Option        "ForceDevice"   "ISDV4"            # Serial Tablet PC ONLY
#  Option        "USB"           "on"               # USB ONLY
# EndSection

Section "Monitor"
    Identifier "Configured Monitor"
EndSection

Section "Screen"
    Identifier "Default Screen"
    Monitor         "Configured Monitor"
    Device          "Configured Video Device"
    SubSection "Display"
     Virtual   2304 800
    EndSubSection
EndSection

Section "InputDevice"
    Driver        "wacom"
    Identifier    "stylus"

    Option        "Device"        "/dev/ttyS0"      # SERIAL ONLY
    Option        "Type"          "stylus"
    Option        "ForceDevice"   "ISDV4"           # Tablet PC ONLY
    Option "PressCurve"     "50,0,100,50"   #Pour la pression sur le stylet, bon pour Gimp
et inkscape
    Option "Button2"        "3"   #Associe le bouton laterale du stylet avec le bouton
droit de la souris
    Option "Button1"        "1"   #Associe de pousser sur la pointe du stylet avec le
bouton gauche de la souris
EndSection
Section "InputDevice"
    Driver        "wacom"
    Identifier    "eraser"
    Option        "Device"        "/dev/ttyS0"      # SERIAL ONLY
    Option        "Type"          "eraser"
    Option        "ForceDevice"   "ISDV4"           # Tablet PC ONLY
    Option "Button1"     "2"
EndSection
Section "InputDevice"

    Driver        "wacom"
    Identifier    "cursor"
    Option        "Device"        "/dev/ttyS0"      # SERIAL ONLY
    Option        "Type"          "cursor"
    Option        "ForceDevice"   "ISDV4"           # Tablet PC ONLY
    Option "Button2"            "3"
    Option "Button1"            "1"

    #  Option        "Device"        "/dev/input/wacom" # USB ONLY?
    #  Option        "USB"           "on"               # USB ONLY
    #+++++++++++++ U. Ottawa encore++++++++++++++++++
EndSection

Section "ServerLayout"
    Identifier    "Default Layout"
    Screen        "Default Screen"
    InputDevice   "stylus"  "SendCoreEvents"
    InputDevice   "eraser"  "SendCoreEvents"
    InputDevice   "cursor"  "SendCoreEvents"
# For non­LCD tablets only
#  InputDevice   "pad"                   # For Intuos3/CintiqV5/Graphire4/Bamboo tablets
# InputDevice   "touch"   "SendCoreEvents" # Only a few TabletPCs support this type
EndSection

Section "Device"
    Identifier "Configured Video Device"
    Option "RandRRotation" "True" 
    # to allow xserver to rotate the screen
    Option "DRI" "False"              # to eliminate random behavior of the mouse and the windows
EndSection
 

Annexe 2

Fichier /etc/rc.local

#!/bin/sh ­e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/bin/setserial  /dev/ttyS0  port  0x0338  irq  4  autoconfig
exit 0