<?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/1301"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1301/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1301/atom/feed</id>
  <updated>2007-12-15T17:46:37+01:00</updated>
  <entry>
    <title>Bloc-note &#039;ZaurusFr&#039;</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1301" />
    <id>http://artisan.karma-lab.net/node/1301</id>
    <published>2007-12-15T16:50:11+01:00</published>
    <updated>2007-12-15T17:46:37+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Zaurus" />
    <category term="Aucun" />
    <category term="Note" />
    <category term="OK" />
    <summary type="html"><![CDATA[<p>
  Trucs en vrac sur la distribution Zaurus Francisée initiée par <a class='external' target='_blank' href='http://dab.free.fr/buildoz/' >Dab</a>. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Trucs en vrac sur la distribution Zaurus Francisée initiée par <a class='external' target='_blank' href='http://dab.free.fr/buildoz/' >Dab</a>. 
</p>
<!--break-->

	<a name='chapter_1'></a>
  <h2>Création de l'environnement</h2>
	
<p>
  Le plus simple est de créer avec debootstrap un environnement <a class='external' target='_blank' href='http://artisan.karma-lab.net/node/1055' >chrooté spécifique</a>. De créer un utilisateur une fois dans le chroot (ex. gaston) et de faire le checkout suivant :

  <div class='code-block code-block-traces'>
  <div class='container'>
  <div class='command'><span class='prompt'>root#</span>apt-get install subversion</div><div class='command'><span class='prompt'>root#</span>useradd gaston</div><div class='command'><span class='prompt'>root#</span>visudo</div><div class='result'>Editer ici le sudo pour ajouter gaston avec une ligne du genre</div><div class='result'>gaston   ALL=(ALL) NOPASSWD:ALL</div><div class='result'>et faire CTRL-X Y pour sortir</div><div class='result'>&nbsp;</div><div class='command'><span class='prompt'>root#</span>mkdir -p /home/gaston/tmp</div><div class='command'><span class='prompt'>root#</span>chown gaston:gaston /home/gaston -Rc</div><div class='command'><span class='prompt'>root#</span>su - gaston</div><div class='command'><span class='prompt'>gaston$</span>svn co http://artisan.karma-lab.net/dev/zaurusfr/trunk/zaurusfr/construct</div><div class='command'><span class='prompt'>gaston$</span>cd construct</div><div class='command'><span class='prompt'>gaston$</span>./oe build</div><div class='result'>Faire quelque prière ici pour que tout fonctionne</div><div class='command'><span class='prompt'>gaston$</span><span class='cursor'>&nbsp;</span></div>
  </div>
  
  </div>
</p>
<p>
  Lorsque le build est terminé, une archive contenant tout ce qu'il faut pour flasher le zaurus sur trouve dans le dossier <kbd>/home/rober/construct/stuff/zaurusfr/tmp/deploy/glibc/images/akita</kbd> sous le nom poétique de <kbd>Angstrom-zaurusfr-gpe-image-glibc-ipk-2007.9-test-YYYMMDD-akita-installkit.tgz</kbd>. Il suffit de décompresser cette archive à la racine d'une carte SD, et d'<a class='external' target='_blank' href='http://artisan.karma-lab.net/node/1098' >installer la nouvelle ROM</a>. 
</p>

	<a name='chapter_2'></a>
  <h2>Faire un patch kernel</h2>
	
<p>
Si si, c'est toujours utile <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/>

  <div class='code-block code-block-traces'>
  <div class='container'>
  <div class='command'><span class='prompt'>gaston$</span>cd stuff/zaurusfr/tmp/work/akita-angstrom-linux-gnueabi/linux-rp-2.6.23-r100</div><div class='command'><span class='prompt'>gaston$</span># on fait une copie des sources du kernel</div><div class='command'><span class='prompt'>gaston$</span>rsync -a linux-2.6.23 linux-2.6.23-new</div><div class='co0'># on modifie le kernel sur la copie et on fait un patch que l'on stoque directement au bon endroit</div><div class='command'><span class='prompt'>gaston$</span>patch  -Naur linux-2.6.23 linux-2.6.23-new > ../../../../myoe/packages/linux/linux-rp-2.6.23/mon-patch.patch</div><div class='command'><span class='prompt'>gaston$</span><span class='cursor'>&nbsp;</span></div>
  </div>
  
  </div>
</p>
<p>
On modifie ensuite le fichier <kbd>../../../../myoe/packages/linux/linux-rp_2.6.23.bb</kbd> en rajoutant dans SRC_URI une ligne du style :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  file://mon-patch.patch<SEMI>patch=1 \
  </div>
  
  </div>
</p>
<p>
Ensuite, soit on utilise <kbd>oe</kbd> pour faire un <kbd>clean</kbd> de <kbd>linux-rp</kbd> puis un build. Soit on veut tester et on va alors passer bitbake en mode interactif :

  <div class='code-block code-block-traces'>
  <div class='container'>
  <div class='command'><span class='prompt'>gaston$</span>cd /home/gaston/construct/stuff/zaurusfr</div><div class='command'><span class='prompt'>gaston$</span>. oe.env</div><div class='command'><span class='prompt'>gaston$</span>bitbake -i</div><div class='command'><span class='prompt'>gaston$</span>clean linux-rp</div><div class='command'><span class='prompt'>gaston$</span>fetch linux-rp</div><div class='command'><span class='prompt'>gaston$</span>unpack linux-rp</div><div class='command'><span class='prompt'>gaston$</span>patch linux-rp</div><div class='command'><span class='prompt'>gaston$</span>build linux-rp</div><div class='command'><span class='prompt'>gaston$</span><span class='cursor'>&nbsp;</span></div>
  </div>
  
  </div>
</p>


	<a name='chapter_3'></a>
  <h2>USB mode host/slave</h2>
	
<p>
Pour l'instant, l'Angstrom ne détecte pas correctement le changement de câble. Il faut donc charger le module correspondant au mode "host" à la main :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="co0">#!/bin/sh</span><br />
<span class="co0"># Stop possible USB networking to release g_ether lock</span><br />
ifconfig usb0 down <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null<br />
<span class="co0"># Remove USB client modules</span><br />
rmmod g_file_storage g_ether pxa27x_udc <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null<br />
<span class="co0"># Load USB master module</span><br />
modprobe ohci-hcd
  </div>
  
  </div>
</p>


	<a name='chapter_4'></a>
  <h2>Soucis d'installation sur la partition /home</h2>
	
<p>
Lors de l'utilisation de la syntaxe <kbd>ipkg install -d home abiword</kbd>, ipkg installe bien abiword sur la seconde partition mais l'utilitaire ipk-link n'est pas appelé pour créer les liens avec le système racine. Et pour cause, il n'est pas présent... Donc en attendant que ce soit inclus par défaut, voici le source de l'utilitaire à utiliser après ipkg, sous la forme <kbd>ipk-link add abiword</kbd> :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="co0">#!/bin/sh</span><br />
<span class="re2">COMMAND=</span>$<span class="nu0">1</span><br />
<span class="re2">PACKAGE=</span>$<span class="nu0">2</span><br />
setdest <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> i <span class="kw1">in</span> <span class="sy0">`</span><a target="blank" href="http://pwet.fr/man/linux/commandes/grep"><span class="kw2">grep</span></a> dest <span class="sy0">/</span>etc<span class="sy0">/</span>ipkg.conf <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/cut"><span class="kw2">cut</span></a> -d <span class="st0">' '</span> -f <span class="nu0">3</span><span class="sy0">`</span>; <span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> -f <span class="re1">$i</span><span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>ipkg<span class="sy0">/</span>info<span class="sy0">/</span><span class="re1">$PACKAGE</span>.list <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DEST=</span><span class="re1">$i</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">done</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;x$DEST&quot;</span> = <span class="st0">&quot;x&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Can not locate $PACKAGE.&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Check /etc/ipkg.conf for correct dest listings&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Check name of requested package: $PACKAGE&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
<span class="br0">&#125;</span><br />
addlinks <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; setdest;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/cat"><span class="kw2">cat</span></a> <span class="re1">$DEST</span><span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>ipkg<span class="sy0">/</span>info<span class="sy0">/</span><span class="re1">$PACKAGE</span>.list <span class="sy0">|</span> <span class="kw1">while</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/read"><span class="kw2">read</span></a> LINE; <span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">SRC=</span><span class="re1">$LINE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DST=</span><span class="sy0">`</span><span class="kw3">echo</span> <span class="re1">$SRC</span> <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/sed"><span class="kw2">sed</span></a> <span class="st0">&quot;s|$DEST||&quot;</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DSTNAME=</span><span class="sy0">`</span><a target="blank" href="http://pwet.fr/man/linux/commandes/basename"><span class="kw2">basename</span></a> <span class="re1">$DST</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DSTDIR=</span><span class="sy0">`</span><span class="kw3">echo</span> <span class="re1">$DST</span> <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/sed"><span class="kw2">sed</span></a> <span class="st0">&quot;s|$DSTNAME<span class="es0">\$</span>||&quot;</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -f <span class="st0">&quot;$SRC&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -e <span class="st0">&quot;$DST&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">1</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/mkdir"><span class="kw2">mkdir</span></a> -p <span class="re1">$DSTDIR</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/ln"><span class="kw2">ln</span></a> -sf <span class="re1">$SRC</span> <span class="re1">$DST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Not linking $SRC to $DST&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;$DST Already exists&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -d <span class="st0">&quot;$SRC&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -e <span class="re1">$DST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">1</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/mkdir"><span class="kw2">mkdir</span></a> -p <span class="re1">$DST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;directory already exists&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Source directory $SRC does not exist&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">done</span><br />
<span class="br0">&#125;</span><br />
removelinks <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; setdest;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/cat"><span class="kw2">cat</span></a> <span class="re1">$DEST</span><span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>ipkg<span class="sy0">/</span>info<span class="sy0">/</span><span class="re1">$PACKAGE</span>.list <span class="sy0">|</span> <span class="kw1">while</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/read"><span class="kw2">read</span></a> LINE; <span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">SRC=</span><span class="re1">$LINE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DST=</span><span class="sy0">`</span><span class="kw3">echo</span> <span class="re1">$LINE</span> <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/sed"><span class="kw2">sed</span></a> <span class="st0">&quot;s|$DEST||&quot;</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DSTNAME=</span><span class="sy0">`</span><a target="blank" href="http://pwet.fr/man/linux/commandes/basename"><span class="kw2">basename</span></a> <span class="re1">$DST</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DSTDIR=</span><span class="sy0">`</span><span class="kw3">echo</span> <span class="re1">$DST</span> <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/sed"><span class="kw2">sed</span></a> <span class="st0">&quot;s|$DSTNAME<span class="es0">\$</span>||&quot;</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -f <span class="re1">$DST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/rm"><span class="kw2">rm</span></a> -f <span class="re1">$DST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -d <span class="re1">$DSTDIR</span> <span class="sy0">&amp;&amp;</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/rmdir"><span class="kw2">rmdir</span></a> <span class="re1">$DSTDIR</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -d <span class="re1">$DST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/rmdir"><span class="kw2">rmdir</span></a> <span class="re1">$DST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;$DST does not exist&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">done</span><br />
<span class="br0">&#125;</span><br />
mountdest <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -d <span class="re1">$PACKAGE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">1</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Mount point does not exist&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> i <span class="kw1">in</span> <span class="re1">$PACKAGE</span><span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>ipkg<span class="sy0">/</span>info<span class="sy0">/*</span>.list; <span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="nu0">0</span> add <span class="sy0">`</span><a target="blank" href="http://pwet.fr/man/linux/commandes/basename"><span class="kw2">basename</span></a> <span class="re1">$i</span> .list<span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">done</span><br />
<span class="br0">&#125;</span><br />
umountdest <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">test</span> -d <span class="re1">$PACKAGE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> = <span class="nu0">1</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Mount point does not exist&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> i <span class="kw1">in</span> <span class="re1">$PACKAGE</span><span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>ipkg<span class="sy0">/</span>info<span class="sy0">/*</span>.list; <span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="nu0">0</span> remove <span class="sy0">`</span><a target="blank" href="http://pwet.fr/man/linux/commandes/basename"><span class="kw2">basename</span></a> <span class="re1">$i</span> .list<span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">done</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">case</span> <span class="st0">&quot;$COMMAND&quot;</span> <span class="kw1">in</span><br />
&nbsp; add<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; addlinks<br />
&nbsp; <span class="sy0">;;</span><br />
&nbsp; remove<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; removelinks<br />
&nbsp; <span class="sy0">;;</span><br />
&nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/mount"><span class="kw2">mount</span></a><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; mountdest<br />
&nbsp; <span class="sy0">;;</span><br />
&nbsp; <a target="blank" href="http://pwet.fr/man/linux/commandes/umount"><span class="kw2">umount</span></a><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; umountdest<br />
&nbsp; <span class="sy0">;;</span><br />
&nbsp; <span class="sy0">*</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Usage: $0 &lt;cmd&gt; &lt;target&gt;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot; &nbsp; &nbsp; &nbsp; Commands: add, remove, mount, umount&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot; &nbsp; &nbsp; &nbsp; Targets: &lt;package&gt;, &lt;mount point&gt;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Example: &nbsp;$0 add kismet-server&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Example: &nbsp;$0 remove kismet-server&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Example: &nbsp;$0 mount /mnt/usb&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Example: &nbsp;$0 umount /mnt/usb&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
<span class="kw1">esac</span><br />
<span class="kw3">exit</span> <span class="nu0">0</span>
  </div>
  <div class='caption'>/usr/bin/ipkg-link</div>
  </div>
</p>
<p>
Et pour installer tous les paquets d'un coup :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="co0">#! /bin/sh</span><br />
<span class="kw3">cd</span> <span class="sy0">/</span><br />
<span class="kw1">for</span> package <span class="kw1">in</span> $<span class="br0">&#40;</span><a target="blank" href="http://pwet.fr/man/linux/commandes/cat"><span class="kw2">cat</span></a> <span class="sy0">/</span>home<span class="sy0">/</span>packages<span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>ipkg<span class="sy0">/</span>status <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/grep"><span class="kw2">grep</span></a> Package <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/cut"><span class="kw2">cut</span></a> -d<span class="st0">&quot; &quot;</span> -f2<span class="br0">&#41;</span> ; <span class="kw1">do</span><br />
&nbsp; .<span class="sy0">/</span>ipk-link add <span class="re1">$package</span><br />
<span class="kw1">done</span>
  </div>
  <div class='caption'>/usr/bin/ipkg-link-all</div>
  </div>
</p>    ]]></content>
  </entry>
</feed>
