<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://wiki.orgrim.net/lib/exe/css.php?s=feed" type="text/css"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Le Grim-O-Wiki</title>
    <subtitle></subtitle>
    <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/"/>
    <id>http://wiki.orgrim.net/</id>
    <updated>2012-05-19T22:42:32+00:00</updated>
    <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
<link rel="self" type="application/atom+xml" href="http://wiki.orgrim.net/feed.php" />
    <entry>
        <title>DRM</title>
        <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/netbsd/drm/start"/>
        <published>2012-05-13T18:29:28+00:00</published>
        <updated>2012-05-13T18:29:28+00:00</updated>
        <id>http://wiki.orgrim.net/netbsd/drm/start</id>
        <author>
            <name>orgrim</name>
        </author>
        <summary>
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;DRM&quot; [1-19] --&gt;
&lt;h2 class=&quot;sectionedit2&quot;&gt;&lt;a name=&quot;documentation&quot; id=&quot;documentation&quot;&gt;Documentation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;Documentation&quot; [20-46] --&gt;
&lt;h3 class=&quot;sectionedit3&quot;&gt;&lt;a name=&quot;kernel-mode-setting&quot; id=&quot;kernel-mode-setting&quot;&gt;Kernel Mode Setting&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Définition du mode setting selon wikipedia: &lt;a href=&quot;http://en.wikipedia.org/wiki/Mode_setting&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/Mode_setting&quot;&gt;Mode_setting&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://netsplit.com/2010/03/30/all-about-kernel-mode-setting/&quot; class=&quot;urlextern&quot; title=&quot;http://netsplit.com/2010/03/30/all-about-kernel-mode-setting/&quot;  rel=&quot;nofollow&quot;&gt;http://netsplit.com/2010/03/30/all-about-kernel-mode-setting/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://fedoraproject.org/wiki/Features/KernelModesetting&quot; class=&quot;urlextern&quot; title=&quot;http://fedoraproject.org/wiki/Features/KernelModesetting&quot;  rel=&quot;nofollow&quot;&gt;http://fedoraproject.org/wiki/Features/KernelModesetting&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://kerneltrap.org/node/8242&quot; class=&quot;urlextern&quot; title=&quot;http://kerneltrap.org/node/8242&quot;  rel=&quot;nofollow&quot;&gt;http://kerneltrap.org/node/8242&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Graphics Execution Manager (GEM):&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; GEM: &lt;a href=&quot;http://lwn.net/Articles/283798/&quot; class=&quot;urlextern&quot; title=&quot;http://lwn.net/Articles/283798/&quot;  rel=&quot;nofollow&quot;&gt;http://lwn.net/Articles/283798/&lt;/a&gt; &lt;a href=&quot;http://keithp.com/blogs/gem_update/&quot; class=&quot;urlextern&quot; title=&quot;http://keithp.com/blogs/gem_update/&quot;  rel=&quot;nofollow&quot;&gt;http://keithp.com/blogs/gem_update/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; TTM: &lt;a href=&quot;http://www.x.org/wiki/ttm&quot; class=&quot;urlextern&quot; title=&quot;http://www.x.org/wiki/ttm&quot;  rel=&quot;nofollow&quot;&gt;http://www.x.org/wiki/ttm&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Kernel Mode Setting&quot; [47-464] --&gt;
&lt;h3 class=&quot;sectionedit4&quot;&gt;&lt;a name=&quot;direct-rendering-manager&quot; id=&quot;direct-rendering-manager&quot;&gt;Direct Rendering Manager&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://cgit.freedesktop.org/mesa/drm&quot; class=&quot;urlextern&quot; title=&quot;http://cgit.freedesktop.org/mesa/drm&quot;  rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/mesa/drm&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;Direct Rendering Manager&quot; [465-] --&gt;</summary>
    </entry>
    <entry>
        <title>NetBSD</title>
        <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/netbsd/netbsd"/>
        <published>2012-05-13T18:21:44+00:00</published>
        <updated>2012-05-13T18:21:44+00:00</updated>
        <id>http://wiki.orgrim.net/netbsd/netbsd</id>
        <author>
            <name>orgrim</name>
        </author>
        <summary>

