<?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>Ch3snas on Ulis Notizen</title>
    <link>https://wolf-u.li/tag/ch3snas/</link>
    <description>Recent content in Ch3snas 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/ch3snas/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>Warnung vor Firmware Release Candidates für das Conceptronic CH3SNAS</title>
      
      
      <link>https://wolf-u.li/warnung-vor-firmware-release-candidates-fuer-das-conceptronic-ch3snas/</link>
      <pubDate>Tue, 15 Jul 2008 08:24:32 +1500</pubDate>
      <guid>https://wolf-u.li/warnung-vor-firmware-release-candidates-fuer-das-conceptronic-ch3snas/</guid>
      <description>&lt;p&gt;In den letzten Wochen wurden mehrere RC&amp;rsquo;s für die neue Firmware-Version 1.04 für das Conceptronic Ch3SNAS veröffentlicht. Da es viele nicht wissen: RC steht für &lt;link rel=dns-prefetch href=//de.wikipedia.org /&gt; &lt;a href=&#34;http://de.wikipedia.org/wiki/Entwicklungsstadium_%28Software%29#Release_Candidate_.2F_Prerelease#Release_Candidate_.2F_Prerelease&#34;
    title=&#34;Release Candidate&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Release Candidate&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;. D.h. es sind zwar alle Funktionen der endgültigen Firmware enthalten, es können aber noch Fehler auftreten und die Firmware ist nicht unbedingt stable.
Leider habe ich in den letzten Tagen einige Mails erhalten, wo die Leute schon 1.04RC3 oder 1.04RC4 verwendet haben und sich über Fehler gewundert hatten.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>In den letzten Wochen wurden mehrere RC&rsquo;s für die neue Firmware-Version 1.04 für das Conceptronic Ch3SNAS veröffentlicht. Da es viele nicht wissen: RC steht für <link rel=dns-prefetch href=//de.wikipedia.org /> <a href="http://de.wikipedia.org/wiki/Entwicklungsstadium_%28Software%29#Release_Candidate_.2F_Prerelease#Release_Candidate_.2F_Prerelease"
    title="Release Candidate" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Release Candidate&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>. D.h. es sind zwar alle Funktionen der endgültigen Firmware enthalten, es können aber noch Fehler auftreten und die Firmware ist nicht unbedingt stable.
Leider habe ich in den letzten Tagen einige Mails erhalten, wo die Leute schon 1.04RC3 oder 1.04RC4 verwendet haben und sich über Fehler gewundert hatten.</p>
<p><strong>Ich warne hiermit ausdrücklich vor allen RC-Versionen.</strong></p>
<p>Diese sollte man nur einsetzen, wenn man sich darüber bewusst ist, dass man damit ein Tester ist und Fehler und Hardwareprobleme auftreten können.</p>
<p>Die letzten RC&rsquo;s für die Version <link rel=dns-prefetch href=//www.aroundmyroom.com /> <a href="http://www.aroundmyroom.com/2008/07/04/ch3snas-firmware-104rc4/"
    title="1.04" 
     target="_blank" rel="nofollow noopener noreferrer" >
  1.04&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> waren besonders <link rel=dns-prefetch href=//www.aroundmyroom.com /> <a href="http://www.aroundmyroom.com/2008/07/04/ch3snas-firmware-104rc4/#comment-33934#comment-33934"
    title="problematisch" 
     target="_blank" rel="nofollow noopener noreferrer" >
  problematisch&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>, ein eingesetztes fun_plug mit dem Lüfterskript kann sogar zu Schäden am NAS führen!
Da Conceptronic anscheinend den <link rel=dns-prefetch href=//forum.dsmg600.info /> <a href="http://forum.dsmg600.info/t1506-Anyone-seein-TWSI-errors-log%3F.html"
    title="Kernel nicht richtig kompiliert" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Kernel nicht richtig kompiliert&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> hat (zumindest deuten die TWSI-Fehler im dmesg drauf hin), gibt es Probleme bei der Steuerung des Lüfters.
