Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:comment_connecter_un_pda_sous_windows_mobile_5_en_usb [Le 22/09/2010, 22:37]
41.248.176.126 rapport d'installation
— (Version actuelle)
Ligne 1: Ligne 1:
-{{tag>​feisty tutoriel pda}} 
----- 
  
-====== Comment connecter un smartphone sous Windows Mobile 5 en USB ? (mode synchronisation série USB) ====== 
- 
-<note warning>​Cette méthode fonctionne pour l'​ancienne mode de synchronisation série USB. Pour la connexion RNDIS voir la page [[:​tutoriel:​sync_wm5-6]].</​note>​ 
- 
-NB : A seulement été testé sur Ubuntu 7.04 où cela fonctionne correctement. 
- 
-Ce tuto vous permettra enfin de pouvoir connecter votre smartphone à ubuntu en USB, ce qui vous permettra de naviguer dans son système de fichier afin d'y ajouter des fichiers (installation de .cab, jar, photos, vidéos, musiques etc) ou bien d'en récupérer (photos, vidéos etc) ; de cette manière, votre mobile se comportera comme une clé USB sans avoir à utiliser WM5Storage. 
-=====Pré-requis===== 
- 
-Il vous faut un mobile utilisant windows mobile 5 de type SPV c600, SPV C100, qtek 8500 etc. 
- 
- 
- 
-=====Installation===== 
- 
-Nous allons débuter par l'​installation du plus basique : synce-trayicon 
- 
-  wget http://​kuci.org/​~teddy/​ubuntu/​synce-software-manager_0.9.0-2_i386.deb 
-  wget http://​kuci.org/​~teddy/​ubuntu/​synce-trayicon_0.9.0-2_i386.deb 
-  sudo dpkg -i synce-software-manager_0.9.0-2_i386.deb synce-trayicon_0.9.0-2_i386.deb 
-  sudo ln -si /​usr/​lib/​libgtop-2.0.so.7 /​usr/​lib/​libgtop-2.0.so.2 
- 
-Remarque : si vous avez une erreur qui vous dit qu'il y a des dépendances manquantes, faites : 
- 
-  sudo apt-get install -f 
- 
-puis : 
- 
-  sudo ln -si /​usr/​lib/​libgtop-2.0.so.7 /​usr/​lib/​libgtop-2.0.so.2 
- 
- 
-Maintenant, ajoutons le programme synce-trayicon au démarrage du système afin que l'​applet se charge automatiquement à chaque fois 
-Allez dans Système => Préférences => Sessions => Programmes au démarrage et ajoutez une nouvelle entrée avec la commande : 
- 
-  synce-trayicon 
- 
- 
- 
- 
- 
-=====Installation du pilote RNDIS===== 
- 
-nous allons maintenant installer les paquets nécessaires à la compilation du pilote générique RNDIS : 
- 
-  sudo apt-get install libglib2.0-dev libusb-dev build-essential autoconf automake1.9 libtool libgnet-dev libhal-dev libhal-storage-dev libdbus-glib-1-dev subversion linux-headers-`uname -r` python-dbus python-dev 
- 
-Maintenant rapatrions les pilotes en utilisant SVN : 
- 
-  sudo svn checkout https://​synce.svn.sourceforge.net/​svnroot/​synce/​trunk/​libsynce 
-  sudo svn checkout https://​synce.svn.sourceforge.net/​svnroot/​synce/​trunk/​librapi2 
-  sudo svn checkout https://​synce.svn.sourceforge.net/​svnroot/​synce/​trunk/​odccm 
-  sudo svn checkout https://​synce.svn.sourceforge.net/​svnroot/​synce/​trunk/​synce-gnome 
- 
- 
- 
-===Compilation de libsynce==== 
- 
-Commençons par compiler libsynce ; entrez les commandes suivantes ligne par ligne : 
- 
-  cd libsynce/ 
-  sudo ./​autogen.sh 
-  sudo ./bootstrap 
-  sudo ./configure --enable-desktop-integration 
-  sudo make 
-  sudo make install 
-  cd .. 
-  
-Un probleme a partir de sudo ./bootstrap il me semble (jmschlaich[@)gmail.com) 
- 
- 
- 
-=====Compilation de librapi====== 
- 
-Même chose que pour libsynce : 
- 
-   echo "/​usr/​local/​lib"​ | sudo tee -a /​etc/​ld.so.conf 
-   sudo ldconfig 
-   cd librapi2/ 
-   sudo ./bootstrap 
-   sudo ./configure 
-   sudo make 
-   sudo make install 
-   cd .. 
- 
-Lors de l'​installation de la librairie il peut y avoir une erreur si vous n'avez pas le paquet python-pyrex qui provoquera une erreur RAPI avec PLS par la suite.\\ ​ 
-Vous aurrez ce message ///​bin/​bash:​ pyrexc : commande introuvable//​ si vous n'avez pas le paquet lors du make install. 
- 
-* juste une précision : ne pas oublier les sudo ! (brioche) 
- 
- 
-=====Compilation de ODCCM===== 
- 
-  cd odccm/ 
-  sudo autoreconf -i 
-  sudo ./configure 
-  sudo make 
-  sudo make install 
-  sudo cp data/​dbus/​odccm.conf /​etc/​dbus-1/​system.d/​ 
-  cd .. 
- 
- 
- 
-=====Installation du pilote USB===== 
- 
-Maintenant, nous allons repèrer quel est le pilote USB adapté à votre appareil : pour cela, rendez vous [[http://​www.synce.org/​oldwiki/​index.php/​Windows_Mobile_2005_HCL|ICI]] ​ 
-Pour ceux qui possèdent un Qtek 8500, il faut utiliser le pilote IPAQ qui est déja inclus dans le noyau. 
- 
-Éditez le fichier /​etc/​modules,​ ce fichier liste les modules qui seront chargés automatiquement au démarrage : 
- 
-  gksudo gedit /​etc/​modules 
- 
-et ajoutez tout en bas du fichier : 
- 
- 
-  ipaq 
- 
-savegardez puis fermez gedit. 
- 
-Pour ceux qui possèdent un SPV C600, il leur faudra installer rndis_lite : 
- 
-   svn co https://​synce.svn.sourceforge.net/​svnroot/​synce/​trunk/​usb-rndis-lite 
-   cd usb-rndis-lite/​ 
-   make 
-   sudo ./clean.sh 
-   sudo make install 
-   cd .. 
- 
-si vous avez besoin d'​installer rndis-ng, faites ceci : 
- 
-  sudo apt-get install libhal-dev libhal-storage-dev 
-  svn co https://​synce.svn.sourceforge.net/​svnroot/​synce/​trunk/​usb-rndis-ng 
-  cd usb-rndis-ng/​ 
-  ./​autogen.sh 
-  ./configure --enable-hal 
-  make 
-  sudo make install 
-  cd .. 
- 
-Si tout s'est bien passé, débranchez puis rebranchez votre téléphone puis exécutez ceci : 
- 
-  sudo dhclient3 rndis0 
- 
-le terminal devrait vous retourner une réponse de ce genre : 
- 
-  DHCPREQUEST on rndis0 to 255.255.255.255 port 67 
-  DHCPACK from 169.254.2.1 
-  bound to 169.254.2.2 -- renewal in 1267550 seconds. 
- 
-si cela est le cas, attaquons nous maintenant à odccm : 
- 
-    sudo odccm -f 
- 
-et dans un autre terminal : 
- 
-  pls 
- 
-le terminal devrait vous retourner une liste de fichier. 
- 
-Si vous possédez un Qtek 8500 et que rien ne se passe, vous obtenez une erreur, n'y faites pas attention et attaquez vous plutôt aux étapes suivantes. 
- 
- 
-=====Configuration de Firestarter===== 
- 
-Passez cette étape si vous n'avez pas installé Firestarter. 
- 
-Si vous avez installé Firestarter,​ il se peut qu'il bloque les connexions entrantes et empêche Synce de connecter votre mobile. 
- 
-Pour y remèdier, configurez firestarter en ouvrant un Terminal et en tapant : 
-    cd /​etc/​firestarter 
-    sudo chmod +w user-pre 
-    sudo gedit /​etc/​firestarter/​user-pre 
- 
-Ajoutez au fichier : 
- 
-   $IPT -A INPUT -i rndis0 -j ACCEPT 
-   $IPT -A OUTPUT -o rndis0 -j ACCEPT 
- 
-enregistrez puis fermez le fichier, puis : 
- 
-   sudo chmod u-w /​etc/​firestarter/​user-pre 
- 
- 
-=====Activer la navigation à l'​intérieur du smartphone avec Nautilus===== 
- 
-Si nous voulons naviguer à l'​intérieur des fichiers du smartphone avec nautilus, nous devons en installer le support : 
- 
-  sudo apt-get install librapi2 librapi2-dev librapi2-tools librra0 librra0-dev librra0-tools libsynce0 libsynce0-dev synce-dccm synce-serial libgnomevfs2-dev gcc-3.3 
- 
-puis : 
- 
-  cd /usr/lib 
-  sudo ln -s libsynce.so.0.0.0 libsynce.so 
-  sudo ln -s librapi.so.2.0.0 librapi.so 
- 
-maintenant on compile : 
- 
-   cd ~ 
-   ​export CC=/​usr/​bin/​gcc-3.3 
-   svn co https://​synce.svn.sourceforge.net/​svnroot/​synce/​trunk/​gnomevfs 
-   cd gnomevfs/ 
-   ​./​bootstrap 
-   ​./​configure 
-   make 
-   sudo make install 
- 
-et encore : 
- 
-   ls /​usr/​bin/​gcc-* 
-   ​export CC=/​usr/​bin/​gcc-4.1 
- 
-Maintenant éditons /​etc/​gnome-vfs-2.0/​modules/​default-modules.conf : 
- 
-   sudo gedit /​etc/​gnome-vfs-2.0/​modules/​default-modules.conf 
- 
-ajoutez tout en bas du fichier : 
- 
-   ​synce:​ libsyncevfs 
- 
- 
- 
-=====Configurer ODCCM====== 
- 
-Maintenant nous allons faire en sorte que ODCCM se charge automatiquement au démarrage de la machine. 
- 
-D'​abord éditons /​etc/​init.d/​odccm : 
- 
-  gksudo gedit /​etc/​init.d/​odccm 
- 
-puis copiez ceci dedans, sauvegardez et quittez le fichier : 
- 
-  #! /bin/sh 
-  # /​etc/​init.d/​odccm 
-  # 
-  # Script d'​initiation du daemon odccm 
-  # http://​www.synce.org 
-  ​ 
-  PATH=/​sbin:/​bin:/​usr/​sbin:/​usr/​bin:/​usr/​local/​sbin 
-  ​ 
-  test -x /​usr/​local/​sbin/​odccm || exit 0 
-  ​ 
-  . /​lib/​lsb/​init-functions 
-  ​ 
-  case "​$1"​ in 
-    start) 
-      log_daemon_msg "​Starting odccm service"​ 
-      if start-stop-daemon --start --exec /​usr/​local/​sbin/​odccm ; then 
-       ​log_end_msg 1 
-       exit 1 
-      fi 
-      log_end_msg 0 
-    ;; 
-    stop) 
-      log_daemon_msg "​Stopping odccm service"​ 
-      start-stop-daemon --stop --exec /​usr/​local/​sbin/​odccm ; 
-      log_end_msg 0 
-    ;; 
-    restart) 
-      $0 stop 
-      sleep 2 
-      $0 start 
-    ;; 
-      *) 
-      log_action_msg "​Usage:​ /​etc/​init.d/​odccm {start|stop|restart}"​ 
-      exit 1 
-      ;; 
-  esac 
-  ​ 
-  exit 0 
- 
-ensuite : 
- 
-  sudo chmod +x /​etc/​init.d/​odccm 
-  sudo update-rc.d odccm defaults 
- 
- 
-[[:​tutoriel:​comment_modifier_un_fichier|slach]]=====Installation du notificateur===== 
- 
-Maintenant, nous allons installer un utilitaire qui va nous afficher une bulle de notification à chaque fois que votre mobile se connectera ou se déconnectera : 
- 
-  cd 
-  sudo cp synce-gnome /usr/htc/ 
-  sudo chown -R root.root /​usr/​src/​synce-gnome 
- 
-puis dans Systeme => Préférences => Session => Programmes au démarrage, ajoutez la commade suivante : 
- 
-   ​python /​usr/​src/​synce-gnome/​src/​test.py 
- 
-maintenant nous allons éditer /​usr/​src/​synce-gnome/​src/​test.py : 
- 
-  gksudo gedit /​usr/​src/​synce-gnome/​src/​test.py 
- 
-éffacez tout ce qu'il y a dans le fichier puis mettez ceci à la place : 
- 
-  #​!/​usr/​bin/​env python 
-  # -*- coding: utf-8 -*- 
-  ​ 
-  import dbus 
-  import dbus.glib 
-  import gtk 
-  import os 
-  ​ 
-  class TestApp: 
-      def __init__(self):​ 
-        self.devices = {} 
-  ​ 
-        bus = dbus.SystemBus() 
-        self.bus = bus 
-       ​proxy_obj = bus.get_object("​org.synce.odccm",​ "/​org/​synce/​htc/​DeviceManager"​) 
-       mgr = dbus.Interface(proxy_obj,​ "​org.synce.odccm.DeviceManager"​) 
-  ​ 
-       ​mgr.connect_to_signal("​DeviceConnected",​ self.device_connected_cb) 
-       ​mgr.connect_to_signal("​DeviceDisconnected",​ self.device_disconnected_cb) 
-  ​ 
-       ​session_bus = dbus.SessionBus() 
-       ​notif_obj = session_bus.get_object("​org.freedesktop.Notifications",​ "/​org/​freedesktop/​Notifications"​) 
-       ​self.notify_iface = dbus.Interface(notif_obj,​ "​org.freedesktop.Notifications"​) 
-  ​ 
-       for obj_path in mgr.GetConnectedDevices():​ 
-        self._add_device(obj_path,​ False) 
-  ​ 
-      def device_connected_cb(self,​ obj_path): 
-       ​self._add_device(obj_path,​ True) 
-  ​ 
-      def device_disconnected_cb(self,​ obj_path): 
-         if obj_path in self.devices:​ 
-        device = self.devices[obj_path] 
-        self.notify_iface.Notify("​SynCE",​ 0, "",​ "PDA disconnected",​ "'​%s'​just disconnected."​ % device.name,​ [], {}, 3000) 
-        del self.devices[obj_path] 
-        p = os.popen('​killall synce-trayicon'​) 
-  ​ 
-      def _add_device(self,​ obj_path, just_connected):​ 
-       ​device = CeDevice(self.bus,​ obj_path) 
-       ​self.devices[obj_path] = device 
-  ​ 
-       if just_connected:​ 
-        p = os.popen('​killall synce-readlin'​) 
-        self.notify_iface.Notify("​SynCE",​ 0, "",​ "PDA connected",​ "A %s %s '​%s'​just connected."​ % \ 
-         ​(device.model_name,​ device.platform_name,​ device.name),​ [], {}, 3000) 
-  ​ 
-  ​ 
-   ​ODCCM_DEVICE_PASSWORD_FLAG_SET ​ = 1 
-   ​ODCCM_DEVICE_PASSWORD_FLAG_PROVIDE = 2 
-  ​ 
-   class CeDevice: 
-      def __init__(self,​ bus, obj_path): 
-       ​self.obj_path = obj_path 
-       ​dev_obj = bus.get_object("​org.synce.odccm",​ obj_path) 
-       dev = dbus.Interface(dev_obj,​ "​org.synce.odccm.Device"​) 
-       ​self.name = dev.GetName() 
-       ​self.platform_name = dev.GetPlatformName() 
-       ​self.model_name = dev.GetModelName() 
-       ​self.dev_iface = dev 
-  ​ 
-       ​dev.connect_to_signal("​PasswordFlagsChanged",​ self.password_flags_changed_cb) 
-  ​ 
-       ​self._print_debug() 
-  ​ 
-       ​self._password_flags_changed() 
-  ​ 
-      def _print_debug(self):​ 
-       dev = self.dev_iface 
-       print "​Created CeDevice with obj_path=\"​%s\""​ % self.obj_path 
-       print " ​ GetIpAddress:",​ dev.GetIpAddress() 
-       print " ​ GetGuid:",​ dev.GetGuid() 
-       print " ​ GetOsVersion:",​ dev.GetOsVersion(htc name) 
-       print " ​ GetName:",​ dev.GetName() 
-       print " ​ GetVersion:",​ dev.GetVersion() 
-       print " ​ GetCpuType:",​ dev.GetCpuType() 
-       print " ​ GetCurrentPartnerId:",​ dev.GetCurrentPartnerId() 
-       print " ​ GetId:",​ dev.GetId() 
-       print " ​ GetPlatformName:",​ dev.GetPlatformName() 
-       print " ​ GetModelName:",​ dev.GetModelName() 
-       print " ​ GetPasswordFlags:",​ dev.GetPasswordFlags() 
-  ​ 
-      def password_flags_changed_cb(self,​ added, removed): 
-       print "​password_flags_changed_cb:​ added=0x%08x removed=0x%08x"​ % (added, removed) 
-       ​self._password_flags_changed() 
-  ​ 
-      def _password_flags_changed(self):​ 
-       flags = self.dev_iface.GetPasswordFlags() 
-  ​ 
-       if flags & ODCCM_DEVICE_PASSWORD_FLAG_PROVIDE:​ 
-        authenticated = False 
-        while not authenticated:​ 
-         dlg = EntryDialog(None,​ "​Password required",​ 
-                  "The PDA '​%s'​is password-protected. ​ Enter password:"​ % self.name, 
-                  True) 
-         if dlg.run() == gtk.RESPONSE_ACCEPT:​ 
-          authenticated = self.dev_iface.ProvidePassword(dlg.get_text()) 
-         ​dlg.destroy() 
-  ​ 
-  ​ 
-  class EntryDialog(gtk.Dialog):​ 
-      def __init__(self,​ parent, title, text, password=False):​ 
-       ​gtk.Dialog.__init__(self,​ title, parent, 
-               ​gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,​ 
-               ​(gtk.STOCK_OK,​ gtk.RESPONSE_ACCEPT,​ 
-                gtk.STOCK_CANCEL,​ gtk.RESPONSE_REJECT)) 
-  ​ 
-       label = gtk.Label(text) 
-       ​label.set_alignment(0.0,​ 0.5) 
-       ​self.vbox.pack_start(label,​ False) 
-       ​self._label = label 
-  ​ 
-       entry = gtk.Entry() 
-       ​entry.set_visibility(not password) 
-       ​self.vbox.pack_start(entry,​ False, True, 5) 
-       ​self._entry = entry 
-  ​ 
-       ​self.show_all() 
-  ​ 
-      def get_text(self):​ 
-       ​return self._entry.get_text() 
-  ​ 
-  ​ 
-  TestApp() 
-  gtk.main() 
- 
-=====Installation Terminée===== 
- 
-Maintenant, il ne vous reste plus qu'à rebooter et à admirer le résultat. 
- 
-=====Todo===== 
- 
-Il ne reste plus qu'à complèter ce tuto en indiquant comment synchroniser avec Evolution ou Thunderbird. 
- 
-Il semblerait que la synchronisation entre Evolution et le Qtek 8500 soit impossible à cause d'une erreur de segmentation avec Multisync (n'a pas encore été testé avec le SPV C600 et le HTC S710). 
- 
- 
- 
- 
-=====Comptes rendus===== 
- 
-**Qtek 8500** la connexion fonctionne parfaitement. 
- 
-**SPV C600** la connexion fonctionne parfaitement. FIXME Pas chez moi. 
- 
-**HTC S710** la connexion fonctionne parfaitement (windows mobile 6). 
-FIXME Bugs pendant la connexion USB. 
- 
-**SPV M650** la connexion fonctionne. 
- 
-**ACER n300** la connexion fonctionne. 
- 
-**AIRIS T620** / **MIO P550** la connexion fonctionne. 
- 
-**Qtek 9090** / **SPV M2000** / **HTC BlueAngel** la connexion fonctionne. FIXME Pas chez moi. 
- 
-=====Liens externes===== 
- 
-[[http://​www.synce.org/​|Le site officiel de Synce]]. 
- 
-[[http://​ubuntuforums.org/​showthread.php?​t=345176&​highlight=wm5|Topic Ubuntuforums avec le tuto complet pour la connexion d'un mobile WM5 avec un ordinateur]]. 
- 
----- 
- 
-Rédigé par [[http://​forum.ubuntu-fr.org/​profile.php?​id=9626|Louis XVI with a gun]]. 
  • tutoriel/comment_connecter_un_pda_sous_windows_mobile_5_en_usb.1285187834.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)