&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://wiki.orgrim.net/tag/netbsd?do=showtag&amp;amp;tag=netbsd&quot; class=&quot;wikilink1&quot; title=&quot;tag:netbsd&quot; rel=&quot;tag&quot;&gt;netbsd&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;
&lt;a href=&quot;http://wiki.orgrim.net/lib/exe/fetch.php?hash=b8e250&amp;amp;media=http%3A%2F%2Fwww.netbsd.org%2Fimages%2FNetBSD-smaller.png&quot; class=&quot;media&quot; title=&quot;http://www.netbsd.org/images/NetBSD-smaller.png&quot;&gt;&lt;img src=&quot;http://wiki.orgrim.net/lib/exe/fetch.php?hash=b8e250&amp;amp;media=http%3A%2F%2Fwww.netbsd.org%2Fimages%2FNetBSD-smaller.png&quot; class=&quot;mediaright&quot; align=&quot;right&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Voici quelques pages sur &lt;a href=&quot;http://www.netbsd.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.netbsd.org&quot;  rel=&quot;nofollow&quot;&gt;NetBSD&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/todo&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:todo&quot;&gt;TODO&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/hackathon&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:hackathon&quot;&gt;Hackathon&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki-static.aydogan.net/&quot; class=&quot;urlextern&quot; title=&quot;http://wiki-static.aydogan.net/&quot;  rel=&quot;nofollow&quot;&gt;Ancien wiki.netbsd.se&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;NetBSD&quot; [80-254] --&gt;
&lt;h2 class=&quot;sectionedit6&quot;&gt;&lt;a name=&quot;points-forts-de-netbsd&quot; id=&quot;points-forts-de-netbsd&quot;&gt;Points forts de NetBSD&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;Points forts de NetBSD&quot; [255-290] --&gt;
&lt;h3 class=&quot;sectionedit7&quot;&gt;&lt;a name=&quot;systeme&quot; id=&quot;systeme&quot;&gt;Système&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Installeur très abordable, moins d&amp;#039;aller-retours que FreeBSD&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Séparation du système de base (complètement fonctionnel) des packages tiers – avantage BSD&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Système de construction qui inclut la cross-compilation par conception (&lt;code&gt;build.sh&lt;/code&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation très bien faite&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;make&lt;/code&gt;: utilisé pour le système de base et pkgsrc, un seul outil à apprendre.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;Système&quot; [291-689] --&gt;
&lt;h3 class=&quot;sectionedit8&quot;&gt;&lt;a name=&quot;pkgsrc&quot; id=&quot;pkgsrc&quot;&gt;pkgsrc&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; versionnement et releases adaptées à la production (-current et versions stables tous les trimestres)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Le plus portable de tous les systèmes de packaging&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Avis de l&amp;#039;utilisateur nécessaire concernant certaines licences acceptables ou non&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Les pkgtools sont puissants et très variés&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT8 SECTION &quot;pkgsrc&quot; [690-1008] --&gt;
&lt;h2 class=&quot;sectionedit9&quot;&gt;&lt;a name=&quot;code&quot; id=&quot;code&quot;&gt;Code&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/bulk-builder&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:bulk-builder&quot;&gt;bulk-builder&lt;/a&gt; – Le script pour automatiser mk/bulk&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/sysinst/start&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:sysinst:start&quot;&gt;sysinst&lt;/a&gt; – L&amp;#039;installeur NetBSD&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/drm/start&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:drm:start&quot;&gt;drm&lt;/a&gt; – Une possible aventure dans l&amp;#039;affichage au niveau du kernel&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT9 SECTION &quot;Code&quot; [1009-1214] --&gt;
&lt;h2 class=&quot;sectionedit10&quot;&gt;&lt;a name=&quot;docs-et-notes&quot; id=&quot;docs-et-notes&quot;&gt;Docs et notes&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Récupérer les &lt;a href=&quot;http://wiki.orgrim.net/netbsd/sources-par-cvs&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:sources-par-cvs&quot;&gt;sources par CVS&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Quelques &lt;a href=&quot;http://wiki.orgrim.net/netbsd/tips&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:tips&quot;&gt;tips&lt;/a&gt; → à découper&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT10 SECTION &quot;Docs et notes&quot; [1215-1320] --&gt;
&lt;h3 class=&quot;sectionedit11&quot;&gt;&lt;a name=&quot;installation&quot; id=&quot;installation&quot;&gt;Installation&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Procédure d&amp;#039;&lt;a href=&quot;http://wiki.orgrim.net/netbsd/install&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:install&quot;&gt;install&lt;/a&gt;ation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Configuration &lt;a href=&quot;http://wiki.orgrim.net/netbsd/post-install&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:post-install&quot;&gt;post install&lt;/a&gt;ation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/install-pxe&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:install-pxe&quot;&gt;Installation en PXE&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Créer une installation pour machine &lt;a href=&quot;http://wiki.orgrim.net/netbsd/diskless&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:diskless&quot;&gt;diskless&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/gateway-de-backup&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:gateway-de-backup&quot;&gt;Gateway de backup&lt;/a&gt; – Pour upgrader la gateway de prod sans couper l&amp;#039;accès au Net&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Notes sur &lt;a href=&quot;http://wiki.orgrim.net/netbsd/xen&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:xen&quot;&gt;XEN&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Installer le &lt;a href=&quot;http://wiki.orgrim.net/netbsd/kernel-current&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:kernel-current&quot;&gt;kernel current&lt;/a&gt; avec les modules&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/dual-boot-debian-netbsd&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:dual-boot-debian-netbsd&quot;&gt;Dual boot Debian/NetBSD&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT11 SECTION &quot;Installation&quot; [1321-1734] --&gt;
&lt;h3 class=&quot;sectionedit12&quot;&gt;&lt;a name=&quot;packages&quot; id=&quot;packages&quot;&gt;Packages&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour récupérer pkgsrc, voir comment &lt;a href=&quot;http://wiki.orgrim.net/netbsd/sources-par-cvs&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:sources-par-cvs&quot;&gt;télécharger les sources de NetBSD par CVS&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/pkg_comp&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:pkg_comp&quot;&gt;pkg_comp&lt;/a&gt; – Compiler ses packages dans un chroot&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/pkg_tarup&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:pkg_tarup&quot;&gt;pkg_tarup&lt;/a&gt; – Archiver ses packages installés&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/pkg_chk&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:pkg_chk&quot;&gt;pkg_chk&lt;/a&gt; – Vérifier, et potentiellement mettre à jour, les packages installés&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/make-targets&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:make-targets&quot;&gt;Make targets&lt;/a&gt; – Cibles &lt;code&gt;make&lt;/code&gt; utiles pour pkgsrc&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/tests-pkgin/start&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:tests-pkgin:start&quot;&gt;Tests pkgin&lt;/a&gt; – Quelques tests d&amp;#039;utilisation de &lt;a href=&quot;http://imil.net/pkgin&quot; class=&quot;urlextern&quot; title=&quot;http://imil.net/pkgin&quot;  rel=&quot;nofollow&quot;&gt;pkgin&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/bulk-build&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:bulk-build&quot;&gt;Bulk Build&lt;/a&gt; – Compiler ses packages avec &lt;code&gt;mk/bulk&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT12 SECTION &quot;Packages&quot; [1735-2327] --&gt;
&lt;h3 class=&quot;sectionedit13&quot;&gt;&lt;a name=&quot;configuration&quot; id=&quot;configuration&quot;&gt;Configuration&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/named&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:named&quot;&gt;named&lt;/a&gt; – configurer le BIND fourni&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Avoir de belles polices de caractères via &lt;a href=&quot;http://wiki.orgrim.net/netbsd/fontconfig&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:fontconfig&quot;&gt;fontconfig&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Installer &lt;a href=&quot;http://wiki.orgrim.net/netbsd/latex&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:latex&quot;&gt;LaTeX&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Choisir des sources d&amp;#039;&lt;a href=&quot;http://wiki.orgrim.net/netbsd/entropie&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:entropie&quot;&gt;entropie&lt;/a&gt; pour &lt;code&gt;/dev/[u]random&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Utilisation en &lt;a href=&quot;http://wiki.orgrim.net/netbsd/desktop&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:desktop&quot;&gt;desktop&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Configurer sa connexion &lt;a href=&quot;http://wiki.orgrim.net/netbsd/wireless&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:wireless&quot;&gt;wireless&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Quelques essais de configuration de serveurs web sur NetBSD avec la mise en place d&amp;#039;appli &lt;acronym title=&quot;Hypertext Preprocessor&quot;&gt;PHP&lt;/acronym&gt;, Ruby on Rails et Python
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/serveur-web-apache&quot; class=&quot;wikilink2&quot; title=&quot;netbsd:serveur-web-apache&quot; rel=&quot;nofollow&quot;&gt;Serveur Web Apache&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/serveur-web-lighttpd&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:serveur-web-lighttpd&quot;&gt;Serveur Web Lighttpd&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/netbsd/serveur-web-nginx&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:serveur-web-nginx&quot;&gt;Serveur Web Nginx&lt;/a&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT13 SECTION &quot;Configuration&quot; [2328-2821] --&gt;
&lt;h3 class=&quot;sectionedit14&quot;&gt;&lt;a name=&quot;confs&quot; id=&quot;confs&quot;&gt;Confs&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FOSDEM: envoyer titre + abstract à marius _at_ nuenneri.ch, ds _at_ freebsd.org&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/talks/fosdem-2012&quot; class=&quot;wikilink1&quot; title=&quot;talks:fosdem-2012&quot;&gt;FOSDEM 2012&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT14 SECTION &quot;Confs&quot; [2822-2949] --&gt;
&lt;h2 class=&quot;sectionedit15&quot;&gt;&lt;a name=&quot;liens&quot; id=&quot;liens&quot;&gt;Liens&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://pkgsrc.se/&quot; class=&quot;urlextern&quot; title=&quot;http://pkgsrc.se/&quot;  rel=&quot;nofollow&quot;&gt;http://pkgsrc.se/&lt;/a&gt; – navigateur sur l&amp;#039;arbre pkgsrc en ligne&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.fr.netbsd.org/docs/updating.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.fr.netbsd.org/docs/updating.html&quot;  rel=&quot;nofollow&quot;&gt;http://www.fr.netbsd.org/docs/updating.html&lt;/a&gt; – mise à jour du système&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.netbsdfr.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.netbsdfr.org&quot;  rel=&quot;nofollow&quot;&gt;http://www.netbsdfr.org&lt;/a&gt; – groupe français d&amp;#039;utilisateurs de NetBSD&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT15 SECTION &quot;Liens&quot; [2950-3190] --&gt;
&lt;h3 class=&quot;sectionedit16&quot;&gt;&lt;a name=&quot;docs-a-lire&quot; id=&quot;docs-a-lire&quot;&gt;Docs à lire&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.fr.netbsd.org/docs/guide/en/&quot; class=&quot;urlextern&quot; title=&quot;http://www.fr.netbsd.org/docs/guide/en/&quot;  rel=&quot;nofollow&quot;&gt;http://www.fr.netbsd.org/docs/guide/en/&lt;/a&gt; – Le Guide NetBSD&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.fr.netbsd.org/docs/pkgsrc/&quot; class=&quot;urlextern&quot; title=&quot;http://www.fr.netbsd.org/docs/pkgsrc/&quot;  rel=&quot;nofollow&quot;&gt;http://www.fr.netbsd.org/docs/pkgsrc/&lt;/a&gt; – Le Guide pkgsrc&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT16 SECTION &quot;Docs à lire&quot; [3191-] --&gt;</summary>
    </entry>
    <entry>
        <title>Wireless dans NetBSD</title>
        <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/netbsd/wireless"/>
        <published>2012-05-13T14:16:50+00:00</published>
        <updated>2012-05-13T14:16:50+00:00</updated>
        <id>http://wiki.orgrim.net/netbsd/wireless</id>
        <author>
            <name>orgrim</name>
        </author>
        <summary>
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT17 SECTION &quot;Wireless dans NetBSD&quot; [1-36] --&gt;
&lt;h2 class=&quot;sectionedit18&quot;&gt;&lt;a name=&quot;configurer-la-carte&quot; id=&quot;configurer-la-carte&quot;&gt;Configurer la carte&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Tout dépend de la carte disponible sur la machine, sous couvert qu&amp;#039;elle soit supportée, elle peut nécessiter l&amp;#039;utilisation d&amp;#039;un firmware proprio. Généralement ce blob est disponible dans &lt;a href=&quot;http://wiki.orgrim.net/netbsd/pkgsrc/pkgsrc&quot; class=&quot;wikilink1&quot; title=&quot;netbsd:pkgsrc:pkgsrc&quot;&gt;pkgsrc&lt;/a&gt;, c&amp;#039;est le cas pour les cartes Intel qui utilisent les drivers &lt;code&gt;iwi(4)&lt;/code&gt;, &lt;code&gt;iwn(4)&lt;/code&gt; et &lt;code&gt;wpi(4)&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Par exemple sur un thinkpad t42 équipé d&amp;#039;une carte &lt;code&gt;Intel PRO/Wireless &lt;acronym title=&quot;Local Area Network&quot;&gt;LAN&lt;/acronym&gt; 2200BG&lt;/code&gt;, il faut ajouter &lt;code&gt;sysutils/iwi-firmware3&lt;/code&gt;, puis activer le sysctl suivant (&lt;code&gt;/etc/sysctl.conf&lt;/code&gt;) :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# Intel License for wireless dev
hw.iwi.accept_eula=1&lt;/pre&gt;

