<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JoPa.Fr &#187; Openwrt</title>
	<atom:link href="http://www.jopa.fr/index.php/tag/openwrt/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jopa.fr</link>
	<description>001100010BIDOUILLE11101010111100010LIBRE1000100111100101</description>
	<lastBuildDate>Tue, 10 Jan 2012 21:59:31 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Fonera 2.0 en serveur NFS sous Openwrt Kamikaze</title>
		<link>http://www.jopa.fr/index.php/2008/12/05/fonera-20-en-serveur-nfs-sous-openwrt-kamikaze/</link>
		<comments>http://www.jopa.fr/index.php/2008/12/05/fonera-20-en-serveur-nfs-sous-openwrt-kamikaze/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 23:01:19 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Disque dur]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>
		<category><![CDATA[Réseau]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=933</guid>
		<description><![CDATA[Lors de précédents retours d&#8217;expériences, j&#8217;ai montré comment installer Openwrt et  gérer des périphériques de stockage usb sur une Fonera 2.0. L&#8217;idée aujourd&#8217;hui est de pousser plus loin en transformant cette Fonera en serveur NFS. Pour cela, je dispose d&#8217;une Fonera 2.0 flashée sous Openwrt kamikaze (8.09 RC1) sur laquelle est connecté un disque usb [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/12/fonera_disque.jpg"><img class="alignleft size-full wp-image-941" title="fonera_disque" src="http://www.jopa.fr/wp-content/uploads/2008/12/fonera_disque.jpg" alt="" width="171" height="154" /></a>Lors de précédents retours d&#8217;expériences, j&#8217;ai montré comment <a title="http://www.jopa.fr/index.php/2008/10/22/flash-de-la-fonera-2-2202-avec-openwrt/" href="http://www.jopa.fr/index.php/2008/10/22/flash-de-la-fonera-2-2202-avec-openwrt/">installer Openwrt</a> et  <a title="http://www.jopa.fr/index.php/2008/10/24/openwrt-usbstorage-cle-usb/" href="http://www.jopa.fr/index.php/2008/10/24/openwrt-usbstorage-cle-usb/">gérer des périphériques de stockage usb</a> sur une <em>Fonera</em> 2.0. L&#8217;idée aujourd&#8217;hui est de pousser plus loin en transformant cette <em>Fonera</em> en serveur NFS.</p>
<p style="text-align: justify;">Pour cela, je dispose d&#8217;une <em>Fonera</em> 2.0 flashée sous <em>Openwrt</em> <em>kamikaze</em> (8.09 RC1) sur laquelle est connecté un disque usb formaté en ext3. Le réseau est correctement configuré et opérationnel.</p>
<p><span id="more-933"></span></p>
<p style="text-align: justify;">Commençons par installer quelques paquets indispensables :</p>
<ul>
<li><strong>kmod-usb2</strong> : gestion de l&#8217; USB,</li>
<li><strong>kmod-usb-storage</strong> : gestion des périphériques de stockages USB,</li>
<li><strong>kmod-fs-ext3</strong> : prise en charge des systèmes de fichiers ext3,</li>
<li><strong>nfs-kernel-server</strong> : serveur nfs,</li>
<li><strong>nfs-kernet-server-utils</strong> : utilitaires optionnels (tels que <em>nfstat</em>),</li>
<li><strong>portmap </strong>: indispensable pour le serveur nfs et pourtant oublié dans les dépendances.</li>
</ul>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p933code6'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9336"><td class="code" id="p933code6"><pre class="sh" style="font-family:monospace;"># opkg update
# opkg install kmod-usb2
# opkg install kmod-usb-storage
# opkg install kmod-fs-ext3
# opkg install nfs-kernel-server
# opkg install nfs-kernel-server-utils
# opkg install portmap</pre></td></tr></table></div>

<p>Une fois les paquets installés, le disque devrait être reconnu et automatiquement monté dans <em>/mnt/usbdrive</em>.</p>
<p>Le suite consiste à configurer l&#8217;export <em>nfs</em>.</p>
<p>Pour cela, il faut éditer le fichier <em>/etc/exports</em>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p933code7'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9337"><td class="code" id="p933code7"><pre class="ini" style="font-family:monospace;">/mnt/usbdrive    192.168.7.0/<span style="">24</span> <span style="">&#40;</span>rw,no_root_squash,async<span style="">&#41;</span></pre></td></tr></table></div>

<ul>
<li>export de /mnt/usbdrive,</li>
<li>pour toutes les machines du réseau 192.168.7.0,</li>
<li>en lecture et écriture,</li>
<li>autoriser root à accéder aux fichiers,</li>
<li>en asynchrone.</li>
</ul>
<p>Il ne reste plus qu&#8217;à démarrer le serveur nfs :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p933code8'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9338"><td class="code" id="p933code8"><pre class="sh" style="font-family:monospace;"># /etc/init.d/portmap start
# /etc/init.d/nfsd start</pre></td></tr></table></div>

<p>Pour activer le lancement automatique des démons au démarrage d&#8217;<em>openwrt :</em></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p933code9'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9339"><td class="code" id="p933code9"><pre class="sh" style="font-family:monospace;"># /etc/init.d/portmap enable
# /etc/init.d/nfsd enable</pre></td></tr></table></div>

<p>Côté client nfs, le montage se fait classiquement :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p933code10'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p93310"><td class="code" id="p933code10"><pre class="sh" style="font-family:monospace;"># mount -t nfs adresse_ip_fonera:/mnt/usbdrive /mnt/owrt</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/12/05/fonera-20-en-serveur-nfs-sous-openwrt-kamikaze/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Sylvester sur Fonera 2.0 &#8211; zé ru voir un rominet !</title>
		<link>http://www.jopa.fr/index.php/2008/12/03/sylvester-sur-fonera-20-ze-ru-voir-un-rominet/</link>
		<comments>http://www.jopa.fr/index.php/2008/12/03/sylvester-sur-fonera-20-ze-ru-voir-un-rominet/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 23:25:07 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=901</guid>
		<description><![CDATA[Sylvester est le nouveau firmware &#171;&#160;officiel&#160;&#187; (2.1.0.2) pour la Fonera 2.0. Cette version apportant son lot de corrections et de nouveautés, elle mérite quelques tests. Lors de mon précédent flash avec OpenWrt Kamikaze , j&#8217;ai supprimé le loader qui était alors inutile, voir gênant. La mise en place de cette nouvelle image s&#8217;annonce donc un [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/11/sylvester.jpg"><img class="alignright size-full wp-image-915" title="sylvester" src="http://www.jopa.fr/wp-content/uploads/2008/11/sylvester.jpg" alt="" width="331" height="266" /></a><em>Sylvester</em> est le nouveau firmware &laquo;&nbsp;officiel&nbsp;&raquo; (2.1.0.2) pour la Fonera 2.0. Cette version apportant son lot de corrections et de nouveautés, elle mérite quelques tests. Lors de mon <a title="http://www.jopa.fr/index.php/2008/10/22/flash-de-la-fonera-2-2202-avec-openwrt/" href="http://www.jopa.fr/index.php/2008/10/22/flash-de-la-fonera-2-2202-avec-openwrt/">précédent flash avec <em>OpenWrt </em><em>Kamikaze</em></a> , j&#8217;ai supprimé le <em>loader</em> qui était alors inutile, voir gênant. La mise en place de cette nouvelle image s&#8217;annonce donc un tout petit peu plus fastidieuse qu&#8217;une mise à jour classique.</p>
<p> &nbsp; </p>
<p> &nbsp; </p>
<p><span id="more-901"></span></p>
<p>Commençons par télécharger:</p>
<ul>
<li>l&#8217;image du loader : <a title="http://download.fon.com/beta/2/loader.bin" href="http://download.fon.com/beta/2/loader.bin">loader.bin</a>,</li>
<li>l&#8217;image de Sylverster : <a title="http://fonosfera.org/dl/20081110_FON2202_2.1.0_beta2_SYLVESTER.image" href="http://fonosfera.org/dl/20081110_FON2202_2.1.0_beta2_SYLVESTER.image">sylverster.image</a>.</li>
</ul>
<p style="text-align: justify;">Nous allons, comme à notre habitude, passer par le redboot pour flasher tout ça. La ré-écriture du script de boot pour y ré-integer le <em>loader</em> ne nous laisse pas vraiment le choix. Les deux fichiers téléchargés doivent être copiés sur le serveur <em>tftp</em> (ou http), de façon à pouvoir être récupérées depuis le <em>redboot</em>.</p>
<h2>1 &#8211; Accéder au Redboot</h2>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p901code15'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p90115"><td class="code" id="p901code15"><pre class="sh" style="font-family:monospace;"># sudo ifconfig eth0:1 192.168.1.254
&nbsp;
# redboot.pl 192.168.1.1
192.168.1.1 is unreachable
ICMP Host Unreachable from 192.168.1.254 for ICMP Echo sent to 192.168.1.1
ICMP Host Unreachable from 192.168.1.254 for ICMP Echo sent to 192.168.1.1
192.168.1.1 is unreachable
192.168.1.1 is alive
-&gt; == Executing boot script in 1.450 seconds - enter ^C to abort
&lt;- ^C
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Redboot &gt;</pre></td></tr></table></div>

<h2>2 &#8211; Initialisation</h2>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p901code16'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p90116"><td class="code" id="p901code16"><pre class="sh" style="font-family:monospace;">RedBoot&gt; ip
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.254
&nbsp;
RedBoot&gt; fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0xA8000000  0xA8000000  0x00030000  0x00000000
vmlinux.bin.l7    0xA8030000  0x80041000  0x000C0000  0x80041000
rootfs            0xA80F0000  0x80040400  0x006F0000  0x80040400
FIS directory     0xA87E0000  0xA87E0000  0x0000F000  0x00000000
RedBoot config    0xA87EF000  0xA87EF000  0x00001000  0x00000000
&nbsp;
RedBoot&gt; fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image SystemRedBoot&gt; fis create loader
... Erase from 0xa8030000-0xa8040000: .
... Program from 0x80100000-0x80110000 at 0xa8030000: .
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .</pre></td></tr></table></div>

<h2>3 &#8211; Le loader</h2>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p901code17'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p90117"><td class="code" id="p901code17"><pre class="sh" style="font-family:monospace;">RedBoot&gt; load -r -b 0x80100000 loader.bin
Using default protocol (TFTP)
Raw file loaded 0x80100000-0x8010ffff, assumed entry at 0x80100000
&nbsp;
RedBoot&gt; fis create loader
... Erase from 0xa8030000-0xa8040000: .
... Program from 0x80100000-0x80110000 at 0xa8030000: .
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot&gt; fconfig boot_script_data
boot_script_data:
.. fis load -l vmlinux.bin.l7
.. exec
Enter script, terminate with empty line
&gt;&gt; fis load loader
&gt;&gt; exec
&gt;&gt;
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .</pre></td></tr></table></div>

<h2>4 &#8211; Sylvester</h2>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p901code18'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p90118"><td class="code" id="p901code18"><pre class="sh" style="font-family:monospace;">RedBoot&gt; load -r -b %{FREEMEMLO} sylvester.image
Using default protocol (TFTP)
Raw file loaded 0x80040400-0x80470403, assumed entry at 0x80040400
RedBoot&gt; fis create image
RedBoot&gt; fis create image
... Erase from 0xa8040000-0xa8470004: ....................................................................
... Program from 0x80040400-0x80470404 at 0xa8040000: ....................................................................
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot&gt; reset</pre></td></tr></table></div>

<p style="text-align: justify;">Après le reboot, la fonera devrait répondre à l&#8217;adresse : <em>192.168.10.1</em><br />
Le login administrateur par défaut est <em>root/admin</em></p>
<p style="text-align: justify;">La suite en images&#8230;</p>
<div id="attachment_921" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.jopa.fr/wp-content/uploads/2008/11/1-dashboard1.png"><img class="size-full wp-image-921" title="1-dashboard1" src="http://www.jopa.fr/wp-content/uploads/2008/11/1-dashboard1.png" alt="Le dashboard" width="500" height="280" /></a><p class="wp-caption-text">Le dashboard</p></div>
<div id="attachment_922" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.jopa.fr/wp-content/uploads/2008/11/2-setting.png"><img class="size-full wp-image-922" title="2-setting" src="http://www.jopa.fr/wp-content/uploads/2008/11/2-setting.png" alt="L'écran de configuration" width="500" height="260" /></a><p class="wp-caption-text">L&#39;écran de configuration</p></div>
<div id="attachment_923" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.jopa.fr/wp-content/uploads/2008/11/3-file_browser.png"><img class="size-full wp-image-923" title="3-file_browser" src="http://www.jopa.fr/wp-content/uploads/2008/11/3-file_browser.png" alt="Le gestionnaire de fichiers" width="500" height="286" /></a><p class="wp-caption-text">Le gestionnaire de fichiers</p></div>
<div id="attachment_924" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.jopa.fr/wp-content/uploads/2008/11/4-plugins.png"><img class="size-full wp-image-924" title="4-plugins" src="http://www.jopa.fr/wp-content/uploads/2008/11/4-plugins.png" alt="Le gestionnaire de plugins" width="500" height="253" /></a><p class="wp-caption-text">Le gestionnaire de plugins</p></div>
<div id="attachment_925" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.jopa.fr/wp-content/uploads/2008/11/5-services.png"><img class="size-full wp-image-925" title="5-services" src="http://www.jopa.fr/wp-content/uploads/2008/11/5-services.png" alt="L'écran" width="500" height="234" /></a><p class="wp-caption-text">L&#39;écran de configuration des services</p></div>
<div id="attachment_926" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.jopa.fr/wp-content/uploads/2008/11/6-webcam.png"><img class="size-full wp-image-926" title="6-webcam" src="http://www.jopa.fr/wp-content/uploads/2008/11/6-webcam.png" alt="Et l" width="500" height="332" /></a><p class="wp-caption-text">Et l&#39;incontournable Webcam</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/12/03/sylvester-sur-fonera-20-ze-ru-voir-un-rominet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Openwrt et webcam usb : 2ème partie &#8211; Vidéo-surveillance avec &#171;&#160;Motion&#160;&#187;</title>
		<link>http://www.jopa.fr/index.php/2008/11/06/openwrt-et-webcam-2eme-partie-video-surveillance-avec-motion/</link>
		<comments>http://www.jopa.fr/index.php/2008/11/06/openwrt-et-webcam-2eme-partie-video-surveillance-avec-motion/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 23:31:30 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>
		<category><![CDATA[Vidéo]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=722</guid>
		<description><![CDATA[&#171;&#160;Motion&#160;&#187; est un outil permettant d&#8217;enregistrer des images à partir d&#8217;une webcam, lorsque des mouvements sont détectés. Porté sous Openwrt, son installation se réalise par un simple &#171;&#160;opkg install motion&#171;&#160;. Le fichier de configuration, /etc/motion.conf, très bien commenté, permet, en plus de nombreux réglages très fin tels que le niveau de bruits, de la qualité [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/10/cam2.jpg"><img class="alignleft size-medium wp-image-738" title="cam2" src="http://www.jopa.fr/wp-content/uploads/2008/10/cam2-300x225.jpg" alt="" width="300" height="225" /></a>&laquo;&nbsp;<strong>Motion</strong>&nbsp;&raquo; est un outil permettant d&#8217;enregistrer des images à partir d&#8217;une webcam, lorsque des mouvements sont détectés. Porté sous <em>Openwrt</em>, son installation se réalise par un simple &laquo;&nbsp;<em>opkg install motion</em>&laquo;&nbsp;.</p>
<p style="text-align: justify;">Le fichier de configuration, <em>/etc/motion.conf, </em>très bien commenté, permet, en plus de nombreux réglages très fin tels que le niveau de bruits, de la qualité des images et la fréquence de prises de snapshots,  de spécifier le chemin d&#8217;enregistrement des images.</p>
<p style="text-align: justify;">Contrairement à la version PC, la génération de films à partir des snapshots grâce à <em>ffmpeg</em> ne semble pas fonctionner  et ce malgrès l&#8217;installation de ce dernier.</p>
<p style="text-align: justify;">Ceci dit, nous avons ici de quoi réaliser un joli système de vidéo-surveillance wifi à moindre coût.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/11/06/openwrt-et-webcam-2eme-partie-video-surveillance-avec-motion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Openwrt, Openvpn et Firewall&#8230;</title>
		<link>http://www.jopa.fr/index.php/2008/11/03/openwrt-openvpn-et-firewall/</link>
		<comments>http://www.jopa.fr/index.php/2008/11/03/openwrt-openvpn-et-firewall/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 00:01:55 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Configurations]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Openvpn]]></category>
		<category><![CDATA[Openwrt]]></category>
		<category><![CDATA[Sécurité]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=687</guid>
		<description><![CDATA[Les dernières versions d&#8217;Openwrt (développement) intègrent un système de configuration plus homogène. L&#8217;ensemble de la configuration des services est placée dans le répertoire /etc/config, au même titre que le paramétrage des interfaces réseaux et wifi. La syntaxe diffère un peu de ce que nous pouvions avoir vu jusque là et mérite que nous y regardions [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/10/politique_defaut.png"><img class="alignright size-medium wp-image-696" title="politique_defaut" src="http://www.jopa.fr/wp-content/uploads/2008/10/politique_defaut-300x258.png" alt="" width="300" height="258" /></a>Les dernières versions d&#8217;Openwrt (développement) intègrent un système de configuration plus homogène. L&#8217;ensemble de la configuration des services est placée dans le répertoire /etc/config, au même titre que le paramétrage des interfaces réseaux et wifi. La syntaxe diffère un peu de ce que nous pouvions avoir vu jusque là et mérite que nous y regardions de plus près.</p>
<p style="text-align: justify;">La suite de l&#8217;article va présenter la configuration d&#8217;un client Openvpn et la mise en place de quelques règles de firewall entre le lan, Internet et ce vpn.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><span id="more-687"></span></p>
<h1>Openvpn</h1>
<p style="text-align: justify;">L&#8217;installation ne pose pas de problème particulier, il faut quand même penser que l&#8217;outil de gestion des paquets est maintenant <em>opkg</em> et non plus <em>ipkg</em> !</p>
<p style="text-align: justify;"><em>opkg install openvpn</em></p>
<p style="text-align: justify;">Comme précisé en introduction, le fichier de configuration est maintenant <em>/etc/config/openvpn.</em></p>
<p style="text-align: justify;">Le fichier founit par le paquet contient deux exemples de configurations bien commentés  (serveur ou client). L&#8217;exemple ci-dessous concerne un client.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p687code25'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p68725"><td class="code" id="p687code25"><pre class="ini" style="font-family:monospace;">package openvpn                                                                                                                                              
&nbsp;
config openvpn linet.jopa                                                                                                                                    
&nbsp;
    # Activer le VPN
    option enable <span style="">1</span>                                                                                                                                      
&nbsp;
    # Mode Client
    option client <span style="">1</span>                                                                                                                                      
&nbsp;
    # Type d'interface <span style="">&#40;</span>tap ou tun<span style="">&#41;</span>
    option dev tun                                                                                                                                       
&nbsp;
    # Protocole <span style="">&#40;</span>tcp ou udp<span style="">&#41;</span>
    option proto udp                                                                                                                                     
&nbsp;
    # Adresse et port du serveur
    # Plusieurs lignes possible pour effectuer du load balancing
    # XX.XX.XX.XX est à remplacer par l'IP publique du serveur VPN
    list remote <span style="color: #933;">&quot;XX.XX.XX.XX 1194&quot;</span>                                                                                                                      
&nbsp;
    # Définition de la liaison point à point
    # N'est pas utilse si un pool d'adresses est defini sur le serveur
    option ifconfig <span style="color: #933;">&quot;10.8.1.1 10.8.1.2&quot;</span>                                                                                                        
&nbsp;
    # Essayer de résoudre l'adresse du serveur indéfiniment
    option resolv_retry infinite                                                                                                                         
&nbsp;
    # Inutile d'attacher un port specifique au client
    option nobind <span style="">1</span>                                                                                                                                      
&nbsp;
    # Essayer de conserver certains états au redémarrage
    option persist_key <span style="">1</span>
    option persist_tun <span style="">1</span>                              
&nbsp;
    # Chemin des clés et certificats SSL/TLS
    option ca /etc/openvpn/ca.crt
    option cert /etc/openvpn/linet.jopa.crt
    option key /etc/openvpn/linet.jopa.key                                                                                                               
&nbsp;
    # Activer le compression lzo
    option comp_lzo <span style="">1</span>                                                                                                                                    
&nbsp;
    # Niveaux de Logs
    option verb <span style="">3</span></pre></td></tr></table></div>

<p style="text-align: justify;">La configuration du client VPN est terminée&#8230;<br />
Pour complément d&#8217;informations, vous trouverez ci-dessous la configuration du serveur VPN correspondant. (Openvpn sur serveur Debian Etch). Le site &laquo;&nbsp;<a title="http://www.coagul.org/spip.php?article422&amp;var_recherche=openvpn" href="http://www.coagul.org/spip.php?article422&amp;var_recherche=openvpn">Coagul</a>&nbsp;&raquo; propose un tutoriel complet sur la mise en place d&#8217;une architecture Openvpn (SSL/TLS).</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p687code26'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p68726"><td class="code" id="p687code26"><pre class="ini" style="font-family:monospace;"># Serveur OpenVPN - Liaison avec Fonera/Openwrt Maison
&nbsp;
# Protocole / Interface / Port
proto udp
dev tun
port <span style="">1194</span>
&nbsp;
# Certificats 
&nbsp;
ca ca.crt
cert vpnserver.crt
key vpnserver.key
dh dh2048.pem
&nbsp;
# Serveur <span style="">&#40;</span>SSL/TLS<span style="">&#41;</span>
tls-server
&nbsp;
# Configuration statique des adresses Ptp
ifconfig 10.8.1.2 10.8.1.1
&nbsp;
# Adresse publique locale à utiliser
local XX.XX.XX.XX
&nbsp;
# Keepalive
keepalive <span style="">10</span> <span style="">90</span>
&nbsp;
# Compression LZO
comp-lzo
&nbsp;
# Utilisateur et groupe du démon openvpn
user nobody
group nogroup
&nbsp;
# Conserver l'état des clés et de l'interface au redémarrage
persist-key
persist-tun
&nbsp;
# Fichier de status
status openvpnlinet-status.log
&nbsp;
# Création d'une route sur le serveur
route 192.168.7.0 255.255.255.0
&nbsp;
# Ajout de routes sur le client
push <span style="color: #933;">&quot;route 192.168.70.0 255.255.255.0&quot;</span>
push <span style="color: #933;">&quot;route 192.168.72.0 255.255.255.0&quot;</span></pre></td></tr></table></div>

<h1>Firewall</h1>
<p>Nous disposons maintenant d&#8217;un routeur/firewall <em>OpenWrt</em> à trois pattes :</p>
<ul>
<li>LAN :  bridge entre l&#8217;interface ethernet connectée au réseau privé et l&#8217;interface wifi,</li>
<li>WAN : Interface ethernet publique,</li>
<li>VPN :  Interface virtuelle pour le vpn.</li>
</ul>
<p>Il nous faut avant tout déclarer l&#8217;interface <em>tun0</em> dans la configuration réseau pour pouvoir ensuite l&#8217;affecter à une zone du firewall. Celle-ci sera déclarée sur un réseau que nous appellerons arbitrairement &laquo;&nbsp;<em>vpn</em>&laquo;&nbsp;.</p>
<p><em>/etc/config/network</em></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p687code27'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p68727"><td class="code" id="p687code27"><pre class="ini" style="font-family:monospace;">config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
        option 'ipaddr' '127.0.0.1'
        option 'netmask' '255.0.0.0'
&nbsp;
config 'interface' 'lan'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'ipaddr' '192.168.7.253'
        option 'netmask' '255.255.255.0'
        option 'ifname' 'eth0.0'
        option 'dns' '192.168.7.2'
&nbsp;
config 'interface' 'wan'
        option 'ifname' 'eth0.1'
        option 'proto' 'dhcp'
&nbsp;
config 'interface' 'vpn'
        option 'ifname' 'tun0'
        option 'network' 'vpn'
        option 'proto' 'none'</pre></td></tr></table></div>

<h2>Définition de la politique par défaut</h2>
<p>Nous pouvons dès à présent attaquer la configuration du Firewall. Pour une utilisation à domicile, nous allons opter pour une politique assez ouverte (pas trop quand même !).</p>
<p><a href="http://www.jopa.fr/wp-content/uploads/2008/10/politique_defaut.png"><img class="aligncenter size-full wp-image-696" title="politique_defaut" src="http://www.jopa.fr/wp-content/uploads/2008/10/politique_defaut.png" alt="" width="500" height="431" /></a></p>
<p>Seul le trafic du <em>lan</em> vers le routeur et du routeur vers Internet est ouvert.</p>
<p style="text-align: justify;">Si nous avions appliqué une politique plus sévère, nous aurions tout vérouillé à ce stade, pour gérer ensuite les autorisations au cas par cas en fonction du type flux.</p>
<p>/etc/config/firewall</p>
<pre style="text-align: justify;" lang="ini">config 'defaults'
        option 'syn_flood' '1'
        option 'input' 'REJECT'
        option 'output' 'REJECT'
        option 'forward' 'REJECT'                                                                    

config 'zone'
        option 'name' 'lan'
        option 'input' 'ACCEPT'
        option 'output' 'REJECT'
        option 'forward' 'REJECT'                                                                    

config 'zone'
        option 'name' 'vpn'
        option 'input' 'REJECT'
        option 'output' 'REJECT'
        option 'forward' 'REJECT'                                                                                                                                 

config 'zone'
        option 'name' 'wan'
        option 'input' 'REJECT'
        option 'forward' 'REJECT'
        option 'output' 'ACCEPT
        option 'masq' '1'</pre>
<p style="text-align: justify;">La dernière option (masq) permet biensûr d&#8217;activer le masquerading pour internet.</p>
<h2>Quelques ouvertures</h2>
<p style="text-align: justify;">Au delà de ce paramétrage par défaut, nous avons besoins d&#8217;être un peu plus permissifs, histoire de rendre la connexion internet utilisable !</p>
<p>Comme nous somme à la maison, nous allons nous permettre d&#8217;ouvrir le trafic provenant du <em>lan</em> et à destination du <em>vpn</em> ou d&#8217;<em>Internet</em>.</p>
<p><a href="http://www.jopa.fr/wp-content/uploads/2008/10/etape1.png"><img class="aligncenter size-full wp-image-702" title="etape1" src="http://www.jopa.fr/wp-content/uploads/2008/10/etape1.png" alt="" width="500" height="431" /></a></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p687code28'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p68728"><td class="code" id="p687code28"><pre class="ini" style="font-family:monospace;">config 'forwarding'
        option 'src' 'lan'
        option 'dest' 'wan'                                                                        
&nbsp;
config 'forwarding'
        option 'src' 'lan'
        option 'dest' 'vpn'</pre></td></tr></table></div>

<p style="text-align: justify;">Nous allons ensuite autoriser <em>ssh</em> et le <em>ping</em> depuis le <em>vpn</em> vers le <em>lan</em>&#8230; Puis soyons fous, nous allons aussi permettre le ping du routeur depuis Internet.</p>
<p><a href="http://www.jopa.fr/wp-content/uploads/2008/10/etape21.png"><img class="aligncenter size-full wp-image-704" title="etape21" src="http://www.jopa.fr/wp-content/uploads/2008/10/etape21.png" alt="" width="500" height="431" /></a></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p687code29'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p68729"><td class="code" id="p687code29"><pre class="ini" style="font-family:monospace;">config 'rule'
        option '_name' 'Ssh depuis VPN'
        option 'src' 'vpn'
        option 'dest' 'lan'
        option 'proto' 'tcp'
        option 'dest_port' '<span style="">22</span>'
        option 'target' 'ACCEPT'
&nbsp;
config 'rule'
        option '_name' 'Ping depuis VPN'
        option 'src' 'vpn'
        option 'dest' 'lan'
        option 'proto' 'icmp'
        option 'target' 'ACCEPT'  
&nbsp;
config 'rule'
        option '_name' 'Ping depuis Internet'
        option 'src' 'wan'
        option 'proto' 'icmp'
        option 'target' 'ACCEPT'</pre></td></tr></table></div>

<p style="text-align: justify;">Pour finir, nous pouvons rendre accessible depuis <em>Internet</em> le serveur web d&#8217;une machine située sur le Lan. ( Ceci est un exemple, dans la pratique, une <em>dmz</em> ne serait pas du luxe !).</p>
<p><a href="http://www.jopa.fr/wp-content/uploads/2008/10/etape3.png"><img class="aligncenter size-full wp-image-705" title="etape3" src="http://www.jopa.fr/wp-content/uploads/2008/10/etape3.png" alt="" width="500" height="431" /></a></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p687code30'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p68730"><td class="code" id="p687code30"><pre class="ini" style="font-family:monospace;">config 'redirect'
        option '_name' 'Http vers web perso'
        option 'src' 'wan'
        option 'proto' 'tcp'
        option 'src_dport' '<span style="">22</span>'
        option 'dest_ip' '192.168.7.2'
        option 'dest_port' '<span style="">22</span>'</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/11/03/openwrt-openvpn-et-firewall/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Openwrt et webcam usb : 1ère Partie &#8211; streaming wifi</title>
		<link>http://www.jopa.fr/index.php/2008/11/01/openwrt-et-webcam-usb-streaming-wifi/</link>
		<comments>http://www.jopa.fr/index.php/2008/11/01/openwrt-et-webcam-usb-streaming-wifi/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 23:01:05 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>
		<category><![CDATA[Vidéo]]></category>
		<category><![CDATA[webcam]]></category>
		<category><![CDATA[Wifi]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=719</guid>
		<description><![CDATA[Le port usb de la fonera 2 augmente incontestablement l&#8217;étendue des possibilités d&#8217;un système embarqué Openwrt. Je vais m&#8217;interresser ici a l&#8217;utilisation d&#8217;une webcam usb afin de réaliser un système de streaming vidéo wifi. Pour ce montage, je vais utiliser une webcam Logitech Fusion, compatible avec les pilotes uvc et une Fonera 2.0, flashée sous [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/10/cam1.jpg"><img class="alignleft size-medium wp-image-725" title="cam1" src="http://www.jopa.fr/wp-content/uploads/2008/10/cam1-300x213.jpg" alt="" width="300" height="213" /></a>Le port <em>usb</em> de la fonera 2 augmente incontestablement l&#8217;étendue des possibilités d&#8217;un système embarqué <em>Openwrt</em>. Je vais m&#8217;interresser ici a l&#8217;utilisation d&#8217;une webcam usb afin de réaliser un système de streaming vidéo wifi.</p>
<p style="text-align: justify;">Pour ce montage, je vais utiliser une <em>webcam Logitech Fusion</em>, compatible avec les pilotes <em>uvc</em> et une <em>Fonera 2.0</em>, flashée sous OpenWrt (version développement, snapshot du 25/10/2008).</p>
<p style="text-align: justify;"><span id="more-719"></span></p>
<p style="text-align: justify;">Je ne vais pas revenir sur la configuration Wifi, abondante sur Internet (et sur ce blog).</p>
<p style="text-align: justify;">Le fonctionnement dépend des modules <em>usb2</em> et <em>video-uvc</em>. L&#8217;outil <em>uvc-streamer </em>va permette la diffusion du flux vidéo.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p719code34'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p71934"><td class="code" id="p719code34"><pre class="sh" style="font-family:monospace;"># opkg install kmod-usb2 kmod-video-uvc uvc-streamer</pre></td></tr></table></div>

<p style="text-align: justify;">Le gestionnaire de dépendances se charge d&#8217;installer les modules complémentaires et les librairies nécessaires.<br />
Le périphérique v4l2 <em>/dev/video0</em> est créé si tout se passe bien.</p>
<p>Le stream vidéo peut être lancé manuellement grâce à la commande<em> uvc_streamer</em>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p719code35'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p71935"><td class="code" id="p719code35"><pre class="sh" style="font-family:monospace;"># uvc_streamer -d /dev/video0 -r 640x480 -f 15 -p 8080</pre></td></tr></table></div>

<ul>
<li>-d : Device v4l à utiliser,</li>
<li>-r : Résolution,</li>
<li>-f : Nombre de frames par secondes,</li>
<li>-p : Port pour le flux vidéo.</li>
</ul>
<p style="text-align: justify;">L&#8217;accès au flux <em>http</em> se fait à partir de n&#8217;importe quel navigateur (enfin presque&#8230;peut-être pas lynx).</p>
<p><em>http://adresse_fonera2 :8080</em></p>
<p><a href="http://www.jopa.fr/wp-content/uploads/2008/10/capture.png"><img class="size-full wp-image-730 alignnone" title="capture" src="http://www.jopa.fr/wp-content/uploads/2008/10/capture.png" alt="" width="500" height="600" /></a></p>
<p style="text-align: justify;">Un script de lancement est disponible :<em> /etc/init.d/uvc-streamer</em> et un fichier de paramétrage : <em>/etc/config/uvc-streamer .<br />
</em></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p719code36'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p71936"><td class="code" id="p719code36"><pre class="ini" style="font-family:monospace;">config uvc-streamer
option device          '/dev/video0'
option resolution      '640x480'
option framespersecond '<span style="">15</span>'
option port            '<span style="">8080</span>'
option enabled         '<span style="">1</span>'</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/11/01/openwrt-et-webcam-usb-streaming-wifi/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Dnsmasq : DNS (cache) et DHCP</title>
		<link>http://www.jopa.fr/index.php/2008/10/30/dnsmasq-dns-cache-et-dhcp/</link>
		<comments>http://www.jopa.fr/index.php/2008/10/30/dnsmasq-dns-cache-et-dhcp/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 23:03:07 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Configurations]]></category>
		<category><![CDATA[Dhcp]]></category>
		<category><![CDATA[Dns]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Openwrt]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=572</guid>
		<description><![CDATA[DnsMasq est un petit serveur DNS (cache DNS) qui intègre un serveur DHCP. Peu gourmand en ressources et très simple à configurer, il est bien adapté à une installation sur une solution embarquée telle qu&#8217;un routeur ou point d&#8217;accès wifi (sous OpenWRT par exemple ; &#8211; ) Après un petit ipkg install dnsmasq, le cache [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a rel="attachment wp-att-581" href="http://www.jopa.fr/index.php/2008/10/30/dnsmasq-dns-cache-et-dhcp/rj45/"><img class="alignleft size-thumbnail wp-image-581" title="rj45" src="http://www.jopa.fr/wp-content/uploads/2008/10/rj45.jpg" alt="" width="246" height="182" /></a><span class="search_hit">DnsMasq</span> est un petit serveur DNS (cache DNS) qui intègre un serveur DHCP. Peu gourmand en ressources et très simple à configurer, il est bien adapté à une installation sur une solution embarquée telle qu&#8217;un routeur ou point d&#8217;accès wifi (sous OpenWRT par exemple ; &#8211; )</p>
<p style="text-align: justify;">Après un petit <em>ipkg install dnsmasq</em>, le cache DNS est opérationnel et prêt à répondre aux requêtes des clients. Pour la résolution des noms, il se base sur les DNS déclarés dans la configuration réseau (/etc/resolv.conf) ou sur le fichier /etc/hosts. Ce qui est bien pratique pour configurer une petite zone <em>lan</em> : il suffit d&#8217;éditer le fichiers <em>hosts</em> comme nous le ferions pour une seule machine.</p>
<p style="text-align: justify;">Côté serveur DHCP, il nous faut faire un minimum de conf&#8230; Ca se passe dans le fichier <em>/etc/dnsmasq.conf</em></p>
<p style="text-align: justify;">A minima, nous devrons configurer la plage dhcp, l&#8217;adresse d&#8217;un serveur DNS et une route par défaut (gateway).</p>
<p style="text-align: justify;"><span id="more-572"></span></p>
<p style="text-align: justify;"><strong>Par exemple :</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p572code39'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p57239"><td class="code" id="p572code39"><pre class="ini" style="font-family:monospace;"># Plage DHCP : de 192.168.7.100 à 192.168.7.150 pour un bail de <span style="">12</span> heures
<span style="color: #000099;">dhcp-range</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">192.168.7.100,192.168.100.150,12h</span>
# Masque de sous réseau <span style="">&#40;</span>Option <span style="">1</span><span style="">&#41;</span>
<span style="color: #000099;">dhcp-option</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">1,255.255.255.0</span>
# Route de la passerelle par défaut <span style="">&#40;</span>Option <span style="">3</span><span style="">&#41;</span>
<span style="color: #000099;">dhcp-option</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">3,192.168.7.253</span>
# Serveurs DNS  <span style="">&#40;</span>Option <span style="">6</span><span style="">&#41;</span> : 192.168.7.2 <span style="">&#40;</span>Ip du serveur dnsmasq<span style="">&#41;</span> et un serveur secondaire <span style="">&#40;</span>facultatif<span style="">&#41;</span>
<span style="color: #000099;">dhcp-option</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">6,192.168.7.2,192.168.70.1</span></pre></td></tr></table></div>

<p>Voilà pour une configuration basique&#8230;L&#8217;exemple suivant va un peu plus loin&#8230; :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p572code40'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p57240"><td class="code" id="p572code40"><pre class="ini" style="font-family:monospace;">domain-needed
bogus-priv
filterwin2k
&nbsp;
localise-queries
<span style="color: #000099;">local</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">/lan/</span>
<span style="color: #000099;">domain</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">linet.jopa.fr</span>
expand-hosts
no-negcache
<span style="color: #000099;">resolv-file</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">/tmp/resolv.conf.auto</span>
&nbsp;
dhcp-authoritative
<span style="color: #000099;">dhcp-leasefile</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">/tmp/dhcp.leases</span>
&nbsp;
# use /etc/ethers for static hosts<span style="color: #666666; font-style: italic;">; same format as --dhcp-host</span>
read-ethers
&nbsp;
# Plage DHCP
<span style="color: #000099;">dhcp-range</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">192.168.7.100,192.168.100.150,12h</span>
# Netmask
<span style="color: #000099;">dhcp-option</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">1,255.255.255.0</span>
# Route
<span style="color: #000099;">dhcp-option</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">3,192.168.7.253</span>
# DNS
<span style="color: #000099;">dhcp-option</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">6,192.168.7.2,192.168.70.1</span></pre></td></tr></table></div>

<p style="text-align: justify;">Quelques explications sur les options utilisées. Il en existe bien d&#8217;autres, je vous invite à consulter le man pour approfondir le sujet&#8230; Ce qui suit en est largement inspiré&#8230;</p>
<p style="text-align: justify;"><strong>domain-needed</strong> : Ne transmet pas les requêtes ne contenant pas un nom de domaine complet. Par exemple une requête pour machine ne sera pas transmise aux serveurs DNS de votre FAI, alors qu&#8217;une requête pour machine.domain.com le sera.</p>
<p style="text-align: justify;"><strong>bogus-priv</strong> : Fausse résolution inverse pour les réseaux privés. Toutes les requêtes <span class="glossary_def" title="DNS">DNS</span> inverses pour des adresses <span class="glossary_def" title="IP">IP</span> privées (ie 192.168.x.x, etc&#8230;) qui ne sont pas trouvées dans /etc/hosts ou dans le fichier de baux <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> se voient retournées une réponse &laquo;&nbsp;pas de tel domaine&nbsp;&raquo; (&laquo;&nbsp;no such domain&nbsp;&raquo;) au lieu d&#8217;être transmises aux serveurs de nom amont (&laquo;&nbsp;upstream server&nbsp;&raquo;).</p>
<p style="text-align: justify;"><strong>filter-win2k</strong> : Les dernières versions de windows font des requêtes <span class="glossary_def" title="DNS">DNS</span> périodiques auxquelles non seulement les serveurs <span class="glossary_def" title="DNS">DNS</span> publics ne peuvent donner de réponse, mais qui, de surcroît, peuvent poser des problèmes en déclenchant des connexions intempestives pour des liens réseaux avec des connexions &laquo;&nbsp;à la demande&nbsp;&raquo;. Fournir cette option active le filtrage des requêtes de ce type. Les requêtes bloquées sont les requêtes pour les entrées de type SOA ou SRV, ainsi que les requêtes de type ANY avec des noms possédant des caractères sous-lignés (requêtes pour des serveurs <acronym title="Lightweight Directory Access Protocol">LDAP</acronym>).</p>
<p style="text-align: justify;"><strong>localise-query</strong> : Retourne des réponses aux requêtes <span class="glossary_def" title="DNS">DNS</span> dépendantes de l&#8217;interface sur laquelle la requête a été reçue, à partir du fichier /etc/hosts. Si un nom dans /etc/hosts a plus d&#8217;une adresse associée avec lui, et qu&#8217;une des adresses au moins est dans le même sous-réseau que l&#8217;interface sur laquelle la requête a été reçue, alors ne retourne que la(les) adresse(s) du sous-réseau considéré. Cela permet d&#8217;avoir dans /etc/hosts un <span class="glossary_def" title="serveur">serveur</span> avec de multiples adresses, une pour chacune de ses interfaces, et de fournir aux hôtes l&#8217;adresse correcte (basée sur le réseau auquel ils sont attachés). Cette possibilité est actuellement limitée à <span class="glossary_def" title="IPv4">IPv4</span>.</p>
<p style="text-align: justify;"><strong>domain</strong> : Spécifie le domaine utilisé pour étendre la recherche de noms sans domaine. Utilisé également pour attribuer un domaine de recherche au clients DHCP.</p>
<p style="text-align: justify;"><strong>expand-hosts</strong> : Ajoute le nom de domaine aux noms simples (ne contenant pas de point dans le nom) contenus dans le fichier /etc/hosts, de la même façon que pour le service <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym>.</p>
<p style="text-align: justify;"><strong>no-negcache</strong> : Désactive le &laquo;&nbsp;cache négatif&nbsp;&raquo;. Le &laquo;&nbsp;cache négatif&nbsp;&raquo; permet à Dnsmasq de se souvenir des réponses de type &laquo;&nbsp;no such domain&nbsp;&raquo; fournies par les serveurs <span class="glossary_def" title="DNS">DNS</span> en amont et de fournir les réponses sans avoir à re-transmettre les requêtes aux serveurs amont.</p>
<p style="text-align: justify;" lang="ini"><strong>resolv-file</strong> : Lis les adresses des serveurs de nom amont dans le fichier de nom &lt;fichier&gt;, au lieu du fichier /etc/resolv.conf. Pour le format de ce fichier, voir dans le manuel pour <strong><a href="http://www.linuxcertif.com/man/5/resolv.conf/">resolv.conf</a></strong>(5) les entrées correspondant aux serveurs de noms (nameserver). Dnsmasq peut lire plusieurs fichiers de type resolv.conf, le premier fichier spécifié remplace le fichier par défaut, le contenu des suivants est rajouté dans la liste des fichiers à consulter. Seul le fichier ayant la dernière date de modification sera chargé en mémoire.</p>
<p style="text-align: justify;" lang="ini"><strong>dhcp-autoritative</strong> : Cette option doit être donnée lorsque Dnsmasq est le seul <span class="glossary_def" title="serveur">serveur</span> <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> sur le réseau. Cela change le comportement par défaut qui est celui d&#8217;un strict respect des <acronym title="Request for Comments">RFC</acronym>, afin que les requêtes <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> pour des baux inconnus par des hôtes inconnus ne soient pas ignorées. Cela permet à de nouveaux hôtes d&#8217;obtenir des baux sans tenir compte de fastidieuses temporisations (&laquo;&nbsp;timeout&nbsp;&raquo;). Cela permet également à Dnsmasq de reconstruire sa base de donnée contenant les baux sans que les clients n&#8217;aient besoin de redemander un bail, si celle-ci est perdue.</p>
<p style="text-align: justify;" lang="ini"><strong>dhcp-leasefile</strong> : Utilise le fichier dont le chemin est fourni pour stocker les informations de baux <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym>. Si cette option est fournie mais qu&#8217;aucune option de type dhcp-range n&#8217;est donnée, alors un comportement de type Dnsmasq version 1 est activé. Le fichier fourni est supposé être un fichier de baux <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> de type ISC DHCPD et est parcouru à la recherche de baux contenant des noms d&#8217;hôtes. Les noms trouvés sont rajoutés au <span class="glossary_def" title="DNS">DNS</span>. Cette fonctionalité peut être exclue de Dnsmasq à la compilation, auquel cas une erreur sera produite. Il est à noter que l&#8217;intégration avec un fichier de baux au format ISC est une fonctionalité obsolète. Elle ne devrait pas être utilisée dans les nouvelles installations et sera retirée dans une future version.</p>
<p style="text-align: justify;" lang="ini"><strong>read-ethers</strong> : Lis les informations d&#8217;hôtes <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> dans le fichier /etc/ethers. Le format de /etc/ethers est une adresse matérielle suivie, soit par un nom d&#8217;hôte, soit par une <span class="glossary_def" title="adresse IP">adresse IP</span> sous la forme de 4 chiffres séparés par des points. Lorsque lu par Dnsmasq, ces lignes ont exactement le même effet que l&#8217;option <em>dhcp-host</em> contenant les mêmes informations. /etc/ethers est relu à la réception d&#8217;un signal SIGHUP par Dnsmasq.</p>
<p style="text-align: justify;"><strong>dhcp-range=[[net:]identifiant de réseau,]&lt;adresse de début&gt;,&lt;adresse de fin&gt;[[,&lt;masque de réseau&gt;],&lt;<span class="glossary_def" title="broadcast">broadcast</span>&gt;][,&lt;durée de bail par défaut&gt;]</strong>Active le <span class="glossary_def" title="serveur">serveur</span> <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym>. Les adresses seront données dans la plage comprise entre &lt;adresse de début&gt; et &lt;adresse de fin&gt; et à partir des adresses définies statiquement dans l&#8217;option <strong>dhcp-host.</strong><acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> sur plus d&#8217;un réseau. Pour des réseaux directement connectés (c&#8217;est-à-dire des réseaux dans lesquels la machine sur laquelle tourne Dnsmasq possède une interface), le masque de réseau est optionnel. Il est par contre requis pour les réseaux pour lesquels le service <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> se fait via un relais <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> (&laquo;&nbsp;relay agent&nbsp;&raquo;). L&#8217;adresse de <span class="glossary_def" title="broadcast">broadcast</span> est toujours optionnelle.</p>
<p style="text-align: justify;">Si une durée de bail est donnée, alors les baux seront donnés pour cette durée. La durée de bail est donnée en secondes, en minutes (exemple : 45m), en heures (exemple : 1h) ou être la chaine de caractère &laquo;&nbsp;infinite&nbsp;&raquo; pour une durée indéterminée. Cette option peut être répétée, avec différentes adresses, pour activer le service</p>
<p style="text-align: justify;">Sur certains systèmes, Dnsmasq ne peut écouter que sur une interface lorsqu&#8217;il utilise <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym>, et le nom de l&#8217;interface doit être spécifié par l&#8217;option <strong>interface.</strong> Cette limitation affecte tous les systèmes OpenBSD avant la version 4.0. Il est toujours possible d&#8217;avoir plus d&#8217;une plage <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> pour un même sous-réseau.</p>
<p style="text-align: justify;">L&#8217;identifiant de réseau optionnel est un label alphanumérique qui permet de marquer ce réseau afin de fournir des options <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> spécifiques à chaque réseau. Lorsque préfixé par &#8216;net:&#8217;, la signification change est au lieu de définir un label, il définit le label pour laquelle la règle s&#8217;applique. Un seul label peut- être défini mais plusieurs labels peuvent coïncider.</p>
<p style="text-align: justify;">L&#8217;adresse de fin peut être remplacée par le mot-clef <strong>static</strong> (&laquo;&nbsp;statique&nbsp;&raquo;) qui indique à Dnsmasq d&#8217;activer le service <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> pour le réseau spécifié, mais de ne pas activer l&#8217;allocation dynamique d&#8217;adresses <span class="glossary_def" title="IP">IP</span>. Seuls les hôtes possédant des adresses <span class="glossary_def" title="IP">IP</span> statiques fournies via <strong>dhcp-host</strong> ou présentes dans le fichier /etc/ethers seront alors servis par le <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym>.</p>
<dl style="text-align: justify;">
<dd> </dd>
</dl>
<p style="text-align: justify;"><strong>dhcp-option=[&lt;identifiant_de_réseau&gt;,[&lt;identifiant_de_réseau&gt;,]][vendor:[&lt;classe_vendeur&gt;],][&lt;opt&gt;|option:&lt;nom d'option&gt;],[&lt;valeur&gt;[,&lt;valeur&gt;]]</strong>Spécifie des options différentes ou supplémentaires pour des clients <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym>. Par défaut, Dnsmasq envoie un ensemble standard d&#8217;options aux clients <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> : le masque de réseau et l&#8217;adresse de <span class="glossary_def" title="broadcast">broadcast</span> sont les mêmes que pour l&#8217;hôte sur lequel tourne Dnsmasq, et le <span class="glossary_def" title="serveur">serveur</span> <span class="glossary_def" title="DNS">DNS</span> ainsi que la route par défaut prennent comme valeur l&#8217;adresse de la machine sur laquelle tourne Dnsmasq. Si une option de nom de domaine a été définie, son contenu est transmis. Cette option de configuration permet de changer toutes ces valeurs par défaut, ou de spécifier d&#8217;autres options. L&#8217;option <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> à transmettre peut être fournie sous forme d&#8217;un nombre décimal ou sous la forme &laquo;&nbsp;option:&lt;nom d&#8217;option&gt;&nbsp;&raquo;. Les nombres correspondants aux options sont définis dans la RFC2132 et suivants. Les noms d&#8217;options connus par Dnsmasq peuvent être obtenus via &laquo;&nbsp;Dnsmasq &#8211;help dhcp&nbsp;&raquo;. Par exemple, pour définir la route par défaut à 192.168.4.4, il est possible de faire <strong>&#8211;dhcp-option=3,192.168.4.4</strong><strong>&#8211;dhcp-option = option:router, 192.168.4.4</strong> ou encore, pour positionner l&#8217;adresse du <span class="glossary_def" title="serveur">serveur</span><strong>&#8211;dhcp-option = 42,192.168.0.4</strong> ou <strong>&#8211;dhcp-option = option:ntp-server, 192.168.0.4</strong> L&#8217;adresse 0.0.0.0 prends ici le sens &laquo;&nbsp;d&#8217;adresse de la machine sur laquelle tourne Dnsmasq&nbsp;&raquo;. Les types de données autorisées sont des adresses <span class="glossary_def" title="IP">IP</span> sous la forme de 4 chiffres séparés par des points, un nombre décimal, une liste de caractères hexadécimaux séparés par des 2 points, ou une chaîne de caractères. Si des identifiants de réseaux sont fournis, alors cette option n&#8217;est envoyée qu&#8217;aux réseaux dont tous les identifiants coïncident.</p>
<p style="text-align: justify;">Un traitement spécial est effectué sur les chaînes de caractères fournies pour l&#8217;option 119, conformément à la <acronym title="Request for Comments">RFC</acronym> 3397. Les chaînes de caractères ou les adresses <span class="glossary_def" title="IP">IP</span> sous forme de 4 chiffres séparés par des points donnés en arguments de l&#8217;option 120 sont traités conforméments à la <acronym title="Request for Comments">RFC</acronym> 3361. Les adresses <span class="glossary_def" title="IP">IP</span> sous forme de 4 chiffres séparés par des points suivies par une barre montante &laquo;&nbsp;/&nbsp;&raquo;, puis une taille de masque sont encodés conforméments à la <acronym title="Request for Comments">RFC</acronym> 3442.</p>
<p style="text-align: justify;">Attention : aucun test n&#8217;étant fait pour vérifier que des données d&#8217;un type adéquat sont envoyées pour un numéro d&#8217;option donné, il est tout à fait possible de persuader Dnsmasq de générer des paquets <acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> illégaux par une utilisation incorrecte de cette option. Lorsque la valeur est un nombre décimal, Dnsmasq doit déterminer la taille des données. Cela est fait en examinant le numéro de l&#8217;option et/ou la valeur, mais peut-être évité en rajoutant un suffixe d&#8217;une lettre comme suit : b = un octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des options encapsulées de classes de vendeurs (voir plus bas), pour lesquelles Dnsmasq ne peut déterminer la taille de la valeur. Les données d&#8217;options consistant uniquement de points et de décimaux sont interprétées par Dnsmasq comme des adresses <span class="glossary_def" title="IP">IP</span>, et envoyées comme telles. Pour forcer l&#8217;envoi sous forme de chaîne de caractère, il est nécessaire d&#8217;utiliser des guillemets doubles. Par exemple, l&#8217;utilisation de l&#8217;option 66 pour fournir une <span class="glossary_def" title="adresse IP">adresse IP</span> sous la forme d&#8217;une chaîne de caractères comme nom de <span class="glossary_def" title="serveur">serveur</span> TFTP, il est nécessaire de faire comme suit : <strong>&#8211;dhcp-option=66,1.2.3.4</strong></p>
<p style="text-align: justify;">Les options encapsulées de classes de vendeurs peuvent-être aussi spécifiées en utilisant <strong>&#8211;dhcp-option</strong> : par exemple <strong>&#8211;dhcp-option=vendor:PXEClient,1,0.0.0.0</strong> envoie l&#8217;option encapsulée de classe de vendeur &laquo;&nbsp;mftp-address=0.0.0.0&#8243; à n&#8217;importe quel <span class="glossary_def" title="client">client</span> dont la classe de vendeur correspond à &laquo;&nbsp;PXEClient&nbsp;&raquo;. La correspondance pour les classes de vendeur s&#8217;effectue sur des sous-chaînes de caractères (voir <strong>&#8211;dhcp-vendorclass</strong> pour plus de détails). Si une option de classe de vendeur (numéro 60) est envoyée par Dnsmasq, alors cela est utilisé pour sélectionner les options encapsulées, de préférence à toute option envoyée par le <span class="glossary_def" title="client">client</span>. Il est possible d&#8217;omettre complètement une classe de vendeur : <strong>&#8211;dhcp-option=vendor:,1,0.0.0.0</strong> Dans ce cas l&#8217;option encapsulée est toujours envoyée. L&#8217;adresse 0.0.0.0 n&#8217;est pas traitée de manière particulière lorsque fournie dans une option encapsulée de classe de vendeur.</p>
<dl>
<dd> </dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/10/30/dnsmasq-dns-cache-et-dhcp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Openwrt usb-storage &#8211; Montage d&#8217;une clé usb</title>
		<link>http://www.jopa.fr/index.php/2008/10/24/openwrt-usbstorage-cle-usb/</link>
		<comments>http://www.jopa.fr/index.php/2008/10/24/openwrt-usbstorage-cle-usb/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 23:22:50 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Configurations]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Disque dur]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>
		<category><![CDATA[Usb]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=643</guid>
		<description><![CDATA[Notre Fonera (2202) fraîchement installée sous OpenWrt est (presque) prête à accueillir des périphériques de stockages USB. Voici un premier test avec une clé usb. Avant toute chose, il faudra installer les modules noyau pour la gestion du stockage usb et les systèmes de fichier fat (fat 16 et fat32). La clef utilisée étant formatée [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/10/cle.jpg"><img class="alignleft size-full wp-image-673" title="cle" src="http://www.jopa.fr/wp-content/uploads/2008/10/cle.jpg" alt="" width="228" height="204" /></a>Notre Fonera (2202) fraîchement installée sous OpenWrt est (presque) prête à accueillir des périphériques de stockages USB. Voici un premier test avec une clé usb.</p>
<p style="text-align: justify;">Avant toute chose, il faudra installer les modules noyau pour la gestion du stockage usb et les systèmes de fichier <em>fat </em>(<em>fat 16 et fat32</em>). La clef utilisée étant formatée en <em>fat16</em>.</p>
<p style="text-align: justify;"><span id="more-643"></span></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p643code48'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p64348"><td class="code" id="p643code48"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# opkg install kmod-usb-storage
Installing kmod-usb-storage (2.6.26.5-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-usb-storage_2.6.26.5-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-usb-storage_2.6 100% |************************************************************************************************************| 47028  00:00:00 ETA
Installing kmod-scsi-core (2.6.26.5-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-scsi-core_2.6.26.5-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-scsi-core_2.6.2 100% |************************************************************************************************************| 69267  00:00:00 ETA
Configuring kmod-scsi-core
Configuring kmod-usb-storage
&nbsp;
root@OpenWrt:/# dmesg
...
SCSI subsystem initialized
Driver 'sd' needs updating - please use bus_type methods
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
scsi 0:0:0:0: Direct-Access     SanDisk  U3 Cruzer Micro  4.05 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 8013453 512-byte hardware sectors (4103 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 8013453 512-byte hardware sectors (4103 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
scsi 0:0:0:1: CD-ROM            SanDisk  U3 Cruzer Micro  4.05 PQ: 0 ANSI: 2
usb-storage: device scan complete</pre></td></tr></table></div>

<p style="text-align: justify;">Ok pour ça&#8230; On obtient un disque scsi émulé <strong>sda</strong> et une partition : <strong>sda1</strong>. Occupons nous maintenant de la gestion des systèmes de fichiers <em>fat</em>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p643code49'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p64349"><td class="code" id="p643code49"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# opkg list|grep vfat
kmod-fs-vfat - 2.6.26.5-atheros-1 - Kernel module for VFAT filesystem support
&nbsp;
root@OpenWrt:/# opkg install kmod-fs-vfat
Installing kmod-fs-vfat (2.6.26.5-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-fs-vfat_2.6.26.5-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-fs-vfat_2.6.26. 100% |************************************************************************************************************| 37463  --:--:-- ETA
Installing kmod-nls-base (2.6.26.5-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-nls-base_2.6.26.5-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-nls-base_2.6.26 100% |************************************************************************************************************|  3704  --:--:-- ETA
Configuring kmod-fs-vfat
Configuring kmod-nls-base</pre></td></tr></table></div>

<p><span style="color: #800000;"><strong>Premier essai</strong></span> : pas très concluant :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p643code50'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p64350"><td class="code" id="p643code50"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# mount -t vfat /dev/sda1 /mnt/usbdrive/
mount: mounting /dev/sda1 on /mnt/usbdrive/ failed: Invalid argument
&nbsp;
root@OpenWrt:/# logread
...
Oct 16 08:33:36 OpenWrt user.err kernel: FAT: codepage cp437 not found
Oct 16 08:38:49 OpenWrt user.err kernel: FAT: codepage cp437 not found
Oct 16 08:39:11 OpenWrt user.err kernel: FAT: codepage cp437 not found
Oct 16 08:39:45 OpenWrt user.err kernel: FAT: codepage cp437 not found
Oct 16 08:40:08 OpenWrt user.err kernel: FAT: codepage cp437 not found
Oct 16 08:40:37 OpenWrt user.err kernel: FAT: codepage cp437 not found</pre></td></tr></table></div>

<p>Il s&#8217;agit d&#8217;un problème de page d&#8217;encodage&#8230; Nous avons dû louper un module&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p643code51'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p64351"><td class="code" id="p643code51"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# opkg list |grep cp437
kmod-nls-cp437 - 2.6.26.7-atheros-1 - Kernel module for NLS Codepage 437 (United States, Canada)
root@OpenWrt:/usr/local/apache2/htdocs/cam1# opkg install kmod-nls-cp437
Installing kmod-nls-cp437 (2.6.26.7-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-nls-cp437_2.6.26.7-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-nls-cp437_2.6.2 100% |*********************************************************************************************************************************************************|  2954  --:--:-- ETA
Configuring kmod-nls-cp437</pre></td></tr></table></div>

<p><strong><span style="color: #800000;">Deuxième essai</span> :</strong> On progresse&#8230; mais ce n&#8217;est pas ça !</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p643code52'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p64352"><td class="code" id="p643code52"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# mount -t vfat /dev/sda1 /mnt/usbdrive/
mount: mounting /dev/sda1 on /mnt/usbdrive/ failed: Invalid argument
&nbsp;
root@OpenWrt:/# logread
...
Oct 16 08:42:28 OpenWrt user.err kernel: FAT: IO charset iso8859-1 not found
Oct 16 08:43:10 OpenWrt user.err kernel: FAT: IO charset iso8859-1 not found</pre></td></tr></table></div>

<p>Codage caractères ce coup-ci&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p643code53'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p64353"><td class="code" id="p643code53"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# opkg list|grep iso88
kmod-nls-iso8859-1 - 2.6.26.5-atheros-1 - Kernel module for NLS ISO 8859-1 (Latin 1)
kmod-nls-iso8859-15 - 2.6.26.5-atheros-1 - Kernel module for NLS ISO 8859-15 (Latin 9)
kmod-nls-iso8859-2 - 2.6.26.5-atheros-1 - Kernel module for NLS ISO 8859-2 (Latin 2)
&nbsp;
root@OpenWrt:/# opkg install kmod-nls-iso8859-1
Installing kmod-nls-iso8859-1 (2.6.26.5-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-nls-iso8859-1_2.6.26.5-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-nls-iso8859-1_2 100% |*******************************|  2622  --:--:-- ETA
Configuring kmod-nls-iso8859-1</pre></td></tr></table></div>

<p><span style="color: #800000;"><strong>Troisième essai</strong></span> : C&#8217;est la bonne !</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p643code54'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p64354"><td class="code" id="p643code54"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# mount -t vfat /dev/sda1 /mnt/usbdrive/
root@OpenWrt:/#</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/10/24/openwrt-usbstorage-cle-usb/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Flash de la Fonera 2 (2202) avec Openwrt</title>
		<link>http://www.jopa.fr/index.php/2008/10/22/flash-de-la-fonera-2-2202-avec-openwrt/</link>
		<comments>http://www.jopa.fr/index.php/2008/10/22/flash-de-la-fonera-2-2202-avec-openwrt/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 18:22:13 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=632</guid>
		<description><![CDATA[Bon, ce n&#8217;est pas tout, mais voyons ce que donne OpenWrt sur une Fonera 2. Avant de nous lancer corps et âmes, un petit coup d&#8217;œil sur le firmware FON&#8230; Les accès telnet et ssh sont ouverts, ce qui est plutôt appréciable&#8230; Espérons que ce n&#8217;est pas juste pour la version béta et que les [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jopa.fr/wp-content/uploads/2008/10/wrt1.png"><img class="alignright size-full wp-image-653" title="wrt1" src="http://www.jopa.fr/wp-content/uploads/2008/10/wrt1.png" alt="" width="190" height="90" /></a></p>
<p style="text-align: justify;">Bon, ce n&#8217;est pas tout, mais voyons ce que donne <em>OpenWrt </em> sur une Fonera 2.</p>
<p style="text-align: justify;">Avant de nous lancer corps et âmes, un petit coup d&#8217;œil sur le firmware FON&#8230; Les accès <em>telnet</em> et <em>ssh</em> sont ouverts, ce qui est plutôt appréciable&#8230; Espérons que ce n&#8217;est pas juste pour la version béta et que les gens de Fon auront bien compris que ce n&#8217;était pas dans leur intérêt de tout verrouiller&#8230; De toute façon, on finit par y arriver !</p>
<p style="text-align: justify;">
<span id="more-632"></span></p>
<p>A première vu, ça ressemble beaucoup à une Fonera+&#8230; Normal, le matériel est identique avec un peu plus de mémoire et un port USB 2.0 !</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code63'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63263"><td class="code" id="p632code63"><pre class="sh" style="font-family:monospace;">BusyBox v1.11.1 (2008-09-25 22:20:43 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
&nbsp;
                ,^~~~-.         .-~~~&quot;-. 
               :  .--. \       /  .--.  \             
               : (    .-`&lt;^~~~-: :    )  :             
               `. `-,~            ^- '  .'            
                 `-:                ,.-~                            
                .'                  `.                            
               ,'   @   @            |                            
               :    __               ;                            
            ...{   (__)          ,----.             
           /   `.              ,' ,--. `.            
          |      `.,___   ,      :    : :           
          |     .'    ~~~~       \    / :           
           \.. /               `. `--' .'            
              |                  ~----~             
              |                   | 
              |                   |
              beware the evil teddy
&nbsp;
--------  Fonera 2.0 Firmware (v2.1.0.1) -----------
 * Based on OpenWrt - http://openwrt.org
 * Powered by FON - http://www.fon.com
----------------------------------------------------
&nbsp;
root@Fonera:~# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00030000 00010000 &quot;RedBoot&quot;
mtd1: 00010000 00010000 &quot;loader&quot;
mtd2: 00620000 00010000 &quot;image&quot;
mtd3: 0055e63f 00010000 &quot;rootfs&quot;
mtd4: 001f0000 00010000 &quot;rootfs_data&quot;
mtd5: 00140000 00010000 &quot;image2&quot;
mtd6: 0000f000 00010000 &quot;FIS directory&quot;
mtd7: 00001000 00010000 &quot;RedBoot config&quot;
mtd8: 00010000 00010000 &quot;boardconfig&quot;</pre></td></tr></table></div>

<p>Allez ! C&#8217;est parti ! Même méthode que pour la Fonera 2201, avec le dernier snapshot (15/10/2008), sans oublier de réécrire le script de boot pour supprimer l&#8217;étape du <em>loader</em>&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code64'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63264"><td class="code" id="p632code64"><pre class="sh" style="font-family:monospace;">-&gt; == Executing boot script in 1.360 seconds - enter ^C to abort
&lt;- ^C
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
RedBoot&gt; ip_ad
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.254
&nbsp;
RedBoot&gt; fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0xA8000000  0x80040400  0x00030000  0xA8000000
loader            0xA8030000  0x80100000  0x00010000  0x80100000
image             0xA8040000  0x80040400  0x00350004  0x80040400
image2            0xA8660000  0xA8660000  0x00140000  0x80040400
FIS directory     0xA87E0000  0xA87E0000  0x0000F000  0x00000000
RedBoot config    0xA87EF000  0xA87EF000  0x00001000  0x00000000
&nbsp;
RedBoot&gt; fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
&nbsp;
RedBoot&gt; fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
&nbsp;
RedBoot&gt; fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0xA8000000  0xA8000000  0x00030000  0x00000000
FIS directory     0xA87E0000  0xA87E0000  0x0000F000  0x00000000
RedBoot config    0xA87EF000  0xA87EF000  0x00001000  0x00000000
&nbsp;
RedBoot&gt; lo -r -b %{FREEMEMLO} openwrt-atheros-vmlinux.lzma
Using default protocol (TFTP)
Raw file loaded 0x80040400-0x801003ff, assumed entry at 0x80040400
&nbsp;
RedBoot&gt; fi cr -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
... Erase from 0xa8030000-0xa80f0000: ............
... Program from 0x80040400-0x80100400 at 0xa8030000: ............
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
&nbsp;
RedBoot&gt; fis free
  0xA80F0000 .. 0xA87E0000
&nbsp;
RedBoot&gt; lo -r -b %{FREEMEMLO} openwrt-atheros-root.jffs2-64k
Using default protocol (TFTP)
Raw file loaded 0x80040400-0x802803ff, assumed entry at 0x80040400
&nbsp;
RedBoot&gt; fi cr -l 0x6F0000 rootfs
&nbsp;
RedBoot&gt; fconfig -l -n
boot_script: true
boot_script_data: 
.. fis load -b 0x80100000 loader
.. go 0x80100000
&nbsp;
boot_script_timeout: 2
bootp: false
bootp_my_gateway_ip: 0.0.0.0
bootp_my_ip: 192.168.1.1
bootp_my_ip_mask: 255.255.255.0
bootp_server_ip: 192.168.1.254
console_baud_rate: 9600
gdb_port: 9000
info_console_force: false
net_debug: false
&nbsp;
RedBoot&gt; fconfig
Run script at boot: true
Boot script: 
.. fis load -b 0x80100000 loader
.. go 0x80100000
Enter script, terminate with empty line
&gt;&gt; fis load -l vmlinux.bin.l7
&gt;&gt; exec
&gt;&gt; 
Boot script timeout (1000ms resolution): 2
Use BOOTP for network configuration: false
Gateway IP address: 
Local IP address: 192.168.1.1
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.254
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
&nbsp;
RedBoot&gt; reset</pre></td></tr></table></div>

<p>Nickel Chrome ! Ca boote, ça clignote ! Que c&#8217;est beau !</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code65'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63265"><td class="code" id="p632code65"><pre class="sh" style="font-family:monospace;">Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
 === IMPORTANT ============================
  Use 'passwd' to set your login password
  this will disable telnet and enable SSH
 ------------------------------------------
BusyBox v1.11.2 (2008-10-13 09:57:28 PDT) built-in shell (ash)
Enter 'help' for a list of built-in commands.
&nbsp;
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (bleeding edge, r12985) -------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@OpenWrt:/#</pre></td></tr></table></div>

<p>Un petit tour du propriétaire&#8230; On ne nous a pas menti : c&#8217;est plus grand ; -)</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code66'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63266"><td class="code" id="p632code66"><pre class="sh" style="font-family:monospace;">Filesystem                Size      Used Available Use% Mounted on
rootfs                    6.9M      2.4M      4.5M  35% /
/dev/root                 6.9M      2.4M      4.5M  35% /
tmpfs                    14.6M     44.0k     14.6M   0% /tmp
tmpfs                   512.0k         0    512.0k   0% /dev</pre></td></tr></table></div>

<p>Côté réseau, tout a l&#8217;air bon&#8230;Les deux interfaces ethernet, le switch et le wifi. Par contre, monsieur USB est absent&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code67'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63267"><td class="code" id="p632code67"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# dmesg 
Linux version 2.6.26.5 (andy@devsandbox.padded-cell.net) (gcc version 4.1.2) #3 Wed Oct 15 14:22:17 PDT 2008
CPU revision is: 00019064 (MIPS 4KEc)
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
Entering add_active_range(0, 0, 8192) 0 entries of 256 used
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal          0 -&gt;     8192
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0:        0 -&gt;     8192
On node 0 totalpages: 8192
  Normal zone: 64 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 8128 pages, LIFO batch:0
  Movable zone: 0 pages used for memmap
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: console=ttyS0,9600 rootfstype=squashfs,jffs2 init=/etc/preinit
Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes.
Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 16 bytes
PID hash table entries: 128 (order: 7, 512 bytes)
console [ttyS0] enabled
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
&nbsp;
&nbsp;
Memory: 29808k/32768k available (1875k kernel code, 2960k reserved, 311k data, 124k init, 0k highmem)
SLUB: Genslabs=6, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 183.50 BogoMIPS (lpj=917504)
Mount-cache hash table entries: 512
net_namespace: 644 bytes
NET: Registered protocol family 16
Radio config found at offset 0xf8(0x1f8)
AR531x PCI init... 
done
PCI: fixing up device 0,3,0
PCI: Failed to allocate mem resource #1:4000000@84000000 for 0000:00:03.0
Switched to high resolution mode on CPU 0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
ar531x: Registering GPIODEV device
squashfs: version 3.0 (2006/03/15) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
msgmni has been set to 58
io scheduler noop registered
io scheduler deadline registered (default)
gpiodev: gpio device registered with major 254
gpiodev: gpio platform device registered with access mask FFFFFFFF
Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0xb1100003 (irq = 37) is a 16550A
eth0: Atheros AR231x: 00:18:84:d0:0a:00, irq 4
ar2313_eth_mii: probed
eth0: Marvell 88E6060 PHY driver attached.
eth0: attached PHY driver [Marvell 88E6060] (mii_bus:phy_addr=0:1f)
cmdlinepart partition parsing not available
Searching for RedBoot partition table in spiflash at offset 0x7d0000
Searching for RedBoot partition table in spiflash at offset 0x7e0000
6 RedBoot partitions found on MTD device spiflash
Creating 6 MTD partitions on &quot;spiflash&quot;:
0x00000000-0x00030000 : &quot;RedBoot&quot;
0x00030000-0x000f0000 : &quot;vmlinux.bin.l7&quot;
0x000f0000-0x007e0000 : &quot;rootfs&quot;
mtd: partition &quot;rootfs&quot; set to be root filesystem
split_squashfs: no squashfs found in &quot;spiflash&quot;
0x007e0000-0x007ef000 : &quot;FIS directory&quot;
0x007ef000-0x007f0000 : &quot;RedBoot config&quot;
0x007f0000-0x00800000 : &quot;boardconfig&quot;
Registered led device: gpio1
Registered led device: wlan
Registered led device: gpio3
Registered led device: gpio4
Registered led device: gpio7
TCP vegas registered
NET: Registered protocol family 17
eth0: Configuring MAC for full duplex
802.1Q VLAN Support v1.8 Ben Greear &lt;greearb@candelatech.com&gt;
All bugs added by David S. Miller &lt;davem@redhat.com&gt;
jffs2_scan_eraseblock(): End of filesystem marker found at 0x220000
jffs2_build_filesystem(): unlocking the mtd device... done.
jffs2_build_filesystem(): erasing all blocks after the end marker... done.
VFS: Mounted root (jffs2 filesystem) readonly.
Freeing unused kernel memory: 124k freed
Please be patient, while OpenWrt loads ...
Algorithmics/MIPS FPU Emulator v1.5
PPP generic driver version 2.4.2
ip_tables: (C) 2000-2006 Netfilter Core Team
device eth0.0 entered promiscuous mode
device eth0 entered promiscuous mode
br-lan: port 1(eth0.0) entering learning state
br-lan: topology change detected, propagating
br-lan: port 1(eth0.0) entering forwarding state
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
wlan: trunk
ath_hal: module license 'Proprietary' taints kernel.
ath_hal: 2008-10-02 (AR5212, AR5312, RF5111, RF5112, RF2316, RF2317, REGOPS_FUNC, TX_DESC_SWAP, DFS, XR)
ath_rate_minstrel: Minstrel automatic rate control algorithm 1.2 (trunk)
ath_rate_minstrel: look around rate set to 10%
ath_rate_minstrel: EWMA rolloff level set to 75%
ath_rate_minstrel: max segment size in the mrr set to 6000 us
wlan: mac acl policy registered
ath_ahb: trunk
Atheros HAL provided by OpenWrt, DD-WRT and MakSat Technologies
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: turboG rates: 6Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
ath_ahb: wifi0: Atheros 2315 WiSoC: mem=0xb0000000, irq=3</pre></td></tr></table></div>

<p>Voyons les modules chargés&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code68'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63268"><td class="code" id="p632code68"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# lsmod
Module                  Size  Used by    Tainted: P  
ath_ahb               124736  0 
wlan_xauth               448  0 
wlan_wep                3680  0 
wlan_tkip               9344  0 
wlan_ccmp               5088  0 
wlan_acl                1824  0 
ath_rate_minstrel       8640  1 
ath_hal               161280  3 ath_ahb,ath_rate_minstrel
wlan_scan_sta           7904  0 
wlan_scan_ap            5152  0 
wlan                  153296  10 ath_ahb,wlan_xauth,wlan_wep,wlan_tkip,wlan_ccmp,wlan_acl,ath_rate_minstrel,wlan_scan_sta,wlan_scan_ap
nf_nat_tftp              448  0 
nf_conntrack_tftp       2448  1 nf_nat_tftp
nf_nat_irc               864  0 
nf_conntrack_irc        2720  1 nf_nat_irc
nf_nat_ftp              1440  0 
nf_conntrack_ftp        4960  1 nf_nat_ftp
ipt_MASQUERADE          1152  1 
iptable_nat             3376  1 
nf_nat                 10944  5 nf_nat_tftp,nf_nat_irc,nf_nat_ftp,ipt_MASQUERADE,iptable_nat
xt_state                 832  6 
nf_conntrack_ipv4       8256  9 iptable_nat,nf_nat
nf_conntrack           37968  11 nf_nat_tftp,nf_conntrack_tftp,nf_nat_irc,nf_conntrack_irc,nf_nat_ftp,nf_conntrack_ftp,ipt_MASQUERADE,iptable_nat,nf_nat,xt_state,nf_conntrack_ipv4
ipt_REJECT              1888  2 
xt_TCPMSS               2720  1 
ipt_LOG                 4544  0 
xt_multiport            1824  0 
xt_mac                   704  0 
xt_limit                1216  1 
iptable_mangle          1184  0 
iptable_filter           960  1 
ip_tables               8816  3 iptable_nat,iptable_mangle,iptable_filter
xt_tcpudp               1856  3 
x_tables                8752  11 ipt_MASQUERADE,iptable_nat,xt_state,ipt_REJECT,xt_TCPMSS,ipt_LOG,xt_multiport,xt_mac,xt_limit,ip_tables,xt_tcpudp
ppp_async               7936  0 
ppp_generic            21376  1 ppp_async
slhc                    4480  1 ppp_generic
crc_ccitt                992  1 ppp_async</pre></td></tr></table></div>

<p>Ca devrait aller mieux avec les bons modules&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code69'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63269"><td class="code" id="p632code69"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# opkg update
root@OpenWrt:/# opkg list|grep usb|grep kmod
avrusbboot - 2006-06-25-1 - AVRUSBBoot is a bootloader for the Atmel AVR controllers.
kmod-ide-core - 2.6.26.5-atheros-1 - Kernel support for IDE, useful for usb mass storage devices (e.g. on WL-HDD)
kmod-rt2500-usb - 2.6.26.5+2008-08-06-atheros-1 - Ralink Drivers for RT2x00 cards (RT2500 USB)
kmod-rt2x00-usb - 2.6.26.5+2008-08-06-atheros-1 - Ralink Drivers for RT2x00 cards (USB)
kmod-rt73-usb - 2.6.26.5+2008-08-06-atheros-1 - Ralink Drivers for RT2x00 cards (RT73 USB)
kmod-usb-acm - 2.6.26.5-atheros-1 - Kernel support for USB ACM devices (modems/isdn controllers)
kmod-usb-atm - 2.6.26.5-atheros-1 - Kernel support for USB DSL modems
kmod-usb-atm-cxacru - 2.6.26.5-atheros-1 - Kernel support for cxacru based USB ADSL modems
kmod-usb-atm-speedtouch - 2.6.26.5-atheros-1 - Kernel support for SpeedTouch USB ADSL modems
kmod-usb-atm-ueagle - 2.6.26.5-atheros-1 - Kernel support for Eagle 8051 based USB ADSL modems
kmod-usb-audio - 2.6.26.5-atheros-1 - Kernel support for USB audio devices
kmod-usb-core - 2.6.26.5-atheros-1 - Kernel support for USB
kmod-usb-hid - 2.6.26.5-atheros-1 - Kernel support for USB HID devices such as keyboards and mice
kmod-usb-net - 2.6.26.5-atheros-1 - Kernel modules for USB-to-Ethernet convertors
kmod-usb-net-asix - 2.6.26.5-atheros-1 - Kernel module for USB-to-Ethernet Asix convertors
kmod-usb-net-cdc-ether - 2.6.26.5-atheros-1 - Kernel support for USB CDC Ethernet devices
kmod-usb-net-hso - 2.6.26.5-atheros-1 - Kernel module for Option USB High Speed Mobile Devices
kmod-usb-net-kaweth - 2.6.26.5-atheros-1 - Kernel module for USB-to-Ethernet Kaweth convertors
kmod-usb-net-pegasus - 2.6.26.5-atheros-1 - Kernel module for USB-to-Ethernet Pegasus convertors
kmod-usb-ohci - 2.6.26.5-atheros-1 - Kernel support for USB OHCI controllers
kmod-usb-printer - 2.6.26.5-atheros-1 - Kernel support for USB printers
kmod-usb-serial - 2.6.26.5-atheros-1 - Kernel support for USB-to-Serial converters
kmod-usb-serial-airprime - 2.6.26.5-atheros-1 - Kernel support for Airprime (EVDO)
kmod-usb-serial-ark3116 - 2.6.26.5-atheros-1 - Kernel support for ArkMicroChips ARK3116 USB-to-Serial converters
kmod-usb-serial-belkin - 2.6.26.5-atheros-1 - Kernel support for Belkin USB-to-Serial converters
kmod-usb-serial-ch341 - 2.6.26.5-atheros-1 - Support for CH341 devices
kmod-usb-serial-cp2101 - 2.6.26.5-atheros-1 - Kernel support for Silicon Labs cp2101 USB-to-Serial converters
kmod-usb-serial-ftdi - 2.6.26.5-atheros-1 - Kernel support for FTDI USB-to-Serial converters
kmod-usb-serial-keyspan - 2.6.26.5-atheros-1 - Kernel support for Keyspan USB-to-Serial devices
kmod-usb-serial-mct - 2.6.26.5-atheros-1 - Kernel support for Magic Control Technology USB-to-Serial converters
kmod-usb-serial-option - 2.6.26.5-atheros-1 - Kernel support for Option HSDPA modems
kmod-usb-serial-oti6858 - 2.6.26.5-atheros-1 - Kernel support for Ours Technology OTI6858 USB-to-Serial converters
kmod-usb-serial-pl2303 - 2.6.26.5-atheros-1 - Kernel support for Prolific PL2303 USB-to-Serial converters
kmod-usb-serial-sierrawireless - 2.6.26.5-atheros-1 - Kernel support for Sierra Wireless devices
kmod-usb-serial-visor - 2.6.26.5-atheros-1 - Kernel support for Handspring Visor PDAs
kmod-usb-storage - 2.6.26.5-atheros-1 - Kernel support for USB Mass Storage devices
kmod-usb-uhci - 2.6.26.5-atheros-1 - Kernel support for USB UHCI controllers
kmod-usb-yealink - 2.6.26.5-atheros-1 - Kernel support for Yealink VOIP phone
kmod-usb2 - 2.6.26.5-atheros-1 - Kernel support for USB2 (EHCI) controllers</pre></td></tr></table></div>

<p>Oulà ! Il y a du monde&#8230; Hum&#8230; kmod-usb2&#8230; Ca sent plutôt bon !</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p632code70'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p63270"><td class="code" id="p632code70"><pre class="sh" style="font-family:monospace;">root@OpenWrt:/# opkg install kmod-usb2
Installing kmod-usb2 (2.6.26.5-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-usb2_2.6.26.5-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-usb2_2.6.26.5-a 100% |************************************************************************************************************| 21517  --:--:-- ETA
Installing kmod-usb-core (2.6.26.5-atheros-1) to root...
Downloading http://downloads.openwrt.org/snapshots/atheros/packages/./kmod-usb-core_2.6.26.5-atheros-1_mips.ipk
Connecting to downloads.openwrt.org (195.56.146.238:80)
kmod-usb-core_2.6.26 100% |************************************************************************************************************| 71039  00:00:00 ETA
Configuring kmod-usb-core
Configuring kmod-usb2
&nbsp;
root@OpenWrt:/# dmesg
...
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Enabling device 0000:00:00.1 (0000 -&gt; 0002)
ehci_hcd 0000:00:00.1: EHCI Host Controller
ehci_hcd 0000:00:00.1: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:00.1: irq 5, io mem 0x80c21000
ehci_hcd 0000:00:00.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
usb 1-1: new high speed USB device using ehci_hcd and address 2
usb 1-1: configuration #1 chosen from 1 choice</pre></td></tr></table></div>

<p>Ben voilà !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/10/22/flash-de-la-fonera-2-2202-avec-openwrt/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>La Fonera,  c&#8217;est aussi un répéteur wifi (WDS avec Openwrt Kamikaze)</title>
		<link>http://www.jopa.fr/index.php/2008/10/21/repeteur-wifi-avec-openwrt-kamikaze/</link>
		<comments>http://www.jopa.fr/index.php/2008/10/21/repeteur-wifi-avec-openwrt-kamikaze/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 22:30:25 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Configurations]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Wifi]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=405</guid>
		<description><![CDATA[Le point d&#8217;accès configuré précédemment, avec une Fonera  (sous OpenWRT Kamikaze 7.09), fonctionne à merveille ! Le signal wifi est juste un peu trop faible à l&#8217;autre bout de la maison et sur la terrasse (non&#8230; pourtant je n&#8217;habite pas un château&#8230;).  J&#8217;ai donc cherché à configurer une deuxième Fonera en relai wifi et heureuse [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl id="attachment_434" class="wp-caption alignleft" style="width: 310px;">
<dt class="wp-caption-dt"><img class="size-medium wp-image-434" title="800px-wds" src="http://www.jopa.fr/wp-content/uploads/2008/10/800px-wds-300x150.png" alt="" width="300" height="170" /></dt>
</dl>
</div>
<p style="text-align: justify;">Le point d&#8217;accès configuré <a title="http://www.jopa.fr/index.php/2008/10/12/point_acces_wifi_owrt" href="http://www.jopa.fr/index.php/2008/10/13/point_acces_wifi_owrt/">précédemment</a>, avec une Fonera  (sous OpenWRT Kamikaze 7.09), fonctionne à merveille ! Le signal wifi est juste un peu trop faible à l&#8217;autre bout de la maison et sur la terrasse (non&#8230; pourtant je n&#8217;habite pas un château&#8230;).  J&#8217;ai donc cherché à configurer une deuxième Fonera en relai wifi et heureuse surprise:  la puce atheros et Kamikaze vont encore une fois me simplifier la tâche.</p>
<p style="text-align: justify;"><span style="color: #99ccff;"><em>(image : <a title="http://fr.wikipedia.org/wiki/Wireless_Distribution_System" href="http://fr.wikipedia.org/wiki/Wireless_Distribution_System">souce wikipedia </a>)</em></span></p>
<p style="text-align: justify;">Je vais pour cela configurer un système <a title="http://fr.wikipedia.org/wiki/Wireless_Distribution_System" href="http://fr.wikipedia.org/wiki/Wireless_Distribution_System">WDS</a> (Wireless Distribution System) pour que les données reçus par le relais soient tout simplement répétées vers le point d&#8217;accès maître et étendre ainsi la zone de couverture de mon réseau.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><span id="more-405"></span><br />
La configuration suivante est possible sur les dernières versions d&#8217;OpenWrt (testé sur le build du 15/10/2008). Elle présente l&#8217;avantage d&#8217;authentifier les point relais au même titre qu&#8217;un client wifi classique. L&#8217;ajout de répéteurs supplémentaires peut donc se faire sans aucune intervention sur le maître.<br />
Dans une configuration plus classique (présentée en deuxième partie), le maître est connecté à chaque répéteur par une liaison <em>wds</em> spécifique, ce lien étant affecté à une interface wifi spécifique, il faudra configurer sur le maître autant d&#8217;interfaces virtuelles que de répéteurs présents (plus une pour l&#8217;ap).</p>
<h1 style="text-align: justify;">Avec la version dev</h1>
<h2>Côté maître</h2>
<p style="text-align: justify;">La configuration du point d&#8217;accès est tout à fait classique.  Il suffit juste de préciser qu&#8217;il accepte des connexions <em>WDS </em>en ajoutant la ligne &laquo;&nbsp;<strong>option wds 1</strong>&nbsp;&raquo; à sa configuration. Et hop ! Openwrt se charge du reste ; )</p>
<p><em>/etc/config/wireless</em></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p405code76'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p40576"><td class="code" id="p405code76"><pre class="ini" style="font-family:monospace;">config wifi-device        wifi0
option type               atheros
option disabled           <span style="">0</span>
option channel            <span style="">11</span>
option diversity          <span style="">0</span>
option txantenna          <span style="">1</span>
option rxantenna          <span style="">1</span>
option distance           <span style="">3000</span>
&nbsp;
config wifi-iface
option device             wifi0
option network            lan
option mode               ap
# OPTION WDS
option wds                <span style="">1</span>
option ssid               wjopa
option encryption         psk2
option key                maclefsecrete</pre></td></tr></table></div>

<p>La configuration des interfaces réseau ne change pas&#8230; Je la remets juste pour mémoire&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p405code77'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p40577"><td class="code" id="p405code77"><pre class="ini" style="font-family:monospace;">config interface loopback
    option ifname   lo
    option proto    static
    option ipaddr   127.0.0.1
    option netmask  255.0.0.0
&nbsp;
config interface lan
    option ifname      eth0
    option type        bridge
    option proto       static
    option ipaddr      192.168.1.253
    option netmask     255.255.255.0
    option gateway     192.168.1.254
    option dns         192.168.1.254</pre></td></tr></table></div>

<h2>Côté client (répéteur)</h2>
<p>Côté répéteur, rien de bien compliqué non plus&#8230; Nous allons configurer deux interfaces wifi.</p>
<ul>
<li>La première pour communiquer avec le point d&#8217;accès principal,</li>
<li>La deuxième pour accueillir les connexion clientes de la zone.</li>
</ul>
<p>Il est indispensable d&#8217;utiliser le même canal (channel), le même SSID et la même clef que le point d&#8217;accès principal.</p>
<p><em>/etc/config/wireless</em></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p405code78'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p40578"><td class="code" id="p405code78"><pre class="ini" style="font-family:monospace;">config wifi-device            wifi0
    option type               atheros
    option disabled           <span style="">0</span>
    option channel            <span style="">11</span>
    option diversity          <span style="">0</span>
    option txantenna          <span style="">1</span>
    option rxantenna          <span style="">1</span>
    option distance           <span style="">3000</span>
&nbsp;
config wifi-iface
    option device             wifi0
    option network            lan
    option mode               sta
    # OPTION WDS
    option wds                 <span style="">1</span>
    option ssid               wjopa
    option encryption         psk2
    option key                maclefsecrete
&nbsp;
config wifi-iface
    option device             wifi0
    option network            lan
    option mode               ap
    option ssid               wjopa
    option encryption         psk2
    option key                maclefsecrete</pre></td></tr></table></div>

<p style="text-align: justify;">La configuration de l&#8217;interface &laquo;&nbsp;filaire&nbsp;&raquo; n&#8217;est pas obligatoire ici, mais reste bien pratique pour pouvoir prendre la main à distance (ssh). Un autre avantage est la possibilité d&#8217;y connecter une ou plusieurs machines (via un switch), notre liaison WDS faisant office de pont wifi. Dans tous les cas, les interfaces wifi doivent être regroupées au sein d&#8217;un même bridge.</p>
<p>/etc/config/network</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p405code79'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p40579"><td class="code" id="p405code79"><pre class="ini" style="font-family:monospace;">config interface loopback
    option ifname   lo
    option proto    static
    option ipaddr   127.0.0.1
    option netmask  255.0.0.0
&nbsp;
config interface lan
    option ifname      eth0
    option type        bridge
    option proto       static
    option ipaddr      192.168.1.252
    option netmask     255.255.255.0
    option gateway     192.168.1.254
    option dns         192.168.1.254</pre></td></tr></table></div>

<h1 lang="ini">Avec la version 7.09</h1>
<p style="text-align: justify;">Dans une configuration plus classique, nous devons configurer manuellement la liaison <em>wds</em> entre le maître et le relais. La configuration wifi est identique qu&#8217;il s&#8217;agisse de l&#8217;un ou l&#8217;autre.</p>
<p><em>/etc/config/wireless</em></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p405code80'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p40580"><td class="code" id="p405code80"><pre class="ini" style="font-family:monospace;">config wifi-device            wifi0
    option type               atheros
    option disabled           <span style="">0</span>
    option channel            <span style="">11</span>
    option diversity          <span style="">0</span>
    option txantenna          <span style="">1</span>
    option rxantenna          <span style="">1</span>
    option distance           <span style="">3000</span>
&nbsp;
config wifi-iface
    option device             wifi0
    option network            lan
    option mode               ap
    option ssid               wjopa
    option encryption         psk
    option key                maclefsecrete
&nbsp;
# WDS
config wifi-iface
    option device             wifi0
    option network            lan
    option mode               wds
    option ssid               wds
    option encryption         psk
    option key                maclefsecrete2</pre></td></tr></table></div>

<p style="text-align: justify;">Il est possible ici d&#8217;utiliser une clef différente pour les points d&#8217;accès et la liaison wds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/10/21/repeteur-wifi-avec-openwrt-kamikaze/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Chérie, laisse tomber le ciné, on va compiler Openwrt !</title>
		<link>http://www.jopa.fr/index.php/2008/10/18/compiler-openwrt-a-partir-du-svn/</link>
		<comments>http://www.jopa.fr/index.php/2008/10/18/compiler-openwrt-a-partir-du-svn/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 08:50:32 +0000</pubDate>
		<dc:creator>Jopa</dc:creator>
				<category><![CDATA[Bidouilles]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Fonera]]></category>
		<category><![CDATA[Openwrt]]></category>

		<guid isPermaLink="false">http://www.jopa.fr/?p=512</guid>
		<description><![CDATA[&#171;&#160;Pour faire ceci, il faut la dernière version&#160;&#187;&#8230; &#171;&#160;Ah si ! Ca fonctionne&#8230;mais dans la version développement&#160;&#187;&#8230; Vous vous sentez frustrés ? Malgrès l&#8217;hyperactivité des développeurs d&#8217;OpenWRT, vous trouvez les snapshots un peu trop éloignés ? Peut-être avez vous envie de mettre la main à la pâte ? Pouquoi ne pas compiler vous aussi la  [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/10/fongr.jpg"><img class="alignleft size-full wp-image-523" title="fongr" src="http://www.jopa.fr/wp-content/uploads/2008/10/fongr.jpg" alt="" width="167" height="135" /></a>&laquo;&nbsp;Pour faire ceci, il faut la dernière version&nbsp;&raquo;&#8230; &laquo;&nbsp;Ah si ! Ca fonctionne&#8230;mais dans la version développement&nbsp;&raquo;&#8230; Vous vous sentez frustrés ? Malgrès l&#8217;hyperactivité des développeurs d&#8217;OpenWRT, vous trouvez les snapshots un peu trop éloignés ? Peut-être avez vous envie de mettre la main à la pâte ? Pouquoi ne pas compiler vous aussi la  dernière version du firmware OpenWrt&#8230; Trop compliqué ? Ah Non ! Vraiment pas !</p>
<p><span id="more-512"></span></p>
<p>Quelques outils sont indispensables pour cette manip :</p>
<ul>
<li>subversion,</li>
<li>g++,</li>
<li>ncurses,</li>
<li>zlib,</li>
<li>gnu awk,</li>
<li>bison,</li>
<li>flex,</li>
<li>et autoconf.</li>
</ul>
<p>Sous Debian (ou Ubuntu) :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p512code85'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p51285"><td class="code" id="p512code85"><pre class="sh" style="font-family:monospace;">aptitude install subversion g++ ncurses-dev zlib1g-dev gawk bison flex autoconf</pre></td></tr></table></div>

<p>Ensuite, récupération des sources grâce à subversion :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p512code86'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p51286"><td class="code" id="p512code86"><pre class="sh" style="font-family:monospace;">svn co https://svn.openwrt.org/openwrt/trunk/</pre></td></tr></table></div>

<p>Configuration  (génération des makefiles)</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p512code87'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p51287"><td class="code" id="p512code87"><pre class="sh" style="font-family:monospace;">cd trunk
make menuconfig</pre></td></tr></table></div>

<p style="text-align: justify;">Là, vous pouvez jouer avec les options pour optimiser votre firmware&#8230; Quand on ne sait pas, on laisse les options par défaut, la plupart du temps, ce n&#8217;est pas si mal !</p>
<p style="text-align: justify;"><a href="http://www.jopa.fr/wp-content/uploads/2008/10/capture-joeltilapia-media-data-projets-fonera-trunk-1.png"><img class="aligncenter size-full wp-image-516" title="capture-joeltilapia-media-data-projets-fonera-trunk-1" src="http://www.jopa.fr/wp-content/uploads/2008/10/capture-joeltilapia-media-data-projets-fonera-trunk-1.png" alt="" width="500" height="329" /></a></p>
<p style="text-align: justify;">Cependant, il faut préciser au minimum l&#8217;architecture cible (Atheros pour les foneros). L&#8217;option &laquo;&nbsp;Select all packages by default&nbsp;&raquo; n&#8217;est pas mal également ; ) Elle permet de compiler les paquets les plus courants. (Prévoir quand même pas loin de 2Go de disque&#8230;)</p>
<p>Finalement, on lance la compil :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p512code88'); return false;">View Code</a> SH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p51288"><td class="code" id="p512code88"><pre class="sh" style="font-family:monospace;">make</pre></td></tr></table></div>

<p style="text-align: justify;">Et après ? Ben&#8230; On peut aller prendre un café&#8230;Fumer une clope&#8230;reprendre un café&#8230; refumer une clope, etc&#8230; Normalement, quand le paquet est vide, c&#8217;est que la compil est presque finie&#8230; Et ça tombe bien ! Avec tout le café qu&#8217;on a dans le coco, on n&#8217;a plus vraiment sommeil !</p>
<p style="text-align: justify;">Les fichiers binaires sont placés dans le répertoire <em>bin</em>. Nous pouvons y retrouver les paquets, le noyau et l&#8217;arborescence racine (rootfs)&#8230; Des fichiers que l&#8217;on sait bien manipuler maintenant.</p>
<p style="text-align: justify;">(cf  : <a title="http://www.jopa.fr/index.php/2008/09/17/jouer-avec-%E2%80%9Cla-fonera%E2%80%A6%E2%80%9D-3eme-partie-openwrt-kamikaze/" href="http://www.jopa.fr/index.php/2008/09/17/jouer-avec-%E2%80%9Cla-fonera%E2%80%A6%E2%80%9D-3eme-partie-openwrt-kamikaze/">Jouer avec la Fonera 3e Partie</a> pour un petit rappel&#8230;)</p>
<p style="text-align: justify;"><em><span style="text-decoration: underline;">J&#8217;ai réalisé une petite moulinette qui compile quotidiennement les sources svm. </span>Les binaires résultants (<strong>pour Atheros uniquement)</strong> sont disponibles ici :</em> <a title="http://www.jopa.fr/downloads/trunk/" href="http://www.jopa.fr/downloads/trunk/">http://www.jopa.fr/downloads/trunk/</a></p>
<p style="text-align: justify;">Le fichier <em>CONFIG</em> contient les options utilisées&#8230; Il s&#8217;agit bien de la version développement d&#8217;OpenWrt, ces binaires viennent donc sans garantie&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jopa.fr/index.php/2008/10/18/compiler-openwrt-a-partir-du-svn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

