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

<channel>
	<title>milindur.de</title>
	<atom:link href="http://www.milindur.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.milindur.de</link>
	<description>Mein externes Notizbuch...</description>
	<lastBuildDate>Sat, 25 Jun 2011 21:58:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Neues Hobby: Fotografie</title>
		<link>http://www.milindur.de/2011/06/neues-hobby-fotografie/</link>
		<comments>http://www.milindur.de/2011/06/neues-hobby-fotografie/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 21:57:54 +0000</pubDate>
		<dc:creator>Christian Andersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fotografie]]></category>
		<category><![CDATA[tiere]]></category>
		<category><![CDATA[zoo]]></category>
		<category><![CDATA[zoom]]></category>

		<guid isPermaLink="false">http://www.milindur.de/?p=52</guid>
		<description><![CDATA[Das Thema "Fotografie" ist für mich prinzipiell nicht neu, ich habe in der Vergangenheit verschiedene Kameras besessen (zuletzt eine Konica-Minolta Dimage A1), aber in den letzten drei oder vier Jahren ist da fast nichts passiert. Doch durch einen Schnappschuss, der mir mit der DSLR eines Freundes letztens gelungen ist, bin ich auf das Thema wieder [...]]]></description>
			<content:encoded><![CDATA[<p>Das Thema "Fotografie" ist für mich prinzipiell nicht neu, ich habe in der Vergangenheit verschiedene Kameras besessen (zuletzt eine Konica-Minolta Dimage A1), aber in den letzten drei oder vier Jahren ist da fast nichts passiert. Doch durch einen Schnappschuss, der mir mit der DSLR eines Freundes letztens gelungen ist, bin ich auf das Thema wieder aufmerksam geworden.</p>
<p>Der Entschluss stand schnell fest, dass ich mir nun auch eine DSLR-Ausrüstung zulegen werde. Nach Vergleich von verschiedenen Modellen (sowohl aus dem DSLR- wie auch aus dem Systemkamera-Bereich bei http://www.dpreview.com) ist die Entscheidung auf die Canon EOS 60D gefallen, wobei die Wahl für Canon auch dadurch begünstigt wurde, dass der zuvor genannte Freund auch eine Canon-Ausrüstung hat und somit ein gewisser Austausch möglich ist.</p>
<p>Motive für erste Testaufnahmen fand ich letzten Donnerstag in der Zoom Erlebniswelt Gelsenkirchen.</p>

<a href='http://www.milindur.de/2011/06/neues-hobby-fotografie/seela%c2%b6we/' title='Seelöwe'><img width="150" height="150" src="http://www.milindur.de/wp-content/uploads/2011/06/IMG_0036-150x150.jpg" class="attachment-thumbnail" alt="Seelöwe" title="Seelöwe" /></a>
<a href='http://www.milindur.de/2011/06/neues-hobby-fotografie/fischotter/' title='Fischotter'><img width="150" height="150" src="http://www.milindur.de/wp-content/uploads/2011/06/IMG_0146-150x150.jpg" class="attachment-thumbnail" alt="Fischotter" title="Fischotter" /></a>
<a href='http://www.milindur.de/2011/06/neues-hobby-fotografie/waschba%c2%a4r/' title='Waschbär'><img width="150" height="150" src="http://www.milindur.de/wp-content/uploads/2011/06/IMG_0052-150x150.jpg" class="attachment-thumbnail" alt="Waschbär" title="Waschbär" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.milindur.de/2011/06/neues-hobby-fotografie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stadt Bremerhaven?</title>
		<link>http://www.milindur.de/2011/03/stadt-bremerhaven/</link>
		<comments>http://www.milindur.de/2011/03/stadt-bremerhaven/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 12:07:13 +0000</pubDate>
		<dc:creator>Christian Andersen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.milindur.de/?p=46</guid>
		<description><![CDATA[Irgendwann muss ich mal nachlesen, wie es kommt, dass unter der Domain stadt-bremerhaven.de ein Tech-Blog zu finden ist. Und dieses Blog gibt es nun schon seit 6 Jahren. Aus diesem Anlass veranstaltet Caschy, so nennt sich der sympathische Autor des Blogs, ein Gewinnspiel. Mit diesem Artikel erkaufe ich mir - da bin ich ganz ehrlich [...]]]></description>
			<content:encoded><![CDATA[<p>Irgendwann muss ich mal nachlesen, wie es kommt, dass unter der Domain <a title="stadt-bremerhaven.de" href="http://stadt-bremerhaven.de">stadt-bremerhaven.de</a> ein Tech-Blog zu finden ist. Und dieses Blog gibt es nun schon seit <a href="http://stadt-bremerhaven.de/die-6-jahre-ich-rock-es-raus-verlosung">6 Jahren</a>. Aus diesem Anlass veranstaltet Caschy, so nennt sich der sympathische Autor des Blogs, ein <a href="http://stadt-bremerhaven.de/die-6-jahre-ich-rock-es-raus-verlosung">Gewinnspiel</a>. Mit diesem Artikel erkaufe ich mir - da bin ich ganz ehrlich - zusätzliche Lose <img src='http://www.milindur.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>Herzlichen Glückwunsch zum Geburtstag <img src='http://www.milindur.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milindur.de/2011/03/stadt-bremerhaven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chaosradio Express</title>
		<link>http://www.milindur.de/2009/08/chaosradio-express/</link>
		<comments>http://www.milindur.de/2009/08/chaosradio-express/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 16:14:02 +0000</pubDate>
		<dc:creator>Christian Andersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[blog4cre]]></category>
		<category><![CDATA[chaosradio]]></category>
		<category><![CDATA[chaosradio express]]></category>
		<category><![CDATA[cre]]></category>
		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://wp.milindur.de/?p=12</guid>
		<description><![CDATA[Im Podcast Chaosradio Express (CRE) plaudert Tim Pritlove mit ausgewählten Gesprächspartnern über interessante und bzw. oder auch hochaktuelle Themen aus den Bereichen Technologie, Gesellschaft und Kultur.]]></description>
			<content:encoded><![CDATA[<p>Im Podcast <a href="http://chaosradio.ccc.de/chaosradio_express.html">Chaosradio Express</a> (CRE) plaudert <a href="http://tim.geekheim.de/">Tim Pritlove</a> mit ausgewählten Gesprächspartnern über interessante und bzw. oder  auch hochaktuelle Themen aus den Bereichen Technologie, Gesellschaft und Kultur.</p>
<p>Seit einigen Monaten ist CRE für mich der meistgehörte und auch interessanteste Podcast. Dies liegt einerseits sicherlich an der Themenauswahl, die im Fall der technologischen Themen häufig zu meiner Arbeit oder zu meinen Hobbies passt. Die gesellschaftlichen Themen überzeugen schon durch ihre Aktualität, gerade und insb. auch im Bereich der computer- und netzbezogenen Themen.</p>
<p>Was mir aber besonders an Chaosradio Express gefällt, ist der Stil. Es handelt sich um einen Interview-Podcast. Eingeleitet wird die Sendung durch ein Audio-Zitat (wo gräbt Tim die nur immer aus?), anschließend folgt ein CRE-Jingle. Danach gibt es nur noch den oder die Gesprächspartner und Tim als Moderator. In einem ungezwungenen und vor allem freien Gespräch wird über das Thema gesprochen. Dazu gehört sowohl die Einordnung des Themas als auch ein ggf. historischer Rückblick. Zwischendurch fasst Tim das Gespräch immer mal wieder zusammen, so dass ich bisher nie den Anschluss verloren habe (wobei das Thema <a href="http://chaosradio.ccc.de/cre088.html">Python und PyPy</a> schon recht abstrakt war *g*). Irgendwann ist das Gespräch dann durch - das kann schon nach einer Stunde oder auch erst nach 2,5 Stunden der Fall sein - und der Podcast ist zu Ende. Alle weitere Infos und Links zur Sendung kann ich dann bei Bedarf auf der<a href="http://chaosradio.ccc.de/chaosradio_express.html"> CRE-Webseite</a> sowie im <a href="https://wiki.chaosradio.ccc.de/">CRE-Wiki</a> (oder in der Sendungsbeschreibung in meinem iPod) nachlesen. Feedback und Kommentare sind im <a href="http://blog.chaosradio.ccc.de/">CRE-Blog</a> gerne gesehen.</p>
<p>Dieser Stil nutzt aus, dass ich als Hörer in einem Podcast jederzeit pausieren kann. Nur so sind so lange und ausführliche Gespräche möglich. Vergleichbare Formate sind im Regelfall wohl in keinem anderen Medium realisierbar. Im Radio wird mindestens für die Nachrichten unterbrochen oder eben für Musik, Werbung und andere Dinge. Im TV habe ich noch nie eine Sendung gesehen, in der mit nur einer Person ein 2,5-stündiges Gespräch geführt wurde - es gab oder gibt zwar Formate, die in diese Richtung gehen, aber nicht so weit und in der Regelmäßigkeit wie CRE es tut. Auch wenn manchen Hörern die Podcasts zu lang werden, ich finde gerade das gut. Podcasts bieten genau diese Möglichkeit und Freiheit, warum sollte dies nicht genutzt werden?</p>
<p>Andere Podcasts gehen da anders vor. Häufig erinnern mich diese an Radio- oder gar Nachrichten-Sendungen. Es gibt Jingles, es wird ein Themen-Überblick vorgelesen, es folgen die einzelnen Themen von Jingles getrennt, zwischendurch werden vielleicht noch Kurznachrichten verlesen (ein Beispiel dafür ist - zumindest in den Sendungen, in die ich mal reingehört habe - der Podcast <a href="http://www.handelsblatt.com/audio/bel-etage/">Bel étage</a> des Handelsblatts). Diesen Stil mag ich persönlich nicht. Ich benötige keine vorgelesenen Kurz-Nachrichten o.ä., sowas ist in einem (ggf. zum Podcast zugehörigen) Blog in entsprechenden Kurz-Artikeln besser aufgehoben.</p>
<p>Ein Podcast bietet also - im Gegensatz zu allen anderen Medien - die Möglichkeit auch lange Gespräche über ein einzelnes Thema oder ein Themengebiet zu präsentieren. Dank "Pause"-Funktion komme ich als Hörer damit gut zurecht. Daher: weiter so <img src='http://www.milindur.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> !</p>
<p>Dieser Artikel ist übrigens als Reaktion auf Tims Aufruf zum <a href="http://tim.geekheim.de/2009/08/09/cre-kettenblogging-fr-den-weltfrieden/">CRE-Kettenblogging</a> entstanden. Wenn Du der Kette gefolgt bist, müsstest Du von <a href="http://www.smichel.org/blog/2009/08/12/chaosradio-express-nachfragen-erlaubt/">Chaosradio Express - Nachfragen erlaubt</a> kommen und könntest in <a href="http://www.hobbingen.de/index.php/332/werbung-fuer-chaosradio-express-cre-blog4cre/">Werbung für Chaosradio Express (CRE)</a> weiterlesen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milindur.de/2009/08/chaosradio-express/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>System Recovery Mode für QNAP TS-109, TS-209, TS-409 &amp; TS-409U</title>
		<link>http://www.milindur.de/2008/12/system-recovery-mode-fu-qnap-ts-109-ts-209-ts-409-ts-409u/</link>
		<comments>http://www.milindur.de/2008/12/system-recovery-mode-fu-qnap-ts-109-ts-209-ts-409-ts-409u/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 15:12:30 +0000</pubDate>
		<dc:creator>Christian Andersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[qnap]]></category>
		<category><![CDATA[recovery]]></category>
		<category><![CDATA[ts109]]></category>
		<category><![CDATA[ts209]]></category>
		<category><![CDATA[ts409]]></category>

		<guid isPermaLink="false">http://wp.milindur.de/?p=10</guid>
		<description><![CDATA[Vor rund 4 Monaten habe ich mich bereits ausführlich mit der Wiederherstellung der QNAP TS-109 beschäftigt. Dies ist besonders dann interessant, wenn man statt der originalen Firmware z.B. Debian verwenden möchte. Aber auch bei fehlgeschlagenen Upgrades der Original-Firmware könnte eine Wiederherstellung des Flash notwendig werden. QNAP hat diese Problematik auch erkannt und stellt nun einen [...]]]></description>
			<content:encoded><![CDATA[<p>Vor rund 4 Monaten habe ich mich bereits ausführlich mit der <a href="http://www.milindur.de/2008/08/recovery-der-qnap-ts-109-u-boot/">Wiederherstellung der QNAP TS-109</a> beschäftigt. Dies ist besonders dann interessant, wenn man statt der originalen Firmware z.B. Debian verwenden möchte. Aber auch bei fehlgeschlagenen Upgrades der Original-Firmware könnte eine Wiederherstellung des Flash notwendig werden.</p>
<p>QNAP hat diese Problematik auch erkannt und stellt nun einen offiziellen Recovery Mode bereit, der wichtige Flash-Bereiche per TFTP wiederherstellen kann. QNAP-Geräte, die vor 2009 ausgeliefert wurden, beinhalten diesen Recovery Mode noch nicht, er kann aber nachgerüstet werden. Im wesentlichen muss dafür der Bootloader ("U-Boot") ausgetauscht werden.</p>
<p>Das Update des Bootloaders für QNAP-Geräte mit Original-Firmware wird im <a href="http://wiki.qnap.com/wiki/System_Recovery_Mode">QNAP-Wiki</a> beschrieben. Für Systeme, die bereits Debian verwenden, hat Martin Michlmayr <a href="http://www.cyrius.com/journal/debian/orion/qnap/recovery-mode-available">Anleitungen</a> bereitgestellt.</p>
<p>Danke an Martin für die Info zum Recovery Mode sowie die ausführliche Anleitung. Bei mir hat das Update problemlos funktioniert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milindur.de/2008/12/system-recovery-mode-fu-qnap-ts-109-ts-209-ts-409-ts-409u/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recovery der QNAP TS-109 (U-Boot)</title>
		<link>http://www.milindur.de/2008/08/recovery-der-qnap-ts-109-u-boot/</link>
		<comments>http://www.milindur.de/2008/08/recovery-der-qnap-ts-109-u-boot/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 14:58:09 +0000</pubDate>
		<dc:creator>Christian Andersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[qnap]]></category>
		<category><![CDATA[recovery]]></category>
		<category><![CDATA[ts109]]></category>
		<category><![CDATA[uboot]]></category>

		<guid isPermaLink="false">http://wp.milindur.de/?p=8</guid>
		<description><![CDATA[In diesem Artikel soll es um die Wiederherstellung einer QNAP TS-109 NAS gehen. Im ersten Artikel zum Einsatz von Debian Lenny auf diesem Gerät habe ich bereits erwähnt, dass es zwar ein offizielles Supportdokument von QNAP gibt, dieses aber die falschen Adressen enthält. Update 14.12.2008: Das Support-Dokument ist nun hier (Benutzer: csdread, Passwort: csdread) in [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Artikel soll es um die Wiederherstellung einer QNAP TS-109 NAS gehen. Im ersten Artikel zum <a href="http://www.milindur.de/2008/08/debian-auf-qnap-ts-109/">Einsatz von Debian Lenny</a> auf diesem Gerät habe ich bereits erwähnt, dass es zwar ein offizielles <a href="ftp://ftp.qnap.com/NAS/Burning%20Firmware/">Supportdokument</a> von QNAP gibt, dieses aber die falschen Adressen enthält.</p>
<p><strong>Update 14.12.2008: Das Support-Dokument ist nun </strong><a href="ftp://ftp.qnap.com/NAS/Burning/"><strong>hier</strong></a><strong> (Benutzer: csdread, Passwort: csdread) in dem Archiv "TS-209 Update Image.rar" zu finden und enthält mittlerweile die korrigierten Adressen. Die Adressen sind mit den von mir ermittelten Adressen weiter unten identisch.</strong></p>
<p>Auf dem TS-109 (sowie auf den anderen TS-x09-Geräten) wird der Bootloader <a href="http://www.denx.de/wiki/U-Boot">"Das U-Boot"</a> verwendet. Die Dokumentation zu U-Boot befindet sich <a href="http://www.denx.de/wiki/DULG/Manual">hier</a>.</p>
<p>Vor einer Installation von Debian sollten unbedingt Bereiche des Flash-Speichers gesichert werden. Es handelt sich dabei um den Kernel (/dev/mtdblock1), initrd (/dev/mtdblock2) und die U-Boot-Konfiguration (/dev/mtdblock4). Kernel sowie initrd werden bei der Debian-Installation durch alternative Versionen ersetzt. Sollte die Installation von Debian nicht erfolgreich sein, dann müssen diese beiden Bereiche wiederhergestellt werden, um eine Rückkehr zur QNAP-Firmware zu ermöglichen. Diese beiden Bereiche müssen auch auf die Originalversionen zurückgesetzt werden, wenn nach einer erfolgreichen Installation von Debian eine Rückkehr zu QNAP gewünscht wird.</p>
<p>Unter Linux kann eine Sicherung so erfolgen:</p>
<p><code>cat /dev/mtdblock1 &gt; mtd1<br />
cat /dev/mtdblock2 &gt; mtd2<br />
cat /dev/mtdblock4 &gt; mtd4</code></p>
<p>Die Wiederherstellung läuft dann analog so:</p>
<p><code>cat mtd1 &gt; /dev/mtdblock1<br />
cat mtd2 &gt; /dev/mtdblock2<br />
cat mtd4 &gt; /dev/mtdblock4</code></p>
<p>Wenn das System nun aber nicht sauber startet und kein Zugriff auf eine Shell besteht, dann muss dieser Prozess über die serielle Konsole mit U-Boot erfolgen. Dazu muss zunächst ein passendes Adapterkabel erstellt werden, welches die Spannungspegel zwischen PC und NAS konvertiert. Schließlich wird noch ein Terminalprogramm benötigt, welches das Dateitransferprotokoll Kermit versteht. Unter Windows kann dafür z.B. HyperTerminal verwendet werden, unter Linux minicom in Verbindung mit gkermit. Weitere Informationen zum Adapterkabel und zur Konfiguration des Terminals befinden sich <a href="http://scratchpad.wikia.com/wiki/Open_Turbostation:SerialPort">hier</a>.</p>
<p>Wird die TS-109 mit angeschlossenem Terminal gestartet, erscheint wenige Augenblicke später der U-Boot Bootloader. Dieser wartet ein paar Sekunden auf einen Tastendruck, um die U-Boot Shell zu starten. Ohne Tastenbetätigung bootet das installierte System. Dies sollte man auf jeden Fall einmal bei Problemen machen, da der Bootprozess von Linux einige Hinweise auf mögliche Ursachen eines Problems liefert. Insb. Unterbrechungen, die zur manuellen Durchführung eines fsck auffordern, sind bei mir bisher beliebte Gründe dafür, dass mein System von alleine nicht starten will.</p>
<p>In der U-Boot Shell gibt es diverse Kommandos, mit denen man Informationen zum System erhält und die U-Boot-Konfiguration anzeigen sowie ändern kann. Interessant sind für uns die Kommandos <code>protect</code>, <code>iminfo</code>, <code>loadb</code> und <code>cp.b</code>.</p>
<p>Um nun die zuvor genannten Flash-Bereiche (kernel, initrd, ubootconfig) zu ändern, wird noch deren Adresse im Flash benötigt. Die Adressen findet man <a href="http://scratchpad.wikia.com/wiki/Open_Turbostation:TS109#Firmware">hier</a>. Allerdings sind die Adressen dort relativ zur Startadresse des Flash (<tt>0xff000000</tt>) angegeben, so dass die Adressen im U-Boot so verwendet werden müssen:</p>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td><tt>0xff000000 - 0xff1fffff</tt></td>
<td>/dev/mtdblock1</td>
<td>Kernel</td>
</tr>
<tr>
<td><tt>0xff200000 - 0xff5fffff</tt></td>
<td>/dev/mtdblock2</td>
<td>Initrd ("RootFS1")</td>
</tr>
<tr>
<td><tt>0xff600000 - 0xff6fffff</tt></td>
<td>/dev/mtdblock3</td>
<td>RootFS2</td>
</tr>
<tr>
<td><tt>0xff760000 - 0xff77ffff</tt></td>
<td>/dev/mtdblock4</td>
<td>U-Boot-Config</td>
</tr>
</tbody>
</table>
<p><strong>Update 14.12.2008: /dev/mtdblock3 ergänzt<br />
</strong></p>
<p>Um die Speicheradresse für den Kernel zu prüfen, kann das Kommando <code>iminfo</code> verwendet werden:</p>
<p><code>Marvell&gt;&gt; iminfo 0xff000000<br />
## Checking Image at ff000000 ...<br />
Image Name:   Debian kernel<br />
Created:      2008-08-13  11:32:38 UTC<br />
Image Type:   ARM Linux Kernel Image (uncompressed)<br />
Data Size:    1366044 Bytes =  1.3 MB<br />
Load Address: 00008000<br />
Entry Point:  00008000<br />
Verifying Checksum ... OK</code></p>
<p>Wenn an der angegebenen Adresse ein gültiges Kernel-Image liegt, dann sollte die Ausgabe wie oben aussehen. Erscheint dort eine Fehlermeldung, dann ist entweder kein gültiges Image vorhanden oder die Adresse ist falsch.</p>
<p><strong>Update 14.12.2008: Hier stand mal ein Hinweis, dass der Schreibschutz des Flash aufgehoben werden muss (wird auch im QNAP-Dokument so gemacht). Abgesehen von der U-Boot-Konfiguration (Speicherbereich ab <tt>0xff760000</tt>) ist aber kein Bereich geschützt, der nachfolgende beschrieben werden würde. Die U-Boot-Konfiguration muss normalerweise nicht verändert werden, daher entfällt die Aufhebung des Schreibschutzes. Sollte dies doch erforderlich werden, steht dafür das Kommando <tt>protect on</tt> bzw. <tt>protect off</tt> zur Verfügung.<br />
</strong></p>
<p>Anschließend wird die Datei mit den zu flashenden Daten per Kermit ins RAM übertragen (<tt>0x00400000</tt> ist die RAM-Adresse, die als Ziel für solche Operationen im QNAP-Supportdokument vorgeschlagen wird):</p>
<p><code>loadb 0x00400000</code></p>
<p>Nach diesem Kommando erwartet U-Boot den Kermit-Transfer der Datei (z.B. mtd1). Abschließend müssen die Daten vom RAM ins Flash geschrieben werden, zuvor muss der Flash-Bereich jedoch gelöscht werden.</p>
<p>Um den Kernel (mtdblock1) zu schreiben, sind die folgenden Kommandos notwendig:</p>
<p><code>loadb 0x00400000</code></p>
<p>Im Terminalprogramm muss nun der Transfer der Datei (mtd1) per Kermit gestartet werden.</p>
<p><code>erase 0xff000000 0xff1fffff<br />
cp.b 0x00400000 0xff000000 ${filesize}</code></p>
<p>Die Angabe <tt>${filesize}</tt> wird durch die Umgebungsvariable <tt>filesize</tt> ersetzt, welche beim <tt>loadb</tt>-Kommando auf die Größe der übertragenden Datei gesetzt wurde.</p>
<p>Für initrd (mtdblock2) sind die Kommandos wie folgt:</p>
<p><code>loadb 0x00400000</code></p>
<p>Im Terminalprogramm muss nun der Transfer der Datei (mtd2) per Kermit gestartet werden.</p>
<p><code>erase 0xff200000 0xff5fffff<br />
cp.b 0x00400000 0xff200000 ${filesize}</code></p>
<p>Nun kommt der spannende Moment, der über das weitere Schicksal des Systems entscheidet <img src='http://www.milindur.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> :</p>
<p><code>reset</code></p>
<p>Damit startet das System neu. Wenn man vorher keine Fehler gemacht hat, dann sollte einen Augenblick später wieder U-Boot mit der neuen Konfiguration starten. Bei Wiederherstellung der Original-Daten von QNAP kann nun eine Installation der Firmware mit dem QNAP-Finder erfolgen oder eine (erneute) Installation von Debian erfolgen.</p>
<p>Viel Glück... <img src='http://www.milindur.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><em>Achja, alle hier gemachten Angaben (insb. zu Speicheradressen) wurden nach bestem Wissen und Gewissen zusammengestellt. Ich übernehme aber keine Gewährleistung dafür.</em></p>
<p><strong>Update</strong></p>
<p>loadb-Anweisungen für mtdblock1/2 vervollständigt. Danke an Ingo S. für den Hinweis.</p>
<p><strong>Update 14.12.2008</strong></p>
<p>Hinweis auf neues QNAP-Supportdokument, Speicheradresse für mtdblock3 hinzugefügt, protect off all entfernt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milindur.de/2008/08/recovery-der-qnap-ts-109-u-boot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug im DHCPv6-Client von Windows Vista?</title>
		<link>http://www.milindur.de/2008/08/bug-im-dhcpv6-client-von-windows-vista/</link>
		<comments>http://www.milindur.de/2008/08/bug-im-dhcpv6-client-von-windows-vista/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 11:29:24 +0000</pubDate>
		<dc:creator>Christian Andersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[dhcpv6]]></category>
		<category><![CDATA[dibbler]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://wp.milindur.de/?p=6</guid>
		<description><![CDATA[Ich habe mit der Einrichtung von IPv6 in meinem privaten Netzwerk und auf diesem Server begonnen. Zu diesem Thema werde ich später sicherlich noch mehr schreiben. Hier soll es nun um (einen) mögliche(n) Fehler in der Implementierung des DHCPv6-Clienten von Windows Vista gehen. Aber der Reihe nach. Die Story beginnt damit, dass ich auf meiner [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mit der Einrichtung von <a href="http://de.wikipedia.org/wiki/IPv6">IPv6</a> in meinem privaten Netzwerk und auf diesem Server begonnen. Zu diesem Thema werde ich später sicherlich noch mehr schreiben. Hier soll es nun um (einen) mögliche(n) Fehler in der Implementierung des DHCPv6-Clienten von Windows Vista gehen.</p>
<p>Aber der Reihe nach. Die Story beginnt damit, dass ich auf meiner NAS (Debian Sid auf einem ARM-Gerät) einen IPv6-Tunnel mit <a href="http://www.sixxs.net">SixXS</a> eingerichtet habe. Über SixXS habe ich nun auch ein /48-er IPv6-Präfix. Aus einem /64-er Subnetz soll ein DHCPv6-Server auf dem NAS nun Adressen an Clients verteilen und teilweise gleich noch ein Update des DNS-Servers vornehmen, so dass die Namensauflösung für die dynamisch zugewiesenen Adressen auch funktioniert.</p>
<p>Beim DHCPv6-Server habe ich mich für <a href="http://klub.com.pl/dhcpv6/">Dibbler</a> entschieden. Leider funktioniert Dibbler hier nicht korrekt auf dem NAS. Der Server kann die von Vista gesendete Solicit-Message nicht interpretieren. Auch Wireshark markiert diese Message als "malformed packet". Ich habe mich dann an die <a href="http://klub.com.pl/lists/dibbler/">Dibbler-User-Mailingliste</a> gewandt. Der Entwickler von Dibbler, <a href="javascript:location.href='mailto:'+String.fromCharCode(116,104,111,109,115,111,110,40,97,116,41,107,108,117,98,46,99,111,109,46,112,108)+'?'">Tomasz Mrugalski</a>, ist beim Durchsehen meiner tcpdumps über den Grund für die "malformed packets" gestolpert: <a href="http://klub.com.pl/lists/dibbler/2008-August/000233.html">Ein Bug im DHCPv6-Client von Windows Vista</a>.</p>
<p>DHCPv6 [<a href="http://tools.ietf.org/html/rfc3315">RFC3315</a>] sieht vor, dass der Client den gewünschten FQDN oder einen Teil davon (z.B. einen bestimmten Hostname) anfordern kann [<a href="http://tools.ietf.org/html/rfc4704">RFC4704</a>]. Für solche Domain Namen wird ein ganz bestimmtes Format gefordert, Abschnitt 8 des zuvorgenannten RFC3315 verweist dazu auf Abschnitt 3.1 der Domain Name Specification [<a href="http://tools.ietf.org/html/rfc1035#section-3.1">RFC1035</a>].</p>
<p>Um die folgenden Ausführungen besser verstehen zu können, sollte zunächst beleuchtet werden, wie Domain Namen syntaktisch grundsätzlich aufgebaut sind. Dazu zitiere ich die entsprechende rekursive Definition aus dem RFC1035:</p>
<p><em><tt>&lt;domain&gt; ::= &lt;subdomain&gt; | " "<br />
&lt;subdomain&gt; ::= &lt;label&gt; | &lt;subdomain&gt; "." &lt;label&gt;<br />
&lt;label&gt; ::= &lt;letter&gt; [ [ &lt;ldh-str&gt; ] &lt;let-dig&gt; ]<br />
&lt;ldh-str&gt; ::= &lt;let-dig-hyp&gt; | &lt;let-dig-hyp&gt; &lt;ldh-str&gt;<br />
&lt;let-dig-hyp&gt; ::= &lt;let-dig&gt; | "-"<br />
&lt;let-dig&gt; ::= &lt;letter&gt; | &lt;digit&gt;<br />
&lt;letter&gt; ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case<br />
&lt;digit&gt; ::= any one of the ten digits 0 through 9</tt></em></p>
<p>Damit sind noch nicht alle Regeln abgedeckt, aber die gründsätzliche Struktur passt. Wichtig ist hier insbesondere die Konstruktion (bzw. Bezeichnung), dass eine (Sub-)Domain aus einer Reihe von Labels besteht, die durch Punkte getrennt werden. Im oben genannten Abschnitt 3.1 des RFC1035 steht nun, wie Domain Namen in Nachrichten (auch in DHCPv6) kodiert werden sollen.</p>
<p><em><tt>Domain names in messages are expressed in terms of a sequence of labels. Each label is represented as a one octet length field followed by that number of octets.  Since every domain name ends with the null label of the root, a domain name is terminated by a length byte of zero. The high order two bits of every length octet must be zero, and the remaining six bits of the length field limit the label to 63 octets or less.</tt></em></p>
<p>Ein Domain Name wird also in seine einzelnen Labels zerlegt. Die Kodierung erfolgt nun so, dass ein Label durch ein Byte, welches die Länge des Labels angibt, und dann die Bytes, die dem Label entsprechen (gemäß ASCII), kodiert wird. Jeder Domain Name endet mit dem null-Label der Root-Domain. Daher folgt zum Schluss ein Längen-Byte mit Wert Null.</p>
<p><strong>Beispiel:</strong></p>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td bgcolor="#333333"><span style="color: #ffffff;"> </span></td>
<td bgcolor="#cccccc"></td>
<td>b</td>
<td>l</td>
<td>o</td>
<td>g</td>
<td bgcolor="#cccccc">.</td>
<td>m</td>
<td>i</td>
<td>l</td>
<td>i</td>
<td>n</td>
<td>d</td>
<td>u</td>
<td>r</td>
<td bgcolor="#cccccc">.</td>
<td>d</td>
<td>e</td>
<td bgcolor="#cccccc"></td>
</tr>
<tr>
<td bgcolor="#333333"><span style="color: #ffffff;">hex</span></td>
<td bgcolor="#cccccc">04</td>
<td>62</td>
<td>6c</td>
<td>6f</td>
<td>67</td>
<td bgcolor="#cccccc">08</td>
<td>6d</td>
<td>69</td>
<td>6c</td>
<td>69</td>
<td>6e</td>
<td>64</td>
<td>75</td>
<td>72</td>
<td bgcolor="#cccccc">02</td>
<td>64</td>
<td>56</td>
<td bgcolor="#cccccc">00</td>
</tr>
</tbody>
</table>
<p>Der DHCPv6-Client von Windows Vista arbeitet hier aber offenbar fehlerhaft, denn Vista trägt im FQDN-Optionsfeld der Solicit- und Request-Message die Domain einfach nur als null-terminierten String ein.</p>
<p><strong>Beispiel:</strong></p>
<table border="1" cellspacing="0" cellpadding="1">
<tbody>
<tr>
<td bgcolor="#333333"></td>
<td>b</td>
<td>l</td>
<td>o</td>
<td>g</td>
<td bgcolor="#cccccc">.</td>
<td>m</td>
<td>i</td>
<td>l</td>
<td>i</td>
<td>n</td>
<td>d</td>
<td>u</td>
<td>r</td>
<td bgcolor="#cccccc">.</td>
<td>d</td>
<td>e</td>
<td bgcolor="#cccccc"></td>
</tr>
<tr>
<td bgcolor="#333333"><span style="color: #ffffff;">hex</span></td>
<td>62</td>
<td>6c</td>
<td>6f</td>
<td>67</td>
<td bgcolor="#cccccc">2e</td>
<td>6d</td>
<td>69</td>
<td>6c</td>
<td>69</td>
<td>6e</td>
<td>64</td>
<td>75</td>
<td>72</td>
<td bgcolor="#cccccc">2e</td>
<td>64</td>
<td>56</td>
<td bgcolor="#cccccc">00</td>
</tr>
</tbody>
</table>
<p>Diese Kodierung verstößt gegen <a href="http://tools.ietf.org/html/rfc1035#section-3.1">RFC1035</a>. Ein DHCPv6-Server (bzw. -Relay), der sich an den RFC hält, wird damit erhebliche Schwierigkeiten haben und wird diese Option (oder gar die ganze Message) nicht verarbeiten können.</p>
<p>Fatal wird die Angelegenheit jedoch bei der folgenden Betrachtung. Vista kodiert den Domain Name nicht nur bei den Solicit- und Request-Messages, die an den DHCPv6-Server gesendet werden, fehlerhaft, sondern interpretiert z.B. auch Domain Namen in den Advertise- und Reply-Messages, die vom DHCPv6-Server an den Client gesendet werden, falsch.</p>
<p>Über die Domain Search List kann der DHCPv6-Server dem Client mitteilen, welche Suchdomains verwendet werden sollen. Diese Suchdomains kann der Client an unvollständige Hostnamen dranhängen, um ihn zu vervollständigen.</p>
<p><strong>Beispiel:</strong></p>
<p>Einem Client wird die Suchdomain "cs.uni-dortmund.de" übermittelt. So sind nun alle Hosts, die sich in der Domain "cs.uni-dortmund.de" befinden, direkt über den Hostname ansprechbar. So wird bei Zugriff auf "www" automatisch auf "www.cs.uni-dortmund.de" zugegriffen.</p>
<p>Aber wie gesagt interpretiert Vista die Domain Search List falsch. Ein RFC-konform arbeitender Server kodiert die Domain Namen wie oben beschrieben. Vista setzt die Labels jedoch nicht zu einem einem einzelnen Domain Namen zusammen, sondern interpretiert jedes Label als eigene Domain - mit unangenehmen Folgen.</p>
<p><strong>Beispiel:</strong></p>
<p>Dem Client wird wieder die Suchdomain "cs.uni-dortmund.de" übermittelt. Vista interpretiert dies so, dass es die Suchdomains "cs", "uni-dortmund" und "de" verwenden soll. Bei Zugriff auf "www" wird nun versucht auf "www.cs", "www.uni-dortmund" und "www.de" zuzugreifen. Irgendetwas davon wird sicherlich existieren, aber es handelt sich dabei sicher nicht um "www.cs.uni-dortmund.de".</p>
<p>Nun, das soll erstmal dazu reichen. Wo bzw. wie kann man eigentlich einen Bug an Microsoft berichten?</p>
<p>Abschließend sei nochmal ausdrücklich darauf hingewiesen, dass <a href="http://klub.com.pl/dhcpv6/">Tomasz Mrugalski</a> diesen Bug gefunden und mich darauf hingewiesen hat. Ich habe das ganze hier nur ausführlicher beschrieben und weiter "erforscht" (Domain Search List).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milindur.de/2008/08/bug-im-dhcpv6-client-von-windows-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian auf QNAP TS-109</title>
		<link>http://www.milindur.de/2008/08/debian-auf-qnap-ts-109/</link>
		<comments>http://www.milindur.de/2008/08/debian-auf-qnap-ts-109/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 15:41:28 +0000</pubDate>
		<dc:creator>Christian Andersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[qnap]]></category>
		<category><![CDATA[ts109]]></category>

		<guid isPermaLink="false">http://wp.milindur.de/?p=3</guid>
		<description><![CDATA[Die QNAP TS-x09 (TS-109/209/409) sind kleine NAS für den SOHO-Bereich. Ich verwende hier eine TS-109 mit einer 500GB HDD als File- und Mailserver. Die originale QNAP-Firmware ist ganz nett und bietet in einer relativ einfachen Konfigurationsoberfläche einige Möglichkeiten. Wer sich bisher nicht näher mit Linux beschäftigt hat, sollte unbedingt bei dieser Firmware bleiben. Ich selbst [...]]]></description>
			<content:encoded><![CDATA[<p>Die QNAP TS-x09 (TS-109/209/409) sind kleine NAS für den SOHO-Bereich. Ich verwende hier eine TS-109 mit einer 500GB HDD als File- und Mailserver.</p>
<p>Die originale QNAP-Firmware ist ganz nett und bietet in einer relativ einfachen Konfigurationsoberfläche einige Möglichkeiten. Wer sich bisher nicht näher mit Linux beschäftigt hat, sollte unbedingt bei dieser Firmware bleiben.</p>
<p>Ich selbst bin aus zwei Gründen auf eine native Debian-Installation umgestiegen:</p>
<ul>
<li>Komfortable Installation und Aktualisierung von Softwarepaketen mit apt-get</li>
<li>Unabhängigkeit von QNAP und proprietären QNAP-Erweiterungen</li>
</ul>
<p>Gerade der zweite Punkt verdient besondere Beachtung. QNAP verwendet auf der Daten-Partition ein modifiziertes ext3, welches mit einem anderen Linux-System nicht gelesen werden kann. Sollte die TS-x09 also mal ausfallen, kann die Datenpartition nur mit einem passenden QNAP-Gerät (also z.B. einer anderen TS-x09) gelesen werden. Klar, natürlich sollten die Daten noch auf einem anderen Backup-Medium liegen, aber ich sehe nicht ein, dass meine Optionen bei einem Ausfall so unnötig eingeschränkt werden. Deinen einen sinnvollen Grund für diese ext3-Extension von QNAP kenne ich bisher nicht.</p>
<p>Debian Lenny unterstützt die Installation auf den QNAP-Geräten mittlerweile direkt per Debian-Installer. Martin Michlmayr beschreibt <a href="http://www.cyrius.com/debian/orion/qnap/">auf seiner Webseite</a> den Installationsprozess.</p>
<p><span style="color: #ff0000;"><strong>Vorsicht: Vorhandene Daten auf der Daten-Partition der TS-x09 müssen vorher gesichert werden, da das QNAP-ext3 proprietäre Erweiterungen verwendet und mit einem normalen ext3 (wie es in Debian enthalten ist) nicht kompatibel ist.</strong></span></p>
<p><strong><span style="color: #ff9900;">Hinweis: Wenn auf der TS-x09 bereits eine andere Linux-Installation durchgeführt wurde, welche eine Änderung der U-Boot-Konfiguration (/dev/mtdblock4) erforderte, muss vor der Debian-Installation die originale Konfiguration wiederhergestellt werden, da ansonsten der Debian-Installer möglicherweise nicht booten kann.</span></strong></p>
<p>Der prinzipielle Ablauf ist wie folgt (die Details stehen in der oben genannten Anleitung):</p>
<ol>
<li>/dev/mtdblock* sichern und ggf. auf Originalzustand zurücksetzen</li>
<li>Debian-Installer ins Flash kopieren</li>
<li>Box neustarten</li>
<li>Verbindung mit dem Installer per SSH herstellen</li>
<li>Debian mit dem normalen Debian-Installer installieren</li>
</ol>
<p>Der Debian-Installer kümmert sich selbst darum, dass bei Abschluss der Installation der Kernel ins Flash kopiert wird. Dies geschieht übrigens auch automatisch bei neuen Kernel-Versionen, die per apt-get geladen wurden.</p>
<p>Eine serielle Konsole ist bei diesem Vorgehen nicht erforderlich. Es kann aber bei Boot-Problemen der einzige Weg sein, um die Box wiederherzustellen. Daher sollte man sich rechtzeitig um die benötigten Teile kümmern. Für den Zugriff auf die serielle Konsole werden ein Pegelwandler (z.B. MAX3232) und ein paar Kondensatoren benötigt (<a href="http://www.nslu2-linux.org/wiki/HowTo/AddASerialPort">Infos</a>).</p>
<p>Über die serielle Konsole erhält man Zugriff auf U-Boot und kann in den Debian-Bootprozess eingreifen. Mit Hilfe von U-Boot kann der Flash überprüft und neu beschrieben werden. Eine <a href="ftp://csdread:csdread@ftp.qnap.com/NAS/Burning%20Firmware/">Anleitung</a> dazu hat QNAP auf seinem FTP-Server veröffentlicht. Leider ist diese Anleitung bezüglich der Flash-Speicheradressen fehlerhaft. Die dort genannen Adressen sollten daher keinesfalls verwendet werden, ich habe mir so eine TS-109 zerschossen, indem ich U-Boot überschrieben habe. Die korrekten Adressen, die ich selbst bereits erfolgreich verwendet habe, werde ich in einem weiteren Blog-Artikel beschreiben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milindur.de/2008/08/debian-auf-qnap-ts-109/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

