Linux by AlexLG

Aller au contenu | Aller au menu | Aller à la recherche

lundi, avril 7 2008

Synchronisation d'un Pocket PC avec Windows Mobile 5 par usb et Kontact

Afin de réaliser la synchronisation, il faut installer certains éléments.

  • usb-rndis : Permet de créer l'interface réseau entre le PocketPC et l'ordinateur afin de communiquer ensemble
  • odccm : envoi les données adéquates à Windows Mobile pour qu'il pense être connecté à ActiveSync
  • synce : gère les envois et réception des données lors de la synchro
  • opensync : gère la synchronisation entre les différentes sources (synce, kdepim, evolution, etc...)

Désactivation de NetworkManager

Pour communiquer avec le PocketPC, le driver créé une carte réseau virtuelle entre le pda et l'ordinateur. Cependant, NetworkManager saute dessus et essaye de trouver une adresse IP à cette interface. Il y arrive mais prend alors cette connexion comme connexion par défaut et coupe votre connexion normale.
Pour cela, on va configurer l'interface dans /etc/network/interfaces en rajoutant ceci à la fin du fichier :

auto rndis0
allow-hotplug rndis0
iface rndis0 inet dhcp

Connexion via usb

Installation et compilation

Afin de connecter le PocketPC par usb, il faut recompiler usb-rndis avec la version présente sur le dépôt de synce.
Pour cela, ajouter le dépôt suivant dans /etc/apt/sources.list et on en profites pour ajouter le dépôt d'opensync :

deb http://ppa.launchpad.net/synce/ubuntu gutsy main
deb-src http://ppa.launchpad.net/synce/ubuntu gutsy main
deb http://opensync.gforge.punktart.de/repo/opensync-0.21/ feisty main
deb-src http://opensync.gforge.punktart.de/repo/opensync-0.21/ feisty main

Faites un update et installer le module à l'aide de module-assistant

sudo apt-get update
sudo apt-get install usb-rndis-source cdbs
sudo module-assistant auto-install usb-rndis

J'ai aussi été obligé de recompiler usb-rndis-lite :

sudo apt-get install linux-headers-generic build-essential subversion
svn co http://synce.svn.sf.net/svnroot/synce/trunk/usb-rndis-lite/
make
sudo ./clean.sh
sudo make install

On fini en installant odccm et ses librairies :

sudo apt-get install odccm librra0-tools librapi2-tools

Test

Avant de tester et jusqu'à ce que je le mentionne, désactiver le code PIN de votre PocketPC pour la suite
Pour cela, allez dans Paramètres, Onglet Personnel, Verrouiller, puis décochez Demander le mot de passe...

Si tout ce passe bien, vous devriez être capable d'afficher le contenu de la mémoire du PocketPC en lançant pls

$ pls
Directory               2006-03-04 11:00:10  Mes images/
Directory               2006-03-04 11:00:10  Modèles/
Directory               2006-03-04 11:00:10  Personnel/
Directory               2006-03-04 11:00:10  Bureau/
Directory               2006-03-04 11:00:10  Ma musique/
Directory               2007-04-27 01:05:24  briefcase/

Avant d'aller plus loin

Si pls ne vous a rien affichez, ça ne sert à rien de passer à l'étape suivante. Vérifiez les points suivants en regardant le résultat des commandes suivantes (branchez votre pocket pc avant de les lancer) :

$ lsmod | grep rndis
rndis_host              8320  0
cdc_ether               7552  1 rndis_host
usbnet                 20104  2 rndis_host,cdc_ether
usbcore               138632  8 rndis_host,cdc_ether,usbnet,gspca,usbhid,ehci_hcd,ohci_hcd

$ ifconfig | grep rndis
rndis0    Lien encap:Ethernet  HWaddr 80:00:60:0F:BE:EF

$ cat /var/log/syslog | grep rndis | grep kernel
Apr  6 23:14:42 alexandre kernel: [12195.745146] rndis0: register 'rndis_host' at usb-0000:00:0b.0-1, RNDIS device (SynCE patched), 80:00:60:0f:e8:00
Apr  6 23:14:42 alexandre kernel: [12195.745294] usbcore: registered new interface driver rndis_host

Mise en place de la synchronisation