&lt;p&gt;
On obtient alors l&amp;#039;interface &lt;code&gt;iwi0&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT18 SECTION &quot;Configurer la carte&quot; [37-675] --&gt;
&lt;h2 class=&quot;sectionedit19&quot;&gt;&lt;a name=&quot;scanner-les-access-points&quot; id=&quot;scanner-les-access-points&quot;&gt;Scanner les access points&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Tout ce fait avec la commande &lt;code&gt;ifconfig(8)&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Il faut d&amp;#039;abord que l&amp;#039;interface soit up :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# ifconfig iwi0 up&lt;/pre&gt;

&lt;p&gt;
Ensuite, on utilise l&amp;#039;option &lt;code&gt;list scan&lt;/code&gt; pour obtenir la liste des access points plus ou moins proches :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# ifconfig iwi0 up list scan
SSID                              BSSID              CHAN RATE  S:N     INT CAPS
freebox                           1e:6d:3d:11:ea:c0    1   54M  35:0    100 EP   WPA
                                  1e:6d:3d:11:ea:c1    1   54M  36:0    100 EP   RSN WME
freephonie                        1e:6d:3d:11:ea:c3    1   54M  36:0    100 EP   WPA WME
brouette                          00:21:29:b5:d7:6f    5   54M  52:0    100 EP   RSN WME
Livebox-0570                      5c:33:8e:e6:31:db    6   54M  67:0    100 EPS  WPA WME
Bbox-DFCF65                       00:1f:9f:53:de:ef    3   54M  35:0    100 EP   WME
NEUF_D498                         00:17:33:b0:d4:9c   11   54M  44:0    100 EP   WPA WME
DartyBox_fbdd                     00:1d:6a:14:77:46   11   54M  41:0    100 EPS 
freebox_AA4964                    00:24:d4:ce:17:f0   11   54M  32:0     96 EP   WPA WME
FreeWifi                          00:24:d4:ce:17:f1   11   54M  32:0     96 E    WME
SFR WiFi Public                   9a:a1:d7:10:b3:ad   11   54M  40:0    100 E    WME&lt;/pre&gt;

&lt;p&gt;
Cette commande semble un peu bugguée, un second &lt;code&gt;list scan&lt;/code&gt; hang chez moi. L&amp;#039;alternative est d&amp;#039;utiliser &lt;code&gt;wiconfig&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# wiconfig iwi0 -D&lt;/pre&gt;

