Qtmoko

De openmoko-fr.

Qtmoko est l'une des distributions pouvant être installée sur le Neo Freerunner.
Basée sur Debian (ou FSO) et QtExtended, elle est orientée vers un usage de type smartphone.


Sommaire

Captures d'écran


Installation

Les téléchargements sont ici :


Deux choses à savoir
Qtmoko existe en 2 versions :
  • l'une basée sur Debian (recommandée)
  • l'autre basée sur FSO (non fonctionnelle)
Sur le Neo Freerunner, il est possible d'installer une distribution à 2 endroits distincts :
  • cas n°1 : dans la mémoire (NAND) du Freerunner (téléchargez 2 fichiers : l'image et le kernel)
  • cas n°2 : sur une carte mémoire micro-SD (téléchargez seulement l'archive au format tar.gz)

Les deux procédures sont très bien décrites (mais en anglais, quelqu'un serait motivé de traduire en français?) sur le wiki de qtmoko à cette adresse :
http://sourceforge.net/apps/mediawiki/qtmoko/index.php?title=Installation


Remarque
Pour le cas n°2, consultez au préalable la page Préparer une carte SD si vous ne savez encore pas le faire.

Les petites configurations à faire

Configuration du swap

Si vous avez créé deux partition sur votre sd depuis votre pc via fdisk, il faut éditer /etc/fstab et changer la ligne concernant le swap qui est en

 /dev/mmcblk0p4

qui signifie donc qu'il utilise la 4 ème partition pour le swap, remplacez le par

 /dev/mmcblk0p2

Configuration de l'usb

Voir dans le wiki la partie sur la configuration pour une connexion usb (deux configurations possibles)

Ajout des utilisataires mkfs-jffs2 pour faire la sauvegarde

 apt-get update
 apt-get install mtd-utils

En suite il faut tricher, en effet le script neotool vérifie via opkg que mkfs-jfss2 est installé, sauf que opkg n'est pas installé sous debian... on fait donc:

 whereis neotool

et on édite le fichier en root par exemple:

 geany /usr/bin/neotool

et on commente les lignes 481 à 484 de la sorte:

 #if [ -z "`ssh root@$FRIP 'opkg status mkfs-jffs2'`" ]; then
 #	zenity --error --text 'prerequisite mkfs-jffs2 is not installed on the device! \n\n do "opkg install mkfs-jffs2" and try again.'
 #	return
 #fi

Mettre un mot de passe root

Il est fortement conseillé de mettre un mot de passe root pour protéger un minimum votre freerunner. Pour ça ouvrez un terminal puis tapez:

 passwd 

puis entrez votre mot de passe.

configurer la date et l'heure rapide en terminal

Il faut d'abord régler le fuseau horraire:

 apt-get install tzdata-europe
 ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

IL faut aussi dans la partie qtopia basculer en paris

puis définir la date et l'heure via:

 date MMDDHHmmAA

où MM est le mois, DD le jour, HH l'heure, mm les minutes et AA l'année, tous sur deux chiffres. Par exemple, pour passer au 30 août 2004 à 11h23, la commande est, en tant que root :

 date 0830112304

Rajouter un raccourcis vers sa carte sd pour la musique

Depuis le freerunner: En partant du principe que sur votre carte SD vous avez un dossier datas/:

 cd /home/root/Documents
 ln -s /media/card/datas/ ./sdCard

La musique doit être placée dans /media/card/datas/audio/mpeg (pour les mp3)

Créer un fichier de swap

Sous Qtmoko, dans le terminal, créer un fichier de swap sur la carte µSD :

créer un fichier vide avec dd (ici de 128mo)  :

dd if=/dev/zero of=/path/to/swapfile bs=1M count=128

préparer le swap :

 mkswap /path/to/swapfile

l'activer :

swapon /path/to/swapfile

Si vous voulez que ça persiste, il faut soit refaire le swapon swapfile à chaque boot, soit modifier le fichier /etc/fstab pour qu'il ressemble à :

# /dev/mmcblk0p4 swap      swap    defaults                           0 0
....
/path/to/swapfile               swap                    swap    defaults        0 0


Les petits Bobos

La carte Sim n'est pas reconnue

Il est vraisemblable que la manière dont on met en place la carte sim dans son logement a des conséquences sur le fait que QT reconnait ou pas la carte. Fait déjà constaté : une fois la carte sim positionnée et le carter métallique "locké", le fait de repousser la carte (dans l'autre sens de la translation qui a été nécessaire pour "locker" le carter) permet vraisemblablement à Qtmoko de mieux reconnaître la carte.

GPG Error pkg-fso

Il se peut qu'au premier apt-get update vous ayez l'erreur suivante :

W: GPG error: http://pkg-fso.alioth.debian.org unstable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E2B9DE6A8E7B323B
W: You may want to run apt-get update to correct these problems

Voici la solution :

apt-get install pkg-fso-keyring && apt-get update

Le screen clignote après changement de résolution

A faire pour gagner en stabilité d'affichage ==> n'est plus nécessaire à partir de la V15 :

Editer le fichier suivant depuis le freerunner

  /etc/fb.modes

Et remplacer par:

 mode "vga"
   geometry 480 640 480 1280 16
   timings 40816 8 16 2 16 8 2
   rgba 5/11,6/5,5/0,0/0
 endmode

 mode "qvga"
   geometry 480 640 480 1280 16
   timings 100000 8 16 2 16 8 2
   rgba 5/11,6/5,5/0,0/0
 endmode

Les petites Astuces

Importer ses contacts

Voir la page Importer un carnet_d'adresses

Transférer des fichiers

Voici quelques méthodes pour transférer des fichiers en votre neo et un ordinateur.

  • Par USB en mode "clé USB"
    1. aller dans "Devtools"
    2. sélectionner "USB mass storage on"
    3. brancher le cordon USB => le neo est détecté comme un périphérique de stockage type clé USB
    4. sélectionner "USB mass storage off" dans "Devtools" une fois terminé
  • Par USB avec la commande scp (depuis l'ordinateur vers le neo, remplacez les chemin de l'adresse IP) :
scp /chemin_PC/fichier root@192.168.0.202:/chemin_Neo/
  • Par Wifi (mail, site web, ...) <a compléter>
  • Par bluetooth <a compléter>
  • Par carte micro SD <a compléter>

Le son est trop faible !

Pas de problème. Une solution existe !!
Par l'interface graphique : régler les niveaux dans Main menu > Applications > NeoControl > Call Volume settings

Autre méthode : il suffit de remplacer les scénarios alsa gsmhandset et gsmheadset par ceux d'une SHR unstable. C'est ti' pas Beautiful ???

Pour changer de sonnerie...

Par l'interface graphique :

  • définir une sonnerie par contact : Main menu > Contacts > ouvrir le contact > Edit > Ringtone (dernier onglet)
  • définir une sonnerie par groupe : Main menu > Contacts > Show groups (via le menu) > Set group Ringtone (via le menu)
  • définir une sonnerie par profil : Main menu > Settings > Profiles > choisir un profil > Edit (via le menu) > Tones

Autre méthode : vous trouverez les fichiers à remplacer ici : opt/qtmoko/etc/SystemRingTone

Activer le "DeepSleep" et le "Multiplexing"

Pour ceux qui ont un Freerunner Autonofixer (Bug #1024), pour activer le DeepSleep ainsi que le "Multiplexing" (utilisation du GPRS et du GSM en même temps pour pouvoir recevoir un appel pendant un surf), il suffit de :

  1. lancer neocontrol (dans les applications)
  2. faire "next" jusqu'à la page "modem settings"
  3. cocher les cases
  4. éteindre et redémarrer le neo

Autre méthode : éditer le fichier /opt/qtmoko/etc/default/Trolltech/Modem.conf de la manière suivante :

 [DeepSleep]
 Active=always  #<--default never
 
 [Multiplexing]
 Active=yes     #<--default no

Ajout d'applications pour Qtmoko

Il est possible d'ajouter des applications supplémentaires à celles de la distribution (pour celà il faut un accès au WEB depuis le FR).

Pour cela, faites :

  • Main menu > Settings > Software Packages
  • Onglet Downloads
  • Menu > Connect > QtMoko

En voici une liste :

  • Arora : Web browser fonctionnel !
  • Codecs : Sert à lire le mp3 dans la distrib. On peut supprimer le paquet après installation des codecs
  • Keyboard-skin-silver : Avoir un clavier chromé ?
  • Keyboard-russian-abc : Un clavier russe ?
  • Eyepiece : Lecteur de pdf
  • Keypebble : Un client VNC
  • Mqutim : Un client de méssagerie instantanné qui supporte ICQ, Jabber et Gtalk
  • Noxchat : Client IRC
  • Qalsamixer : De quoi régler le volume du neo
  • Qgoogletranslate : Un traducteur
  • Qtpedometer : Un podomètre qui utilise le GPS
  • Shopper : Faire sa liste de course
  • QSolitaire : un solitaire :)
  • neronGPS: un équivalent à tango gps mais sans serveur X.
  • QMokoPlayer: un player multimedia pour qtmoko. Cette première version permet d'écouter des webradios. :)

Liste complète : http://qtmoko.sourceforge.net/apps/

Il est également possible d'ajouter des applications Debian avec Settings > R(apt)or

Ajout d'applications qui nécessitent un serveur X

Il est possible de lancer des applications qui nécessitent le serveur X grâce à l'application QX Applications > Qx. Celà nous permet de bénéficier d'un panel d'applications encore plus grand. Oui, les applications "natives" ou "portées" ne foisonnent pas mais çà ne saurait tarder ;)

Navit

navit a été intégré aux dépots debian testing et unstable, il suffit donc d'ajouter à /etc/apt/sources.list

deb http://ftp.de.debian.org/debian testing main 

Pour éviter de passer à testing pour tous les packages, on va créer un fichier /etc/apt/preferences pour qu'apt utilise les dépots testing que si il n'y a pas de version du logiciel disponible dans le dépôt stable. Voici ceux à quoi il doit ressembler

Package: *
Pin: release o=Debian, a=stable, l=Debian
Pin-Priority: 800

Package: *
Pin: release o=Debian, a=testing, l=Debian
Pin-Priority: 400

Ensuite faire :

apt-get update 
apt-get -t testing install libdbus-glib-1-2 libgps19 libfontconfig1
apt-get install navit flite

Navit utilise un fichier de config navit.xml, qui se trouve par défaut dans /etc/navit/. Bien que le FR n'ait pas de raison d'avoir plusieurs utilisateurs, c'est plus propre de copier ce fichier dans ~/.navit/

mkdir .navit
cp /etc/navit/navit.xml ~/.navit/

Il faut savoir aussi que le home de root en ssh est /root/ et que celui du root sur le FR est /home/root/ On va donc faire un lien entre les deux dossiers .navit :

ln -s /root/.navit/ /home/root/

Pour finir, il faut lancer Qx, et gérer les favoris pour faire afficher l'icône de Navit dans Qx : Menu > Favourites > "Cocher Navit"

Navit apparait dans la liste, le sélectionner puis : Menu > Settings"

Dans "initialization script", inscrire "gpsd /dev/ttySAC1" (sans les guillemets)

Ensuite, cocher:

  • Prevent Suspending
  • Prevent Dimming
  • Use window manager
  • Enable GPS module

Si Navit ne fixe pas le gps même après un long moment, il se peut que le démon gpsd ne soit pas installé, dans ce cas il faut l'installer:

apt-get install gpsd

Voilà, c'est prêt. Y'a plus qu'à sélectionner Navit > Menu > Launch


Merci à Gand' voir le sujet dans le forum. Pour plus de réglages, je vous invite à consulter la page Navit du wiki

Il est aussi possible de consulter la page (en anglais) dédié à navit sur le wiki QtMoko.

TangoGPS

déjà installé <a compléter>

Le saviez vous?

Cette catégorie rescence des astuces et fonctionnement de la distrib qu'on ne voit pas forcément

Différentes méthodes de saises

Qtmoko propose au moins 4 méthode de saisie :

  • reconnaissance d'écriture
  • clavier par défaut (glisser à la verticale pour basculer entre majuscules / minuscules / chiffres / autres)
  • un équivalent au clavier terminal (avec pavé numérique masquable via le rectangle vert)
  • un clavier plus gros mais basique

Il faut passer par le menu > "change input method" pour passer de l'une à l'autre

Multitâche

On peux basculer d'une application à l'autre en appuyant sur le bouton AUX.

Un appui long sur AUX ouvre même un menu "task manager". Quand tu sélectionnes une tâche en restant appuyé dessus, un menu s'ouvre permettant de la tuer si elle est plantée.

fast load

Cette astuce vous permet de lancer instanément une application. En fait l'application est chargé au lancement et reste en mémoire. Pratique pour laisser continuellement une application à laquelle vous accédez souvent. Pour cela sélectionnez un programme (sans le lancer) puis cliquer sur la liste avec la flèche jaune vers le haut en bas puis cochez fast load.

Ajouter un réseau wifi

Allez dans le menu settings (clef + tourne vis croisé) => internet.

Passage à ne faire qu'une seule fois pour rajouter la carte wifi

  • Cliquez sur le bouton gauche en bas (le bouton menu) puis New
  • Sélectionnez Wireless LAN


Passage à faire pour chaque Point d'accès wifi

Si vous avez rajoutez la Wireless LAN et que vous êtes sur le menu internet, selectionnez wireless LAN puis cliquez sur propriété, si vous venez juste de rajouter Wireless LAN vous êtes déjà dans le menu propriété.

  • Accout: rien à faire ici, sauf changer le nom qui va s'afficher sur le menu internet si vous le souhaitez.
  • Wireless Networks: c'est ici que vous allez rajouter vos réseaux wifi (ESSID en général), Pour cela cliquez sur la feuille avec un + (à côté de la poubelle puis entrez l'essid de votre réseaux wifi (son nom)).

Vous pouvez éventuellement entrer un nickname, vous pouvez forcer un débit si vous le souhaitez. La ligne acces point contiendra l'adresse mac de votre point d'accès, mais elle se remplira automatiquement à la connexion.

  • Ip settings: rien à faire ici sauf si vous souhaitez forcer une adresse ip et désactiver le dhcp
  • Proxy settings: configuration du proxy si besoin
  • Wireless Encryption: vous permet de configurer la clef le type de sécurité (open WPA Etc): pour cela

Sur la première ligne sélectionnez l'essid de votre réseau, puis choisissez la sécuritée et remplissez les champs de manière adéquate.

Cette partie est à faire pour chaque point d'accès ou vous voulez vous connecter.

Connexion

Pour vous connecter, revenez sur le menu internet puis selectionnez Wireless LAN puis cliquez sur start. Si tout se passe bien il doit passer en "online" et vous voilà connecté au wifi. :)

Compilation, développement, traduction

En vrac

Pour créer, vous pouvez utiliser Qt Creator

Compilation et développement

Prévoir 5/6h devant soi... Pour cette exemple la compilation sera faite dans un repertoire freerunner de votre home car en général on n'a pas énormément de place sur la partition racine. Nous partons donc du principe que le fichier/home/user/freerunner existe. (remplacez user par ce que vous voulez)

 su
 mkdir -p /home/user/freerunner/build_qtmoko
 cd /home/user/freerunner/
 git clone git://github.com/radekp/qtmoko.git
 cd qtmoko
 git submodule init
 git submodule update

Nous avons maintenant récupéré les sources, et nous avons un qtmoko dans /home/user/freerunner/

Récupérons le toolschain nécéssaire à la crosscompilation

 cd /opt
 echo "export QTOPIA_DEPOT_PATH=/home/user/freerunner/qtmoko" > setpaths 
 echo "export QPEDIR=/home/user/freerunner/build_qtmoko" >> setpaths
 . setpaths
 wget http://qtextended.org/downloads/toolchains/arm920t-eabi.tgz
 tar xzvf arm920t-eabi.tgz 
 mv opt/toolchains ./
 rm -rf opt

Le . /opt/setpaths sera à faire à chaque fois que vous ouvrez un nouveau terminal. (vous pouvez le rajouter dans la définition de votre terminal si vous le souhaitez

Créons l'image et le sdk nécéssaire à la cross compilation (Etape longue! cela peut prendre plus d'une heure pour le make, jusqu'a 2h pour le make image et 20/30 minutes pour le build sdk)

 cd /home/user/freerunner/build_qtmoko
 user [/home/user/freerunner/build_qtmoko] : ../qtmoko/configure -device neo -D _FORTIFY_SOURCE=0 -rtti -confirm-license
 user [/home/user/freerunner/build_qtmoko] : make
 user [/home/user/freerunner/build_qtmoko] : make image
 user [/home/user/freerunner/build_qtmoko] : bin/qbuild sdk
 user [/home/user/freerunner/build_qtmoko] : ../qtmoko/configure -device neo -D _FORTIFY_SOURCE=0 -rtti -confirm-license

Si vous voulez mettre à jour qtmoko côté freerunner (sans le noyau juste le framework qtextended)

 scp -r $QPEDIR/image/* 192.168.0.202:/opt/qtmoko

Et c'est bon maintenant on peut développer

Crer un repertoire /home/user/freerunner/build_qtmoko/myapps. Copier l'application example fournie par le SDK et renommez-là en quelque chose qui a du sens (Qu'est-ce que vous diriez de "Exemple" ?). Créer le Makefile et construire l'example.

mkdir /home/user/freerunner/build_qtmoko/myapps
cd /home/user/freerunner/build_qtmoko/myapps
cp -R $QTOPIA_DEPOT_PATH/examples/application .
mv application example
cd example
$QPEDIR/bin/qbuild

Maintenant vous avez un executable qui s'appelle example (Wahou!). Il ne s'exécutera pas sur votre PC alors copiez-le dans votre FreeRunner, importez les variable d'environnement qpe et executez l'appli.

desktop# scp example root@freerunner:/home/root
root@192.168.0.202's password: 
example                                      100%    33KB  33.4KB/s   00:00    
desktop# ssh 192.168.0.202
root@freerunner's password: 
freerunner:~# . /opt/qtmoko/qpe.env 
freerunner:~# chmod +x example
freerunner:~# ./example

(ou vous pouvez aussi le lancer depuis le freerunner en ouvrant un terminal et en faisant juste ./example)

Voici ce que vous pourrez observer :


en suivant la partie de qtextended: http://openmoko-fr.org/wiki/index.php/Qt-extended-improved


La résolution de qtextended disponible sans fullscreen est de: 480*500

Traduction

http://qtmoko.org/wiki/Translations (attention c'est supra long!)