Installation d'opensync

Pour synchroniser les données, on utilise opensync. Opensync est un framework de synchronisation auquel on ajoute les plugins se chargeant de récupérer et d'écrire les données à synchroniser. On a déjà ajouté les dépôts d'opensync lors de la première étape, il ne nous reste plus qu'a installer les paquets :

sudo apt-get install libopensync-plugin-kdepim libopensync-plugin-python synce-sync-engine opensync-plugin-synce msynctool

Normalement pour evolution, installez ceci à la place devrait fonctionner (je n'ai pas testé car je n'ai pas gnome d'installé, n'hésitez pas à me dire si cela fonctionne) :

sudo apt-get install libopensync-plugin-evolution2 libopensync-plugin-python synce-sync-engine opensync-plugin-synce msynctool

Attention lors de l'installation des paquets, il existe opensync-plugin-xxx et libopensync-plugin-xxx. Le premier est une ancienne version du plugin qui ne sera pas détecté par opensync.

Creation du partenariat avec le Pocket PC

Commencez par récupérer le fichier de configuration (qui n'est pas créé automatiquement) :

mkdir -f ~/.synce
cd ~/.synce
wget http://synce.svn.sourceforge.net/svnroot/synce/trunk/sync-engine/config/config.xml

Vous pouvez alors lancer la commande sync-engine qui va initier la connection avec le pocket pc. Créez ensuite le partenariat, attention : seul deux partenariats simultanés sur l'appareil sont autorisé. Vous pouvez vérifier et supprimer un partenariat en débranchant le pocket pc et en allant dans Programmes -> ActiveSync. Relancez ensuite sync-engine pour la prise en compte de la suppression d'un partenariat. Pour créer le partenariat, exécutez la commande suivante :

create_partnership.py "Linux desktop" "Contacts,Calendar,Tasks"

Linux desktop est la description du partenariat (tel quelle apparaîtra dans ActiveSync sur le pda) et qui est composé d'au plus 20 caractères (évitez les accents, on se sait jamais :p). Vous pouvez ensuite choisir ce que vous désirez synchroniser :

  • Contacts
  • Calendar
  • Tasks
  • Files

(Je n'ai pas testé les fichiers pour le moment)

Configuration d'OpenSync

A cause d'un problème de packaging, le plugin de synce pour Opensync n'est pas copié dans le bon répertoire. On va donc créer un lien afin de pouvoir l'utiliser

cd /usr/lib/opensync/python-plugins
sudo ln -s ../plugins/python-plugins/synce-opensync-plugin-2x.py synce.py

Vérifiez que tous les plugins sont bien installés en exécutant la commande suivante :

$ msynctool --listplugins
Available plugins:
synce-opensync-plugin
testmodule
file-sync
kdepim-sync

file-sync n'est pas obligatoire et bien sur kdepim-sync est remplacé par evo2-sync si vous souhaitez utiliser evolution.


Il faut ensuite créer un groupe de synchronisation contenant les différentes sources à synchroniser. Voici les commandes qu'il faut taper pour le faire :

msynctool --addgroup pocketpc
msynctool --addmember pocketpc synce-opensync-plugin
msynctool --addmember pocketpc kdepim-sync

(il faut toujours remplacer kdepim-sync par evo2-sync pour evolution)

Lancement de la synchronisation

On touche au but, commencez par fermer Kontact pour éviter tout blocage du fichier de contact et du calendrier par celui-ci.

Lancez ensuite :

msynctool --sync pocketpc

Au bout de quelques secondes, tout devrait être synchronisé :)

Si vous avez des problèmes d'accents dans vos contacts, vous devez convertir votre carnet d'adresse en UTF-8. Pour cela, vous pouvez utiliser recode :

recode iso8859-1..utf8 ~/.kde/share/apps/kabc/std.vcf

PocketPC protégé par PIN

A cause d'un bug de synce et d'un problème de packaging, on doit effectuer quelques modifications pour pouvoir connecter notre Pocket PC si celui-ci est protégé par un mot de passe.

On commence par télécharger l'interface de demande de passe :

sudo apt-get install python-gtk2
cd /usr/lib/python2.5/site-packages/SyncEngine
sudo wget http://synce.svn.sourceforge.net/viewvc/*checkout*/synce/trunk/sync-engine/tools/authgui.py
sudo chmod +x authgui.py

Il faut ensuite modifier un fichier python pour indiquer le bon chemin de l'interface :

kdesu kate /usr/lib/python2.5/site-packages/SyncEngine/auth.py
#Modifier la ligne 20 de
AUTH_TOOLS_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)),"../tools")
#en
AUTH_TOOLS_PATH = os.path.dirname(os.path.abspath(__file__))