Wie ein User geschrieben hat, kann das Skript in den Firmware-Versionen 1.04RC2 und 1.04RC3 (1.04RC4 wurde noch nicht getestet) die Lüfter nicht mehr einschalten und das Programm <em>temperature</em> gibt falsche Werte aus! Damit schaltet sich das NAS zwar automatisch bei der Temperaturgrenze ab, liegt diese jedoch zu hoch, kann es zu ernsthaften Schäden an der Hardware führen!</p>
<p>Ich rate daher nochmal ausdrücklich von diesen RC-Versionen ab.</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>Firmware 1.05 für das Conceptronic CH3SNAS ist erschienen</title>
      
      
      <link>https://wolf-u.li/firmware-105-fuer-das-conceptronic-ch3snas-ist-erschienen/</link>
      <pubDate>Fri, 02 Jan 2009 12:44:45 +0200</pubDate>
      <guid>https://wolf-u.li/firmware-105-fuer-das-conceptronic-ch3snas-ist-erschienen/</guid>
      <description>&lt;p&gt;Heute ist die Firmware 1.05 für das &lt;a href=&#34;https://wolf-u.li/tag/conceptronic/&#34;
    title=&#34;Conceptronic&#34; 
   &gt;
  Conceptronic&lt;/a&gt; &lt;a href=&#34;https://wolf-u.li/tag/ch3snas/&#34;
    title=&#34;CH3SNAS&#34; 
   &gt;
  CH3SNAS&lt;/a&gt; erschienen. Es ist eine Final-Version und bringt &lt;link rel=dns-prefetch href=//www.aroundmyroom.com /&gt; &lt;a href=&#34;http://www.aroundmyroom.com/2009/01/02/ch3snas-105-firmware/&#34;
    title=&#34;laut Dennis&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  laut Dennis&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; und den RELEASE-Notes folgende Features mit:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Heute ist die Firmware 1.05 für das <a href="/tag/conceptronic/"
    title="Conceptronic" 
   >
  Conceptronic</a> <a href="/tag/ch3snas/"
    title="CH3SNAS" 
   >
  CH3SNAS</a> erschienen. Es ist eine Final-Version und bringt <link rel=dns-prefetch href=//www.aroundmyroom.com /> <a href="http://www.aroundmyroom.com/2009/01/02/ch3snas-105-firmware/"
    title="laut Dennis" 
     target="_blank" rel="nofollow noopener noreferrer" >
  laut Dennis&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 den RELEASE-Notes folgende Features mit:</p>
<ol>
<li>FTP Server unterstützt Koreanische und Türkische Zeichensätze</li>
<li>Festplattengröße bis 1,5 TB nun unterstützt</li>
<li>Fanscript aktualisiert</li>
<li>RAID Migration: Normal zu RAID 1</li>
<li>Zeit-Drift-Fehler behoben: Wenn Sommer/Winterzeit aktiviert war, wurde die Zeit nach jedem Reboot um eine Stunde nach vorne gestellt</li>
<li>Unterstützung für <code>.info</code>-Domains bei den Email-Alarmen</li>
<li>Unterstützung für komplexere Passwörter aus der den folgenden fünf Buchstaben: @ : / \ %</li>
<li>Erste HDD konnte nicht &ldquo;schlafen&rdquo; gehen</li>
<li>Auto-Refresh-Timer entfernt, nutzt jetzt Inotify für UPnP AV und iTunes Server Auto-Refresh.</li>
</ol>
<p>Zum <link rel=dns-prefetch href=//download.conceptronic.net /> <a href="http://download.conceptronic.net/Firmware/C05-321_CH3SNAS_Firmware_Update_v1.05.zip"
    title="Download" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Download&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></p>
<p>Wie immer der Updatevorgang:</p>
<ul>
<li>Telnet aktivieren (<code>chmod a+x /ffp/start/telnetd.sh</code>)</li>
<li>Datei fun_plug umbenennen, sodass das fun_plug deaktiviert wird</li>
<li>Firmware-Update aufspielen</li>
<li>Auf Werkseinstellungen zurücksetzen</li>
<li>fun_plug zurück umstellen</li>
<li>Per Telnet einloggen und Root-Passwort neu setzen</li>
<li>store-passwd.sh zum aktualisieren des internen Passwortspeichers aufrufen</li>
<li>Fehler hier berichten!</li>
</ul>
<p>Eine Sache noch für 1,5TB-HDD&rsquo;s: Bitte sicherstellen, dass diese Festplatten komplett leer (Ohne Partitionen) sind, bevor man diese einsetzt!</p>
<p>Danke an <link rel=dns-prefetch href=//www.aroundmyroom.com /> <a href="http://www.aroundmyroom.com/2009/01/02/ch3snas-105-firmware/"
    title="Dennis" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Dennis&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> für die Benachrichtigung!</p>
