<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Dns-323 on Ulis Notizen</title>
    <link>https://wolf-u.li/tag/dns-323/</link>
    <description>Recent content in Dns-323 on Ulis Notizen</description>
    <generator>Hugo</generator>
    <language>de</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Fri, 07 Jul 2017 09:25:34 +0700</lastBuildDate>
    <atom:link href="https://wolf-u.li/tag/dns-323/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Conceptronic CH3SNAS</title>
      
      
      <link>https://wolf-u.li/conceptronic-ch3snas/</link>
      <pubDate>Tue, 13 Nov 2007 13:05:14 +1300</pubDate>
      <guid>https://wolf-u.li/conceptronic-ch3snas/</guid>
      <description>&lt;p&gt;Ich habe mir vorletzten Monat ein neues Gadget geleistet. Unter meinem Schreibtisch(in WM) bzw unter meiner Couch(in MA) steht nun ein kleines NAS (Network Attached Storage) von Conceptronic. Das CH3SNAS ist mit einem Marvell XScale (früher Intel XScale) Prozessor mit 500Mhz, 64MB Ram, 2 S-ATA-Festplatten und (sehr wichtig!) einem Gigabit-LAN-Anschluss ausgerüstet. Da es baugleich mit dem DNS323 von D-Link ist, konnte ich nach einer kurzen Google-Suche bereits herausfinden, dass es eine Möglichkeit gibt,z.B. PHP-Bildergallerien mittels eines nachgeladenen Webservers zu installieren oder einen SSH-Server zu starten. Derzeit betreibe ich das NAS mit &lt;del&gt;einer&lt;/del&gt; zwei 500GB Festplatten von Seagate.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Ich habe mir vorletzten Monat ein neues Gadget geleistet. Unter meinem Schreibtisch(in WM) bzw unter meiner Couch(in MA) steht nun ein kleines NAS (Network Attached Storage) von Conceptronic. Das CH3SNAS ist mit einem Marvell XScale (früher Intel XScale) Prozessor mit 500Mhz, 64MB Ram, 2 S-ATA-Festplatten und (sehr wichtig!) einem Gigabit-LAN-Anschluss ausgerüstet. Da es baugleich mit dem DNS323 von D-Link ist, konnte ich nach einer kurzen Google-Suche bereits herausfinden, dass es eine Möglichkeit gibt,z.B. PHP-Bildergallerien mittels eines nachgeladenen Webservers zu installieren oder einen SSH-Server zu starten. Derzeit betreibe ich das NAS mit <del>einer</del> zwei 500GB Festplatten von Seagate.</p>
<p>Ein paar Eigenschaften noch in der Übersicht:</p>
<ul>
<li>Festplattenkonfigurationen: Standard, JBOD, RAID 0 und RAID 1</li>
<li>Programmiertes FTP/HTTP(S)-Download/Backup</li>
<li>UPnP AV Server</li>
<li>USB Printer Server</li>
<li>NTP Server für Systemzeitsynchronisierung</li>
<li>iTunes Server</li>
<li>DHCP-Server</li>
<li>2 Modi: Offener Modus und Account-Modus</li>
<li>Zuweisung von Nutzern / Nutzergruppen</li>
<li>Festplatten-Power Management</li>
<li>Automatische Ventilator-Stufenregelung mit Wärmesensor</li>
<li>Automatische E-Mail-Benachrichtigung</li>
</ul>
<p>Zunächst ein paar Bilder vom NAS:
<img src="/upload/2007/11/758-CH3SNAS-01.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-02.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-03.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-04.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-06.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-07.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-08.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-09.webp" alt="CH3SNAS" loading="lazy">
<img src="/upload/2007/11/758-CH3SNAS-10.webp" alt="CH3SNAS" loading="lazy"></p>
<p>Nach dem Auspacken und dem Aufbau sollte nun die beigelegte CD eingelegt und ein kurzer Blick in die Bedienungsanleitung geworfen werden, diese ist eigentlich recht übersichtlich und gut verfasst. Sobald das Einschalten des NAS beendet ist, startet man das beigelegte &ldquo;Suchtool&rdquo; und versucht zunächst das NAS im Netzwerk zu finden, um es zu konfigurieren. Wenn man nun die IP entweder weiß (DHCP) oder festgelegt hat (Statische IP), kann man sich auf dem Webinterface einloggen.</p>
<p>Das Webinterface des CH3SNAS präsentiert sich einfach und übersichtlich in verschiedenen &ldquo;Tabs&rdquo;. Nach einer Initialisierung meiner 500GB-Festplatte mit dem Dateisystem ext2 konnte ich beginnen, Private Verzeichnisse und Zugriffsrechte für bestimmte Gruppen anzulegen. Danach konnte die Einspeicherung beginnen.</p>
<p>Ich habe derweil ein paar Performance-Messungen vorgenommen. Die grundsätzlichen Results waren für den Preis schon recht gut. An einem 8-Port-Gigabit-Switch von SMC ergab sich im Mittel eine Transferrate von ca 15-20MB/s von einem Windows XP Rechner auf das NAS(Schreibend) und ca 20-25MB/s in die Gegenrichtung (Lesend).</p>
<p>Ohne jegliche Modifikationen an der Lüftersteuerung ist der Lüfter immer an. Leider auch wenn die Festplatten schon längst abgeschalten haben (also z.B. nachts, wo es doch ein wenig stört, wenn ein Lüfter rumröhrt). Dank einer kleinen Modifikation in der <a href="/757/lueftersteuerung-fuer-das-conceptronic-ch3snas/"
    title="Lüftersteuerung (Artikel)" 
   >
  Lüftersteuerung (Artikel)</a> war jedoch auch dies zu beheben.</p>
<p><strong>Alle Artikel zum <a href="/tag/ch3snas/"
    title="CH3SNAS" 
   >
  CH3SNAS</a> sind über den entsprechenden <a href="/tag/ch3snas/"
    title="Tag" 
   >
  Tag</a> zu erreichen.</strong></p>
]]></content:encoded>
    </item>
    <item>
      <title>Lüftersteuerung für das Conceptronic CH3SNAS</title>
      
      
      <link>https://wolf-u.li/lueftersteuerung-fuer-das-conceptronic-ch3snas/</link>
      <pubDate>Tue, 13 Nov 2007 13:08:24 +1300</pubDate>
      <guid>https://wolf-u.li/lueftersteuerung-fuer-das-conceptronic-ch3snas/</guid>
      <description>&lt;p&gt;Diese Steuerung funktioniert, ist aber eigentlich veraltet, da nun das fanctl existiert. Hierzu gibt es einen entsprechenden &lt;a href=&#34;https://wolf-u.li/1946/lueftersteuerung-mittels-fonz-fanctl-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/&#34;
    title=&#34;Beitrag&#34; 
   &gt;
  Beitrag&lt;/a&gt;.
Leider schaltet sich der interne Lüfter des &lt;a href=&#34;https://wolf-u.li/tag/ch3snas/&#34;
    title=&#34;CH3SNAS&#34; 
   &gt;
  CH3SNAS&lt;/a&gt; trotz des Energiemanagements der Festplatten nicht ab und läuft daher stetig leise vor sich hin. Dieses &amp;ldquo;Feature&amp;rdquo; (&amp;ldquo;It&amp;rsquo;s not a Bug, it&amp;rsquo;s a Feature&amp;rdquo;) bringt mehrere Dinge mit sich. Zum einen habe ich dadurch eine stetige Lärmquelle in meinem Zimmer, die Nachts doch ein wenig nerven kann. Zum anderen spart die Abschaltung des Lüfters wieder einige Watt. Desweiteren wird so die Lebensdauer des Lüfters deutlich erhöht.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Diese Steuerung funktioniert, ist aber eigentlich veraltet, da nun das fanctl existiert. Hierzu gibt es einen entsprechenden <a href="/1946/lueftersteuerung-mittels-fonz-fanctl-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Beitrag" 
   >
  Beitrag</a>.
Leider schaltet sich der interne Lüfter des <a href="/tag/ch3snas/"
    title="CH3SNAS" 
   >
  CH3SNAS</a> trotz des Energiemanagements der Festplatten nicht ab und läuft daher stetig leise vor sich hin. Dieses &ldquo;Feature&rdquo; (&ldquo;It&rsquo;s not a Bug, it&rsquo;s a Feature&rdquo;) bringt mehrere Dinge mit sich. Zum einen habe ich dadurch eine stetige Lärmquelle in meinem Zimmer, die Nachts doch ein wenig nerven kann. Zum anderen spart die Abschaltung des Lüfters wieder einige Watt. Desweiteren wird so die Lebensdauer des Lüfters deutlich erhöht.</p>
<p>Diese Anleitung bedingt, dass das <a href="/759/fun_plug-fuer-das-conceptronic-ch3snas/"
    title="fun_plug (Artikel)" 
   >
  fun_plug (Artikel)</a> korrekt installiert wurde. Zudem weise ich darauf hin, dass ich nicht für eventuelle Schäden, Datenverluste oder andere Probleme haften werden. Das Verwenden dieses Artikels geschieht auf eigene Gefahr!
Bitte beachtet meine <a href="/1648/warnung-vor-firmware-release-candidates-fuer-das-conceptronic-ch3snas/"
    title="Hinweise" 
   >
  Hinweise</a> zu Release Candidates der Firmware 1.04!</p>
<p>Zur Erklärung des Codes der Lüftersteuerung:
Zunächst wird der alte Lüftercontroller gekillt, da dieser sonst dazwischenfunken würde. Darunter werden die Genzwerte konfiguriert. Mein Lüfter schaltet sich ab einer Temperatur von 96 Grad Fahrenheit ein und dreht dann mit 2700rpm. Im Bereich bis 110 Grad Fahrenheit dreht dann der Lüfter im Geschwindigkeitsbereich von 2700rpm bis 3500rpm (Maximal sind 6000rpm <link rel=dns-prefetch href=//dns323.kood.org /> <a href="http://dns323.kood.org/hardware:fan"
    title="möglich" 
     target="_blank" rel="nofollow noopener noreferrer" >
  möglich&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>). Wenn die Festplatten sich ausschalten, wird geprüft ob das NAS bereits unter der Temperatur1 liegt (d.h. hier unter 96°F). Wenn ja, wird die Idle-Drehzahl gesetzt, die 0 ist, womit der Lüfter stehen bleibt. Wenn nein, dann dreht der Lüfter auf RPM1 (hier 2700rpm) weiter, bis das NAS kühl genug ist.
Eine Alternative, die nicht Festplattenabhängig ist, findet sich unter den folgenden drei Skripten.</p>
<p>Details zur <a href="#einbindung#einbindung"
    title="Einbindung und Installation" 
   >
  Einbindung und Installation</a> finden sich unter den Skripten.</p>