&lt;p&gt;
Par contre, le type d&amp;#039;authentification retourné montre &lt;code&gt;WEP&lt;/code&gt; même si c&amp;#039;est du &lt;code&gt;WPA&lt;/code&gt;…
&lt;/p&gt;

&lt;p&gt;
La signification des « capabilities » est pour la première colonne de &lt;code&gt;CAPS&lt;/code&gt; (traduction libre du Handbook FreeBSD) :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; E : Extended Service Set (ESS). L&amp;#039;AP est en mode infrastructure ;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I : IBSS/ad-hoc network. L&amp;#039;AP est en mode ad-hoc ;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; P : Privacy. Les communictions doivent être cryptées, cela qui dire que l&amp;#039;AP utilise du WEP, du WPA ou du WPA2 ;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; S : Short Preamble. C&amp;#039;est un truc de la norme 802.11b ;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; s : Short slot time. C&amp;#039;est un truc de la norme 802.11g.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Les colonnes suivantes donnent des détails, dont les plus importants sont :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WPA → WPA1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RSN → WPA2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Si on n&amp;#039;a ni WPA, ni RSN &lt;strong&gt;avec&lt;/strong&gt; la capacité P → WEP&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Si on n&amp;#039;a ni WPA, ni RSN &lt;strong&gt;sans&lt;/strong&gt; la capacité P → Ouvert&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT19 SECTION &quot;Scanner les access points&quot; [676-3004] --&gt;
&lt;h2 class=&quot;sectionedit20&quot;&gt;&lt;a name=&quot;se-connecter&quot; id=&quot;se-connecter&quot;&gt;Se connecter&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT20 SECTION &quot;Se connecter&quot; [3005-3030] --&gt;
&lt;h3 class=&quot;sectionedit21&quot;&gt;&lt;a name=&quot;ap-ouvert&quot; id=&quot;ap-ouvert&quot;&gt;AP Ouvert&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour se connecter sur un AP ouvert, il suffit de donner le SSID à &lt;code&gt;ifconfig&lt;/code&gt; et de configurer son adresse IP :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# ifconfig iwi0 nwid &amp;quot;FreeWifi&amp;quot; chan 11
# dhcpcd iwi0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT21 SECTION &quot;AP Ouvert&quot; [3031-3236] --&gt;
&lt;h3 class=&quot;sectionedit22&quot;&gt;&lt;a name=&quot;wep&quot; id=&quot;wep&quot;&gt;WEP&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour du WEP, en plus du choix du SSID, il faut aussi fournir la clé WEP avec l&amp;#039;option &lt;code&gt;nwkey&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# ifconfig iwi0 nwid &amp;quot;DartyBox_fbdd&amp;quot; chan 11 nwkey &amp;quot;blablabla&amp;quot;
# dhcpcd iwi0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT22 SECTION &quot;WEP&quot; [3237-3444] --&gt;
&lt;h3 class=&quot;sectionedit23&quot;&gt;&lt;a name=&quot;wpa&quot; id=&quot;wpa&quot;&gt;WPA&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour le WPA, on doit passer par l&amp;#039;outil &lt;code&gt;wpa_supplicant&lt;/code&gt; pour gérer le chiffrement de la connexion. Comme pour les autres modes, il faut indiquer le nom de l&amp;#039;access point :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# ifconfig iwi0 nwid &amp;quot;brouette&amp;quot; chan 5&lt;/pre&gt;

&lt;p&gt;
Il faut créer un fichier de mot de passe pour &lt;code&gt;wpa_supplicant&lt;/code&gt; avec &lt;code&gt;wpa_passphrase&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# wpa_passphrase &amp;quot;AP en WPA&amp;quot; &amp;quot;ma passphrase&amp;quot;
network={
        ssid=&amp;quot;AP en WPA&amp;quot;
        #psk=&amp;quot;ma passphrase&amp;quot;
        psk=488b4c96247ca4823a585e14929a87618ada4b5ea03f4f9ffdb76b6b535672eb
}&lt;/pre&gt;

&lt;p&gt;
On peut en mettre plusieurs dans le même fichier, par exemple &lt;code&gt;/etc/wpa_supplicant.conf&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# wpa_passphrase &amp;quot;brouette&amp;quot; &amp;quot;ma passphrase&amp;quot; &amp;gt;&amp;gt; /etc/wpa_supplicant.conf&lt;/pre&gt;

&lt;p&gt;
On n&amp;#039;oublie pas d&amp;#039;éditer le fichier pour virer la passphrase en clair (commentée).
&lt;/p&gt;

