Présentation
Le Neo Freerunner est le premier téléphone mobile Libre du monde. Tout à chacun peut obtenir les plans de fabrication, le code source du système d’exploitation et de l’ensemble des applications. Pour notre plus grand bonheur donc !
Bien que je présente l’OpenMoko dans un article du BlankoJoueb, voici un petit aperçu de la bête :

Mon opinion
Je suggère une séparation par les PLUS et les MOINS :
PLUS
- Écran tactile, pour un smartphone c’est normal me direz vous, mais pas tellement !
- La forme qui me fascine et qui m’a toujours manquée depuis le dernier téléphone que j’avais eu et qui possédait la même forme
- GPRS, Wifi, Bluetooth et… GPS !
- Connexion SSH possible
- Modification et ajout de fonctionnalitées possibles de soi-même (ce qui ajoute un MOINS : être un bidouilleur)
- Une communauté sans cesse grandissante qui apporte de la valeur ajoutée sans commune mesure plus florissante que tout les autres téléphones
MOINS
- Pas de module caméra/vidéo (ou alors il est bien planqué)
- Vous souhaitez l’utiliser ? Bah faut être un bidouilleur né… et connaître un peu Linux, sinon vous êtes foutu pour le mettre à jour
Connecter l’OpenMoko à l’ordinateur
Via USB
Sur l’ordinateur :
sudo ifconfig usb0 up
sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0
Via Wifi (sur réseau ouvert)
Votre ordinateur doit être connecté au même réseau Wifi et/ou au réseau local où vous vous situez.
Sur l’OpenMoko, ouvrir une console et faire :
Réseau ouvert
Le nom du réseau ici se nommera RESEAU.
ifconfig eth0 up
iwconfig eth0 essid RESEAU ap any
dhclient eth0
Réseau WEP
Le nom du réseau est WEPNET, sur le canal 11, la clé WEP est C88D85F9A2.
ifconfig eth0 up
iwconfig eth0 essid WEPNET channel 11 key open C88D85F9A2 ap any
dhclient eth0
Obtenir la connexion internet
- Installez ipatables
- Sous ArchLinux :
sudo pacman -S iptables - Sous Debian :
apt-get install iptables
- Sous ArchLinux :
- Activer la redirection par (sous ArchLinux) :
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
- Ouvrez le fichier /etc/sysctl.conf et changez la ligne correspondante tel que :
net.ipv4.ip_forward=1
Sous Debian vous pouvez utiliser la commande suivante (merci à Alexandre FRANKE pour cette remarque) :
sudo sysctl -w net.ipv4.ip_forward=1
Sur l’ordinateur, il faut activer le routage sur le périphérique eth0 qui est celui qui reçoit la connexion internet :
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
Si vous voulez automatiser la tâche, il faut ajouter la commande dans un script.
- Sous ArchLinux faites :
sudo echo "iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE" >> /etc/rc.local
Clavier
Le clavier fourni dans la version de base du Neo Freerunner n’est pas particulièrement plaisante, il vaut mieux en changer.
Installer le clavier matchbox-keyboard
J’ai opté pour le matchbox-keyboard qui est très utile, bien moins ennuyeux que l’interface “sms” et qui a l’avantage de pouvoir faire des / (barre oblique) mais aussi de perdre moins de temps à taper plusieurs fois sur une touche avant d’avoir le bon caractères… nous avons donc plus de caractères. Attention cependant, cela requiert l’utilisation d’un stylet, les touches étant trop petites pour la pression d’un ou plusieurs doigts.
- Faites :
opkg update
opkg install matchbox-keyboard-inputmethod
opkg install matchbox-keyboard-im
opkg install matchbox-keyboard-applet
- Puis modifiez le fichier /etc/matchbox/session afin d’obtenir quelque chose comme :
#!/bin/sh
SHOWCURSOR="no"
openmoko-today &
phone-kit &
matchbox-window-manager -use_titlebar yes -use_desktop_mode decorated -theme Moko -use_cursor $SHOWCURSOR $@ &
matchbox-panel-2 --start-applets systray,startup --end-applets openmoko-panel-clock,keyboard,openmoko-panel-battery,openmoko-panel-gsm,openmoko-panel-gps,openmoko-panel-usb
exec neod
J’ai donc ajouté dans mon fichier les mots suivants : openmoko-panel-clock,keyboard,. Tout simplement.
Après redémarrage de votre téléphone, l’heure (à droite) et le clavier (sur la gauche de l’indication horaire) devraient apparaître sous forme d’icône.
matchbox-keyboard en français
Maintenant que nous avons un clavier pour notre Neo Freeruner, tentons de le franciser !
- Ajouter le fichier keyboard-fr.xml dans le répertoire /usr/share/matchbox-keyboard et éditez le pour ajouter ceci :
<?xml version="1.0" encoding="UTF-8"?>
<keyboard>
<!--
FR keyboard layout by Olivier Dossmann <olivier@dossmann.net>
-->
<options>
<!-- not yet implemented -->
</options>
<layout id="default keyboard">
<!--
<row>
<key>
<default display="ヂ" />
</key>
<key>
<default display="Ӫ" />
</key>
<key width="1500">
<default display="Ω" />
</key>
<space width="1500" />
<key fill="true">
<default display="⠿" />
</key>
</row>
-->
<row>
<space width="500" extended="true"/>
<key fill="true">
<default display="Échap" action="escape" />
</key>
<key>
<default display="œ" />
<shifted display="Œ" />
</key>
<key>
<default display="&" />
<shifted display="1" />
</key>
<key>
<default display="é" />
<shifted display='2' />
<mod1 display="~" />
</key>
<key>
<default display='"' />
<shifted display="3" />
<mod1 display="#" />
</key>
<key>
<default display="'" />
<shifted display="4" />
<mod1 display="{" />
</key>
<key>
<default display="(" />
<shifted display="5" />
<mod1 display="[" />
</key>
<key>
<default display="-" />
<shifted display="6" />
<mod1 display="|" />
</key>
<key>
<default display="è" />
<shifted display="7" />
<mod1 display="`" />
</key>
<key>
<default display="_" />
<shifted display="8" />
<mod1 display="<br/>" />
</key>
<key>
<default display="ç" />
<shifted display="9" />
<mod1 display="^" />
</key>
<key>
<default display="à" />
<shifted display="0" />
<mod1 display="@" />
</key>
<key>
<default display=")" />
<shifted display="°" />
<mod1 display="]" />
</key>
<key>
<default display="=" />
<shifted display="+" />
<mod1 display="}" />
</key>
<key fill="true">
<default display="Ret" action="backspace"/>
</key>
<space width="500" extended="true"/>
<key width="4000" extended="true">
<default display="Home" action="home"/>
</key>
<key width="4000" extended="true">
<default display="PgPréc" action="pageup"/>
</key>
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key fill="true">
<default display="Tab" action="tab"/>
</key>
<key obey-caps='true'>
<default display="a" />
<shifted display="A" />
<mod1 display="â" />
</key>
<key obey-caps='true'>
<default display="z" />
<shifted display="Z" />
<mod1 display="å" />
</key>
<key obey-caps='true'>
<default display="e" />
<shifted display="E" />
<mod1 display="€" />
</key>
<key obey-caps='true'>
<default display="r" />
<shifted display="R" />
<mod1 display="ç" />
</key>
<key obey-caps='true'>
<default display="t" />
<shifted display="T" />
<mod1 display="þ" />
</key>
<key obey-caps='true'>
<default display="y" />
<shifted display="Y" />
<mod1 display="ý" />
</key>
<key obey-caps='true'>
<default display="u" />
<shifted display="U" />
<mod1 display="û" />
</key>
<key obey-caps='true'>
<default display="i" />
<shifted display="I" />
<mod1 display="î" />
</key>
<key obey-caps='true'>
<default display="o" />
<shifted display="O" />
<mod1 display="ô" />
</key>
<key obey-caps='true'>
<default display="p" />
<shifted display="P" />
<mod1 display="¶" />
</key>
<key>
<default display="^" />
</key>
<key>
<default display="$" />
<shifted display="£" />
<mod1 display="ê" />
</key>
<key fill="true">
<default display="Entrée" />
</key>
<space width="500" extended="true"/>
<key width="4000" extended="true">
<default display="Fin" action="end"/>
</key>
<key width="4000" extended="true">
<default display="PgSuiv" action="pagedown"/>
</key>
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key fill="true">
<default display="Maj." action="modifier:caps"/>
</key>
<key obey-caps='true'>
<default display="q" />
<shifted display="Q" />
<mod1 display="Â" />
</key>
<key obey-caps='true'>
<default display="s" />
<shifted display="S" />
<mod1 display="ø" />
</key>
<key obey-caps='true'>
<default display="d" />
<shifted display="D" />
<mod1 display="Ê" />
</key>
<key obey-caps='true'>
<default display="f" />
<shifted display="F" />
<mod1 display="±" />
</key>
<key obey-caps='true'>
<default display="g" />
<shifted display="G" />
<mod1 display="æ" />
</key>
<key obey-caps='true'>
<default display="h" />
<shifted display="H" />
<mod1 display="ð" />
</key>
<key obey-caps='true'>
<default display="j" />
<shifted display="J" />
<mod1 display="Û" />
</key>
<key obey-caps='true'>
<default display="k" />
<shifted display="K" />
<mod1 display="Î" />
</key>
<key obey-caps='true'>
<default display="l" />
<shifted display="L" />
<mod1 display="Ô" />
</key>
<key>
<default display="m" />
<shifted display="M" />
<mod1 display="¹" />
</key>
<key>
<default display="ù" />
<shifted display="%" />
<mod1 display="²" />
</key>
<key>
<default display="*" />
<shifted display="µ" />
<mod1 display="³" />
</key>
<key fill="true">
<default display="Entrée" action="return"/>
</key>
<space width="500" extended="true"/>
<space width="4000" extended="true" />
<space width="4000" extended="true" />
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key fill="true">
<default display="Shift" action="modifier:shift"/>
</key>
<key>
<default display=">" />
<shifted display="<" />
<mod1 display="|" />
</key>
<key obey-caps='true'>
<default display="w" />
<shifted display="W" />
<mod1 display="«" />
</key>
<key obey-caps='true'>
<default display="x" />
<shifted display="X" />
<mod1 display="»" />
</key>
<key obey-caps='true'>
<default display="c" />
<shifted display="C" />
<mod1 display="©" />
</key>
<key obey-caps='true'>
<default display="v" />
<shifted display="V" />
<mod1 display="®" />
</key>
<key obey-caps='true'>
<default display="b" />
<shifted display="B" />
<mod1 display="ß" />
</key>
<key obey-caps='true'>
<default display="n" />
<shifted display="N" />
<mod1 display="¬" />
</key>
<key obey-caps='true'>
<default display="," />
<shifted display="?" />
<mod1 display="¿" />
</key>
<key>
<default display=";" />
<shifted display="." />
<mod1 display="×" />
</key>
<key>
<default display=":" />
<shifted display="/" />
<mod1 display="÷" />
</key>
<key>
<default display="!" />
<shifted display="§" />
<mod1 display="¡" />
</key>
<key fill="true">
<default display="Shift" action="modifier:shift"/>
</key>
<space width="500" extended="true"/>
<space width="4000" extended="true" />
<space width="4000" extended="true" />
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key>
<default display="[->]" action="modifier:layout"/>
</key>
<key fill="true">
<default display="Ctrl" action="modifier:ctrl"/>
</key>
<key>
<default display="äëö" action="modifier:mod1"/>
</key>
<key>
<default display="Alt" action="modifier:alt"/>
</key>
<key width="12000">
<default display=" " action="space" />
</key>
<key>
<default display="^" action="up" />
</key>
<key>
<default display="V" action="down" />
</key>
<key>
<default display="<" action="left" />
</key>
<key>
<default display=">" action="right" />
</key>
<space width="500" extended="true"/>
<space width="4000" extended="true" />
<space width="4000" extended="true" />
<space width="500" extended="true"/>
</row>
</layout>
</keyboard>
- Puis modifier le fichier /etc/X11/Xsession.d/80matchboxkeyboard pour changer toutes les commandes matchbox-keyboard en ajoutant fr à la fin, ce qui donne ainsi :
#!/bin/sh
CMD=""
if [ "$DISPLAY_CAN_ROTATE" = "1" ]; then
if [ "$HAVE_KEYBOARD_PORTRAIT" = "1" -a "$HAVE_KEYBOARD_LANDSCAPE" = "0" ]; then
CMD="matchbox-keyboard -d -o landscape fr"
elif [ "$HAVE_KEYBOARD_LANDSCAPE" = "1" -a "$HAVE_KEYBOARD_PORTRAIT" = "0" ]; then
CMD="matchbox-keyboard -d -o portrait fr"
fi
else
CMD="matchbox-keyboard -d fr"
fi
# Delay to make sure the window manager is active
if [ "$CMD" ]; then
(sleep 2 && $CMD) &
fi
- Redémarrer votre téléphone, cela devrait fonctionner, votre clavier apparaît en mode FR
Liens utiles
- Site officiel
- Guide de démarrage rapide
-
Dépôts du projet Openmoko
(anciennement
http://buildhost.openmoko.org/) - Site donnant quelques idées de logiciels pour l'OpenMoko (Edit 2026 : lien remplacé par son équivalent WebArchive.org de 2009)
- Wiki francophone de l’expérience d’un utilisateur et des commandes utilisées (Edit 2026 : lien mort, anciennement connu sous
http://wiki.troulite.fr/index.php?title=NeoFreerunner)
En vrac
- Discussion de l'OpenMoko sur DLFP
- Détection de mouvements (Edit 2026 : lien mort, anciennement connu sous
http://digg.com/gadgets/Openmoko_Neo_Freerunner_Motion_Gestures_Screen_Orientation_2)
Notes diverses / Recherches
Franciser
Fichiers possibles :
/opt/Qtopia/etc/default/Trolltech/locale.conf: permet de configurer la langue utilisée par Qtopia/usr/lib/enlightenment/modules/: contient pleins de fichiers .desktop à franciser !
Le nom des icônes du menu principal dans /usr/share/applications/, de là on ouvre chaque fichier pour changer le paramètre “Name”.
Carte géographique libre
- https://www.openstreetmap.org/ : site officiel de la cartographie Libre => trouver comment les aider