<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Artisan Numérique</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/41"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/41/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/41/atom/feed</id>
  <updated>2008-02-12T12:27:08+01:00</updated>
  <entry>
    <title>Bloc-note &#039;iPaq&#039;</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/41" />
    <id>http://artisan.karma-lab.net/node/41</id>
    <published>2006-01-03T00:53:59+01:00</published>
    <updated>2008-02-12T12:27:08+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Aucun" />
    <category term="Note" />
    <category term="OK" />
    <summary type="html"><![CDATA[<p>Bon, l'iPaq et moi, ce n'est pas une histoire qui a durée, j'ai vite craqué et offert la bestiole à mon père. Ces pages restent donc là pour mémoire.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Bon, l'iPaq et moi, ce n'est pas une histoire qui a durée, j'ai vite craqué et offert la bestiole à mon père. Ces pages restent donc là pour mémoire.</p>
<!--break-->


	<a name='chapter_1'></a>
  <h2>Synchroniser l'iPaq avec linux</h2>
	

<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  # urpmi synce
  </div>
  
  </div></pre>
Il faut ensuite avoir les modules suivant de compilé :
<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  # modprobe usbserial ppp_generic ppp_async
  </div>
  
  </div></pre>
<p>Lancer, en tant qu'utilisateur, la commande dccm</p>
<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  $ dccm
  </div>
  
  </div></pre>
<p>Connecter l'iPaq, vérifier /dev/ttyUSB0 existe et tapper (root) :</p>
<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  # synce-serial-config ttyUSB0
  </div>
  
  </div></pre>
<p>Une fois ceci fait, ce ne sera plus à refait. </p>
<p>Maintenant, toujours sous le prompt root, lancer la connexion</p>
<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  # synce-serial-start
  </div>
  
  </div></pre>
<p>Pour tester, revenir sous l'utilisateur :</p>
<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  $ pstatus
  </div>
  
  </div></pre>
<p>Tout ceci peut être automatisé via hal/ivman et ajoutant à 
  <div class='code-block code-block-fragment'>
  <div class='container'>
  /etc/IvmanConfigActions
  </div>
  
  </div>:</p>
<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  &lt;ivmivm:Matchme=&quot;hal.serial.device&quot; value=&quot;/dev/ttyUSB0&quot;&gt;<br />
&nbsp; &nbsp; &lt;ivm:Option name=&quot;exec&quot; value=&quot;/usr/bin/synce-serial-start&quot; /&gt;<br />
&nbsp; &nbsp; &lt;ivm:Option name=&quot;exec&quot; value=&quot;play /usr/share/apps/raki/Infbeg.wav&quot; /&gt;<br />
&nbsp; &lt;/ivm:Match&gt;
  </div>
  
  </div></pre>
<p>Ensuite, installer les utilitaires synce pour KDE</p>
<pre>
  <div class='code-block code-block-fragment'>
  <div class='container'>
  # urpmi synce-kde synce-kde-devel
  </div>
  
  </div></pre>
<p>PS: le synce-kde-devel est necessaire dans ma distrib mais ce n'est pas le cas pour toutes. </p>
<p>Enfin, sous konqueror, aller en "rapip:/" pour explorer l'iPaq</p>



	<a name='chapter_2'></a>
  <h2>Installer Linux sur l'iPaq</h2>
	
<ul>
<li>haret.exe : le boot loader</li>
<li>zImage</li>
<li>initrd</li>
<li>startup.txt</li>
</ul>
<p>Sous linux, le modules usbnet doit être compilé. Le scripte usbnet.sh qui suit nous permettra de connecter le réseau :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="co0">#!/bin/bash</span><br />
<span class="co0">#</span><br />
<span class="co0"># ipaqnet &nbsp; Control script for iPAQ USBNet connection</span><br />
<span class="co0">#</span><br />
<span class="co0"># Author: Michel Stempin</span><br />
<span class="co0"># Creation: 11/08/2002</span><br />
<br />
<span class="re2">PC_ADDR=</span><span class="nu0">192.168</span><span class="nu0">.6</span><span class="nu0">.1</span><br />
<span class="re2">IPAQ_ADDR=</span><span class="nu0">192.168</span><span class="nu0">.6</span><span class="nu0">.2</span><span class="sy0">/</span><span class="nu0">32</span><br />
<span class="re2">IPAQ_NET=</span><span class="nu0">192.168</span><span class="nu0">.6</span><span class="nu0">.0</span><span class="sy0">/</span><span class="nu0">24</span><br />
<span class="re2">UPLINK_IF=</span>ppp0<br />
<br />
start<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; modprobe usbnet<br />
&nbsp; ifconfig usb0 inet <span class="re1">$PC_ADDR</span> up<br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> -ne <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
&nbsp; <span class="kw1">fi</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&amp;</span>gt;<span class="sy0">/</span>proc<span class="sy0">/</span>sys<span class="sy0">/</span>net<span class="sy0">/</span>ipv4<span class="sy0">/</span>conf<span class="sy0">/</span>usb0<span class="sy0">/</span>proxy_arp<br />
&nbsp; <span class="re2">UPLINK=</span>ifconfig <span class="re1">$UPLINK_IF</span> <span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="nu0">2</span><span class="sy0">&gt;&amp;</span><span class="nu0">1</span><br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> -ne <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
&nbsp; <span class="kw1">fi</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&amp;</span>gt;<span class="sy0">/</span>proc<span class="sy0">/</span>sys<span class="sy0">/</span>net<span class="sy0">/</span>ipv4<span class="sy0">/</span>conf<span class="sy0">/</span><span class="re1">$UPLINK_IF</span><span class="sy0">/</span>proxy_arp<br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&amp;</span>gt;<span class="sy0">/</span>proc<span class="sy0">/</span>sys<span class="sy0">/</span>net<span class="sy0">/</span>ipv4<span class="sy0">/</span>ip_forward<br />
&nbsp; ip route del <span class="re1">$IPAQ_NET</span> dev usb0<br />
&nbsp; ip route add <span class="re1">$IPAQ_ADDR</span> dev usb0<br />
<span class="br0">&#125;</span><br />
<br />
stop<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; ifconfig usb0 down<br />
&nbsp; rmmod -r usbnet<br />
<span class="br0">&#125;</span><br />
<span class="kw1">case</span> <span class="st0">&quot;$1&quot;</span> <span class="kw1">in</span><br />
&nbsp; start<span class="sy0">|</span>add<span class="br0">&#41;</span><br />
&nbsp; &nbsp; start<br />
&nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; stop<span class="sy0">|</span>remove<span class="br0">&#41;</span><br />
&nbsp; &nbsp; stop<br />
&nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; <span class="sy0">*</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="kw3">echo</span> $<span class="st0">&quot;Usage: $0 {start|stop|add|remove}&quot;</span><br />
&nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
<span class="kw1">esac</span>
  </div>
  
  </div></p>

<p>Pour gagner du temps, il est possible de lancer haret via linux par la commande :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  $ &nbsp;prun <span class="st0">&quot;Storage Card/haret.exe&quot;</span>
  </div>
  
  </div></p>

<p>Le fait d'avoir nommé le fichier de config "startup.txt" évite d'avoir à gérer le côté interactif d'haret qui boot tout seul. </p>
<p>Lors du boot, lorsque le kernel le demande, débrancher la prise usb et rebrancher là. Sous linux, cela devrait donner dans les logs un truc du genre :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  Jun 29 01:14:47 antinea kernel: usb0: register usbnet at usb-0000:00:02.1-1, CDC Ethernet Device, de:d5:e9:e1:e2:bc
  </div>
  
  </div></p>

<p>Il faut ensuite lancer le script :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  # usbnet start
  </div>
  
  </div></p>

<p>Tout ceci durant les 20 secondes du boot <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/> Ensuite la partition nfs est mointé et l'iPaq boot dessus et crash... pour l'instant <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/></p>

<p>29/06/05 - Bon, on retestera plus tard. Une pise à exploiter, faire un vrai diskless avec un fichier config de haret comme suit (à adapter) :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  pfw 0x40e0005c 1 0x600a9558 <br />
pfw 0x0c000008 1 0x0040<br />
<br />
set kernel &quot;\Storage Card\zImage-&amp;lt<SEMI>version number&amp;gt<SEMI>&quot;<br />
set mtype 459<br />
set cmdline &quot;root=/dev/nfs nfsroot=192.168.0.200:/home/ipaq_rootfs \<br />
ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0:ipaq:usb0 \<br />
console=ttyS0,115200n8&quot;<br />
bootlinux
  </div>
  
  </div></p>




	<a name='chapter_3'></a>
  <h2>Installer des softs via Linux</h2>
	

<p>La vraie galère de base avec un iPaq c'est que tout le monde semble persuadé que nous utilisons tous ActiveSync. Hors bien évidement, ce dernier n'existe pas sous Linux. Alors comme toujours il faut feinter...</p>

<h3>Méthode n°1 - Wine</h3>
<p>Wine est un "émulateur" de windows sous Linux. Il permet donc d'exécuter des application windows avec plus ou moins de bonheur. Pour simplifier la configuration de wine, le bon plan est d'utiliser WineTools <external  href="http://www.von-thadden.de/Joachim/WineTools/">http://www.von-thadden.de/Joachim/WineTools/)</external>. Dans sa version 2.1.2 (le package Mandrake est téléchargable sur le net en googlisant "winetools-2.1.2 rpm") l'auteur préconise l'utilisation de la version 20041019 (googliser wine-20041019-mdk.i586.rpm). Pour moi tout autre combinaison donne des problèmes.</p>

<p>Il suffit ensuite d'installer les deux RPM et de lancer wt2 (
  <div class='code-block code-block-fragment'>
  <div class='container'>
  /usr/local/bin/wt2
  </div>
  
  </div>) en tant qu'utilisateur (pas root !!!). Se laisser guider dans l'ordre du menu pour installer le fake windows, DCOM98 et IE6.</p> 

<p>Ensuite, télécharger 
  <div class='code-block code-block-fragment'>
  <div class='container'>
  ActiveSync
  </div>
  
  </div> chez M$, et, en ligne de commande, taper wine 
  <div class='code-block code-block-fragment'>
  <div class='container'>
  MSASYNC.EXE
  </div>
  
  </div>, l'installation se passe sans soucis. Il suffit d'annuler lorsque que le soft tente la recherche de l'iPaq.</p> 

<p>Une fois cette installation de base terminée, plus de soucis pour le reste. Par exemple télécharger Adobe Accrobat Reader 2.0 pour PPC, taper wine abobereader2_ppc.exe, se laisser guider jusqu'à la fin. Ensuite, il suffit d'aller dans 
  <div class='code-block code-block-fragment'>
  <div class='container'>
  ~/.wine/drive_c/program files/Microsoft ActiveSync
  </div>
  
  </div> pour y trouver généralement un sous dossier du nom de l'install (dans ce cas adobe reader) et d'y trouver le ou les .cab à télécharger sur le palm (via RAPIP sous kde avec wince, cf chapitre suivant). </p>

<h3>Méthode n°2 - Orange</h3>
<p>L'idée est ici d'extraire les fichiers .cab contenus dans les install de type installShied. Un utilitaire permet de faire cela pour Linux, il s'agit d'Orange.</p>

    ]]></content>
  </entry>
</feed>