<p><strong>Update:</strong></p>
<ul>
<li>Bisher entdeckte Fehler:
<ul>
<li>Geschwindigkeit des Netzwerks wird immer als 0 angezeigt</li>
<li>Uptime ist viel zu hoch (14247 Tage)</li>
</ul>
</li>
<li>Uname -a: <code>Linux ULINAS 2.6.12.6-arm1 #30 Tue Dec 30 18:14:59 CST 2008 armv5tejl unknown</code></li>
</ul>
]]></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>Fun_plug für das Conceptronic CH3SNAS</title>
      
      
      <link>https://wolf-u.li/fun_plug-fuer-das-conceptronic-ch3snas/</link>
      <pubDate>Tue, 13 Nov 2007 13:06:44 +1300</pubDate>
      <guid>https://wolf-u.li/fun_plug-fuer-das-conceptronic-ch3snas/</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/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/&#34;
    title=&#34;hier&#34; 
   &gt;
  hier&lt;/a&gt;.
Auf dem &lt;a href=&#34;https://wolf-u.li/758/conceptronic-ch3snas/&#34;
    title=&#34;CH3SNAS&#34; 
   &gt;
  CH3SNAS&lt;/a&gt; läuft ein kleines &amp;ldquo;Linux&amp;rdquo; mit einer vollständigen Konsole ;) Diese können dank einem interessanten Feature namens &amp;ldquo;fun_plug&amp;rdquo; um diverse Zusatzfunktionalitäten wie Webserver, SSH-Server und Rsync (für Backups) erweitert werden.&lt;/p&gt;
&lt;p&gt;Das &amp;ldquo;funplug&amp;rdquo; ist eine, auf der Festplatte abgelegte Datei, welche bei jedem Startup des Geräts ausgeführt wird. Ein findiger Entwickler aus Berlin namens &amp;ldquo;fonz&amp;rdquo; hat über &lt;link rel=dns-prefetch href=//forum.dsmg600.info /&gt; &lt;a href=&#34;http://forum.dsmg600.info/f3-DNS323-General-Discussion.html&#34;
    title=&#34;DNS-323-Forum&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  DNS-323-Forum&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; eine Erweiterung vorgestellt, welche diese Datei nutzt, um zusätzliche Software, wie lighttpd (mit PHP 5.2!)oder Lüftersteuerungen zu starten.&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="/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="hier" 
   >
  hier</a>.
Auf dem <a href="/758/conceptronic-ch3snas/"
    title="CH3SNAS" 
   >
  CH3SNAS</a> läuft ein kleines &ldquo;Linux&rdquo; mit einer vollständigen Konsole ;) Diese können dank einem interessanten Feature namens &ldquo;fun_plug&rdquo; um diverse Zusatzfunktionalitäten wie Webserver, SSH-Server und Rsync (für Backups) erweitert werden.</p>
<p>Das &ldquo;funplug&rdquo; ist eine, auf der Festplatte abgelegte Datei, welche bei jedem Startup des Geräts ausgeführt wird. Ein findiger Entwickler aus Berlin namens &ldquo;fonz&rdquo; hat über <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> eine Erweiterung vorgestellt, welche diese Datei nutzt, um zusätzliche Software, wie lighttpd (mit PHP 5.2!)oder Lüftersteuerungen zu starten.</p>
<p><strong>Achtung</strong>
Die untenstehenden Anweisungen wurden für das fun_plug V0.3 bzw V0.4 geschrieben. Sollten Sie V0.5 einsetzen wollen, so müssen die Anweisungen <a href="/1426/fun_plug-05-auf-dem-conceptronic-ch3snas-bzw-d-link-dns-323-installieren/"
    title="hier" 
   >
  hier</a> verwenden!</p>
<p>Die Erweiterung kann man von seinem Repository <del><link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.3/"
    title="downloaden (V0.3)" 
     target="_blank" rel="nofollow noopener noreferrer" >
  downloaden (V0.3)&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></del> <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.4/"
    title="downloaden (V0.4)" 
     target="_blank" rel="nofollow noopener noreferrer" >
  downloaden (V0.4)&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>, dort gibt es auch die ausführliche <del><link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.3/README.txt"
    title="README (V0.3)" 
     target="_blank" rel="nofollow noopener noreferrer" >
  README (V0.3)&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></del> <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.4/README.txt"
    title="README (V0.4)" 
     target="_blank" rel="nofollow noopener noreferrer" >
  README (V0.4)&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><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 werden. Das Verwenden dieses Artikels geschieht auf eigene Gefahr!</strong></p>