&lt;p&gt;
Ensuite, il faut lancer &lt;code&gt;wpa_supplicant&lt;/code&gt;, on lui fournira ce fichier :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# wpa_supplicant -iiwi0 -c/etc/wpa_supplicant.conf       
CTRL-EVENT-SCAN-RESULTS 
Trying to associate with 00:21:29:b5:d7:6f (SSID=&amp;#039;brouette&amp;#039; freq=2432 MHz)
CTRL-EVENT-SCAN-RESULTS 
Authentication with 00:21:29:b5:d7:6f timed out.
CTRL-EVENT-SCAN-RESULTS 
Trying to associate with 00:21:29:b5:d7:6f (SSID=&amp;#039;brouette&amp;#039; freq=2432 MHz)
Associated with 00:21:29:b5:d7:6f
WPA: Key negotiation completed with 00:21:29:b5:d7:6f [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:21:29:b5:d7:6f completed (auth) [id=0 id_str=]&lt;/pre&gt;

&lt;p&gt;
Enfin, on configure son adresse IP ou on lance le client &lt;acronym title=&quot;Dynamic Host Configuration Protocol&quot;&gt;DHCP&lt;/acronym&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# dhcpcd iwi0
dhcpcd: version 5.1.3 starting
dhcpcd: iwi0: broadcasting for a lease
dhcpcd: iwi0: offered 10.0.0.251 from 10.0.0.1
dhcpcd: iwi0: acknowledged 10.0.0.251 from 10.0.0.1
dhcpcd: iwi0: checking for 10.0.0.251
dhcpcd: iwi0: leased 10.0.0.251 for 3600 seconds
dhcpcd: forking to background&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT23 SECTION &quot;WPA&quot; [3445-5255] --&gt;
&lt;h2 class=&quot;sectionedit24&quot;&gt;&lt;a name=&quot;automatiser-un-peu&quot; id=&quot;automatiser-un-peu&quot;&gt;Automatiser un peu&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
On peut lancer &lt;code&gt;wpa_supplicant&lt;/code&gt; en arrière plan, avec la commande suivante, le client &lt;code&gt;wpa_cli&lt;/code&gt; permet de le contrôler :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# wpa_supplicant -B -iiwi0 -c/etc/wpa_supplicant.conf -P/var/run/wpa_supplicant.eth1.pid -f/var/log/wpa_supplicant.eth1.log&lt;/pre&gt;

&lt;p&gt;
Comme le fichier &lt;code&gt;/etc/wpa_supplicant.conf&lt;/code&gt; contient le liste des AP connus avec les passphrases associées, on n&amp;#039;a pas vraiment besoin de choisir explicitement le ssid si on se connecte à des réseaux qui ne se recouvrent pas, il suffit d&amp;#039;avoir la bonne configuration dans &lt;code&gt;/etc/wpa_supplicant.conf&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Pour gérer ça, il existe un script rc, &lt;code&gt;/etc/rc.d/wpa_supplicant&lt;/code&gt;, contrôlé par les variables &lt;code&gt;wpa_supplicant&lt;/code&gt; et &lt;code&gt;wpa_supplicant_flags&lt;/code&gt; dans &lt;code&gt;/etc/rc.conf&lt;/code&gt;, on l&amp;#039;active donc au démarrage de cette façon, dans &lt;code&gt;/etc/rc.conf&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wpa_supplicant=YES
wpa_supplicant_flags=&amp;quot;-B -iiwi0 -c/etc/wpa_supplicant.conf&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Et on fait pareil avec le client &lt;acronym title=&quot;Dynamic Host Configuration Protocol&quot;&gt;DHCP&lt;/acronym&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ifconfig_iwi0=&amp;quot;dhcp&amp;quot;
dhcpcd=YES&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT24 SECTION &quot;Automatiser un peu&quot; [5256-] --&gt;</summary>
    </entry>
    <entry>
        <title>OpenVPN</title>
        <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/soft/openvpn"/>
        <published>2012-05-05T16:46:32+00:00</published>
        <updated>2012-05-05T16:46:32+00:00</updated>
        <id>http://wiki.orgrim.net/soft/openvpn</id>
        <author>
            <name>orgrim</name>
        </author>
        <summary>
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT25 SECTION &quot;OpenVPN&quot; [1-23] --&gt;
&lt;h2 class=&quot;sectionedit26&quot;&gt;&lt;a name=&quot;installation&quot; id=&quot;installation&quot;&gt;Installation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Installer le paquet OpenVPN :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# aptitude install openvpn&lt;/pre&gt;

&lt;p&gt;
Pour la génération des certificats &lt;acronym title=&quot;Secure Sockets Layer&quot;&gt;SSL&lt;/acronym&gt;, un ensemble de script est fourni, on copie ce répertoire sur le serveur :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cp -a /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa-2.0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT26 SECTION &quot;Installation&quot; [24-310] --&gt;
&lt;h2 class=&quot;sectionedit27&quot;&gt;&lt;a name=&quot;configuration-du-serveur&quot; id=&quot;configuration-du-serveur&quot;&gt;Configuration du serveur&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT27 SECTION &quot;Configuration du serveur&quot; [311-348] --&gt;
&lt;h3 class=&quot;sectionedit28&quot;&gt;&lt;a name=&quot;preparer-l-ac&quot; id=&quot;preparer-l-ac&quot;&gt;Préparer l&amp;#039;AC&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Il faut préparer la configuration de easy-rsa, en éditant le fichier &lt;code&gt;vars&lt;/code&gt;. &lt;strong&gt;Toute les commandes sont à lance dans le répertoire &lt;code&gt;/etc/openvpn/easy-rsa-2.0&lt;/code&gt;&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
A la fin de &lt;code&gt;vars&lt;/code&gt;, renseigner les infos suivantes :
&lt;/p&gt;
&lt;pre class=&quot;file&quot;&gt;export KEY_COUNTRY=&amp;quot;FR&amp;quot;
export KEY_PROVINCE=&amp;quot;Ile-de-France&amp;quot;
export KEY_CITY=&amp;quot;Paris&amp;quot;
export KEY_ORG=&amp;quot;Orgrim VPN&amp;quot;
export KEY_EMAIL=&amp;quot;nico@blabla&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Sourcer le fichier &lt;code&gt;vars&lt;/code&gt;, et générer le certificat de l&amp;#039;AC :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cd /etc/openvpn/easy-rsa-2.0
# . vars
# ./pkitool --initca&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT28 SECTION &quot;Préparer l'AC&quot; [349-895] --&gt;
&lt;h3 class=&quot;sectionedit29&quot;&gt;&lt;a name=&quot;creer-le-certificat-du-serveur&quot; id=&quot;creer-le-certificat-du-serveur&quot;&gt;Créer le certificat du serveur&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;pkitool&lt;/code&gt; permet de créer des certificats, par défaut il crée des certificats clients, dans ce cas la seule information à fournir est le CN du certificat, eg le nom de la machine dans notre cas. Pour le serveur, on utilise l&amp;#039;option &lt;code&gt;–server&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cd /etc/openvpn/easy-rsa-2.0
# . vars
# ./pkitool --server monserver.domain.ext&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT29 SECTION &quot;Créer le certificat du serveur&quot; [896-1281] --&gt;
&lt;h3 class=&quot;sectionedit30&quot;&gt;&lt;a name=&quot;fichier-de-parametres-diffie-hellman&quot; id=&quot;fichier-de-parametres-diffie-hellman&quot;&gt;Fichier de paramètres Diffie-Hellman&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sur le serveur on a besoin d&amp;#039;un fichier de paramètres Diffie-Hellman pour la négociation d&amp;#039;échange de clés sur la connexion &lt;acronym title=&quot;Secure Sockets Layer&quot;&gt;SSL&lt;/acronym&gt;/TLS (&lt;a href=&quot;http://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange&quot;&gt;Diffie–Hellman_key_exchange&lt;/a&gt;), le script &lt;code&gt;build-dh&lt;/code&gt; permet de générer ce fichier :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cd /etc/openvpn/easy-rsa-2.0
# . vars
# ./build-dh&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT30 SECTION &quot;Fichier de paramètres Diffie-Hellman&quot; [1282-1623] --&gt;
&lt;h3 class=&quot;sectionedit31&quot;&gt;&lt;a name=&quot;configurer-le-serveur&quot; id=&quot;configurer-le-serveur&quot;&gt;Configurer le serveur&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Tout ce passe dans le répertoire &lt;code&gt;/etc/openvpn&lt;/code&gt;, on peut donc choisir de tout mettre en bordel ici ou séparer en sous-répertoires. Pour fonctionner avec le script d&amp;#039;init Debian qui permet de choisir les connexions à établir au boot (dans &lt;code&gt;/etc/default/openvpn&lt;/code&gt;), il faut que les fichiers de configuration soient dans &lt;code&gt;/etc/openvpn&lt;/code&gt;. Dans ce cas, l&amp;#039;idéal est de créer un sous-répertoire pour chaque configuration qui permet de ranger les clés, au même nom (basename) que le fichier de configuration :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/etc/openvpn
├── server
│   ├── ca.crt
│   ├── server.crt
│   ├── server.key
│   └── dh1024.pem
└── server.conf&lt;/pre&gt;

&lt;p&gt;
Comme montré dans l&amp;#039;exemple, on a besoin d&amp;#039;un fichier de configuration, des exemples sont fournis. On a aussi besoin des certificats et fichiers générés avec easy-rsa :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cd /etc/openvpn
# mkdir server
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .
# gunzip server.conf.gz
# cp easy-rsa-2.0/keys/ca.crt server
# cp easy-rsa-2.0/keys/server.crt easy-rsa-2.0/keys/server.key server
# cp easy-rsa-2.0/keys/dh1024.pem server&lt;/pre&gt;

&lt;p&gt;
On peut alors configurer le server en éditant &lt;code&gt;server.conf&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;file&quot;&gt;local 10.100.0.31
port 1194
proto udp
dev tun

ca server/ca.crt
cert server/server.crt
key server/server.key  # This file should be kept secret
dh server/dh1024.pem

server 10.42.0.0 255.255.255.0
ifconfig-pool-persist server/ipp.txt
push &amp;quot;route 10.42.1.0 255.255.255.0&amp;quot;

client-config-dir server/ccd
route 10.42.1.0 255.255.255.0

keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status server/openvpn-status.log
log-append  server/openvpn.log
verb 3&lt;/pre&gt;

&lt;p&gt;
Activer cette configuration au démarrage, dans &lt;code&gt;/etc/default/openvpn&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;AUTOSTART=&amp;quot;server&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Lancer le service et surveiller &lt;code&gt;/etc/openvpn/server/openvpn.log&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# /etc/init.d/openvpn start&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT31 SECTION &quot;Configurer le serveur&quot; [1624-3609] --&gt;
&lt;h2 class=&quot;sectionedit32&quot;&gt;&lt;a name=&quot;configuration-d-un-client&quot; id=&quot;configuration-d-un-client&quot;&gt;Configuration d&amp;#039;un client&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT32 SECTION &quot;Configuration d'un client&quot; [3610-3648] --&gt;
&lt;h3 class=&quot;sectionedit33&quot;&gt;&lt;a name=&quot;creation-du-certificat&quot; id=&quot;creation-du-certificat&quot;&gt;Création du certificat&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
On utilise easy-rsa sur le serveur pour générer les certificats de tous les clients. L&amp;#039;important ici est de s&amp;#039;assurer que chaque client à un nom (CN) différent, pour les machines on utilisera le FQDN de la machine.
&lt;/p&gt;

&lt;p&gt;
Ces commandes sont donc à lancer sur le serveur :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cd /etc/openvpn/easy-rsa-2.0
# . vars
# ./pkitool client&lt;/pre&gt;

&lt;p&gt;
Les fichiers de &lt;code&gt;/etc/openvpn/easy-rsa-2.0/keys&lt;/code&gt; à fournir au client sont :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;ca.crt&lt;/code&gt;, le certificat de l&amp;#039;AC racine&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;client.crt&lt;/code&gt;, le certificat du client&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;client.key&lt;/code&gt;, la clé pour déverrouiller le certificat client.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT33 SECTION &quot;Création du certificat&quot; [3649-4270] --&gt;
&lt;h3 class=&quot;sectionedit34&quot;&gt;&lt;a name=&quot;configuration-du-client&quot; id=&quot;configuration-du-client&quot;&gt;Configuration du client&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Il faut copier les certificats et la clé dans un sous-répertoire  de &lt;code&gt;/etc/openvpn&lt;/code&gt; sur la machine cliente, on reprend la même organisation des fichiers que pour le serveur, appelons cette configuration cliente &lt;code&gt;myvpn&lt;/code&gt;, pour faire référence à ce serveur bien précis sur tous nos futurs clients :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cd /etc/openvpn
# mkdir myvpn
# mv /tmp/ca.crt /tmp/client.* myvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf myvpn.conf&lt;/pre&gt;

&lt;p&gt;
On peut alors éditer le fichier &lt;code&gt;myvpn.conf&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;file&quot;&gt;client

# La config doit correspondre aux paramètres d&amp;#039;écoute du serveur
dev tun
proto udp
remote 10.100.0.31 1194

resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun

ca myvpn/ca.crt
cert myvpn/client.crt
key myvpn/client.key

ns-cert-type server
comp-lzo
verb 3&lt;/pre&gt;

&lt;p&gt;
Ajouter &lt;code&gt;myvpn&lt;/code&gt; au démarrage dans &lt;code&gt;/etc/default/openvpn&lt;/code&gt; et lancer le service.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT34 SECTION &quot;Configuration du client&quot; [4271-5224] --&gt;
&lt;h2 class=&quot;sectionedit35&quot;&gt;&lt;a name=&quot;ajouter-des-ip-statiques-par-client&quot; id=&quot;ajouter-des-ip-statiques-par-client&quot;&gt;Ajouter des IP statiques par client&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Pour le réseau de base du VPN (&lt;code&gt;server 10.42.0.0 255.255.255.0&lt;/code&gt;), OpenVPN agit comme un serveur &lt;acronym title=&quot;Dynamic Host Configuration Protocol&quot;&gt;DHCP&lt;/acronym&gt; pour ses clients, ce qui veut dire que c&amp;#039;est assez difficile de faire passer du trafic entrant sur le serveur vers un client bien précis. Pour palier cela, on utilise un second réseau et la fonctionnalité « Client Configuration Directory » correspondant aux paramètres suivants du serveur :
&lt;/p&gt;
&lt;pre class=&quot;file&quot;&gt;client-config-dir server/ccd
route 10.42.1.0 255.255.255.0&lt;/pre&gt;

&lt;p&gt;
Grâce à cela, on peut donner des IP fixes dans le réseau 10.42.1.0/24 à nos clients et utiliser iptables pour leur envoyer du trafic externe. On ajouter donc de la configuration par client dans un fichier de configuration correspondant au CN de ce client. Le CN est dans le certificat, il s&amp;#039;agit du paramètre passé à &lt;code&gt;pkitool&lt;/code&gt; à sa création, soit &lt;code&gt;client&lt;/code&gt; dans notre exemple.
&lt;/p&gt;

&lt;p&gt;
On décide de donner l&amp;#039;adresse IP 10.42.1.1 à notre client, pour cela on crée le fichier &lt;code&gt;/etc/openvpn/server/ccd/client&lt;/code&gt; avec la configuration suivante :
&lt;/p&gt;
&lt;pre class=&quot;file&quot;&gt;ifconfig-push 10.42.1.1 10.42.1.2&lt;/pre&gt;

&lt;p&gt;
Pour choisir ces IP, il faut savoir qu&amp;#039;elles servent à établir un tunnel, le première est le bout local du tunnel sur le client, la seconde le bout distant (donc coté serveur). Cela dépend de la topologie “net30” qui consiste à allouer un réseau /30 par client, on consomme donc 4 adresses par client (réseau et broadcast), les IP accessibles étant « au milieu » du groupe de 4. Soit 1 et 2, puis 5 et 6, 9 et 10, etc…
&lt;/p&gt;

&lt;p&gt;
On peut utiliser d&amp;#039;autres topologie, mais ça semble être buggé.
&lt;/p&gt;

&lt;p&gt;
Enfin, quand on démarre le client, il prend cette adresse à la place d&amp;#039;une adresse du pool 10.42.0.0/24 du serveur.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT35 SECTION &quot;Ajouter des IP statiques par client&quot; [5225-] --&gt;</summary>
    </entry>
    <entry>
        <title>Logiciels</title>
        <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/soft/start"/>
        <published>2012-05-05T11:46:35+00:00</published>
        <updated>2012-05-05T11:46:35+00:00</updated>
        <id>http://wiki.orgrim.net/soft/start</id>
        <author>
            <name>orgrim</name>
        </author>
        <summary>
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT36 SECTION &quot;Logiciels&quot; [1-25] --&gt;
&lt;h2 class=&quot;sectionedit37&quot;&gt;&lt;a name=&quot;web&quot; id=&quot;web&quot;&gt;Web&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/tracks&quot; class=&quot;wikilink1&quot; title=&quot;soft:tracks&quot;&gt;Tracks&lt;/a&gt; – Apache 2 avec mod_ruby sous Debian&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/rails-avec-apache-et-mongrel&quot; class=&quot;wikilink2&quot; title=&quot;soft:rails-avec-apache-et-mongrel&quot; rel=&quot;nofollow&quot;&gt;Rails avec Apache et Mongrel&lt;/a&gt; – Faire tourner une webapp Rails avec Mongrel, l&amp;#039;accès passe par Apache mod_proxy&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/certificats-openssl-pour-plusieurs-vhosts&quot; class=&quot;wikilink1&quot; title=&quot;soft:certificats-openssl-pour-plusieurs-vhosts&quot;&gt;Certificats OpenSSL pour plusieurs vhosts&lt;/a&gt; – Quand on n&amp;#039;a qu&amp;#039;une IP pour Apache et mod_ssl&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/informations-de-revisions-de-subversion-et-apache&quot; class=&quot;wikilink1&quot; title=&quot;soft:informations-de-revisions-de-subversion-et-apache&quot;&gt;Informations de révisions de subversion et Apache&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT37 SECTION &quot;Web&quot; [26-374] --&gt;
&lt;h2 class=&quot;sectionedit38&quot;&gt;&lt;a name=&quot;services&quot; id=&quot;services&quot;&gt;Services&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/openntpd&quot; class=&quot;wikilink1&quot; title=&quot;soft:openntpd&quot;&gt;OpenNTPD&lt;/a&gt; – Le serveur NTP fait par et pour OpenBSD&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/lighttpd&quot; class=&quot;wikilink1&quot; title=&quot;soft:lighttpd&quot;&gt;Lighttpd&lt;/a&gt; – Configurations pour une migration de Apache vers Lighttpd&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/dovecot&quot; class=&quot;wikilink1&quot; title=&quot;soft:dovecot&quot;&gt;Dovecot&lt;/a&gt; – the &lt;acronym title=&quot;Internet Message Access Protocol&quot;&gt;IMAP&lt;/acronym&gt; server&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/clamav&quot; class=&quot;wikilink1&quot; title=&quot;soft:clamav&quot;&gt;Clamav&lt;/a&gt; – the virus scanner&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/isc-bind&quot; class=&quot;wikilink1&quot; title=&quot;soft:isc-bind&quot;&gt;ISC-Bind&lt;/a&gt; – Le serveur &lt;acronym title=&quot;Domain Name System&quot;&gt;DNS&lt;/acronym&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/isc-dhcp&quot; class=&quot;wikilink1&quot; title=&quot;soft:isc-dhcp&quot;&gt;ISC-DHCP&lt;/a&gt; – Serveur &lt;acronym title=&quot;Dynamic Host Configuration Protocol&quot;&gt;DHCP&lt;/acronym&gt; avec mise à jour du &lt;acronym title=&quot;Domain Name System&quot;&gt;DNS&lt;/acronym&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/duplicity&quot; class=&quot;wikilink1&quot; title=&quot;soft:duplicity&quot;&gt;Duplicity&lt;/a&gt; – Outil pour backup cryptés&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/postgresql&quot; class=&quot;wikilink1&quot; title=&quot;soft:postgresql&quot;&gt;PostgreSQL&lt;/a&gt; – Sous NetBSD&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/cgit&quot; class=&quot;wikilink1&quot; title=&quot;soft:cgit&quot;&gt;cgit&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/openvpn&quot; class=&quot;wikilink1&quot; title=&quot;soft:openvpn&quot;&gt;OpenVPN&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT38 SECTION &quot;Services&quot; [375-811] --&gt;
&lt;h2 class=&quot;sectionedit39&quot;&gt;&lt;a name=&quot;window-managers&quot; id=&quot;window-managers&quot;&gt;Window Managers&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/e17&quot; class=&quot;wikilink1&quot; title=&quot;soft:e17&quot;&gt;E17&lt;/a&gt; – Test d&amp;#039;Enlightenment 0.17&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/fluxbox&quot; class=&quot;wikilink1&quot; title=&quot;soft:fluxbox&quot;&gt;Fluxbox&lt;/a&gt; – Léger et efficace au clavier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/dwm&quot; class=&quot;wikilink1&quot; title=&quot;soft:dwm&quot;&gt;DWM&lt;/a&gt; – Léger et encore plus efficace que Fluxbox&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/applications-de-bureau&quot; class=&quot;wikilink1&quot; title=&quot;soft:applications-de-bureau&quot;&gt;Applications de bureau&lt;/a&gt; – Mes applis préférées&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT39 SECTION &quot;Window Managers&quot; [812-1047] --&gt;
&lt;h2 class=&quot;sectionedit40&quot;&gt;&lt;a name=&quot;desktop&quot; id=&quot;desktop&quot;&gt;Desktop&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/irssi&quot; class=&quot;wikilink1&quot; title=&quot;soft:irssi&quot;&gt;irssi&lt;/a&gt; – Client &lt;acronym title=&quot;Internet Relay Chat&quot;&gt;IRC&lt;/acronym&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/synergy&quot; class=&quot;wikilink1&quot; title=&quot;soft:synergy&quot;&gt;synergy&lt;/a&gt; – KVM logiciel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/screen&quot; class=&quot;wikilink1&quot; title=&quot;soft:screen&quot;&gt;screen&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT40 SECTION &quot;Desktop&quot; [1048-1144] --&gt;
&lt;h2 class=&quot;sectionedit41&quot;&gt;&lt;a name=&quot;postgresql&quot; id=&quot;postgresql&quot;&gt;PostgreSQL&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/soft/postgresql/start&quot; class=&quot;wikilink1&quot; title=&quot;soft:postgresql:start&quot;&gt;PostgreSQL&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.orgrim.net/pitrery/start&quot; class=&quot;wikilink1&quot; title=&quot;pitrery:start&quot;&gt;pitrery&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT41 SECTION &quot;PostgreSQL&quot; [1145-] --&gt;</summary>
    </entry>
    <entry>
        <title>Perl</title>
        <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/code/perl"/>
        <published>2012-04-30T14:38:47+00:00</published>
        <updated>2012-04-30T14:38:47+00:00</updated>
        <id>http://wiki.orgrim.net/code/perl</id>
        <author>
            <name>orgrim</name>
        </author>
        <summary>
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT42 SECTION &quot;Perl&quot; [1-20] --&gt;
&lt;h2 class=&quot;sectionedit43&quot;&gt;&lt;a name=&quot;dedoublonner-une-liste&quot; id=&quot;dedoublonner-une-liste&quot;&gt;Dédoublonner une liste&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
En passant par un hash
&lt;/p&gt;
&lt;pre class=&quot;code perl&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;%hash&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/map.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;map&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;co5&quot;&gt;$_&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;@array&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;@unique&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/keys.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;keys&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;re0&quot;&gt;%hash&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT43 SECTION &quot;Dédoublonner une liste&quot; [21-161] --&gt;
&lt;h2 class=&quot;sectionedit44&quot;&gt;&lt;a name=&quot;conversion-de-datesheures-en-format-posix&quot; id=&quot;conversion-de-datesheures-en-format-posix&quot;&gt;Conversion de dates/heures en format POSIX&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Un petit script pour faire ça:
&lt;/p&gt;
&lt;pre class=&quot;code perl&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#!/usr/bin/env perl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;use&lt;/span&gt; Time&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;Local&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ARGV&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;eq&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-h&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;usage: $0 [YYYY/MM/DD] [HH:MM[:SS]]&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;    if date is not set, today is assumed&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;    if time is not set, midnight is assumed&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;    if time has no second, 0 is assumed&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://perldoc.perl.org/functions/exit.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$#ARGV&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$day&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/split.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;split&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/\//&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$ARGV&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;--;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$min&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/split.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;split&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/:/&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$ARGV&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;unless&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/defined.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;defined&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; timelocal&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$min&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$day&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$#ARGV&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;@now&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/localtime.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;localtime&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$day&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$min&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$ARGV&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/m.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;m&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;!/!&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$day&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/split.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;split&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/\//&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$ARGV&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;--;&lt;/span&gt;
&amp;nbsp;
	&lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; timelocal&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$min&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$day&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$ARGV&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;m/:/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$min&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/split.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;split&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/:/&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$ARGV&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;unless&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/defined.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;defined&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
	&lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; timelocal&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sec&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$min&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$day&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$month&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$year&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;print&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/time.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Et le contraire :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ perl -e &amp;#039;print scalar localtime, &amp;quot;\n&amp;quot;&amp;#039;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT44 SECTION &quot;Conversion de dates/heures en format POSIX&quot; [162-1431] --&gt;
&lt;h2 class=&quot;sectionedit45&quot;&gt;&lt;a name=&quot;liste-des-modules-installes&quot; id=&quot;liste-des-modules-installes&quot;&gt;Liste des modules installés&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e &amp;#039;find { wanted =&amp;gt; sub { print canonpath $_ if /\.pm\z/ }, no_chdir =&amp;gt; 1 }, @INC&amp;#039;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT45 SECTION &quot;Liste des modules installés&quot; [1432-1625] --&gt;
&lt;h2 class=&quot;sectionedit46&quot;&gt;&lt;a name=&quot;parser-un-fichier-de-configuration&quot; id=&quot;parser-un-fichier-de-configuration&quot;&gt;Parser un fichier de configuration&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Le fichier autorise les commentaires avec #, et consiste en une liste de clés/valeurs séparées par un signe =, un couple par ligne.
&lt;/p&gt;
&lt;pre class=&quot;code perl&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re4&quot;&gt;&amp;lt;CONF&amp;gt;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;# strip comments&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;next&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/m.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;m&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;!^&lt;/span&gt;\&lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;#!;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;\&lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;#.*!!;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;# skip empty lines&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;next&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/m.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;m&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;!^&lt;/span&gt;\&lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;co5&quot;&gt;$!&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;# remove space between the first equal sign&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;\&lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;*=&lt;/span&gt;\&lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;*!=!;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$v&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$p&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://perldoc.perl.org/functions/qw.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;qw&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;host port user password watchdir
			  workdir logfile syslog_facility syslog_ident&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/m.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;m&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;!^&lt;/span&gt;\&lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;co5&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.+&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;co5&quot;&gt;$!&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;re0&quot;&gt;$v&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;co3&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;re0&quot;&gt;$v&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=~&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/s.html&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;!^&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;']!!; $v =~ s![&amp;quot;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;']$!!;
		$conf{$p} = $v;
	    }
	}
&amp;nbsp;
	$conf{interval} = $1 if $line =~ m!^\s*interval=(\d+)$!;
&amp;nbsp;
	$conf{syslog} = 1 if $line =~ m!^\s*syslog=(yes)$!;
	$conf{syslog} = 0 if $line =~ m!^\s*syslog=(no)$!;
    }&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT46 SECTION &quot;Parser un fichier de configuration&quot; [1626-] --&gt;</summary>
    </entry>
    <entry>
        <title></title>
        <link rel="alternate" type="text/html" href="http://wiki.orgrim.net/?image=netbsd%3Afirst_boot.png&amp;ns=netbsd&amp;do=media"/>
        <published>2010-12-03T22:05:13+00:00</published>
        <updated>2010-12-03T22:05:13+00:00</updated>
        <id>http://wiki.orgrim.net/?image=netbsd%3Afirst_boot.png&amp;ns=netbsd&amp;do=media</id>
        <author>
            <name>orgrim</name>
        </author>
        <summary>&lt;img src=&quot;/_media/netbsd/first_boot.png?w=500&amp;h=319t=1291413913&quot; alt=&quot;netbsd:first_boot.png&quot; /&gt;</summary>
    </entry>
</feed>