Encore une modification dans un fichier pour corriger un bug :

kdesu kate /usr/lib/python2.5/site-packages/SyncEngine/kernel.py
#modifier ligne 278
if self.partnerships != None:
#en
if len(self.PshipManager.GetList()) != 0:

N'oubliez pas de remettre un pin, de relancer sync-engine. Il devrait lors du redémarrage vous demandez le code de votre pocketpc puis s'y connecter. Vous pouvez alors tenter de relancer une synchronisation avec msynctools.

On récapitule

Comme vous avez pu le remarquer, c'est pas super user-friendly, mais on fini par y arriver. Voici donc les différentes étapes a effectuer maintenant pour synchroniser votre Pocket PC :

  • Branchez votre Pocket PC sur l'usb, attendez quelques secondes le temps que la carte réseau rndis0 soit montée et que l'initialisation de la connexion soit opérationnelle (une dizaine de secondes environ).
  • Ouvrez un terminal, lancez la commande sync-engine et tapez si nécessaire votre code PIN. Attendez ensuite que le log arrête de causer.
  • Fermez Kontact
  • Ouvrez un autre terminal puis lancer msynctool --sync pocketpc
  • Une fois la synchronisation terminée, vous pouvez débrancher votre pocket pc et coupez sync-engine

Si vous le souhaitez, vous pouvez utiliser Kitchensync à la place de msynctool pour lancer la synchronisation de manière graphique, cependant vu que tout est plus ou moins en beta, je pense que c'est mieux de lancer ça dans une console histoire de voir ce qu'il se passe :)

C'est bien possible qu'il manque aussi des paquets pour la compilation de certains trucs vu que j'ai pas mal de paquet de dev déjà installé. Hésitez pas à me faire par de vos remarques ou bugs dans les commentaires.

Voici quelques liens qui m'ont aidé pour rédiger cet article :

* http://www.synce.org/
* http://en.opensuse.org/Synce

jeudi, septembre 13 2007

chkrootkit

Nous allons procéder ici à l'installation du logiciel de détection des rootkits. Les rootkits sont des logiciels espions qui permettent à un hacker de prendre le contrôle d'une machine sans que son utilisateur s'en aperçoive. Afin d'éviter ce genre de désagrément, on peux installer un logiciel qui check si des rootkits connus ne sont pas installé et vérifie les principaux points d'entrée de ces logiciels.
Les deux plus connus sont chkrootkit et rkhunter. Étant donné leurs différentes actions, je vous conseille d'installer les deux, il n'y a pas de problème pour cela.

aptitude install chkrootkit rkhunter

La configuration se résume à rien du tout. Vous pouvez lancer les logiciels à la main si vous le désirez, ils seront de toute façon lancé chaque jour. Un mail de rapport sera envoyé à root s'il détecte un problème.

mercredi, septembre 12 2007

Logwatch

Si vous souhaitez surveiller ce qui se passe sur votre serveur sans vous tapez tous les logs à la main, utilisez logwatch. Il vous fournira un résumé tout les matins de ce qui c'est passé la veille sur votre serveur. Si le service que vous souhaitez surveillez n'est pas disponible, vous trouverez des scripts tout fait sur le net pour rajouter ce qu'il vous faut, ou vous pourrez coder le script perl adéquat.

Voilà comment procéder à son installation et sa configuration :

aptitude install logwatch

Vous pouvez ensuite configurer les différentes options dans le fichier

/usr/share/logwatch/default.conf/logwatch.conf


Je vous conseille au moins de passer le niveau de détails à "Med".

Detail = Med

Vous pouvez aussi changer le destinataire du mail en changeant la variable

MailTo = mail@domain.org

Et voilà, c'est tout, facile pour celui-là :)