<p>Zuerst aus dem Repository die Datei <del><em>funplug-0.3.tar.gz</em></del> <em>funplug-0.4.tar.gz</em> runterladen, entpacken und die Dateien ins Hauptverzeichnis der ersten Festplatte ablegen. Anschließend das CH3SNAS rebooten.</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;, 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>) auf dem NAS einloggen.</p>
<blockquote>
<p>Login: root
Passwort sollte keines verlangt werden</p>
</blockquote>
<p>Als eine der ersten Aktionen habe ich das root-Passwort geändert. Dazu muss als erstes das folgende Command 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></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;root::0:0:99999:7:::&#34;</span> &gt;&gt;/etc/shadow
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend ein &ldquo;<code>passwd</code>&rdquo; in die Konsole eintippen, woraufhin der Anwender zweimal nach dem neuen Passwort gefragt wird. Damit nun das Passwort persistent im Speicher des NAS gespeichert wird, muss das folgende Command ausgeführt werden: <code>store-passwd.sh</code>
<strong>Bitte stelle sicher, dass du store-passwd.sh ausgeführt wurde! Lieber zweimal als gar nicht!</strong></p>
<p>Auf der Festplatte (Bei mir unter &ldquo;<code>/mnt/HD_a2/</code>&rdquo;) ist ein Verzeichnis namens &ldquo;fun_plug.d&rdquo; angelegt worden. Darin befindet sich ein Unterverzeichnis &ldquo;start&rdquo;, in dem verschiedene Startdateien für diverse Dienste liegen. Geht man nun via Telnet in dieses Verzeichnis (&quot;<code>cd /mnt/HD_a2/fun_plug.d/start/</code>&quot;), so stellt man fest, dass nur wenige Dateien ausführbar gekennzeichnet sind (chmod a+x). Genau diese Dienste werden bei Start des NAS bzw. bei der Ausführung des fun_plug gestartet.
Ich persönlich bin kein Fan von telnet, jedoch wenn man dieses nutzen möchte und eine Authentifizierung stattfinden soll, muss man eine Datei editieren. Im Verzeichnis &ldquo;<code>fun_plug.d/start</code>&rdquo; liegt die Datei <code>telnetd.sh</code>. Editieren Sie diese, sodass die Kommentarzeilen getauscht werden, also statt:</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="nv">LOPT</span><span class="o">=</span><span class="s2">&#34;-l </span><span class="si">${</span><span class="nv">BINDIR</span><span class="si">}</span><span class="s2">/sh&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1">#LOPT=&#34;-l ${BINDIR}/login&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>folgendes steht:</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">#LOPT=&#34;-l ${BINDIR}/sh&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">LOPT</span><span class="o">=</span><span class="s2">&#34;-l </span><span class="si">${</span><span class="nv">BINDIR</span><span class="si">}</span><span class="s2">/login&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun möchte ich SSH aktivieren und Telnet deaktivieren. Daher setze ich <code>chmod a+x dropbear.sh</code>, um den Dropbear SSH-Server ausführbar zu machen und daher beim Systemstart mitstarten zu lassen. Vorsichtshalber habe ich den Telnetserver noch einen Reboot mitlaufen lassen (nur zur Sicherheit, dass ich auch garantiert wieder rein komme). Anschließend habe ich &ldquo;<code>chmod a-x telnetd.sh</code>&rdquo; ausgeführt, damit dieser nicht mehr gestartet wird.</p>
<p>Weitere Software kann man einfach installieren, indem man diese aus dem Repository <link rel=dns-prefetch href=//www.inreto.de /> <a href="http://www.inreto.de/dns323/fun-plug/0.4/"
    title="herunterlädt" 
     target="_blank" rel="nofollow noopener noreferrer" >
  herunterlädt&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 auf dem NAS ablegt. Nun muss man sich per SSH/Telnet auf dem NAS einloggen und 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">funpkg.sh /pfad/zum/paket/name.tgz
</span></span></code></pre></td></tr></table>
</div>
</div><p>installieren.</p>
<p>Zum Schluss dieses Artikels sollte nun auf Ihrem NAS funplug-0.4 funktionstüchtig sein.</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>
  </channel>
</rss>
