<?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/1256"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1256/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1256/atom/feed</id>
  <updated>2008-11-02T14:13:59+01:00</updated>
  <entry>
    <title>Bloc-note &#039;kernel&#039;</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1256" />
    <id>http://artisan.karma-lab.net/node/1256</id>
    <published>2007-11-08T09:19:07+01:00</published>
    <updated>2008-11-02T14:13:59+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="kernel" />
    <category term="Aucun" />
    <category term="Note" />
    <category term="OK" />
    <summary type="html"><![CDATA[<p>Bloc-Note Kernel</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Bloc-Note Kernel</p>
<p>Création d'une règle udev</p>
<p>  Pour cela nous allons utiliser udev. Cette couche logiciel joue le rôle d'interface entre le kernel et le reste de l'OS. C'est lui qui va créer les noms de device lorsque le kernel les a détecté. Dans notre cas, nous cherchons à détecter l'atterrissage d'un disque dur externe connecté via l'usb. Pour l'instant, disons que le disque est connecté et que son device "aléatoire" est /dev/sdb. La première chose à faire est de sortir des informations sur ce device via un utilitaire du paquet udev, udevinfo:</p>
<div class='code-block code-block-fragment'>
<div class='container'>
  udevinfo -a -p $<span class="br0">&#40;</span>udevinfo -q path -n <span class="sy0">/</span>dev<span class="sy0">/</span>sda<span class="br0">&#41;</span><br />
&nbsp;<span class="co0"># (...)</span><br />
&nbsp;<span class="co0"># ATTRS{idProduct}==&quot;6830&quot;</span><br />
&nbsp;<span class="co0"># ATTRS{idVendor}==&quot;04b4&quot;</span><br />
<span class="co0"># (...)</span>
  </div>
</div>
<p>  Deuxième étape, créer ou modifier le fichier des règles locales d'udev /etc/udev/rules.d/10-local.rules, pour y poser le ligne suivante :</p>
<div class='code-block code-block-fragment'>
<div class='container'>
  <span class="re2">BUS=</span>=<span class="st0">&quot;usb&quot;</span>, <span class="re2">KERNEL=</span>=<span class="st0">&quot;sd?1&quot;</span>, SYSFS<span class="br0">&#123;</span>idVendor<span class="br0">&#125;</span>==<span class="st0">&quot;04b4&quot;</span>, SYSFS<span class="br0">&#123;</span>idProduct<span class="br0">&#125;</span>==<span class="st0">&quot;6830&quot;</span>, <span class="re2">NAME=</span><span class="st0">&quot;%k&quot;</span>, SYMLINK+=<span class="st0">&quot;usbbackup&quot;</span>
  </div>
</div>
<p>  Cette ligne indique à udev que lorsqu'il reçoit un message d'arrivée pour un device que le kernel désire nommer "sdX1", que ce device a le product ID et vendor ID qui nous intéresse, garder le nom d'origine (NAME="%k") mais ajouter un lien symbolique ver usbbackup.  C'est tout simple et cela marche à chaud, débranchez votre disque, re-branchez le et le lien doit apparaître sans autre problème.... Et voilà <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>Alors à partir de là, on peut pousser tout cela un peu plus loin, par exemple en renommant "physiquement" un device. Dans la "rule" précédente, le choix était fait de conserver le nom d'origine (NAME="%k") et de faire un lien symbolique (SYMLINK+="usbbackup"). Il est donc possible de directement renommer la partition en usbbackup via la règle :</p>
<div class='code-block code-block-fragment'>
<div class='container'>
  <span class="re2">BUS=</span>=<span class="st0">&quot;usb&quot;</span>, <span class="re2">KERNEL=</span>=<span class="st0">&quot;sd?1&quot;</span>, SYSFS<span class="br0">&#123;</span>idVendor<span class="br0">&#125;</span>==<span class="st0">&quot;04b4&quot;</span>, SYSFS<span class="br0">&#123;</span>idProduct<span class="br0">&#125;</span>==<span class="st0">&quot;6830&quot;</span>, <span class="re2">NAME=</span><span class="st0">&quot;usb-backup&quot;</span>
  </div>
</div>
<p>et même, si l'on a plusieurs partition renommer en conservant la numérotation (noter l'apparition du double ? et du %n pour le numéro de la partition) :</p>
<div class='code-block code-block-fragment'>
<div class='container'>
  <span class="re2">BUS=</span>=<span class="st0">&quot;usb&quot;</span>, <span class="re2">KERNEL=</span>=<span class="st0">&quot;sd??&quot;</span>, SYSFS<span class="br0">&#123;</span>idVendor<span class="br0">&#125;</span>==<span class="st0">&quot;04b4&quot;</span>, SYSFS<span class="br0">&#123;</span>idProduct<span class="br0">&#125;</span>==<span class="st0">&quot;6830&quot;</span>, <span class="re2">NAME=</span><span class="st0">&quot;usb-backup-%n&quot;</span>
  </div>
</div>
<p>Pilotes USB</p>
<dl>
<dt>uhci_hcd</dt>
<dd>Prise en charge du mode USB host</dd>
<dt>ohci_hcd</dt>
<dd>Prise en charge du mode USB 1.1</dd>
<dt>ehci_hcd</dt>
<dd>Prise en charge du mode USB 2.0</dd>
</dl>
    ]]></content>
  </entry>
</feed>