<h2 id="code-für-eine-festplatte-ohne-logging">Code für eine Festplatte OHNE LOGGING</h2>
<p>Das Skript wurde auf eine Festplatte (hier &ldquo;HD1&rdquo;, für &ldquo;HD0&rdquo; einfach die Bezeichnungen ändern) ausgerichtet, es werden keine Aktivitäten geloggt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span><span class="lnt">64
</span><span class="lnt">65
</span><span class="lnt">66
</span><span class="lnt">67
</span><span class="lnt">68
</span><span class="lnt">69
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="nv">PATH</span><span class="o">=</span>/usr/bin:/bin:/usr/sbin:/sbin:/mnt/HD_a2/fun_plug.d/bin/
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Fahrenheit to Celcius</span>
</span></span><span class="line"><span class="cl">f2c<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$1</span> - <span class="m">32</span> <span class="se">\)</span> <span class="se">\*</span> <span class="m">10</span> + <span class="m">9</span> <span class="se">\)</span> <span class="se">\/</span> 18<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Celcius to Fahrenheit</span>
</span></span><span class="line"><span class="cl">c2f<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="sb">`</span>expr <span class="se">\(</span> <span class="nv">$1</span> <span class="se">\*</span> <span class="m">9</span> <span class="se">\)</span> <span class="se">\/</span> <span class="m">5</span> <span class="se">\+</span> 32<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Kill the old fan controller</span>
</span></span><span class="line"><span class="cl"><span class="nv">PID</span><span class="o">=</span><span class="k">$(</span>/bin/pidof fancontrol<span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="nv">$PID</span><span class="s2">&#34;</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nb">kill</span> -9 <span class="nv">$PID</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="nv">update_interval</span><span class="o">=</span><span class="m">60</span>
</span></span><span class="line"><span class="cl"><span class="c1">#T1 and T2 in fahrenheit - convert if necessary using c2f function</span>
</span></span><span class="line"><span class="cl"><span class="nv">T1</span><span class="o">=</span><span class="m">96</span>
</span></span><span class="line"><span class="cl"><span class="nv">T2</span><span class="o">=</span><span class="m">110</span>
</span></span><span class="line"><span class="cl"><span class="nv">IDLERPM</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM1</span><span class="o">=</span><span class="m">2700</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM2</span><span class="o">=</span><span class="m">3500</span>
</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[</span> <span class="m">1</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">do</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#Find out current temperature</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="sb">`</span>temperature g 0<span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="si">${</span><span class="nv">T</span><span class="p">##*=</span><span class="si">}</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="sb">`</span>temperature g <span class="m">0</span> <span class="p">|</span> grep -i -c centigrade <span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Convert to Fahrenheit if output is in Celcius</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="nv">$C</span> -gt <span class="m">0</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="nv">$T</span>
</span></span><span class="line"><span class="cl"> <span class="nv">F</span><span class="o">=</span><span class="k">$(</span>c2f <span class="nv">$C</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="nv">$F</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="nv">F</span><span class="o">=</span><span class="nv">$T</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="k">$(</span>f2c <span class="nv">$F</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#Search dmesg for hard drive messages</span>
</span></span><span class="line"><span class="cl"> <span class="nv">DRIVE1_dmesg</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD1 <span class="p">|</span> /bin/tail -1<span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="nv">DRIVE1_awake</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD1 <span class="p">|</span> /bin/tail -1 <span class="p">|</span> /bin/grep awake<span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Calculate new fanspeed, depending on if drive is awake or not</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE1_dmesg</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># True if dmesg contains status for drive</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE1_awake</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># True if any of the drives are awake, keep fan running</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$T2</span> <span class="se">\&lt;</span> <span class="nv">$F</span> <span class="se">\)</span> <span class="se">\*</span> <span class="nv">$RPM2</span> <span class="se">\)</span> <span class="se">\|</span> <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$RPM1</span> + <span class="se">\(</span> <span class="nv">$RPM2</span> - <span class="nv">$RPM1</span> <span class="se">\)</span> <span class="se">\*</span> <span class="se">\(</span> <span class="nv">$F</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\/</span> <span class="se">\(</span> <span class="nv">$T2</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span> <span class="se">\&amp;</span> <span class="se">\(</span> <span class="nv">$F</span> <span class="se">\&gt;</span><span class="o">=</span> <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span><span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># None of the drives is awake, now check if Temperature is above $T1</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> <span class="nv">$T</span> -gt <span class="nv">$T1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#Keep the fan running until the NAS has cooled down</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="nv">$RPM1</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#set speed to IDLE speed</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="nv">$IDLERPM</span>
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># dmesg does not yet contain the status the drive</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># (it has probably never powered down), keep fan running</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$T2</span> <span class="se">\&lt;</span> <span class="nv">$F</span> <span class="se">\)</span> <span class="se">\*</span> <span class="nv">$RPM2</span> <span class="se">\)</span> <span class="se">\|</span> <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$RPM1</span> + <span class="se">\(</span> <span class="nv">$RPM2</span> - <span class="nv">$RPM1</span> <span class="se">\)</span> <span class="se">\*</span> <span class="se">\(</span> <span class="nv">$F</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\/</span> <span class="se">\(</span> <span class="nv">$T2</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span> <span class="se">\&amp;</span> <span class="se">\(</span> <span class="nv">$F</span> <span class="se">\&gt;</span><span class="o">=</span> <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span><span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Set the new fan speed</span>
</span></span><span class="line"><span class="cl"> fanspeed w <span class="nv">$newRPM</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Write some more to logfile</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Wait for next cycle</span>
</span></span><span class="line"><span class="cl"> /bin/sleep <span class="nv">$update_interval</span>
</span></span><span class="line"><span class="cl"><span class="k">done</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="code-für-2-festplatten-mit-logging">Code für 2 Festplatten MIT LOGGING</h2>
<p>Das Skript wurde auf auf beide Festplatten ausgerichtet, es werden alle Aktivitäten geloggt und der aktuelle Status hinterlegt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span><span class="lnt">64
</span><span class="lnt">65
</span><span class="lnt">66
</span><span class="lnt">67
</span><span class="lnt">68
</span><span class="lnt">69
</span><span class="lnt">70
</span><span class="lnt">71
</span><span class="lnt">72
</span><span class="lnt">73
</span><span class="lnt">74
</span><span class="lnt">75
</span><span class="lnt">76
</span><span class="lnt">77
</span><span class="lnt">78
</span><span class="lnt">79
</span><span class="lnt">80
</span><span class="lnt">81
</span><span class="lnt">82
</span><span class="lnt">83
</span><span class="lnt">84
</span><span class="lnt">85
</span><span class="lnt">86
</span><span class="lnt">87
</span><span class="lnt">88
</span><span class="lnt">89
</span><span class="lnt">90
</span><span class="lnt">91
</span><span class="lnt">92
</span><span class="lnt">93
</span><span class="lnt">94
</span><span class="lnt">95
</span><span class="lnt">96
</span><span class="lnt">97
</span><span class="lnt">98
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="nv">PATH</span><span class="o">=</span>/usr/bin:/bin:/usr/sbin:/sbin
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Fahrenheit to Celcius</span>
</span></span><span class="line"><span class="cl">f2c<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$1</span> - <span class="m">32</span> <span class="se">\)</span> <span class="se">\*</span> <span class="m">10</span> + <span class="m">9</span> <span class="se">\)</span> <span class="se">\/</span> 18<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Celcius to Fahrenheit</span>
</span></span><span class="line"><span class="cl">c2f<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="sb">`</span>expr <span class="se">\(</span> <span class="nv">$1</span> <span class="se">\*</span> <span class="m">9</span> <span class="se">\)</span> <span class="se">\/</span> <span class="m">5</span> <span class="se">\+</span> 32<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Kill the old fan controller</span>
</span></span><span class="line"><span class="cl"><span class="nv">PID</span><span class="o">=</span><span class="k">$(</span>/bin/pidof fancontrol<span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="nv">$PID</span><span class="s2">&#34;</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nb">kill</span> -9 <span class="nv">$PID</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="nv">update_interval</span><span class="o">=</span><span class="m">60</span>
</span></span><span class="line"><span class="cl"><span class="c1">#T1 and T2 in fahrenheit - convert if necessary using c2f function</span>
</span></span><span class="line"><span class="cl"><span class="nv">T1</span><span class="o">=</span><span class="m">96</span>
</span></span><span class="line"><span class="cl"><span class="nv">T2</span><span class="o">=</span><span class="m">110</span>
</span></span><span class="line"><span class="cl"><span class="nv">IDLERPM</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM1</span><span class="o">=</span><span class="m">2700</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM2</span><span class="o">=</span><span class="m">3500</span>
</span></span><span class="line"><span class="cl"><span class="nv">LOGDIR</span><span class="o">=</span>/log
</span></span><span class="line"><span class="cl"><span class="nv">LOGFILE</span><span class="o">=</span><span class="si">${</span><span class="nv">LOGDIR</span><span class="si">}</span>/fan.txt
</span></span><span class="line"><span class="cl"><span class="nv">STATFILE</span><span class="o">=</span><span class="si">${</span><span class="nv">LOGDIR</span><span class="si">}</span>/fanstat.txt
</span></span><span class="line"><span class="cl">mkdir -p <span class="si">${</span><span class="nv">LOGDIR</span><span class="si">}</span>
</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[</span> <span class="m">1</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">do</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#Find out current temperature</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="sb">`</span>temperature g 0<span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="si">${</span><span class="nv">T</span><span class="p">##*=</span><span class="si">}</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="sb">`</span>temperature g <span class="m">0</span> <span class="p">|</span> grep -i -c centigrade <span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Convert to Fahrenheit if output is in Celcius</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="nv">$C</span> -gt <span class="m">0</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="nv">$T</span>
</span></span><span class="line"><span class="cl"> <span class="nv">F</span><span class="o">=</span><span class="k">$(</span>c2f <span class="nv">$C</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="nv">$F</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="nv">F</span><span class="o">=</span><span class="nv">$T</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="k">$(</span>f2c <span class="nv">$F</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="c1">#Search dmesg for hard drive messages</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE0_dmesg</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD0 <span class="p">|</span> /bin/tail -1<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE1_dmesg</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD1 <span class="p">|</span> /bin/tail -1<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE0_awake</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD0 <span class="p">|</span> /bin/tail -1 <span class="p">|</span> /bin/grep awake<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE1_awake</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD1 <span class="p">|</span> /bin/tail -1 <span class="p">|</span> /bin/grep awake<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Write some info to logfile</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;###############################################################&#34;</span>&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="sb">`</span>date<span class="sb">`</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;Temp in Fahrenheit: </span><span class="nv">$F</span><span class="s2">&#34;</span> &gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;Temp in Celcius: </span><span class="nv">$C</span><span class="s2">&#34;</span> &gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Calculate new fanspeed, depending on if drives are awake or not</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE0_dmesg</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE1_dmesg</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"><span class="c1"># True if dmesg contains status for both drives</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE0_awake</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span> <span class="o">||</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE1_awake</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"><span class="c1"># True if any of the drives are awake, keep fan running</span>
</span></span><span class="line"><span class="cl"><span class="nv">newRPM</span><span class="o">=</span><span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$T2</span> <span class="se">\&lt;</span> <span class="nv">$F</span> <span class="se">\)</span> <span class="se">\*</span> <span class="nv">$RPM2</span> <span class="se">\)</span> <span class="se">\|</span> <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$RPM1</span> + <span class="se">\(</span> <span class="nv">$RPM2</span> - <span class="nv">$RPM1</span> <span class="se">\)</span> <span class="se">\*</span> <span class="se">\(</span> <span class="nv">$F</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\/</span> <span class="se">\(</span> <span class="nv">$T2</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span> <span class="se">\&amp;</span> <span class="se">\(</span> <span class="nv">$F</span> <span class="se">\&gt;</span><span class="o">=</span> <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span><span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE0_awake</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"><span class="c1"># True if the first drive is awake</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;The first drive is awake&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;The first drive is hibernating&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE1_awake</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"><span class="c1"># True if the second drive is awake</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;The second drive is awake&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;The second drive is hibernating&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># None of the drives is awake, now check if Temperature is above $T1</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> <span class="nv">$T</span> -gt <span class="nv">$T1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#Keep the fan running until the NAS has cooled down</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="nv">$RPM1</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="s2">&#34;Both drives are hibernating. Temperature still to high to switch fan off&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#set speed to IDLE speed</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="nv">$IDLERPM</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="s2">&#34;Both drives are hibernating. Setting IDLE speed for fan&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"><span class="c1"># dmesg does not yet contain the status for both drives</span>
</span></span><span class="line"><span class="cl"><span class="c1"># (at least one of the drives has never been powered down), keep fan running</span>
</span></span><span class="line"><span class="cl"><span class="nv">newRPM</span><span class="o">=</span><span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$T2</span> <span class="se">\&lt;</span> <span class="nv">$F</span> <span class="se">\)</span> <span class="se">\*</span> <span class="nv">$RPM2</span> <span class="se">\)</span> <span class="se">\|</span> <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$RPM1</span> + <span class="se">\(</span> <span class="nv">$RPM2</span> - <span class="nv">$RPM1</span> <span class="se">\)</span> <span class="se">\*</span> <span class="se">\(</span> <span class="nv">$F</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\/</span> <span class="se">\(</span> <span class="nv">$T2</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span> <span class="se">\&amp;</span> <span class="se">\(</span> <span class="nv">$F</span> <span class="se">\&gt;</span><span class="o">=</span> <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span><span class="sb">`</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;Could not determine status for both drives, one of them is probably awake&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="sb">`</span>date<span class="sb">`</span> <span class="nv">$C</span> <span class="nv">$F</span> <span class="sb">`</span>fanspeed g<span class="sb">`</span> <span class="nv">$newRPM</span>&gt;&gt; <span class="nv">$STATFILE</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Set the new fan speed</span>
</span></span><span class="line"><span class="cl">fanspeed w <span class="nv">$newRPM</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Write some more to logfile</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;Fanspeed: &#34;</span> <span class="nv">$newRPM</span> <span class="s2">&#34;rpm&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl">/bin/echo <span class="s2">&#34;###############################################################&#34;</span>&gt;&gt; <span class="nv">$LOGFILE</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Wait for next cycle</span>
</span></span><span class="line"><span class="cl">/bin/sleep <span class="nv">$update_interval</span>
</span></span><span class="line"><span class="cl"><span class="k">done</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="code-für-2-festplatten-ohne-logging">Code für 2 Festplatten OHNE LOGGING</h2>
<p>Das Skript wurde auf auf beide Festplatten ausgerichtet, es werden keine Aktivitäten geloggt</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span><span class="lnt">64
</span><span class="lnt">65
</span><span class="lnt">66
</span><span class="lnt">67
</span><span class="lnt">68
</span><span class="lnt">69
</span><span class="lnt">70
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="nv">PATH</span><span class="o">=</span>/usr/bin:/bin:/usr/sbin:/sbin
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Fahrenheit to Celcius</span>
</span></span><span class="line"><span class="cl">f2c<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$1</span> - <span class="m">32</span> <span class="se">\)</span> <span class="se">\*</span> <span class="m">10</span> + <span class="m">9</span> <span class="se">\)</span> <span class="se">\/</span> 18<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Celcius to Fahrenheit</span>
</span></span><span class="line"><span class="cl">c2f<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="sb">`</span>expr <span class="se">\(</span> <span class="nv">$1</span> <span class="se">\*</span> <span class="m">9</span> <span class="se">\)</span> <span class="se">\/</span> <span class="m">5</span> <span class="se">\+</span> 32<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Kill the old fan controller</span>
</span></span><span class="line"><span class="cl"><span class="nv">PID</span><span class="o">=</span><span class="k">$(</span>/bin/pidof fancontrol<span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="nv">$PID</span><span class="s2">&#34;</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nb">kill</span> -9 <span class="nv">$PID</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="nv">update_interval</span><span class="o">=</span><span class="m">60</span>
</span></span><span class="line"><span class="cl"><span class="c1">#T1 and T2 in fahrenheit - convert if necessary using c2f function</span>
</span></span><span class="line"><span class="cl"><span class="nv">T1</span><span class="o">=</span><span class="m">96</span>
</span></span><span class="line"><span class="cl"><span class="nv">T2</span><span class="o">=</span><span class="m">110</span>
</span></span><span class="line"><span class="cl"><span class="nv">IDLERPM</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM1</span><span class="o">=</span><span class="m">2700</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM2</span><span class="o">=</span><span class="m">3500</span>
</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[</span> <span class="m">1</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">do</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#Find out current temperature</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="sb">`</span>temperature g 0<span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="si">${</span><span class="nv">T</span><span class="p">##*=</span><span class="si">}</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="sb">`</span>temperature g <span class="m">0</span> <span class="p">|</span> grep -i -c centigrade <span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Convert to Fahrenheit if output is in Celcius</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="nv">$C</span> -gt <span class="m">0</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="nv">$T</span>
</span></span><span class="line"><span class="cl"> <span class="nv">F</span><span class="o">=</span><span class="k">$(</span>c2f <span class="nv">$C</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="nv">$F</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="nv">F</span><span class="o">=</span><span class="nv">$T</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="k">$(</span>f2c <span class="nv">$F</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="c1">#Search dmesg for hard drive messages</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE0_dmesg</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD0 <span class="p">|</span> /bin/tail -1<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE1_dmesg</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD1 <span class="p">|</span> /bin/tail -1<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE0_awake</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD0 <span class="p">|</span> /bin/tail -1 <span class="p">|</span> /bin/grep awake<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="nv">DRIVE1_awake</span><span class="o">=</span><span class="sb">`</span>/bin/dmesg <span class="p">|</span> /bin/grep HD1 <span class="p">|</span> /bin/tail -1 <span class="p">|</span> /bin/grep awake<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Calculate new fanspeed, depending on if drives are awake or not</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE0_dmesg</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE1_dmesg</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"><span class="c1"># True if dmesg contains status for both drives</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE0_awake</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span> <span class="o">||</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DRIVE1_awake</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"><span class="c1"># True if any of the drives are awake, keep fan running</span>
</span></span><span class="line"><span class="cl"><span class="nv">newRPM</span><span class="o">=</span><span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$T2</span> <span class="se">\&lt;</span> <span class="nv">$F</span> <span class="se">\)</span> <span class="se">\*</span> <span class="nv">$RPM2</span> <span class="se">\)</span> <span class="se">\|</span> <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$RPM1</span> + <span class="se">\(</span> <span class="nv">$RPM2</span> - <span class="nv">$RPM1</span> <span class="se">\)</span> <span class="se">\*</span> <span class="se">\(</span> <span class="nv">$F</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\/</span> <span class="se">\(</span> <span class="nv">$T2</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span> <span class="se">\&amp;</span> <span class="se">\(</span> <span class="nv">$F</span> <span class="se">\&gt;</span><span class="o">=</span> <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span><span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># None of the drives is awake, now check if Temperature is above $T1</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> <span class="nv">$T</span> -gt <span class="nv">$T1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#Keep the fan running until the NAS has cooled down</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="nv">$RPM1</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1">#set speed to IDLE speed</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="nv">$IDLERPM</span>
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"><span class="c1"># dmesg does not yet contain the status for both drives</span>
</span></span><span class="line"><span class="cl"><span class="c1"># (at least one of the drives has never been powered down), keep fan running</span>
</span></span><span class="line"><span class="cl"><span class="nv">newRPM</span><span class="o">=</span><span class="sb">`</span>expr <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$T2</span> <span class="se">\&lt;</span> <span class="nv">$F</span> <span class="se">\)</span> <span class="se">\*</span> <span class="nv">$RPM2</span> <span class="se">\)</span> <span class="se">\|</span> <span class="se">\(</span> <span class="se">\(</span> <span class="nv">$RPM1</span> + <span class="se">\(</span> <span class="nv">$RPM2</span> - <span class="nv">$RPM1</span> <span class="se">\)</span> <span class="se">\*</span> <span class="se">\(</span> <span class="nv">$F</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\/</span> <span class="se">\(</span> <span class="nv">$T2</span> - <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span> <span class="se">\&amp;</span> <span class="se">\(</span> <span class="nv">$F</span> <span class="se">\&gt;</span><span class="o">=</span> <span class="nv">$T1</span> <span class="se">\)</span> <span class="se">\)</span><span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Set the new fan speed</span>
</span></span><span class="line"><span class="cl">fanspeed w <span class="nv">$newRPM</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Wait for next cycle</span>
</span></span><span class="line"><span class="cl">/bin/sleep <span class="nv">$update_interval</span>
</span></span><span class="line"><span class="cl"><span class="k">done</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Leider funktionieren die Lüftersteuerungen bei einem RAID-System wohl nicht, da es keine Meldungen über die Abschaltung der Festplatten gibt (Ich fahre leider kein RAID, daher kann ich das noch nicht beurteilen). Ich habe daher eine zusätzliche Lüftersteuerung entwickelt, die den Lüfter unterhalb einer bestimmten Systemtemperatur abschaltet. Diese habe ich momentan auf 30°C festgesetzt. Darüber hinaus dreht der Lüfter mit 2700rpm bis 3500rpm (je nach Temperatur).</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="nv">PATH</span><span class="o">=</span>/usr/bin:/bin:/usr/sbin:/sbin
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Fahrenheit to Celcius</span>
</span></span><span class="line"><span class="cl">f2c<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="k">$((</span> <span class="o">((</span><span class="nv">$1</span> <span class="o">-</span> <span class="m">32</span><span class="o">)</span> <span class="o">*</span> <span class="m">10</span> <span class="o">+</span> <span class="m">9</span><span class="o">)</span> <span class="o">/</span> <span class="m">18</span> <span class="k">))</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Converts Celcius to Fahrenheit</span>
</span></span><span class="line"><span class="cl">c2f<span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> /bin/echo <span class="k">$((</span> <span class="o">(</span><span class="nv">$1</span> <span class="o">*</span> <span class="m">9</span><span class="o">)</span> <span class="o">/</span> <span class="m">5</span> <span class="o">+</span> <span class="m">32</span> <span class="k">))</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Kill the old fan controller</span>
</span></span><span class="line"><span class="cl"><span class="nv">PID</span><span class="o">=</span><span class="k">$(</span>/bin/pidof fancontrol<span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -n <span class="s2">&#34;</span><span class="nv">$PID</span><span class="s2">&#34;</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nb">kill</span> -9 <span class="nv">$PID</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Checking interval in seconds</span>
</span></span><span class="line"><span class="cl"><span class="nv">update_interval</span><span class="o">=</span><span class="m">60</span>
</span></span><span class="line"><span class="cl"><span class="c1"># T1 and T2 in fahrenheit - convert if necessary using c2f function</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Example: &#34;T1=$(c2f 30)&#34; will convert 30°C to Fahrenheit</span>
</span></span><span class="line"><span class="cl"><span class="nv">T1</span><span class="o">=</span><span class="m">86</span>
</span></span><span class="line"><span class="cl"><span class="nv">T2</span><span class="o">=</span><span class="m">110</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Idle-RPM. If you want the Fan to switch of, set this to zero</span>
</span></span><span class="line"><span class="cl"><span class="nv">IDLERPM</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Linearly interpolate the fan-speed between RPM1 and RPM2</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM1</span><span class="o">=</span><span class="m">2700</span>
</span></span><span class="line"><span class="cl"><span class="nv">RPM2</span><span class="o">=</span><span class="m">3500</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Now loop, check status every $update_interval seconds</span>
</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[</span> <span class="m">1</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">do</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Find out current temperature</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="sb">`</span>temperature g 0<span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="si">${</span><span class="nv">T</span><span class="p">##*=</span><span class="si">}</span>
</span></span><span class="line"><span class="cl"> <span class="nv">C</span><span class="o">=</span><span class="sb">`</span>temperature g <span class="m">0</span> <span class="p">|</span> grep -i -c centigrade <span class="sb">`</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Convert to Fahrenheit if output is in Celcius</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> <span class="nv">$C</span> -gt <span class="m">0</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nv">T</span><span class="o">=</span><span class="k">$(</span>c2f <span class="nv">$T</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Check if Temperature is above $T1</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> <span class="nv">$T</span> -gt <span class="nv">$T1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Keep the fan running</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="k">$((</span> <span class="o">(</span><span class="nv">$RPM1</span> <span class="o">+</span> <span class="o">(</span><span class="nv">$RPM2</span> <span class="o">-</span> <span class="nv">$RPM1</span><span class="o">)</span> <span class="o">*</span> <span class="o">(</span><span class="nv">$T</span> <span class="o">-</span> <span class="nv">$T1</span><span class="o">)</span> <span class="o">/</span> <span class="o">(</span><span class="nv">$T2</span> <span class="o">-</span> <span class="nv">$T1</span><span class="k">))</span> <span class="o">))</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># Temp below T1 -&gt; set fan to IDLE-Speed</span>
</span></span><span class="line"><span class="cl"> <span class="nv">newRPM</span><span class="o">=</span><span class="nv">$IDLERPM</span>
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"> fanspeed w <span class="nv">$newRPM</span>
</span></span><span class="line"><span class="cl"> <span class="c1"># wait for next cycle</span>
</span></span><span class="line"><span class="cl"> sleep <span class="nv">$update_interval</span>
</span></span><span class="line"><span class="cl"><span class="k">done</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Das Script wid nicht im Ordner start abgelegt, sondern muss extra gestartet werden. Wenn das Skript einfach nur im Ordner start liegt, klappt die Steuerung nicht!</p>
<p>Die Installation kann stark vereinfachen, indem man das Skript direkt auf das NAS herunterlädt. Zunächst muss man sich einloggen, anschließend muss man je nach Festplattenanzahl den gewünschten Befehl eingeben:</p>
<ul>
<li>Code für eine Festplatte ohne Logging:
<code>wget http://wolf-u.li/u/167 -O /ffp/lueftersteuerung.sh</code></li>
<li>Code für zwei Festplatten mit Logging:
<code>wget http://wolf-u.li/u/169 -O /ffp/lueftersteuerung.sh</code></li>
<li>Code für zwei Festplatten ohne Logging:
<code>wget http://wolf-u.li/u/168 -O /ffp/lueftersteuerung.sh</code></li>
<li>Code für Temperaturabhängige Steuerung ohne Logging:
<code>wget http://wolf-u.li/u/170 -O /ffp/lueftersteuerung.sh</code></li>
</ul>
<p>Anschließend muss immer noch folgendes ausgeführt werden, sofern noch keine Lüftersteuerung installiert war. Kommt beispielsweise nur eine Festplatte hinzu oder wurden die untenstehenden Befehle bereits in das fun_plug eingefügt, sollten diese Befehle nicht mehr ausgeführt werden!</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;cp /ffp/lueftersteuerung.sh /sbin&#34;</span> &gt;&gt; /mnt/HD_a2/fun_plug
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;/sbin/lueftersteuerung.sh &gt;/dev/null 2&gt;/dev/null /dev/null 2&gt;/dev/null&#34;</span> &gt;&gt; /mnt/HD_a2/fun_plug
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>Wahlweise</strong> kann man übrigens auch den &ldquo;old-school&rdquo;-Weg gehen und es manuell ablegen:</p>
<p>Im folgenden Beispiel wird das Skript als lueftersteuerung.sh abgespeichert und über das fun_plug gestartet, daher wird folgendes am Ende des fun_plugs eingefügt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /pfad/zur/lueftersteuerung.sh /sbin
</span></span><span class="line"><span class="cl">/sbin/lueftersteuerung.sh &gt;/dev/null 2&gt;/dev/null /dev/null 2&gt;/dev/null
</span></span></code></pre></td></tr></table>
</div>
</div><p>Bitte /pfad/zur/ auf den korrekten Pfad anpassen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Webserver lighttpd mit php5.2 auf dem Conceptronic CH3SNAS installieren</title>
      
      
      <link>https://wolf-u.li/webserver-lighttpd-mit-php52-auf-dem-conceptronic-ch3snas-installieren/</link>
      <pubDate>Tue, 13 Nov 2007 14:05:11 +1300</pubDate>
      <guid>https://wolf-u.li/webserver-lighttpd-mit-php52-auf-dem-conceptronic-ch3snas-installieren/</guid>
      <description>&lt;p&gt;Diese Anleitung bezieht sich auf &lt;a href=&#34;https://wolf-u.li/tag/fun_plug/&#34;
    title=&#34;fun_plug&#34; 
   &gt;
  fun_plug&lt;/a&gt;&amp;rsquo;s der Versionen 0.3 und 0.4.&lt;/p&gt;
&lt;p&gt;Die Anleitung für 0.5 befindet sich &lt;a href=&#34;https://wolf-u.li/1425/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt;.
Als Fortsetzung meiner Artikelreihe zum &lt;a href=&#34;https://wolf-u.li/tag/ch3snas/&#34;
    title=&#34;CH3SNAS&#34; 
   &gt;
  CH3SNAS&lt;/a&gt; wird hier die Möglichkeit, einen Webserver mit PHP-Unterstützung zu installieren, beschrieben.
Mit Hilfe des &lt;a href=&#34;https://wolf-u.li/759/fun_plug-fuer-das-conceptronic-ch3snas/&#34;
    title=&#34;&amp;ldquo;fun_plugs&amp;rdquo; (Artikel)&#34; 
   &gt;
  &amp;ldquo;fun_plugs&amp;rdquo; (Artikel)&lt;/a&gt; kann der Webserver lighttpd mit PHP5.2 installiert werden, um zum Beispiel PHP-Bildergallerien oder CMS-Systeme zu betreiben. Dank des niedrigen Hauptspeicherverbrauchs werden die 64MB Ram des CH3SNAS nicht überstrapaziert. Übermäßige Leistung sollte man trotzdem nicht erwarten ;)&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Diese Anleitung bezieht sich auf <a href="/tag/fun_plug/"
    title="fun_plug" 
   >
  fun_plug</a>&rsquo;s der Versionen 0.3 und 0.4.</p>
<p>Die Anleitung für 0.5 befindet sich <a href="/1425/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="hier" 
   >
  hier</a>.
Als Fortsetzung meiner Artikelreihe zum <a href="/tag/ch3snas/"
    title="CH3SNAS" 
   >
  CH3SNAS</a> wird hier die Möglichkeit, einen Webserver mit PHP-Unterstützung zu installieren, beschrieben.
Mit Hilfe des <a href="/759/fun_plug-fuer-das-conceptronic-ch3snas/"
    title="&ldquo;fun_plugs&rdquo; (Artikel)" 
   >
  &ldquo;fun_plugs&rdquo; (Artikel)</a> kann der Webserver lighttpd mit PHP5.2 installiert werden, um zum Beispiel PHP-Bildergallerien oder CMS-Systeme zu betreiben. Dank des niedrigen Hauptspeicherverbrauchs werden die 64MB Ram des CH3SNAS nicht überstrapaziert. Übermäßige Leistung sollte man trotzdem nicht erwarten ;)</p>
<p>Die derzeitigen Softwareversionen sind lighttpd 1.4.17 und PHP 5.2.4, welche in den Paketen <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.3/lighttpd-1.4.17.tgz"
    title="lighttpd-1.4.17.tgz" 
     target="_blank" rel="nofollow noopener noreferrer" >
  lighttpd-1.4.17.tgz&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.3/php-5.2.4.tgz"
    title="php-5.2.4.tgz" 
     target="_blank" rel="nofollow noopener noreferrer" >
  php-5.2.4.tgz&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> im <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.3/"
    title="Repository von fonz" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Repository von fonz&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> zu finden sind.</p>
<p>Nach dem Herunterladen legt man die Dateien auf das NAS und installiert diese, wie schon in der &ldquo;fun_plug&rdquo;-Anleitung beschrieben wurde, mittels <code>funpkg.sh /pfad/zum/paket/name.tgz</code>, also z.B. <code>funpkg.sh /mnt/HD_a2/lighttpd-1.4.17.tgz</code> bzw. <code>funpkg.sh /mnt/HD_a2/php-5.2.4.tgz</code>.</p>
<p>Anschließend kann php bzw lighttpd konfiguriert werden. Hierzu geht man in <code>/mnt/HD_a2/fun_plug.d/etc/</code> und bennent die Datei <code>lighttpd.conf-with-php-sample</code> in <code>lighttpd.conf</code> um. Nun kann man die Datei editieren (evtl muss hierzu der Editor joe aus dem Repository von fonz installiert werden) und die Einstellungen anpassen.</p>
<p>Zuletzt muss die Starterdatei von lighttpd im &ldquo;start&rdquo;-Verzeichnis noch ausführbar gemacht werden (chmod a+x lighttpd.sh), damit der lighttpd beim Start des NAS mitgeladen wird.</p>
]]></content:encoded>
    </item>
    <item>
      <title>PHP und MySQL auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323 installieren</title>
      
      
      <link>https://wolf-u.li/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/</link>
      <pubDate>Sat, 05 Jul 2008 22:42:58 +0500</pubDate>
      <guid>https://wolf-u.li/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; nach den aktuellen Tutorials!&lt;/strong&gt;
Nach meinem Artikel über die Installation von &lt;a href=&#34;https://wolf-u.li/760/webserver-lighttpd-mit-php52-auf-dem-conceptronic-ch3snas-installieren/&#34;
    title=&#34;PHP5.2 zusammen mit dem Webserver lighttpd&#34; 
   &gt;
  PHP5.2 zusammen mit dem Webserver lighttpd&lt;/a&gt; gehe ich nun einen Schritt weiter. Es geht konkret um die Installation von &lt;a href=&#34;https://wolf-u.li/tag/mysql/&#34;
    title=&#34;MySQL&#34; 
   &gt;
  MySQL&lt;/a&gt;5.1 inklusive &lt;a href=&#34;https://wolf-u.li/tag/php/&#34;
    title=&#34;PHP&#34; 
   &gt;
  PHP&lt;/a&gt;5.2 zusammen mit dem &lt;a href=&#34;https://wolf-u.li/tag/webserver/&#34;
    title=&#34;Webserver&#34; 
   &gt;
  Webserver&lt;/a&gt; lighttpd auf dem NAS.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><strong>Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong>
Nach meinem Artikel über die Installation von <a href="/760/webserver-lighttpd-mit-php52-auf-dem-conceptronic-ch3snas-installieren/"
    title="PHP5.2 zusammen mit dem Webserver lighttpd" 
   >
  PHP5.2 zusammen mit dem Webserver lighttpd</a> gehe ich nun einen Schritt weiter. Es geht konkret um die Installation von <a href="/tag/mysql/"
    title="MySQL" 
   >
  MySQL</a>5.1 inklusive <a href="/tag/php/"
    title="PHP" 
   >
  PHP</a>5.2 zusammen mit dem <a href="/tag/webserver/"
    title="Webserver" 
   >
  Webserver</a> lighttpd auf dem NAS.</p>
<p>Voraussetzung für die Installation ist die Einrichtung des fun_plug in der Version 0.5, welche <a href="/nas/"
    title="hier" 
   >
  hier</a> für verschiedene Geräte zu finden ist. Für alle Listings in diesem Beitrag gilt: Wenn man auf &ldquo;Plain Text&rdquo; klickt, gehts kopieren leichter ;) Und wenn Pfade abgeändert werden sollen, bitte selbstständig anpassen.</p>
<p>Zunächst muss man mein <a href="/2146/ulis-paket-repository-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Repository" 
   >
  Repository</a> wie gewohnt synchronisieren. Anschließend müssen mindestens <code>curl</code>, <code>mysql</code>, <code>php</code> und <code>lighttpd</code> aus meinem Repository installiert werden. Fonz&rsquo; Repository sollte sowieso komplett installiert sein, hier muss man aber auf jeden Fall <code>libiconv</code> installiert haben.</p>
<p>Wenn man (so wie im <a href="/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="ffp0.5-Tutorial" 
   >
  ffp0.5-Tutorial</a> beschrieben) bereits früher einmal das PHP von fonz installiert hat, so muss man dieses mittels &ldquo;<code>funpkg -u</code>&rdquo; nun upgraden.</p>
<p>Normalerweise wird man die Pakete wie folgt installieren (lighttpd ist hierbei auf <strong>-u</strong>, also update gestellt, da dieser vermutlich schon installiert ist):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">funpkg -i /ffp/pkg/additional/*/mysql-*.tgz
</span></span><span class="line"><span class="cl">funpkg -i /ffp/pkg/additional/*/curl-*.tgz
</span></span><span class="line"><span class="cl">funpkg -i /ffp/pkg/additional/*/php-*.tgz
</span></span><span class="line"><span class="cl">funpkg -u /ffp/pkg/additional/*/lighttpd-*.tgz
</span></span><span class="line"><span class="cl">funpkg -i /ffp/pkg/packages/libiconv-*.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Alle Webdienste werden in Zukunft das Verzeichnis <code>/srv/</code> als Datenablageort nutzen. Da es unklug wäre, diese Speicherort auf dem kleinen RAM des NAS zu erzeugen, werden wir nun erstmal einen Link zu einem Verzeichnis auf der Festplatte oder dem USB-Stick erstellen. Dazu öffnet man die Datei <code>/ffp/etc/fun_plug.init</code> und fügt am Ende folgendes ein:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># create custom link to the server-folder</span>
</span></span><span class="line"><span class="cl">ln -s /ffp/opt/srv/ /srv
</span></span></code></pre></td></tr></table>
</div>
</div><p>Den letzten Befehl führen wir nun auch gleich auf der Konsole aus, damit der Link erstellt wird. Zunächst erstellen wir jedoch das Verlinkte Verzeichnis:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /ffp/opt/srv/
</span></span><span class="line"><span class="cl">ln -s /ffp/opt/srv/ /srv
</span></span></code></pre></td></tr></table>
</div>
</div><p>Der Webserver lighttpd muss noch konfiguriert werden, einige Configuration-Files werden bereits mitgeliefert. Für das D-Link DNS-320/DNS-325 gibt es ein besonderes File, bitte das folgende in diesem Falle überspringen und beim nächsten Schritt weitermachen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/lighttpd.conf-with-php /ffp/etc/lighttpd.conf
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wie bereits angesprochen braucht das DNS-320/DNS-325 ein besonderes Config-File, da bei diesem NAS der interne Webserver ebenfalls lighttpd ist. Damit sich diese nicht in die Quere kommen muss man den internen stoppen und kann dann den FFP-lighttpd starten. Das folgende Configfile macht dann die Weboberfläche des NAS auf Port 81 verfügbar, sodass man darauf weiterhin arbeiten kann:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/lighttpd.conf-dns320 /ffp/etc/lighttpd.conf
</span></span></code></pre></td></tr></table>
</div>
</div><p>Damit php auch weiß, was erlaubt oder verboten ist, muss eine php.ini im Verzeichnis /ffp/etc/ liegen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/php.ini-wolfuli /ffp/etc/php.ini
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und die my.cnf von MySQL darf natürlich nicht fehlen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/mysql/my-small.cnf /ffp/etc/my.cnf
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun befinden sich die drei wichtigen Dateien php.ini (Konfiguration von PHP), lighttpd.conf (Konfiguration für den Webserver) sowie my.cnf (Konfiguration des MySQL-Servers) im Verzeichnis <code>/ffp/etc/</code>. Prinzipiell sollten alle Configs mal durchgesehen werden, ob die Werte so okay sind.</p>
<p>Der Webroot des Webservers ist direkt auf <code>/srv/www/</code> gelegt, dort muss man nun die entsprechenden Verzeichnisse erstellen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /srv/tmp/mysql/
</span></span><span class="line"><span class="cl">mkdir -p /srv/www/logs/
</span></span><span class="line"><span class="cl">mkdir -p /srv/www/pages/
</span></span><span class="line"><span class="cl">mkdir -p /srv/mysql/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Die MySQL-Datenbank muss noch initialisiert werden mittels der folgenden Befehle:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mysql_install_db
</span></span><span class="line"><span class="cl">sh /ffp/start/mysqld.sh start
</span></span><span class="line"><span class="cl">/ffp/bin/mysql_secure_installation
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dort wird nun nach dem Passwort gefragt: &ldquo;<code>Enter current password for root (enter for none):</code>&rdquo; Bei einer neuen Installation ist dieses einfach leer!</p>
<p>Nun kann man den Webserver mal starten, der folgende Befehl ist jedoch nur für alle NAS ausser dem DNS-320/DNS-325 gültig:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sh /ffp/start/lighttpd.sh start
</span></span></code></pre></td></tr></table>
</div>
</div><p>Für das DNS-320/DNS-325 muss der interne Webserver erst abgeschalten werden, was die Datei &ldquo;kickwebs_dns320.sh&rdquo; macht:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sh /ffp/start/kickwebs_dns320.sh start
</span></span><span class="line"><span class="cl">sh /ffp/start/lighttpd.sh start
</span></span></code></pre></td></tr></table>
</div>
</div><p>Sollte alles glatt gehen, so kann man die Pakete im fun_plug dauerhaft aktivieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod a+x /ffp/start/lighttpd.sh
</span></span><span class="line"><span class="cl">chmod a+x /ffp/start/mysqld.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Hat man das DNS-320/DNS-325 so ist zusätzlich dieser Befehl auszuführen:
chmod a+x /ffp/start/kickwebs_dns320.sh</p>
<p>Kleiner Hinweis am Rand für alle NAS <strong>ausser dem DNS-320</strong>: Der Webserver startet bis jetzt auf Port 8080. Möchte man diesen auf Port 80 (also den regulären HTTP-Port) legen, so muss man folgende Befehle ausführen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sed -i <span class="s1">&#39;/server.port/ s/^/#/&#39;</span> /ffp/etc/lighttpd.conf
</span></span><span class="line"><span class="cl">chmod a+x /ffp/start/kickwebs.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dies bewirkt, dass der interne Webserver für die Weboberfläche gekillt wird, anschließend startet lighttpd und legt sich auf Port 80. Der interne Webserver ist ein paar Minuten später dann auf Port 81 wieder verfügbar.</p>
<p>Standardmäßig sind in meiner PHP.ini derzeit die untenstehenden Extensions aktiviert. Danke an <a href="/1640/phpmyadmin-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/#comment-11500#comment-11500"
    title="Peter" 
   >
  Peter</a> für den Hinweis!</p>
<p>Einzelne Extensions kann man problemlos auch deaktivieren oder eventuell auch neue hinzufügen (bitte per Kommentar melden, wenn eine fehlt!). Welche momentan überhaupt verfügbar sind, bekommt man mittels &ldquo;<code>ls -al /ffp/lib/php/extensions/no-debug-non-zts-20060613/</code>&rdquo; heraus. Dann sucht man den Punkt &ldquo;Dynamic Extensions&rdquo; in der /ffp/etc/php.ini und kommentiert dort die Extensions ein oder aus. Beispielhaft hier mbstring aktiviert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">extension</span><span class="o">=</span>mbstring.so
</span></span></code></pre></td></tr></table>
</div>
</div><p>Momentan sind folgende verfügbar und aktiviert:</p>
<blockquote>
<p><code>calendar ctype ftp gd mbstring mysql pdo pdo_mysql pdo_sqlite sqlite tokenizer zlib</code></p>
</blockquote>
<h2 id="changelog-des-eintrags">Changelog des Eintrags</h2>
<h3 id="09102008---0130">09.10.2008 - 01:30</h3>
<ul>
<li>Update: Umstieg auf fonz&rsquo; Pakete.</li>
<li>Umstellung des Webroots auf /srv/</li>
<li>Cleanup der php.ini</li>
<li>Anpassung aller Pfade</li>
</ul>
<h3 id="07012011---0040">07.01.2011 - 00:40</h3>
<ul>
<li>Update: Umstieg auf meine Pakete.</li>
<li>Anpassungen für DNS-320</li>
<li>Cleanup mit direkter Paketierung meiner php.ini</li>
</ul>
<h3 id="16022011---0040">16.02.2011 - 00:40</h3>
<ul>
<li>Anpassungen für DNS-325</li>
<li>Änderung des Pfads auf /ffp/opt/srv/ um Festplattenpfad-Konflikte zu vermeiden</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Update des Twonkymedia Server 7 auf den NAS-Geräten von Conceptronic und D-Link</title>
      
      
      <link>https://wolf-u.li/update-des-twonkymedia-server-7-auf-den-nas-geraeten-von-conceptronic-und-d-link/</link>
      <pubDate>Sun, 22 Jul 2012 12:43:55 +2200</pubDate>
      <guid>https://wolf-u.li/update-des-twonkymedia-server-7-auf-den-nas-geraeten-von-conceptronic-und-d-link/</guid>
      <description>&lt;p&gt;Diese Anleitung setzt ein &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;installiertes fun_plug&#34; 
   &gt;
  installiertes fun_plug&lt;/a&gt; voraus!
Bitte beachte, dass ich nur noch Good-Will Support für ffp-support leiste, da ich kein Gerät mehr in Betrieb habe&lt;/p&gt;
&lt;p&gt;Seit einiger Zeit ist eine neue Version für den &lt;a href=&#34;https://wolf-u.li/4575/installation-des-twonkymedia-server-7/&#34;
    title=&#34;Twonkymedia Server&#34; 
   &gt;
  Twonkymedia Server&lt;/a&gt; auf der Bildfläche und oft wurde ich gefragt, wie man diese über eine bestehende Installation mit einer früheren Version drüber installiert ohne die bestehende Konfiguration zu verlieren. Einfach getan, wie dieser Beitrag zeigt. Willst du Twonky nur installieren und nicht updaten, so folge &lt;a href=&#34;https://wolf-u.li/4575/installation-des-twonkymedia-server-7/&#34;
    title=&#34;diesem Beitrag&#34; 
   &gt;
  diesem Beitrag&lt;/a&gt;.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Diese Anleitung setzt ein <a href="/nas/tutorials/ffp/"
    title="installiertes fun_plug" 
   >
  installiertes fun_plug</a> voraus!
Bitte beachte, dass ich nur noch Good-Will Support für ffp-support leiste, da ich kein Gerät mehr in Betrieb habe</p>
<p>Seit einiger Zeit ist eine neue Version für den <a href="/4575/installation-des-twonkymedia-server-7/"
    title="Twonkymedia Server" 
   >
  Twonkymedia Server</a> auf der Bildfläche und oft wurde ich gefragt, wie man diese über eine bestehende Installation mit einer früheren Version drüber installiert ohne die bestehende Konfiguration zu verlieren. Einfach getan, wie dieser Beitrag zeigt. Willst du Twonky nur installieren und nicht updaten, so folge <a href="/4575/installation-des-twonkymedia-server-7/"
    title="diesem Beitrag" 
   >
  diesem Beitrag</a>.</p>
<p>Alle nutzerspezifischen Dateien sind im Ordner <code>/ffp/opt/twonky/data/</code> abgelegt, sodass wir nur diesen sichern müssen. Zunächst muss aber Twonky gestoppt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sh /ffp/start/twonky.sh stop
</span></span></code></pre></td></tr></table>
</div>
</div><p>Jetzt werden die Daten gesichert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /ffp/opt/twonky/
</span></span><span class="line"><span class="cl">mv data /ffp/tmp/twonkydata
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun ist der Ordner in /ffp/tmp gesichert.</p>
<p>Das Update ist nun eine einfache Installation, sodass wir den Ordner twonky erstmal leeren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">rm -R /ffp/opt/twonky/*
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und los gehts. Zum Zeitpunkt der Anleitung ist 7.2.8 aktuell, bitte prüfe <link rel=dns-prefetch href=//www.twonkyforum.com /> <a href="http://www.twonkyforum.com/viewtopic.php?f=2&amp;t=7653"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> unter &ldquo;NAS &amp; Beta Versions (Limited Support)&rdquo;, ob das immer noch der Fall ist. Wenn die Seite wie aktuell (14-Jan-2015) mal wieder nur Mist anzeigt, dann sieh <link rel=dns-prefetch href=//funplug.wolf-u.li /> <a href="http://funplug.wolf-u.li/twonkymedia/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> mal nach der neuesten Version. Wenn du den Eindruck hast, dass es neuere Versionen gibt, dann wähle den Download für das dein Gerät aus und ersetze die URL durch die untenstehende. Ich gebe hier als Beispiel die der Kurobox an, <a href="/4575/installation-des-twonkymedia-server-7/"
    title="hier" 
   >
  hier</a> kannst du nachsehen, welche Version du brauchst:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /ffp/opt/twonky
</span></span><span class="line"><span class="cl">wget http://funplug.wolf-u.li/twonkymedia/7.2.8/twonky-kurobox-pro-7.2.8.zip
</span></span><span class="line"><span class="cl">unzip twonky-*.zip
</span></span><span class="line"><span class="cl">rm twonky-*.zip
</span></span><span class="line"><span class="cl">chmod +x twonkyserver twonkystarter twonkyproxy twonkywebdav plugins/* cgi-bin/*
</span></span><span class="line"><span class="cl">wget http://wolf-u.li/u/449 -O /ffp/start/twonky.sh
</span></span><span class="line"><span class="cl">wget http://wolf-u.li/u/448 -O /ffp/opt/twonky/twonkyserver-default.ini
</span></span><span class="line"><span class="cl"><span class="o">[[</span> <span class="k">$(</span>ls -1 /mnt<span class="p">|</span>grep -c HD_a2<span class="k">)</span> -eq <span class="m">0</span> <span class="o">]]</span> <span class="o">&amp;&amp;</span> sed -i -e <span class="s1">&#39;s!/HD_a2!/HD/HD_a2!g&#39;</span> -e <span class="s1">&#39;s!/HD_b2!/HD/HD_b2!g&#39;</span> /ffp/opt/twonky/twonkyserver-default.ini
</span></span></code></pre></td></tr></table>
</div>
</div><p>Sollte twonkyforum.com nicht erreichbar sein, so gibt es <link rel=dns-prefetch href=//funplug.wolf-u.li /> <a href="http://funplug.wolf-u.li/twonkymedia/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> einen Mirror mit einigen Downloads.</p>
<p>Nun muss das Datenverzeichnis wieder zurückkopiert werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /ffp/opt/twonky/
</span></span><span class="line"><span class="cl">mv /ffp/tmp/twonkydata data
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dann teste ob alles funktioniert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sh /ffp/start/twonky.sh start
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Fun_plug 0.5 auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323 auf der Festplatte installieren</title>
      
      
      <link>https://wolf-u.li/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/</link>
      <pubDate>Sat, 05 Jul 2008 18:11:30 +0500</pubDate>
      <guid>https://wolf-u.li/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; nach den aktuellen Tutorials!&lt;/strong&gt;
Diese Anleitung wurde auf den folgenden NAS getestet: Conceptronic CH3SNAS, D-Link DNS-323, D-Link DNS-313
Tutorials zu anderen Geräten sind &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/0-5-installation/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; zu finden.
Auf dem Conceptronic CH3SNAS läuft ein kleines Linux, welches sich mittels einer Datei namens fun_plug erweitern lässt. Diese Datei wird bei jeden Start des NAS wieder aufgerufen und kann so zusätzliche Aufgaben erfüllen. Beispielsweise kann man so Dateien kopieren und Programme wie Webserver, SSH-Server und Rsync (für Backups) aufrufen.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><strong>Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong>
Diese Anleitung wurde auf den folgenden NAS getestet: Conceptronic CH3SNAS, D-Link DNS-323, D-Link DNS-313
Tutorials zu anderen Geräten sind <a href="/nas/tutorials/ffp/0-5-installation/"
    title="hier" 
   >
  hier</a> zu finden.
Auf dem Conceptronic CH3SNAS läuft ein kleines Linux, welches sich mittels einer Datei namens fun_plug erweitern lässt. Diese Datei wird bei jeden Start des NAS wieder aufgerufen und kann so zusätzliche Aufgaben erfüllen. Beispielsweise kann man so Dateien kopieren und Programme wie Webserver, SSH-Server und Rsync (für Backups) aufrufen.</p>
<p>&ldquo;fonz&rdquo;, ein findiger Entwickler aus Berlin hat nun das fun_plug der Version 0.5 im <link rel=dns-prefetch href=//forum.dsmg600.info /> <a href="http://forum.dsmg600.info/f3-DNS323-General-Discussion.html"
    title="DNS-323-Forum" 
     target="_blank" rel="nofollow noopener noreferrer" >
  DNS-323-Forum&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> veröffentlicht.</p>
<p><strong>Ich stelle nachfolgend meine persönlichen Erfahrungen beim Einsatz dieses fun_plugs sowie eine eingedeutsche Installationsanweisung bereit. Zudem weise ich darauf hin, dass ich nicht für eventuelle Schäden, Datenverluste oder andere Probleme haften werde. Das Verwenden dieses Artikels geschieht auf eigene Gefahr!</strong>
Zunächst muss sichergestellt sein, dass das NAS über eine gültige Netzwerkkonfiguration (&quot;<em>Setup</em>&quot; -&gt; &ldquo;<em>LAN</em>&rdquo;) mit Gateway &amp; DNS-Server verfügt. Wird die IP-Adresse automatisch bezogen, ist das im Regelfall korrekt eingestellt.
Nun muss man das fun_plug heruntergeladen wurden. Dieses ist über das <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.5/"
    title="Repository" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Repository&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> zu beziehen. Für die Installation werden zwei Dateien benötigt: <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.5/fun_plug"
    title="fun_plug" 
     target="_blank" rel="nofollow noopener noreferrer" >
  fun_plug&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.5/fun_plug.tgz"
    title="fun_plug.tgz" 
     target="_blank" rel="nofollow noopener noreferrer" >
  fun_plug.tgz&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>.
Ich raten zum Lesen der <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.5/README.txt"
    title="README" 
     target="_blank" rel="nofollow noopener noreferrer" >
  README&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> mit einer ausführlichen Installationsanweisung.</p>
<p>Los gehts mit dem kopieren der beiden Dateien <em>fun_plug</em> und <em>fun_plug.tgz</em> auf das Volume_1 des NAS.</p>
<p><img src="/upload/2008/07/1426-login-as-root.webp" alt="Login as Root" loading="lazy" title="1426-login-as-root"></p>
<p>Nach dem Reboot ist automatisch telnet aktiviert. Zunächst sollte man sich nun mit einem geeigneten Telnet-Programm (unter Linux einfach nur &ldquo;ssh&rdquo; mit korrektem Port, unter Windows verwende ich <link rel=dns-prefetch href=//www.chiark.greenend.org.uk /> <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"
    title="Putty" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Putty&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> mit der Protokolleinstellung &ldquo;telnet&rdquo;) auf dem NAS einloggen. Bitte für den folgenden Schritt einfach mal das Bild links ansehen.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">/ #
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn das obige erscheint, ist man eingeloggt und kann fortfahren.</p>
<p>Als eine der ersten Aktionen wird nun /etc/shadow mittels pwconv erstellt. Das Passwort wird anschließend mittels &ldquo;passwd&rdquo; geändert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pwconv
</span></span><span class="line"><span class="cl">passwd
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn das neue Passwort zweimal eingegeben wurde, muss man den root-User noch aktivieren und dessen Home-Verzeichnis umlegen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">usermod -s /ffp/bin/sh root
</span></span><span class="line"><span class="cl">mkdir -p /ffp/home/root/
</span></span><span class="line"><span class="cl">usermod -d /ffp/home/root/ root
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun kann man den Login nun direkt testen. Hierzu gibt man im Anschluss:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">login
</span></span></code></pre></td></tr></table>
</div>
</div><p>ein. Wenns nicht klappt, einfach die Prozedur ab &ldquo;passwd&rdquo; wiederholen.</p>
<p>Wenn alles geklappt hat, dann muss das Passwort in den internen Flash-Speicher gespeichert werden.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">store-passwd.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun wird der SSH-Server aktiviert, da telnet bereits als sehr unsicher (v.a. aufgrund des unverschlüsselten Verkehrs) bekannt ist:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod a+x /ffp/start/sshd.sh
</span></span><span class="line"><span class="cl">sh /ffp/start/sshd.sh start
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>Nun den Telnet-Client nicht schließen!</strong> Öffne gleichzeitig einen SSH-Client und versuche eine Verbindung zum NAS. Diese wird erfolgreich sein.</p>
<p>Nun kann der Telnet-Server deaktiviert werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod -x /ffp/start/telnetd.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Auf der Festplatte (Bei mir unter &ldquo;<code>/mnt/HD_a2/</code>&rdquo;) ist ein Verzeichnis namens &ldquo;ffp&rdquo; angelegt worden. Darin befindet sich ein Unterverzeichnis &ldquo;start&rdquo;, in dem verschiedene Startdateien für diverse Dienste liegen. Typischerweise weisen davon nur wenige das Attribut <em>X</em>, also <em>Executable</em>. Nur diese werden auch beim Start des fun_plug ausgeführt. Ein paar Zeilen weiter oben habe ich &ldquo;<code>chmod +x sshd.sh</code>&rdquo; angeordnet. Diese Anweisung markiert eine Datei als ausführbar. Alle Dateien im <em>Start</em>-Ordner, die als executable markiert sind, werden vom fun_plug aufgerufen.</p>
<p>Weitere Software kann man nun einfach installieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /ffp/pkg/
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /ffp/pkg/
</span></span><span class="line"><span class="cl">wget http://wolf-u.li/u/173/ -O /ffp/pkg/updater.sh
</span></span><span class="line"><span class="cl">chmod a+x /ffp/pkg/updater.sh
</span></span><span class="line"><span class="cl">sh /ffp/pkg/updater.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Mit diesen Befehlen habe ich einen Ordner namens &ldquo;<em>pkg</em>&rdquo; im Ordner &ldquo;<em>ffp</em>&rdquo; erstellt. Zusätzlich wurde nun der Ordner &ldquo;<em>packages</em>&rdquo; angelegt, der alle kompilierten Pakete von fonz enthält.</p>
<p>Nun kann man Pakete installieren. Entweder man installiert nun einzelne Pakete (Achtung abhängigkeiten beachten!):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">funpkg -i paketname.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Oder einfach alle installieren, damit sind dann alle Abhängigkeiten gelöst (Empfohlen!):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /mnt/HD_a2/ffp/pkg/packages/
</span></span><span class="line"><span class="cl">funpkg -i *.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Ein Wort noch zur Paketverwaltung, das Programm funpkg bedient man wie folgt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">Copyright <span class="o">(</span>c<span class="o">)</span> <span class="m">2008</span> Tobias Poschwatta
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Install: funpkg -i
</span></span><span class="line"><span class="cl">Reinstall: funpkg -I
</span></span><span class="line"><span class="cl">Upgrade: funpkg -u
</span></span><span class="line"><span class="cl">Remove: funpkg -r
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Other options:
</span></span><span class="line"><span class="cl"> -D  System root directory <span class="o">(</span>default: /<span class="o">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Bei Fragen einfach melden.</p>
]]></content:encoded>
    </item>
    <item>
      <title>NTP-Zeitabgleich mit dem fun_plug 0.5 auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323</title>
      
      
      <link>https://wolf-u.li/ntp-zeitabgleich-mit-dem-fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</link>
      <pubDate>Sun, 06 Jul 2008 15:26:37 +0600</pubDate>
      <guid>https://wolf-u.li/ntp-zeitabgleich-mit-dem-fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; nach den aktuellen Tutorials!&lt;/strong&gt;
Das neue fun_plug 0.5 von fonz bringt viele Neuerungen, unter anderem auch eine neue Zeitsyncronisierung. Das alte Tutorial würde zwar weiter funktionieren, jedoch geht es nun deutlich leichter.&lt;/p&gt;
&lt;p&gt;Zunächst muss das &lt;a href=&#34;https://wolf-u.li/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/&#34;
    title=&#34;fun_plug 0.5 installiert werden&#34; 
   &gt;
  fun_plug 0.5 installiert werden&lt;/a&gt;. Nun loggt man sich auf den NAS ein und aktiviert den automatischen Zeitabgleich für die deutsche Zeitzone indem man zunächst die Datei fun_plug.local kopiert und die folgenden Zeilen dann einfügt:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><strong>Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong>
Das neue fun_plug 0.5 von fonz bringt viele Neuerungen, unter anderem auch eine neue Zeitsyncronisierung. Das alte Tutorial würde zwar weiter funktionieren, jedoch geht es nun deutlich leichter.</p>
<p>Zunächst muss das <a href="/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="fun_plug 0.5 installiert werden" 
   >
  fun_plug 0.5 installiert werden</a>. Nun loggt man sich auf den NAS ein und aktiviert den automatischen Zeitabgleich für die deutsche Zeitzone indem man zunächst die Datei fun_plug.local kopiert und die folgenden Zeilen dann einfügt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/fun_plug.local /ffp/etc/fun_plug.local
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend muss man (beispielsweise mit dem Editor &ldquo;<a href="/1665/editor-nano-fuer-das-fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="nano" 
   >
  nano</a>&rdquo;) die benötigten Eintragungen machen. Evtl sind die ersten Zeilen auch schon bereits vorhanden.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># This removes firmware cronjobs that interfere with ntpd.</span>
</span></span><span class="line"><span class="cl">crontab -l <span class="p">|</span> grep -vw <span class="s1">&#39;/usr/sbin/daylight&#39;</span> <span class="p">|</span> grep -vw <span class="s1">&#39;stime&#39;</span> <span class="p">|</span> grep -vw <span class="s1">&#39;/usr/sbin/rtc&#39;</span> <span class="p">|</span> crontab -
</span></span><span class="line"><span class="cl"><span class="c1">#Now start the ntp every hour</span>
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;1 * * * * /usr/sbin/sntp -r -P no de.pool.ntp.org&#34;</span> &gt;&gt; /var/spool/cron/crontabs/root
</span></span><span class="line"><span class="cl"><span class="c1"># force a cronjob update</span>
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;root&#34;</span> &gt;&gt; /var/spool/cron/crontabs/cron.update
</span></span></code></pre></td></tr></table>
</div>
</div><p><em>Hinweis: Mit einem Klick auf &ldquo;Plain Text&rdquo; lässt sichs besser kopieren.</em></p>
<p>Um die Zeitzone zu ändern muss man in der <code>/ffp/etc/fun_plug.local</code> den richtigen String eintragen, momentan ist dort &ldquo;<code>CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00</code>&rdquo; unter <em>timezone</em> eingetragen. Alle String sind <link rel=dns-prefetch href=//nas-tweaks.net /> <a href="https://nas-tweaks.net/77/fixing-the-ntp-time-synchronization-with-fonz-funplug-0-5-for-ch3snas-ch3mnas-dns-323-and-many-more/#Appendix:_Example_Timezone_Strings#Appendix:_Example_Timezone_Strings"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> einzusehen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>ProFTPd (mit SSL/TLS) auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323</title>
      
      
      <link>https://wolf-u.li/proftpd-mit-ssltls-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</link>
      <pubDate>Thu, 25 Dec 2008 22:43:27 +2500</pubDate>
      <guid>https://wolf-u.li/proftpd-mit-ssltls-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</guid>
      <description>&lt;p&gt;Ich bin gebeten worden, doch bitte ein Tutorial bezüglich eines Ersatz-FTP-Servers mit SSL-Verschlüsselung zu verfassen. Diesem Wunsch komme ich gerne nach und zeige nun im folgenden, wie man ProFTPd einrichtet. Trotzdessen würde ich gerne drauf hinweisen, dass die internen FTP-Server des CH3SNAS und DNS-323 bereits AUTH TLS (FTPES) zur Verschlüsselung des Loginvorgangs unterstützen! Jedoch ist während dem Transfer im Datenstrom KEINE Verschlüsselung an, nur der Kontrollkanal wird verschlüsselt!
Ein Wort der Warnung noch: Leider bietet die CPU des NAS in Verbindung mit ProFTPd nur eine Geschwindigkeit von etwa 1,5MB/s.
&lt;strong&gt;fun_plug 0.5 ist veraltet und sollte nicht mehr genutzt werden! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; nach den aktuellen Tutorials!&lt;/strong&gt;&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Ich bin gebeten worden, doch bitte ein Tutorial bezüglich eines Ersatz-FTP-Servers mit SSL-Verschlüsselung zu verfassen. Diesem Wunsch komme ich gerne nach und zeige nun im folgenden, wie man ProFTPd einrichtet. Trotzdessen würde ich gerne drauf hinweisen, dass die internen FTP-Server des CH3SNAS und DNS-323 bereits AUTH TLS (FTPES) zur Verschlüsselung des Loginvorgangs unterstützen! Jedoch ist während dem Transfer im Datenstrom KEINE Verschlüsselung an, nur der Kontrollkanal wird verschlüsselt!
Ein Wort der Warnung noch: Leider bietet die CPU des NAS in Verbindung mit ProFTPd nur eine Geschwindigkeit von etwa 1,5MB/s.
<strong>fun_plug 0.5 ist veraltet und sollte nicht mehr genutzt werden! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong></p>
<p>Das Tutorial setzt voraus, dass <a href="/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="fun_plug" 
   >
  fun_plug</a> installiert wurde und mein Repository entsprechend der <a href="/2146/ulis-paket-repository-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Anweisungen" 
   >
  Anweisungen</a> synchronisiert und aktualisiert wurde.
Die Installation gestaltet sich dann extrem einfach:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">funpkg -i /ffp/pkg/additional/net-ftp/proftpd-*.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Die Datei <code>/ffp/etc/proftpd.conf</code> muss noch erstellt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/proftpd.conf /ffp/etc/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Jetzt müssen wir noch eine zusätzliche Gruppe erstellen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">groupadd nogroup
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wir brauchen jetzt noch das SSL-Zertifikat:</p>
<blockquote>
<p><code>openssl req -new -x509 -days 365 -nodes -out /ffp/etc/proftpd/proftpd.cert.pem -keyout /ffp/etc/proftpd/proftpd.key.pem</code></p>
</blockquote>
<p>Anschließend werden verschiedene Fragen bezüglich des Zertifikats gestellt. Die fettgeschriebenen Antworten sind Beispiele von mir. FQDN steht dabei für den hostnamen des NAS, die Fragen ohne Antworten können auch leer gelassen.</p>
<blockquote>
<p>Country Name (2 letter code) [AU]: <strong>DE</strong>
State or Province Name (full name) [Some-State]: <strong>Germany</strong>
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <strong>Name der Organisation</strong>
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []: <strong>FQDN</strong>
Email Address []:</p>
</blockquote>
<p>Um nun SSL/TLS zu aktivieren, müssen die Kommentare von den folgenden Zeilen in der Datei <code>/ffp/etc/proftpd.conf</code> entfernt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">TLSEngine on
</span></span><span class="line"><span class="cl">TLSProtocol SSLv23
</span></span><span class="line"><span class="cl">TLSOptions NoCertRequest
</span></span><span class="line"><span class="cl">TLSRSACertificateFile /ffp/etc/proftpd/proftpd.cert.pem
</span></span><span class="line"><span class="cl">TLSRSACertificateKeyFile /ffp/etc/proftpd/proftpd.key.pem
</span></span><span class="line"><span class="cl">TLSVerifyClient off
</span></span><span class="line"><span class="cl">TLSRequired off
</span></span></code></pre></td></tr></table>
</div>
</div><p>Möchte man ausschließlich TLS verwenden, so muss in der letzten Zeile am Ende statt <strong>off</strong> auf <strong>on</strong> geändert werden.</p>
<p>Wie immer kann der FTP-Server nun so gestartet werden:</p>
<blockquote>
<p><code>sh /ffp/start/proftpd.sh start</code></p>
</blockquote>
<p>Die dauerhafte Aktivierung ist natürlich auch möglich:</p>
<blockquote>
<p><code>chmod a+x /ffp/start/proftpd.sh</code></p>
</blockquote>
<p>Übrigens: ProFTPd greift auf die gleichen Einstellungen wie der interne FTP-Server zu. Diesen kann man dann abschalten.</p>
<p>Das wars ;)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Zusätzlicher Storage für das Conceptronic CH3SNAS / D-Link DNS-323 über einen USB-Stick</title>
      
      
      <link>https://wolf-u.li/zusaetzlicher-storage-fuer-das-conceptronic-ch3snas-d-link-dns-323-ueber-einen-usb-stick/</link>
      <pubDate>Sun, 06 Apr 2008 15:16:26 +0600</pubDate>
      <guid>https://wolf-u.li/zusaetzlicher-storage-fuer-das-conceptronic-ch3snas-d-link-dns-323-ueber-einen-usb-stick/</guid>
      <description>&lt;p&gt;Diese Anleitung bezieht sich auf &lt;a href=&#34;https://wolf-u.li/tag/fun_plug/&#34;
    title=&#34;fun_plug&#34; 
   &gt;
  fun_plug&lt;/a&gt;&amp;rsquo;s der Versionen 0.3 und 0.4&lt;/p&gt;
&lt;p&gt;Vor einiger Zeit habe ich bereits über die Möglichkeit, über ein so genanntes &amp;ldquo;&lt;a href=&#34;https://wolf-u.li/759/fun_plug-fuer-das-conceptronic-ch3snas/&#34;
    title=&#34;fun_plug&#34; 
   &gt;
  fun_plug&lt;/a&gt;&amp;rdquo; das &lt;a href=&#34;https://wolf-u.li/758/conceptronic-ch3snas/&#34;
    title=&#34;Conceptronic CH3SNAS&#34; 
   &gt;
  Conceptronic CH3SNAS&lt;/a&gt; (Baugleich mit dem D-Link DNS-323) zu erweitern, berichtet. Damals hatte ich einen &lt;a href=&#34;https://wolf-u.li/760/webserver-lighttpd-mit-php52-auf-dem-conceptronic-ch3snas-installieren/&#34;
    title=&#34;Webserver&#34; 
   &gt;
  Webserver&lt;/a&gt; über diese Möglichkeit hinzugefügt. Leider muss jedes Mal meine Festplatte anlaufen, wenn eigentlich nur eine Seite angefordert wird und ich nur schnell was ansehen möchte. Resultat ist eine schneller verschleißende Festplatte und eine lange Responsezeit (eben bis die Festplatte angelaufen ist). Ein anderes Problem ist der Lüfter, dessen Script gerne irgendwohin loggen würde. Leider gehen aber die Festplatten nicht aus, wenn der Lüfter läuft (von daher gibts dann wieder nicht viel zu protokollieren :P).
Ein Abhilfe für diese Probleme bietet das NAS jedoch von Haus aus. Dank eines USB-Ports auf der Rückseite, der eigentlich für einen Drucker gedacht ist, ist es leicht mit einem USB-Speicher erweiterbar. Natürlich liefert Conceptronic diese Möglichkeit nicht mit, jedoch dank des fun_plug ist auch dieses Problem leicht zu beheben.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Diese Anleitung bezieht sich auf <a href="/tag/fun_plug/"
    title="fun_plug" 
   >
  fun_plug</a>&rsquo;s der Versionen 0.3 und 0.4</p>
<p>Vor einiger Zeit habe ich bereits über die Möglichkeit, über ein so genanntes &ldquo;<a href="/759/fun_plug-fuer-das-conceptronic-ch3snas/"
    title="fun_plug" 
   >
  fun_plug</a>&rdquo; das <a href="/758/conceptronic-ch3snas/"
    title="Conceptronic CH3SNAS" 
   >
  Conceptronic CH3SNAS</a> (Baugleich mit dem D-Link DNS-323) zu erweitern, berichtet. Damals hatte ich einen <a href="/760/webserver-lighttpd-mit-php52-auf-dem-conceptronic-ch3snas-installieren/"
    title="Webserver" 
   >
  Webserver</a> über diese Möglichkeit hinzugefügt. Leider muss jedes Mal meine Festplatte anlaufen, wenn eigentlich nur eine Seite angefordert wird und ich nur schnell was ansehen möchte. Resultat ist eine schneller verschleißende Festplatte und eine lange Responsezeit (eben bis die Festplatte angelaufen ist). Ein anderes Problem ist der Lüfter, dessen Script gerne irgendwohin loggen würde. Leider gehen aber die Festplatten nicht aus, wenn der Lüfter läuft (von daher gibts dann wieder nicht viel zu protokollieren :P).
Ein Abhilfe für diese Probleme bietet das NAS jedoch von Haus aus. Dank eines USB-Ports auf der Rückseite, der eigentlich für einen Drucker gedacht ist, ist es leicht mit einem USB-Speicher erweiterbar. Natürlich liefert Conceptronic diese Möglichkeit nicht mit, jedoch dank des fun_plug ist auch dieses Problem leicht zu beheben.</p>
<p>Nach der erfolgreichen Installation des fun_plug benötigt man Konsolenzugang zum CH3SNAS um die folgenden Schritte ausführen zu können. Der USB-Stick muss noch nicht eingesteckt werden. Ich rate zu einer Formatierung mit ext2 (dieser Schritt wird später direkt auf dem NAS gemacht), jedoch kann der Stick auch bei FAT(32) betrieben werden. Dabei ist dann jedoch die Rechtevergabe eingeschränkt.</p>
<p>Zunächst wird ein Kernel-Modul für USB-Speicher benötigt. Dieses kann man <a href="/u/165"
    title="hier" 
   >
  hier</a> herunterladen. Anschließend wird es in das Hauptverzeichnis der ersten Festplatte gelegt (HD_a2) und nun entsprechend ins lib-Verzeichnis des fun_plug verschoben. Die Variablen werden durch das fun_plug gesetzt. Sollte das unten angegeben fehlschlagen, stimmt etwas mit dem fun_plug nicht:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir <span class="nv">$LIBDIR</span>/usbstorage
</span></span><span class="line"><span class="cl">mv /mnt/HD_a2/usb-storage.ko <span class="nv">$LIBDIR</span>/usbstorage/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Das Modul wird nun mittels</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">$SBINDIR</span>/insmod <span class="nv">$LIBDIR</span>/usbstorage/usb-storage.ko
</span></span></code></pre></td></tr></table>
</div>
</div><p>geladen.
Für ext2 sollte nun der USB-Stick erstmal formatiert werden. Ich gehe davon aus, dass 2 Festplatten verbaut wurden (daher sd<strong>c</strong> für den USB-Stick). <strong>ACHTUNG: Wird die falsche Festplatte formatiert, werden Ihre Daten verloren sein! Bitte daher doppelt prüfen!</strong> Wurde nur eine verbaut oder mehrere USB-Sticks (über einen Hub) angesteckt worden sein, so muss der Laufwerksbuchstabe entsprechend angepasst werden (Eine Festplatte - Erster USB-Stick: /dev/sdb):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">fdisk /dev/sdc
</span></span></code></pre></td></tr></table>
</div>
</div><p>Mit der Eingabe von &ldquo;p&rdquo; kann man sich alle Partitionen auf dem Stick anzeigen lassen. &ldquo;d&rdquo; löscht Partitionen und &ldquo;n&rdquo; legt neue an (Primary Partition in voller Größe: &ldquo;n&rdquo; =&gt; &ldquo;p&rdquo; =&gt; &ldquo;1&rdquo; und zweimal dann Enter)
Nun muss das Dateisystem erzeugt werden, hier ist der Buchstabe der gleiche wie oben, die Zahl ist die Nummer der Partition:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mke2fs /dev/sdc1
</span></span></code></pre></td></tr></table>
</div>
</div><p>Getestet werden kann das ganze nun mit einem Mount-Befehl:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir /mnt/HD_a2/usbstorage
</span></span><span class="line"><span class="cl">mount /dev/sdc1 /mnt/HD_a2/usbstorage
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wie prüft man nun, ob das einbinden geklappt hat? Es gibt hier zwei Wege, beide Befehle müssen jedoch in der Kommandozeile ausgeführt werden:</p>
<ul>
<li><code>cat /proc/partitions</code></li>
<li><code>mount</code></li>
</ul>
<p>Der obenstehende Vorgang kann natürlich automatisiert werden. Der folgende Dateiinhalt (<a href="/u/205"
    title="Download" 
   >
  Download</a>) muss als &ldquo;01usbstorage.sh&rdquo; ins &ldquo;start&rdquo;-Verzeichnis des fun_plugs:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="nv">$SBINDIR</span>/insmod <span class="nv">$LIBDIR</span>/usbstorage/usb-storage.ko
</span></span><span class="line"><span class="cl">sleep <span class="m">15</span>
</span></span><span class="line"><span class="cl">mount /dev/sdc1 /mnt/HD_a2/usbstorage
</span></span></code></pre></td></tr></table>
</div>
</div><p>Da dort keine Schreibrechte bestehen, gilt hier der gleiche Vorgang wie oben:
Kopieren über den normalen Filemanagerzugriff (bei mir Samba) in das Hauptverzeichnis, anschließend per:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv /mnt/HD_a2/01usbstorage.sh <span class="nv">$FUNPLUGDIR</span>/start/
</span></span><span class="line"><span class="cl">chmod +x <span class="nv">$FUNPLUGDIR</span>/start/01usbstorage.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>verschoben und aktiviert.
Zum Test wird das NAS neu gestartet. Nach dem Neustart kann mit den obenstehenden Befehlen geprüft werden, ob der USB-Speicher ordnungsgemäß unter <code>/mnt/HD_a2/usbstorage</code> eingebunden ist.
Wenn ja, dann kann man nun den <link rel=dns-prefetch href=//trac.lighttpd.net /> <a href="http://trac.lighttpd.net/trac/wiki/server.document-rootDetails"
    title="Webserver-Root" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Webserver-Root&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> (Achtung, ich würde PHP mitverlagern) oder das Logverzeichnis der Lüftersteuerung auf den USB-stick auslagern.</p>
<p>Kleiner Hinweis: Wenn es nicht funktioniert, dann folgenden Befehl ausführen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sh <span class="nv">$FUNPLUGDIR</span>/start/01usbstorage.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Sollte hier die folgende Fehlermeldung erscheinen:</p>
<blockquote>
<p>`# sh $FUNPLUGDIR/start/01usbstorage.sh
&lsquo;: No such file or directorya2/fun_plug.d/usbstorage/usb-storage.ko
BusyBox v1.00-pre1 (2007.05.29-03:34+0000) multi-call binary</p>
<p>Usage: sleep N`</p>
</blockquote>
<p>dann wurde die Datei nicht im Unix-Format (also mit Unix-Zeilenumbrüchen) gespeichert. Abhilfe:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">dos2unix <span class="nv">$FUNPLUGDIR</span>/start/01usbstorage.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Der Erfolg des ganzen ist nun, dass die auf dem USB-Stick abgelegten Daten direkt von einem Flashspeicher gelesen werden und somit ein Einschalten der Festplatten aus deren Ruhemodus unnötig wird. So kann man Beispielsweise einen kleinen Webserver problemlos vom Stick laufen lassen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Backup2l für Sicherungen auf dem Conceptronic CH3SNAS bzw. DNS-323</title>
      
      
      <link>https://wolf-u.li/backup2l-fuer-sicherungen-auf-dem-conceptronic-ch3snas-bzw-dns-323/</link>
      <pubDate>Mon, 17 Aug 2009 21:47:10 +1700</pubDate>
      <guid>https://wolf-u.li/backup2l-fuer-sicherungen-auf-dem-conceptronic-ch3snas-bzw-dns-323/</guid>
      <description>&lt;p&gt;Diese Anleitung bezieht sich auf das &lt;a href=&#34;https://wolf-u.li/nas/&#34;
    title=&#34;fun_plug&#34; 
   &gt;
  fun_plug&lt;/a&gt; der Version 0.5.
In vielen Mails die ich erhalten habe, wird immer wieder nach einer Backuplösung für das CH3SNAS gefragt. Ich habe auf meinen Servern ein einfaches Skript am laufen, welches sich &lt;link rel=dns-prefetch href=//backup2l.sourceforge.net /&gt; &lt;a href=&#34;http://backup2l.sourceforge.net/&#34;
    title=&#34;Backup2l&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Backup2l&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; schimpft und sehr gut für Text-Dateien geeignet ist, da es hervorragende Komprimierungsmechanismen mitbringt.
Für Fonz Fun_plug 0.5 habe ich nun ein Paket geschnürt, welches eine schnelle und einfache Installation dieses Skriptes bietet.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Diese Anleitung bezieht sich auf das <a href="/nas/"
    title="fun_plug" 
   >
  fun_plug</a> der Version 0.5.
In vielen Mails die ich erhalten habe, wird immer wieder nach einer Backuplösung für das CH3SNAS gefragt. Ich habe auf meinen Servern ein einfaches Skript am laufen, welches sich <link rel=dns-prefetch href=//backup2l.sourceforge.net /> <a href="http://backup2l.sourceforge.net/"
    title="Backup2l" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Backup2l&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> schimpft und sehr gut für Text-Dateien geeignet ist, da es hervorragende Komprimierungsmechanismen mitbringt.
Für Fonz Fun_plug 0.5 habe ich nun ein Paket geschnürt, welches eine schnelle und einfache Installation dieses Skriptes bietet.</p>
<p>Die Abhängigkeiten des Skripts sind vor allem &ldquo;date find grep gzip gunzip sed awk mount umount&rdquo;, welche über die Pakete coreutils, gawk, grep, gzip und sed aus Fonz&rsquo; Repository abgedeckt sein sollten. Stelle also sicher, dass diese installiert sind! Wichtig sind vor allem die coreutils, stelle sicher, dass diese korrekt installiert sind! Dies findet man wie folgt heraus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">du --version
</span></span></code></pre></td></tr></table>
</div>
</div><p>Hier muss in der ersten Zeile:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">du (GNU coreutils)
</span></span></code></pre></td></tr></table>
</div>
</div><p>zu finden sein. Steht dort was von &ldquo;busybox&rdquo;, so musst du das Paket coreutils (neu) installieren!</p>
<p>Nun zur Installation von backup2l.Mein <a href="/2146/ulis-paket-repository-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Repository" 
   >
  Repository</a> muss zunächst gesynct werden, damit das Paket heruntergeladen wird. Nun wie gewohnt installieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">funpkg -i /ffp/pkg/additional/app-backup/backup2l-*.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Jetzt muss man die <code>/ffp/etc/backup2l.conf</code> editieren. Ich wollte <code>/ffp/</code> backuppen, was zu den folgenden Modifikationen an der Config geführt hatte:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">VOLNAME</span><span class="o">=</span><span class="s2">&#34;ffp&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">SRCLIST</span><span class="o">=(</span>/ffp/<span class="o">)</span>
</span></span><span class="line"><span class="cl"><span class="nv">SKIPCOND</span><span class="o">=(</span>-path <span class="s2">&#34;*.nobackup*&#34;</span> -o -name <span class="s2">&#34;*.o&#34;</span> -o -path <span class="s2">&#34;/ffp/pkg&#34;</span><span class="o">)</span>
</span></span><span class="line"><span class="cl"><span class="nv">BACKUP_DIR</span><span class="o">=</span><span class="s2">&#34;/mnt/HD_a2/.ffpbackup/&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Zusätzlich muss die Zeile</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">UNCONFIGURED</span><span class="o">=</span><span class="m">1</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>auskommentiert werden. Den Rest habe ich so belassen, man kann aber über die Kommentare sehr gut die Funktionsweise der einzelnen Parameter erkennen. Das BACKUP_DIR muss erstellt werden!</p>
<p>Damit ist backup2l erstma konfiguriert. Die vorhandene Config hat ein Backupkonzept, welches zwei Fullbackups mit jeweils 3 Leveln von drei differentiellen Backups und jeweils 8 Subleveln beinhaltet. Jetzt kann man über:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">backup2l -b
</span></span></code></pre></td></tr></table>
</div>
</div><p>in der Kommandozeile das Backup ausführen.</p>
<p>Wenn man ein zweites Backup von einer anderen Location anlegen möchte, so legt man eine zweite Config an, die man einfach von der originalen kopiert und dann mit dem folgenden Befehl ausführt.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">backup2l -b --conf /ffp/etc/backup2l.anotherconfig.conf
</span></span></code></pre></td></tr></table>
</div>
</div><p>Möchte man aus dem letzten Backup beispielsweise <code>/ffp/etc/</code> wiederherstellen, so führt man zunächst den folgenden Befehl für eine Übersicht der vorhandenen Backups aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">backup2l -s
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dies führt beispielsweise zur folgenden Ausgabe:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">backup2l v1.4 by Gundolf Kiefer
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Summary
</span></span><span class="line"><span class="cl">=======
</span></span><span class="line"><span class="cl">Backup Date Time | Size | Skipped Files+D | New Obs. | Err
</span></span><span class="line"><span class="cl">------------------------------------------------------------------------------
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">ffp.1 2009-08-17 01:16 | 506.7M | 278 49297 |49297 0 | 0
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wie man sieht ist ein Backup vorhanden, da ich noch keine weiteren angelegt habe. Jetzt wechsel ich in ein leeres Verzeichnis, da die Dateien relativ zum momentanen Verzeichnis wiederhergestellt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir /mnt/HD_a2/restore/
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /mnt/HD_a2/restore/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Ich stelle dann wie folgt mein Verzeichnis wieder her:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">backup2l -t <span class="m">1</span> -r /ffp/etc/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun wird sind in /mnt/HD_a2/restore/ das Verzeichnis <code>ffp/etc/</code> befinden, was ich anschließend an die richtige Stelle verschieben könnte. Genauso geht übrigens auch der restore einzelner Dateien.</p>
<p>Zum Schluss dieses Artikels kann ich die Lektüre des <link rel=dns-prefetch href=//wiki.hetzner.de /> <a href="http://wiki.hetzner.de/index.php/Backup2l"
    title="Wiki-Artikels von Hetzner zum Thema backup2l" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Wiki-Artikels von Hetzner zum Thema backup2l&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> sowie die manpage von backup2l (Auf der Konsole <code>man backup2l</code> eingeben) empfehlen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>e2fsck: The superblock could not be read or does not describe a correct ext2 filesystem</title>
      
      
      <link>https://wolf-u.li/e2fsck-the-superblock-could-not-be-read-or-does-not-describe-a-correct-ext2-filesystem/</link>
      <pubDate>Fri, 14 Aug 2009 08:54:45 +1400</pubDate>
      <guid>https://wolf-u.li/e2fsck-the-superblock-could-not-be-read-or-does-not-describe-a-correct-ext2-filesystem/</guid>
      <description>&lt;p&gt;Ein Leser meiner &lt;a href=&#34;https://wolf-u.li/nas/&#34;
    title=&#34;NAS-Tutorials&#34; 
   &gt;
  NAS-Tutorials&lt;/a&gt; hatte mit einem Problem seines Dateisystems zu kämpfen und hat dabei um meine Hilfe gebeten. Durch Stromausfälle oder Unachtsamkeit beim Putzen kann durch einen ungeplanten Neustart des NAS das Dateisystem einen Schaden davon tragen. Wenn man aber über eine Linux-Konsole noch Zugriff auf die Festplatte bekommen kann, ist dies oftmals kein Beinbruch. Blöd nur, wenn genau der Superblock vom Dateiverlust betroffen ist. Ich zeige in diesem Artikel einen kompletten Filesystemcheck inklusive der Lösung des vorstehenden Problems.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Ein Leser meiner <a href="/nas/"
    title="NAS-Tutorials" 
   >
  NAS-Tutorials</a> hatte mit einem Problem seines Dateisystems zu kämpfen und hat dabei um meine Hilfe gebeten. Durch Stromausfälle oder Unachtsamkeit beim Putzen kann durch einen ungeplanten Neustart des NAS das Dateisystem einen Schaden davon tragen. Wenn man aber über eine Linux-Konsole noch Zugriff auf die Festplatte bekommen kann, ist dies oftmals kein Beinbruch. Blöd nur, wenn genau der Superblock vom Dateiverlust betroffen ist. Ich zeige in diesem Artikel einen kompletten Filesystemcheck inklusive der Lösung des vorstehenden Problems.</p>
<p>Gehen wir davon aus, dass die Festplatte im Moubntpoint <code>/mnt/HD_b2</code> betroffen ist. Jetzt muss man zunächst herausfinden, welches Device dort eingebunden ist. Dies geht über den Befehl <code>mount</code> welcher z.B. die folgende Ausgabe erzeugt:</p>
<blockquote>
<p>rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw)
proc on /proc type proc (rw,nodiratime)
/dev/loop0 on /sys/crfs type squashfs (ro)
/dev/sda2 on /mnt/HD_a2 type ext2 (rw)
<strong>/dev/sdb2 on /mnt/HD_b2 type ext2 (rw)</strong>
/dev/sda4 on /mnt/HD_a4 type ext2 (rw)
/dev/sdb4 on /mnt/HD_b4 type ext2 (rw)
none on /proc/bus/usb type usbfs (rw)
devpts on /dev/pts type devpts (rw)</p>
</blockquote>
<p>Ich habe mal fett markiert, was für diesen Fehler relevant ist. Jetzt löst man das Device vom Mountpoint mittels</p>
<blockquote>
<p><code>umount /mnt/HD_b2/</code></p>
</blockquote>
<p>Und führt anschließend einen Filesystemcheck durch:</p>
<blockquote>
<p><code>e2fsck -pf /dev/sdb2/</code></p>
</blockquote>
<p>Hier tritt nun der Fehler auf:</p>
<blockquote>
<p>/dev/sdb2/:
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193</p>
</blockquote>
<p>Man kann jetzt mal den <code>e2fsck -b 8193 /dev/sdb2/</code> ausprobieren, aber vermutlich führt dieser nicht zum Erfolg (sonst würdest du ja wahrscheinlich den Artikel nicht lesen).</p>
<p>Um jetzt die alternativen Superblocks rauszufinden muss man den folgenden Befehl eingeben:</p>
<blockquote>
<p><code>mke2fs -n /dev/sdb2</code></p>
</blockquote>
<p>Dieser zeigt beispielhaft die folgende Ausgabe (diese wird bei dir anders sein!):</p>
<blockquote>
<p>mke2fs 1.41.0 (10-Jul-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
45727744 inodes, 182881951 blocks
9144097 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
5582 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
<strong>32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000</strong></p>
</blockquote>
<p>Fett markiert die wichtige Ausgabe der alternativen Superblöcke.</p>
<p>Jetzt muss man nacheinander die Blocknummern durchgehen, bis einer funktioniert. Beispielsweise also für den ersten Versuch:</p>
<blockquote>
<p><code>e2fsck -b 32768 /dev/sdb2/</code></p>
</blockquote>
<p>Danach entweder neu mounten oder das NAS einfach übers Webinterface neu starten.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Steuerung von Transmission mittels Clutch auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323</title>
      
      
      <link>https://wolf-u.li/steuerung-von-transmission-mittels-clutch-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</link>
      <pubDate>Sun, 03 Aug 2008 14:57:16 +0300</pubDate>
      <guid>https://wolf-u.li/steuerung-von-transmission-mittels-clutch-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</guid>
      <description>&lt;p&gt;Wie ich bereits im &lt;a href=&#34;https://wolf-u.li/1705/bittorrent-mittels-transmission-und-clutch-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/&#34;
    title=&#34;ersten Teil meines Tutorials&#34; 
   &gt;
  ersten Teil meines Tutorials&lt;/a&gt; gezeigt habe, kann man auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323 einen sehr guten Torrent-Downloader installieren, um beispielsweise die aktuellen Linux-Distributionen herunterzuladen. Leider ist die Steuerung von Transmission über die Kommandozeile auf Dauer etwas anstregend, weshalb der webbasierte Client &amp;ldquo;Clutch&amp;rdquo; ins Leben gerufen wurde.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; nach den aktuellen Tutorials!&lt;/strong&gt;&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Wie ich bereits im <a href="/1705/bittorrent-mittels-transmission-und-clutch-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="ersten Teil meines Tutorials" 
   >
  ersten Teil meines Tutorials</a> gezeigt habe, kann man auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323 einen sehr guten Torrent-Downloader installieren, um beispielsweise die aktuellen Linux-Distributionen herunterzuladen. Leider ist die Steuerung von Transmission über die Kommandozeile auf Dauer etwas anstregend, weshalb der webbasierte Client &ldquo;Clutch&rdquo; ins Leben gerufen wurde.</p>
<p><strong>Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong></p>
<p>Das Tutorial setzt einen installierten <a href="/1425/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="lighttpd mit php" 
   >
  lighttpd mit php</a> (JSON und XML müssen in PHP vorhanden sein) voraus. Ich gehe zudem davon aus, dass alles auf dem USB-Stick laufen soll, wenn nicht, bitte ich wie schon im ersten Teil des Tutorials um eigenständige Anpassung der Pfade. Ausserdem gehe ich davon aus, dass der Webroot unter &ldquo;<code>/mnt/HD_a2/usbstorage/www/pages</code>&rdquo; zu finden ist. Ist dieser beispielsweise unter &ldquo;<code>/mnt/HD_a2/www/pages</code>&rdquo; zu finden, muss der Befehl entsprechend angepasst werden! Diesen findet man am schnellsten mittels:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat /ffp/etc/lighttpd.conf<span class="p">|</span>grep server.document-root
</span></span></code></pre></td></tr></table>
</div>
</div><p>heraus.</p>
<p>Beginnen wir mit der Installation:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /mnt/HD_a2/usbstorage/www/pages
</span></span><span class="line"><span class="cl">wget http://clutchbt.com/Files/Clutch-0.4.tar.gz
</span></span><span class="line"><span class="cl">tar xzf Clutch-0.4.tar.gz
</span></span><span class="line"><span class="cl">mv Clutch-0.4 clutch
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend müssen wir den Pfad zu Transmission noch bei clutch eintragen.Die betroffene Datei ist <code>/mnt/HD_a2/usbstorage/www/pages/clutch/remote/data/socket.txt</code>, welche wie folgt upgedated wird:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> /mnt/HD_a2/usbstorage/.transmission/daemon/socket &gt; /mnt/HD_a2/usbstorage/www/pages/clutch/remote/data/socket.txt
</span></span></code></pre></td></tr></table>
</div>
</div><p><img src="/upload/2008/08/1705-clutch.webp" alt="Clutch" loading="lazy" title="1705-clutch"></p>
<p>Über die Adresse des NAS ist nun clutch erreichbar. Mein NAS heisst &ldquo;ULINAS&rdquo;, also lautet die Adresse für clutch bei mir <code>http://ulinas/clutch/</code>. Möglicherweise ist der Port ein anderer, bitte selbstständig anpassen.</p>
<p>Als Test habe ich nun das Webinterface geöffnet. Links unten findet sich eine Art Zahnrad, über welches über den Menüpunkt &ldquo;Preferences&rdquo; alle Einstellungen getroffen werden können. Ich habe zunächst das Downloadverzeichnis auf &ldquo;/mnt/HD_a2/usbstorage/torrents/&rdquo; umgestellt.
<img src="/upload/2008/08/1705-clutch-settings-menu.webp" alt="Clutch" loading="lazy" title="1705-clutch-settings-menu">
<img src="/upload/2008/08/1705-clutch-settings.webp" alt="Clutch" loading="lazy" title="1705-clutch-settings">
<img src="/upload/2008/08/1705-clutch-running.webp" alt="Clutch" loading="lazy" title="1705-clutch-running"></p>
<p>Als einen ersten Test habe ich nun &ldquo;Damn Small Linux&rdquo; über Torrent heruntergeladen. Wie man im Screenshot erkennen kann, hat das bestens geklappt ;)</p>
<p>Für größere Torrents (z.B. eine komplette Debian-DVD) würde ich zum Speichern auf Festplatte raten ;) Aber rechts unten kann man ja immer den freien Speicher erkennen, insofern sollte das ja kein Problem sein.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Bittorrent mittels Transmission und Clutch auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323</title>
      
      
      <link>https://wolf-u.li/bittorrent-mittels-transmission-und-clutch-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</link>
      <pubDate>Sun, 03 Aug 2008 14:55:56 +0300</pubDate>
      <guid>https://wolf-u.li/bittorrent-mittels-transmission-und-clutch-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/</guid>
      <description>&lt;p&gt;Die Firmware des D-Link DNS-323 weiß seit dem letzten Update einen Bittorrent-Client auf, was bei vielen Conceptronic CH3SNAS-Besitzern einen unnötigen Neid auf das DNS-323 hervorgerufen hat. Dankbarerweise kann der Client des DNS-323 anscheinend nicht gerade durch Geschwindigkeit glänzen, insofern ist dieser auch halb so wertvoll.
Jedoch können sowohl CH3SNAS als auch DNS-323-Besitzer nun aufatmen und sich einen der besseren Clients auf mittels des fun_plug installieren. Transmission ist einer der ressourcensparenden Clients und kann mittels verschiedener Webinterfaces gesteuert werden. Diesen werden ich im Laufe dieses Tutorials installieren.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Die Firmware des D-Link DNS-323 weiß seit dem letzten Update einen Bittorrent-Client auf, was bei vielen Conceptronic CH3SNAS-Besitzern einen unnötigen Neid auf das DNS-323 hervorgerufen hat. Dankbarerweise kann der Client des DNS-323 anscheinend nicht gerade durch Geschwindigkeit glänzen, insofern ist dieser auch halb so wertvoll.
Jedoch können sowohl CH3SNAS als auch DNS-323-Besitzer nun aufatmen und sich einen der besseren Clients auf mittels des fun_plug installieren. Transmission ist einer der ressourcensparenden Clients und kann mittels verschiedener Webinterfaces gesteuert werden. Diesen werden ich im Laufe dieses Tutorials installieren.</p>
<p><strong>Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong></p>
<p>Das Tutorial setzt voraus, dass <a href="/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="fun_plug" 
   >
  fun_plug</a> installiert wurde und mein Repository entsprechend der <a href="/2146/ulis-paket-repository-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Anweisungen" 
   >
  Anweisungen</a> synchronisiert und aktualisiert wurde.
Die Installation gestaltet sich dann extrem einfach:
Transmission benötigt curl für ein korrektes funktionieren, was wir nun zusammen mit Transmission installieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">funpkg -i /ffp/pkg/additional/*/curl-*.tgz
</span></span><span class="line"><span class="cl">funpkg -i /ffp/pkg/additional/*/Transmission-*.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun muss Transmission konfiguriert werden. Da ich Transmission gerne auf dem <a href="/1318/fun_plug-05-auf-dem-usb-stick-am-conceptronic-ch3snas-bzw-d-link-dns-323-betrieben/"
    title="USB-Stick" 
   >
  USB-Stick</a> laufen lassen wollte, musste ich die Pfade anpassen. Wenn daher KEIN USB-Stick am NAS steckt, muss bei allen Anweisungen &ldquo;/mnt/HD_a2/usbstorage/&rdquo; durch &ldquo;/mnt/HD_a2/&rdquo; ersetzt werden.
Zunächst öffnet man dazu die <code>/ffp/start/transmission.sh</code> mit einem <a href="/1665/editor-nano-fuer-das-fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Editor seiner Wahl" 
   >
  Editor seiner Wahl</a>.
Dort findet man die Zeile:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">TRANSMISSION_HOME</span><span class="o">=</span>/mnt/HD_a2/.transmission
</span></span></code></pre></td></tr></table>
</div>
</div><p>Die ich auf:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">TRANSMISSION_HOME</span><span class="o">=</span>/mnt/HD_a2/usbstorage/.transmission/
</span></span></code></pre></td></tr></table>
</div>
</div><p>abgeändert habe.</p>
<p>Wer zusätzlich die Blocklisten benötigt, muss folgendes machen:
Zunächst in der Datei <code>/ffp/start/transmission.sh</code> mit einem <a href="/1665/editor-nano-fuer-das-fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Editor" 
   >
  Editor</a> die Zeile:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">command</span><span class="o">=</span><span class="s2">&#34;/ffp/bin/transmission-daemon&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>um ein &ldquo;-b&rdquo; ergänzen, sodass diese so aussieht:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">command</span><span class="o">=</span><span class="s2">&#34;/ffp/bin/transmission-daemon -b&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend muss auf der Kommandoziele noch die Blockliste heruntergeladen werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /mnt/HD_a2/usbstorage/.transmission/blocklists/
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /mnt/HD_a2/usbstorage/.transmission/blocklists/
</span></span><span class="line"><span class="cl">wget http://download.m0k.org/transmission/files/level1.gz
</span></span><span class="line"><span class="cl">gunzip level1.gz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun legen wir das Verzeichnis für die Dateien, die über die Torrents heruntergeladen werden, an. Dieses benötigt spezielle Rechte:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir /mnt/HD_a2/usbstorage/torrents
</span></span><span class="line"><span class="cl">chown -R nobody:501 /mnt/HD_a2/usbstorage/torrents
</span></span><span class="line"><span class="cl">chmod -R <span class="m">755</span> /mnt/HD_a2/usbstorage/torrents
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun setzen wir noch die Rechte für Transmission korrekt (sicher ist sicher):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chown -R nobody:501 /mnt/HD_a2/usbstorage/.transmission/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und Transmission starten:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sh /ffp/start/transmission.sh start
</span></span></code></pre></td></tr></table>
</div>
</div><p>Damit ist erstmal Transmission installiert. Wer es dauerhaft nach jedem Start aktiviert haben möchte, muss es wie immer mit dem Executable-Recht versehen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod a+x /ffp/start/transmission.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun kann man diesen entweder über die Kommandozeile (&ldquo;man transmission-remote&rdquo; zeigt die entsprechenden Befehle) oder über ein Webinterface wie beispielsweise Clutch steuern.</p>
<p>Dieses Webinterface richten wir in Teil 2 ein. <a href="/1710/steuerung-von-transmission-mittels-clutch-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Hier gehts zum Tutorial" 
   >
  Hier gehts zum Tutorial</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Fun_plug 0.5 auf dem USB-Stick am Conceptronic CH3SNAS bzw. D-Link DNS-323 betrieben</title>
      
      
      <link>https://wolf-u.li/fun_plug-05-auf-dem-usb-stick-am-conceptronic-ch3snas-bzw-d-link-dns-323-betrieben/</link>
      <pubDate>Sat, 26 Jul 2008 08:14:54 +2600</pubDate>
      <guid>https://wolf-u.li/fun_plug-05-auf-dem-usb-stick-am-conceptronic-ch3snas-bzw-d-link-dns-323-betrieben/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; nach den aktuellen Tutorials!&lt;/strong&gt;
Diese Anleitung wurde auf den folgenden NAS getestet: Conceptronic CH3SNAS, D-Link DNS-323
Tutorials zu anderen Geräten sind &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; zu finden.
Wie ich schon des öfteren berichtet hatte, gibt es die Möglichkeit, das Conceptronic CH3SNAS oder das D-Link DNS-323 mittels eines sog. &amp;ldquo;fun_plug&amp;rdquo; um Zusatzfunktionalitäten zu erweitern. &amp;ldquo;fonz&amp;rdquo;, der Entwickler des bekanntesten fun_plug-Scripts &amp;ldquo;FFP&amp;rdquo;, hat mittlerweile die Version 0.5 released, die viele Neuerungen mit sich bringt. Da mein USB-Stick sowieso immer am NAS hängt, habe ich mich gleichzeitig mit dem Update auch für ein Betreiben des ffp auf den USB-Stick entschieden. Doch was bringt eigentlich das neue &amp;ldquo;FFP&amp;rdquo;?&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><strong>Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong>
Diese Anleitung wurde auf den folgenden NAS getestet: Conceptronic CH3SNAS, D-Link DNS-323
Tutorials zu anderen Geräten sind <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> zu finden.
Wie ich schon des öfteren berichtet hatte, gibt es die Möglichkeit, das Conceptronic CH3SNAS oder das D-Link DNS-323 mittels eines sog. &ldquo;fun_plug&rdquo; um Zusatzfunktionalitäten zu erweitern. &ldquo;fonz&rdquo;, der Entwickler des bekanntesten fun_plug-Scripts &ldquo;FFP&rdquo;, hat mittlerweile die Version 0.5 released, die viele Neuerungen mit sich bringt. Da mein USB-Stick sowieso immer am NAS hängt, habe ich mich gleichzeitig mit dem Update auch für ein Betreiben des ffp auf den USB-Stick entschieden. Doch was bringt eigentlich das neue &ldquo;FFP&rdquo;?</p>
<p>Ich zitiere hier einfach mal die Release Notes:</p>
<p>[spoiler /Release Notes zeigen/ /Release Notes verstecken/]</p>
<blockquote>
<ul>
<li>By default, the 0.5 funplug is installed to /mnt/HD_a2/ffp, but compiled with /ffp as prefix. The fun_plug script creates a symbolic link /ffp -&gt; /mnt/HD_a2/ffp that allows the programs to run. If you move the funplug (e.g. to run off a USB key), adjust the FFP_PATH variable in the fun_plug script accordingly (and add code to mount the USB key).</li>
<li>The 0.5 version is built with a custom toolchain based on binutils-2.18, gcc-4.1 and uClibc-0.9.29. Consequently, the 0.5 funplug comes with its own set of runtime libraries in /ffp/lib. (Earlier fun-plugs used a toolchain created from the GPL sources tarball provided by D-Link and were linked against the firmware libraries in /lib.)</li>
<li>Native binutils and gcc packages are available. Programs compiled with these tools will depend on /ffp/lib/ld-uClibc.so.0 as dynamic linker and cannot be used without this funplug (unless you know how to change the dynamic linker path at compile-time). Compiler and linker will also search the /ffp/include and /ffp/lib directories for include files and libraries.</li>
<li>All development files (include files, static libraries, etc) are included in the respective package files. There are no binary-only or development packages. For some packages to compile successfully, it may be necessary to relink /bin/sh to /ffp/bin/bash.</li>
<li>The included dns323-utils (dns323-temp, -fan, &hellip;) will use libraries in /ffp, too. If you want them to run with firmware libraries (e.g. to prevent disk accesses), use a package from here: <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/utils/"
    title="http://www.inreto.de/dns323/utils/" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://www.inreto.de/dns323/utils/&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
</blockquote>
<p>[/spoiler]</p>
<p>Das ffp an sich ist perfekt, um direkt auf einen USB-Stick gepackt zu werden. Ich hatte <a href="/1214/zusaetzlicher-storage-fuer-das-conceptronic-ch3snas-d-link-dns-323-ueber-einen-usb-stick/"
    title="bereits schon einmal demonstriert" 
   >
  bereits schon einmal demonstriert</a>, wie dies für bestimmte Programme funktioniert, jetzt ist das gesamte fun_plug dran, da dann Probleme, wie sich nicht abschaltende Festplatten und lange Antwortzeiten beim ersten Aufrufen einer Webseite (lighttpd auf der ausgeschalteten Festplatte) endlich der Vergangenheit angehören.</p>
<p>Im nun folgenden Tutorial gelten diese Abkürzungen:</p>
<ul>
<li>NAS: Conceptronic CH3SNAS oder D-Link DNS-323, funktioniert auf beiden Geräten</li>
<li>ffp: fun_plug 0.5 von fonz</li>
<li>&ldquo;#:&rdquo; bedeutet Konsoleneingabe (ohne die Zeichen <code>#:</code>)</li>
<li>[enter] bedeutet Das Drücken der Return-Taste auf der Tastertur</li>
</ul>
<p><strong>Ich bitte darum das Tutorial erst einmal KOMPLETT zu lesen, BEVOR man es durchführt! Viele Fragen kommen dann erst gar nicht auf und manche Probleme klären sich so von selbst!</strong></p>
<p>Für dieses Tutorial braucht man <em>oh wunder</em> einen <strong>USB-Stick</strong>. Dieser wird im laufen dieses Beitrag komplett formatiert, d.h. alle Daten gehen verloren! Größenmäßig sollte der Stick oberhalb von 512MB, besser bei einem 1GB liegen. Eine komplett-Installation des fun_plug benötigt etwa 500MB inklusive Paketverzeichnis (Größe ~100MB, wobei man das auch auf der Festplatte halten kann, da man es eh nur einmal braucht). Wichtig in diesem Tutorial ist die Menge der Festplatten im NAS. Je nach dem wird der USB-Stick anders angesprochen. Bei einer Festplatte wird der USB-Stick als &ldquo;<strong>sdb</strong>&rdquo;, bei zwei Festplatten als &ldquo;<strong>sdc</strong>&rdquo; angesprochen. Ich spreche im Tutorial und in allen Dateien immer von sdc, ich bitte dies selbstständig auf sdb zu ändern, wenn nur eine Festplatte im Gehäuse steckt! Eventuell (bei genug Nachfrage) kann ich dies automatisieren, sodass immer nur der richtige USB-Stick (egal ob sdb oder sdc) angesprochen und eingebunden wird. Zudem braucht das NAS eine <strong>Internetverbindung</strong>, sonst wird meine Anleitung in der momentanen Form nicht laufen!</p>
<p><strong>Bitte jetzt den USB-Stick anstecken!</strong>
Das grundlegende Problem ist zunächst das Dateisystem des USB-Sticks. Ich rate zu <link rel=dns-prefetch href=//de.wikipedia.org /> <a href="http://de.wikipedia.org/wiki/Ext2"
    title="ext2" 
     target="_blank" rel="nofollow noopener noreferrer" >
  ext2&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>, da dies bereits im NAS selbst eingesetzt wird und als relativ robust anerkannt ist. Das Problem ist nun, dass die meisten Leser vermutlich kein Programm (z.B. Partition Magic) oder auch keine Umgebung (Linux) installiert haben um den Stick auf ext2 zu formatieren.</p>
<p>Zunächst muss sichergestellt sein, dass das NAS über eine gültige Netzwerkkonfiguration (&ldquo;Setup&rdquo; -&gt; &ldquo;LAN&rdquo;) mit Gateway &amp; DNS-Server verfügt. Wird die IP-Adresse automatisch bezogen, ist das im Regelfall korrekt eingestellt.</p>
<p>Wenn man noch Telnet oder SSH-Zugang zum NAS hat (z.B. durch ein existierendes fun_plug), kann man den folgenden Punkt überspringen und <a href="#existingffp#existingffp"
    title="hier" 
   >
  hier</a> weitermachen.</p>
<p>Wir werden daher zunächst eine minimale Linux-Umgebung auf dem NAS einrichten, sodass wir die anschließend folgenden Schritte zur Formatierung auf dem NAS ausführen können. Wenn man keinen Zugang hat (z.B. neues NAS), dann bitte folgende drei Punkte befolgen:</p>
<ul>
<li>Download dieser <a href="/u/164"
    title="Datei" 
   >
  Datei</a></li>
<li>Als &ldquo;fun_plug&rdquo; (genau so benennen!) über das normale File-Share ins Hauptverzeichnis auf die erste Festplatte (Zumeist als &ldquo;Volume_1&rdquo; über Samba freigegeben) legen.</li>
<li>Beim Reboot wird das fun_plug automatisch heruntergeladen und initialisiert. (Es ist die Version 0.1 von fonz, wir brauchen da aber nix besonders)</li>
</ul>
<p>Hat man noch Zugang zum NAS, jedoch noch nie einen USB-Stick daran betrieben, so benötigt man eine Datei namens &ldquo;usb-storage.ko&rdquo;, die die Einbindung von USB-Sticks in System erlaubt. Zunächst bootet man das NAS mit angestecktem Stick einmal frisch. Anschließend loggt man sich auf das NAS ein und lädt das USB-Modul:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /mnt/HD_a2/.bootstrap/
</span></span><span class="line"><span class="cl">wget http://wolf-u.li/u/165/ -O /mnt/HD_a2/.bootstrap/usb-storage.ko
</span></span><span class="line"><span class="cl">cp /mnt/HD_a2/.bootstrap/usb-storage.ko /lib/modules/
</span></span><span class="line"><span class="cl">insmod /lib/modules/usb-storage.ko
</span></span></code></pre></td></tr></table>
</div>
</div><p>Bitte vor dem ausführen der folgenden Schritte prüfen, ob der Stick wirklich dran steckt!
Nun werden wir den Stick komplett plätten und frisch partitionieren. Dazu verbindet man sich mit Telnet auf das NAS.</p>
<p><img src="/upload/2008/07/1318-ffpusb-1.webp" alt="FFP USB" loading="lazy" title="1318-ffpusb-1"></p>
<p>Unter Windows verwendet man dazu am einfachsten das Tool <link rel=dns-prefetch href=//the.earth.li /> <a href="http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe"
    title="PuttY" 
     target="_blank" rel="nofollow noopener noreferrer" >
  PuttY&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> von <link rel=dns-prefetch href=//www.chiark.greenend.org.uk /> <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>. Nach dem Start muss man die Adresse des NAS unter &ldquo;Host Name&rdquo; angeben und auf &ldquo;Open&rdquo; klicken.
Nun öffnet sich die Konsole, wo man direkt eingeloggt ist.
Nun benötigt man fdisk zur Formatierung des USB-Sticks (der Befehl ist so korrekt, siehe <a href="/3346/crash-von-fdisk-unter-busybox-mit-fehler-segmentation-fault/"
    title="Beitrag" 
   >
  Beitrag</a>!):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat<span class="p">|</span>fdisk /dev/sdc
</span></span></code></pre></td></tr></table>
</div>
</div><p><img src="/upload/2008/07/1318-ffpusb-2.webp" alt="FFP USB" loading="lazy" title="1318-ffpusb-2">]</p>
<p>Dieses Tool zeigt nun die Zeile &ldquo;<code>Command (m for help):</code>&rdquo;. Zunächst lässt man sich mittels &ldquo;p[enter]&rdquo; die momentanen Partitionen anzeigen. Die Ausgabe sieht bei meinem 512MB Test-USB-Stick so aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">Disk /dev/sdc: 519 MB, 519569408 bytes
</span></span><span class="line"><span class="cl">16 heads, 62 sectors/track, 1022 cylinders
</span></span><span class="line"><span class="cl">Units = cylinders of 992 * 512 = 507904 bytes
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Device Boot Start End Blocks Id System
</span></span><span class="line"><span class="cl">/dev/sdc1 1 1022 506881 c Win95 FAT32 (LBA)
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun löschen wir diese eine Partition:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">d<span class="o">[</span>enter<span class="o">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und legen eine neue an:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">n<span class="o">[</span>enter<span class="o">]</span>
</span></span><span class="line"><span class="cl">p<span class="o">[</span>enter<span class="o">]</span>
</span></span><span class="line"><span class="cl">1<span class="o">[</span>enter<span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="o">[</span>enter<span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="o">[</span>enter<span class="o">]</span>
</span></span><span class="line"><span class="cl">t<span class="o">[</span>enter<span class="o">]</span>
</span></span><span class="line"><span class="cl">83<span class="o">[</span>enter<span class="o">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun haben wir eine Partition erstellt, die die maximale Größe des USB-Sticks ausfüllt und als Linux-Partition markiert ist. DIe Änderungen sehen wir uns noch nochmal an und speichern diese anschließend:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">p<span class="o">[</span>enter<span class="o">]</span>
</span></span><span class="line"><span class="cl">w<span class="o">[</span>enter<span class="o">][</span>/code<span class="o">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">!<span class="o">[</span>FFP USB<span class="o">](</span>/upload/2008/07/1318-ffpusb-3.webp <span class="s2">&#34;1318-ffpusb-3&#34;</span><span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Diese werden wir nun noch auf ext2 formatieren:
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="sb">```</span>bash
</span></span><span class="line"><span class="cl">mke2fs /dev/sdc1
</span></span></code></pre></td></tr></table>
</div>
</div><p>Damit ist der USB-Stick fertig vorbereitet.</p>
<p><a href="/upload/2008/07/1318-ffpusb-4.webp"
    title="1318-ffpusb-4" 
   >
  FP USB</a></p>
<p>Der nächste Schritt ist nun, dass das endgültige fun_plug heruntergeladen werden muss. Das alte fun_plug wird direkt ersetzt. Das kann man nun noch direkt in der Konsole machen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">rm /mnt/HD_a2/fun_plug
</span></span><span class="line"><span class="cl">wget http://www.inreto.de/dns323/fun-plug/0.5/fun_plug -O /mnt/HD_a2/fun_plug
</span></span><span class="line"><span class="cl">chmod a+x /mnt/HD_a2/fun_plug
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wahlweise kann diese Datei auch <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.5/fun_plug"
    title="direkt" 
     target="_blank" rel="nofollow noopener noreferrer" >
  direkt&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> heruntergeladen und gegen die momentan existierende Datei im Hauptverzeichnis der ersten Festplatte ausgetauscht werden.
Nun brauchen wir noch das neue FFP_SETUP_SCRIPT, welches in einem <a href="/1729/neue-version-des-fun_plug-05-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="Update von fun_plug 0.5" 
   >
  Update von fun_plug 0.5</a> eingeführt wurde:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget http://wolf-u.li/u/201 -O /mnt/HD_a2/.bootstrap/setup.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Zu guter letzt muss man das ganze noch aktivieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod +x /mnt/HD_a2/.bootstrap/setup.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn man die obige minimal-umgebung gestartet hat, dann kann man diese nun vor dem Restart noch entfernen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">rm -R /mnt/HD_a2/funplugusbstick/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun muss das NAS einmal neu gestartet werden, was entweder über das Webinterface oder die Konsole möglich ist:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">reboot
</span></span></code></pre></td></tr></table>
</div>
</div><p>Kleiner Hinweis: Meine setup.sh regelt den gesamten Zugriff auf den USB-Speicher und die Initialisierung des fun_plug auf dem USB-Stick. Sollte der Zugriff nicht klappen und kein Log angelegt werden, bitte über die Kommentarfunktion melden.</p>
<p><img src="/upload/2008/07/1426-login-as-root.webp" alt="FFP USB" loading="lazy" title="1426-login-as-root"></p>
<p>Nach einem Reboot ist das neue fun_plug 0.5 von fonz geladen und automatisch telnet aktiviert. Zunächst sollte man sich nun mit einem geeigneten Telnet-Programm (unter Linux einfach nur &ldquo;ssh&rdquo;, unter Windows verwende ich <link rel=dns-prefetch href=//www.chiark.greenend.org.uk /> <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"
    title="Putty" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Putty&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>,wie oben zu sehen) auf dem NAS einloggen. Bitte für den folgenden Schritt einfach mal das Bild links ansehen, damits klarer wird.</p>
<ul>
<li>Login as: <strong>root</strong></li>
<li>Passwort sollte keines verlangt werden</li>
</ul>
<p><strong>Wenn (oder direkt) &ldquo;<code>/mnt/HD_a2 #</code>&rdquo; erscheint, ist man eingeloggt und kann fortfahren.</strong></p>
<p>Als eine der ersten Aktionen wird nun /etc/shadow mittels pwconv erstellt. Das Passwort wird anschließend mittels &ldquo;passwd&rdquo; geändert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pwconv
</span></span><span class="line"><span class="cl">passwd
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn das neue Passwort zweimal eingegeben wurde, muss man den root-User noch aktivieren und dessen Home-Verzeichnis verlegen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">usermod -s /ffp/bin/sh root
</span></span><span class="line"><span class="cl">mkdir -p /ffp/home/root/
</span></span><span class="line"><span class="cl">usermod -d /ffp/home/root/ root
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun kann man den Login nun direkt testen. Hierzu gibt man im Anschluss:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">login
</span></span></code></pre></td></tr></table>
</div>
</div><p>ein. Wenns nicht klappt, einfach die Prozedur ab &ldquo;passwd&rdquo; wiederholen.</p>
<p>Wenn alles geklappt hat, dann <strong>muss</strong> das Passwort in den internen Flash-Speicher gespeichert werden.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">store-passwd.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun wird der SSH-Server aktiviert, da telnet bereits als sehr unsicher (v.a. aufgrund des unverschlüsselten Verkehrs) bekannt ist (wird eine Weile dauern):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod a+x /ffp/start/sshd.sh
</span></span><span class="line"><span class="cl">sh /ffp/start/sshd.sh start
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>Nun den Telnet-Client noch nicht schließen!</strong> Öffne gleichzeitig nochmals PuttY und verwende aber statt telnet nun SSH. Versuche eine Verbindung zum NAS. Diese wird erfolgreich sein.</p>
<p>Nun (und NUR wenn der Login erfolgreich war!) kann der Telnet-Server deaktiviert werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod -x /ffp/start/telnetd.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Auf dem usbstick ist unter &ldquo;/mnt/usbstorage&rdquo; ein Verzeichnis namens &ldquo;ffp&rdquo; angelegt worden. Darin befindet sich ein Unterverzeichnis &ldquo;start&rdquo;, in dem verschiedene Startdateien für diverse Dienste liegen. Typischerweise weisen davon nur wenige das Attribut <em>X</em>, also <em>Executable</em>. Nur diese werden auch beim Start des fun_plug ausgeführt. Ein paar Zeilen weiter oben habe ich &ldquo;chmod +x sshd.sh&rdquo; angeordnet. Diese Anweisung markiert eine Datei als ausführbar. Alle Dateien im <em>Start</em>-Ordner, die als executable markiert sind, werden vom fun_plug aufgerufen.</p>
<p>Weitere Software kann man nun einfach installieren. Hierzu muss man zunächst alle Pakete von fonz und mir auf das NAS syncronisieren. Ich habe das Verzeichnis auf dem USB-Stick angelegt, wenn es woanders sein, soll soltle das der versierte Nutzer selbst erledigen können ;)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir /ffp/pkg/
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /ffp/pkg/
</span></span><span class="line"><span class="cl">wget http://wolf-u.li/u/173/ -O /ffp/pkg/updater.sh
</span></span><span class="line"><span class="cl">chmod a+x /ffp/pkg/updater.sh
</span></span><span class="line"><span class="cl">sh /ffp/pkg/updater.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Mit diesen Befehlen habe ich einen Ordner namens &ldquo;<em>pkg</em>&rdquo; im Ordner &ldquo;<em>ffp</em>&rdquo; erstellt. Zusätzlich wurde nun die Ordner &ldquo;<em>packages</em>&rdquo; (Fonz&rsquo; Repository) und &ldquo;<em>additional</em>&rdquo; (Uli&rsquo;s Repository) angelegt, der alle kompilierten Pakete von Fonz und Uli enthält.</p>
<p>Nun kann man Pakete installieren. Entweder man installiert nun einzelne Pakete (Achtung abhängigkeiten beachten!):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">funpkg -i paketname.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Oder einfach alle aus Fonz&rsquo; Repository installieren, damit sind dann zunächst alle Abhängigkeiten gelöst:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /ffp/pkg/packages/
</span></span><span class="line"><span class="cl">funpkg -i *.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>Zusätzliche Pakete (z.B. <a href="/1425/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="PHP &amp; mysql" 
   >
  PHP &amp; mysql</a>) habe ich dann später im Verzeichnis /ffp/pkg/additional abgelegt.</p>
<p>Ein Wort noch zur Paketverwaltung, das Programm funpkg bedient man wie folgt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">Copyright <span class="o">(</span>c<span class="o">)</span> <span class="m">2008</span> Tobias Poschwatta
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Install: funpkg -i
</span></span><span class="line"><span class="cl">Reinstall: funpkg -I
</span></span><span class="line"><span class="cl">Upgrade: funpkg -u
</span></span><span class="line"><span class="cl">Remove: funpkg -r
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Other options:
</span></span><span class="line"><span class="cl"> -D  System root directory <span class="o">(</span>default: /<span class="o">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Schlusswort:
An diesem Tutorial bin ich relativ lange gesessen, damit es einigermaßen verständlich und leicht durchzuführen ist. Doch kein Tutorial ist perfekt und hier können sich aufgrund der Länge Fehler eingeschlichen haben. Ich bitte diese zu entschuldigen und unverzüglich zu melden! Gerne stehe ich über die Kommentarfunktion sowie per Mail (Adresse ist im Impressum zu finden) bei Fragen und Problemen zur Verfügung.</p>
<p><strong>Changelog des Eintrags</strong>:
06.09.2008: Update für das <a href="/1729/neue-version-des-fun_plug-05-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/"
    title="FFP_SETUP_SCRIPT" 
   >
  FFP_SETUP_SCRIPT</a>
21.12.2010: Update der Download-URLs, Einführung des Update-Scripts</p>
]]></content:encoded>
    </item>
    <item>
      <title>phpMyAdmin auf dem Conceptronic CH3SNAS bzw. D-Link DNS-323 installieren</title>
      
      
      <link>https://wolf-u.li/phpmyadmin-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/</link>
      <pubDate>Fri, 11 Jul 2008 07:28:50 +1100</pubDate>
      <guid>https://wolf-u.li/phpmyadmin-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/</guid>
      <description>&lt;p&gt;phpMyAdmin ist eines der am häufigst verwendeten Administrationstools für MySQL-Datenbanken. Leider hat auf meinem CH3SNAS phpMyAdmin nicht auf Anhieb funktioniert. Der Trick ist jedoch recht einfach.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe &lt;a href=&#34;https://wolf-u.li/nas/tutorials/ffp/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt; nach den aktuellen Tutorials!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Natürlich muss zunächst das &lt;a href=&#34;https://wolf-u.li/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/&#34;
    title=&#34;fun_plug&#34; 
   &gt;
  fun_plug&lt;/a&gt; und &lt;a href=&#34;https://wolf-u.li/1425/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/&#34;
    title=&#34;MySQL sowie PHP&#34; 
   &gt;
  MySQL sowie PHP&lt;/a&gt; installiert werden.&lt;/p&gt;
&lt;p&gt;Nun muss man den aktuellen phpMyAdmin herunterladen. Diesen gibt es auf &lt;link rel=dns-prefetch href=//phpmyadmin.sf.net /&gt; &lt;a href=&#34;http://phpmyadmin.sf.net&#34;
    title=&#34;Sourceforge&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Sourceforge&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; zum Download. Aktuell ist momentan (07.11.2010) beispielsweise die Version 3.3.8.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>phpMyAdmin ist eines der am häufigst verwendeten Administrationstools für MySQL-Datenbanken. Leider hat auf meinem CH3SNAS phpMyAdmin nicht auf Anhieb funktioniert. Der Trick ist jedoch recht einfach.</p>
<p><strong>Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe <a href="/nas/tutorials/ffp/"
    title="hier" 
   >
  hier</a> nach den aktuellen Tutorials!</strong></p>
<p>Natürlich muss zunächst das <a href="/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="fun_plug" 
   >
  fun_plug</a> und <a href="/1425/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="MySQL sowie PHP" 
   >
  MySQL sowie PHP</a> installiert werden.</p>
<p>Nun muss man den aktuellen phpMyAdmin herunterladen. Diesen gibt es auf <link rel=dns-prefetch href=//phpmyadmin.sf.net /> <a href="http://phpmyadmin.sf.net"
    title="Sourceforge" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Sourceforge&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> zum Download. Aktuell ist momentan (07.11.2010) beispielsweise die Version 3.3.8.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /srv/www/pages/
</span></span><span class="line"><span class="cl">wget http://switch.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-3.3.8-all-languages.tar.gz
</span></span><span class="line"><span class="cl">tar xzf phpMyAdmin-3.3.8-all-languages.tar.gz
</span></span><span class="line"><span class="cl">rm phpMyAdmin-3.3.8-all-languages.tar.gz
</span></span><span class="line"><span class="cl">mv phpMyAdmin-3.3.8-all-languages phpmyadmin
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nachdem man das aktuelle Paket im Webroot des lighttpd entpackt hat, kann man sich an die Konfiguration machen. Am schnellsten geht dies über die Konsole. Editiere die Datei <code>config.inc.php</code> im Verzeichnis <code>phpmyadmin</code>, sodass diese wie unten aussieht:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">/* Servers configuration */
</span></span><span class="line"><span class="cl"><span class="nv">$i</span> <span class="o">=</span> 0<span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">/* Server localhost */
</span></span><span class="line"><span class="cl"><span class="nv">$i</span>++<span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$cfg</span><span class="o">[</span><span class="s1">&#39;Servers&#39;</span><span class="o">][</span><span class="nv">$i</span><span class="o">][</span><span class="s1">&#39;host&#39;</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;localhost&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$cfg</span><span class="o">[</span><span class="s1">&#39;Servers&#39;</span><span class="o">][</span><span class="nv">$i</span><span class="o">][</span><span class="s1">&#39;extension&#39;</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;mysql&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$cfg</span><span class="o">[</span><span class="s1">&#39;Servers&#39;</span><span class="o">][</span><span class="nv">$i</span><span class="o">][</span><span class="s1">&#39;connect_type&#39;</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;tcp&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$cfg</span><span class="o">[</span><span class="s1">&#39;Servers&#39;</span><span class="o">][</span><span class="nv">$i</span><span class="o">][</span><span class="s1">&#39;compress&#39;</span><span class="o">]</span> <span class="o">=</span> false<span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$cfg</span><span class="o">[</span><span class="s1">&#39;Servers&#39;</span><span class="o">][</span><span class="nv">$i</span><span class="o">][</span><span class="s1">&#39;auth_type&#39;</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;http&#39;</span><span class="p">;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Hinweis: Die PHP-Tags (<?php und ?>) sind natürlich nicht zu vergessen</p>
<p>Und schon ist phpMyAdmin über <code>http:///phpmyadmin/</code> zu erreichen. Passwort und Nutzername sind oft während der Einrichtung gesetzt worden, zumeist ist der Nutzername &ldquo;<code>root</code>&rdquo;.</p>
<p>Bei der Konfiguration ist folgendes zu bemerken:</p>
<ul>
<li>Authentifizierungsmethode: <strong>http</strong>, da <em>cookie</em> ohne die PHP-Extension <em>mcrypt</em> phpMyAdmin stark verlangsamt.</li>
<li>Wenn der Fehler: <code>#2002 - Der Server antwortet nicht. (evtl. ist auch der Socket des lokalen MySQL-Servers socket nicht korrekt konfiguriert)</code> auftritt, muss der Servername von <code>localhost</code> auf <strong>127.0.0.1</strong> gesetzt werden, damit phpMyAdmin connecten kann. Achtung: Dann muss aber auch &ldquo;skip-networking&rdquo; von MySQL deaktiviert sein.</li>
</ul>
<p><strong>Changelog des Eintrags:</strong></p>
<ul>
<li>09.10.2008: Überarbeitung passend zum Update des <a href="/1425/php-und-mysql-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="lighttpd &amp; MySQL-Eintrags" 
   >
  lighttpd &amp; MySQL-Eintrags</a>.</li>
<li>23.11.2008: Neue Versionsnummer 3.0.1.1</li>
<li>17.01.2009: Neue Versionsnummer 3.1.1</li>
<li>05.02.2010: Neue Versionsnummer 3.2.5</li>
<li>06.11.2010: Neue Versionsnummer 3.3.8</li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
