<?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>aus&#039;minternet &#187; iPhone</title>
	<atom:link href="http://www.ausminternet.de/category/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ausminternet.de</link>
	<description></description>
	<lastBuildDate>Fri, 19 Aug 2011 18:17:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Prowl-Plugin für Knotify</title>
		<link>http://www.ausminternet.de/2010/12/28/prowl-plugin-fuer-knotify/</link>
		<comments>http://www.ausminternet.de/2010/12/28/prowl-plugin-fuer-knotify/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 17:58:01 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[knotify]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Prowl]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=2104</guid>
		<description><![CDATA[Ich habe gerade erst vorgestern ein wenig über das Weiterleiten von Benachrichtigungen unter KDE geblogt und dort folgendes geschrieben: Getoppt werden würde das ganze nur noch, wenn es so funktionieren würde wie unter OSX: Dort ist Prowl ein Plugin für &#8230; <a href="http://www.ausminternet.de/2010/12/28/prowl-plugin-fuer-knotify/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ich habe gerade erst vorgestern ein wenig über das Weiterleiten von Benachrichtigungen unter KDE <a  href="http://www.ausminternet.de/2010/12/26/benachrichtigungen-ausserhalb-des-computers-prowl-und-ios-als-benachrichtigungsgateway/">geblogt</a> und dort folgendes geschrieben:</p>
<blockquote><p>Getoppt werden würde das ganze nur noch, wenn es so funktionieren würde wie unter OSX: Dort ist Prowl ein Plugin für das globale Benachrichtigungsystem Growl (daher auch der Name) und es leitet alle Nachrichten einfach weiter, bzw. diejenigen, die man weitergeleitet haben möchte. So eine Schnitstelle zum KDE-Benachrichtigungssystem wäre fantastisch, jemand interesse das mal zu coden? <img src="http://www.ausminternet.de/wp-includes/images/smilies/icon_wink.gif" alt=";)" /></p></blockquote>
<p>Kurz darauf, wurde ich in den Kommentaren von BajK darauf hingewiesen, dass in Knotify in KDE SC 4.6 wohl ein Pluginsystem enthalten sein soll. Kurz gesucht und schnell gefunden: <a  href="http://ffejery.wordpress.com/2010/11/15/knotify-plugins/">KNotify Plugins (Or, “What I’ve been working on, now with details”)</a>.  Jeffery Maceachern hat es gerade noch zum Feature-Freeze von KDE 4.6 geschafft die Pluginschnitstelle fertigzustellen. In seinem Blogpost erklärt er, wie das System funktioniert und wie man es einbindet (dazu später mehr). Außerdem gibt es in seinem git-Repository ein <a  href="http://gitorious.org/unofficial-knotify-plugins/unofficial-knotify-plugins/trees/master/g15message">Plugin für die Logitech G15 Tastatur mit Display</a> und ein <a  href="http://gitorious.org/unofficial-knotify-plugins/unofficial-knotify-plugins/trees/master/dummy">Dummy-Plugin</a>.</p>
<p>Nachdem ich mir das Dummy-Plugin angeschaut habe, war ich motiviert genug mit meinen spärlichen Programmierkentnissen ein Plugin zu schreiben, welches die Nachrichten per Prowl auf mein iPhone pusht (<a  href="http://www.ausminternet.de/2010/12/26/benachrichtigungen-ausserhalb-des-computers-prowl-und-ios-als-benachrichtigungsgateway/">hier gibt&#8217;s ein paar mehr Infos</a>). Und nach einem halben Tag arbeit, tadaaaaaa, ist es fertig: <a  href="http://gitorious.org/knotify_prowl">knotify-prowl</a>.</p>
<p><span id="more-2104"></span></p>
<h3>Installation</h3>
<hr /><strong><span style="color: #ff0000;">Achtung: </span></strong></p>
<p><em><span style="color: #ff0000;">Da das Pluginsystem erst mit KDE SC 4.6 kommt, benötigt man einen aktuellen Trunk-Build von KDE oder den RC1 von KDE SC 4.6</span></em></p>
<p><em><span style="color: #ff0000;">Benutzt man die aktuelle Trunk-Version von heute Nachmittag, so ist alles in Ordnung. Für den RC1 und ältere Versionen gibt es aktuell noch einen Bug, der erst im RC2 behoben sein wird:</span></em></p>
<p><em><span style="color: #ff0000;">Es fehlt die Datei <strong>/usr/include/knotify_export.h</strong> welche ihr hier: <a href="http://websvn.kde.org/?view=revision&amp;revision=1209874 ">http://websvn.kde.org/?view=revision&amp;revision=1209874 </a>bekommt und nach <strong>/usr/lib/</strong> schiebt.</span></em></p>
<hr />Zuerst holt man sich die aktuelle Version aus dem git-Repository:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>gitorious.org<span style="color: #000000; font-weight: bold;">/</span>knotify_prowl<span style="color: #000000; font-weight: bold;">/</span>knotify_prowl.git</pre></div></div>

<p>Dann trägt man seinen Prowl API-Key in die Datei <strong>notifybyprowl.cpp</strong> in Zeile 52 ein:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">QString prowlApiKey <span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;YOURAPIKEY&quot;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Nun kann man das Plugin kompilieren und installieren:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> knotify_prowl
$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> build
$ <span style="color: #7a0874; font-weight: bold;">cd</span> build
$ cmake -DCMAKE_INSTALL_PREFIX=<span style="color: #000000; font-weight: bold;">`</span>kde4-config --prefix<span style="color: #000000; font-weight: bold;">`</span> ..
$ <span style="color: #c20cb9; font-weight: bold;">make</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span> OR <span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #660033;">-c</span> <span style="color: #ff0000;">'make install'</span></pre></div></div>

<h3>Konfiguration und Benutzung</h3>
<p>Die Konfiguration ist momentan noch etwas umständlich, da sie nur über Konfigurationsdateien geht. In KDE 4.7 soll dann die Möglichkeit kommen, die Plugins per GUI zu aktivieren. Um zu einem Ereigniss die Notifikation über das Prowl-Plugin zu aktivieren, sucht man sich das Ereigniss in der Entsprechenden <strong>.notifyrc</strong> Datei unter <strong>/usr/share/apps/$(AppName)/</strong> heraus.</p>
<p>Nehmen wir mal das Beispiel &#8220;<em>Neue eingehende Kopete Nachricht</em>&#8220;, dann muss in der Datei:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>kopete<span style="color: #000000; font-weight: bold;">/</span>kopete.notifyrc</pre></div></div>

<p>Der Action Eintrag des Events <em>kopete_contact_incoming</em> von:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>Event<span style="color: #000000; font-weight: bold;">/</span>kopete_contact_incoming<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #007800;">Name</span>=Incoming Message
<span style="color: #007800;">Comment</span>=An incoming message has been received
<span style="color: #007800;">Action</span>=Sound<span style="color: #000000; font-weight: bold;">|</span>Popup<span style="color: #000000; font-weight: bold;">|</span>Taskbar</pre></div></div>

<p>um die Action <strong>Prowl</strong> ergänzt werden auf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>Event<span style="color: #000000; font-weight: bold;">/</span>kopete_contact_incoming<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #007800;">Name</span>=Incoming Message
<span style="color: #007800;">Comment</span>=An incoming message has been received
<span style="color: #007800;">Action</span>=Sound<span style="color: #000000; font-weight: bold;">|</span>Popup<span style="color: #000000; font-weight: bold;">|</span>Taskbar<span style="color: #000000; font-weight: bold;">|</span>Prowl</pre></div></div>

<p>Auf diese Art und Weise kann man allen *.notifyrc Dateien die Action Prowl hinzufügen und man bekommt die jeweilige Nachricht auf sein iOS-Gerät gepusht.</p>
<h3>ToDo</h3>
<p>Momentan wird der API-Key noch hart einkompiliert, aber das wird sich noch ändern. Es wird momentan geschaut, wo der geeignete Ort dafür ist, auch im Hinblick auf weitere Plugins.</p>
<p>Ansonsten bin ich für weitere Anregungen für das Prowl-Plugin offen und bin jetzt schon gespannt auf weitere Plugins für Knotify!</p>
<h3>Danksagungen</h3>
<p>Da sich meine Programmierkentnisse so ziemlich an einer Hand abzählen lassen, an dieser Stelle noch einmal ein großes Dankeschön an Gerrit und an #kde-devel auf freenode ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/12/28/prowl-plugin-fuer-knotify/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Benachrichtigungen außerhalb des Computers &#8211; Prowl und iOS als Benachrichtigungsgateway</title>
		<link>http://www.ausminternet.de/2010/12/26/benachrichtigungen-ausserhalb-des-computers-prowl-und-ios-als-benachrichtigungsgateway/</link>
		<comments>http://www.ausminternet.de/2010/12/26/benachrichtigungen-ausserhalb-des-computers-prowl-und-ios-als-benachrichtigungsgateway/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 19:56:18 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[Benachrichtigungen]]></category>
		<category><![CDATA[emerge]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Notifications]]></category>
		<category><![CDATA[Prowl]]></category>
		<category><![CDATA[Push]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[transmission]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=2069</guid>
		<description><![CDATA[&#8220;push&#8221; von mryipyop auf flickr Unter KDE gibt es ein großartiges Benachrichtigungssystem, welches alle KDE-Programme benutzen und allerlei Informationen darüber an den Benutzer weiterreichen. Soweit so gut und ich bin im Großen und Ganzen auch sehr zufrieden damit. Allerdings hat &#8230; <a href="http://www.ausminternet.de/2010/12/26/benachrichtigungen-ausserhalb-des-computers-prowl-und-ios-als-benachrichtigungsgateway/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.flickr.com/photos/mryipyop/1673801831/"><img class="alignnone size-full wp-image-2087" title="push" src="http://www.ausminternet.de/wp-content/uploads/2010/12/push.jpg" alt="" width="550" height="218" /></a></p>
<p style="text-align: right;"><span style="color: #999999;"><em>&#8220;push&#8221; von <span id="yui_3_2_0_1_1293392697398662"><a  href="http://www.flickr.com/photos/mryipyop/">mryipyop</a> auf flickr</span></em></span></p>
<p>Unter KDE gibt es ein großartiges Benachrichtigungssystem, welches alle KDE-Programme benutzen und allerlei Informationen darüber an den Benutzer weiterreichen. Soweit so gut und ich bin im Großen und Ganzen auch sehr zufrieden damit. Allerdings hat das System einen Nachteil: Ich bekomme die Benachrichtigungen nur mit, wenn ich auch am Rechner sitze, nicht aber wenn ich woanders bin.</p>
<p><strong>Stellen wir uns mal folgende Scenarios vor:</strong></p>
<ol>
<li>Es wird ein Torrent gestartet und ich gehe runter ins Wohnzimmer und werde, wenn der Download fertig ist, dadrüber benachrichtigt, gehe kurz hoch und arbeite weiter.</li>
<li>Oder es wird ein langer Kopier- oder Encodiervorgang gestartet währenddessen ich was anderes mache und auch zu gegebener Zeit benachrichtigt werde.</li>
</ol>
<p>Die erste Frage wäre: Wie soll ich benachrichtigt werden, wenn ich nicht am PC sitze? Eigentlich relativ einfach, denn eine Sache habe ich immer bei mir: mein iPhone. Es muss also ein Weg gefunden werden, Benachrichtigungen auf&#8217;s iPhone zu schicken.</p>
<p><span id="more-2069"></span></p>
<p>Mail würde, dank Pushmail, gehen, ist aber doch relativ aufwendig, wenn man nicht gerade einen Mailserver bei sich installeirt hat, scheidet also aus. Ebenso würde SMS gehen (und dann auch mit jedem Telefon), aber auch dafür braucht man erstmal einen HTTP-SMS-Gateway oder ähnliches, außerdem kostet es für jede Nachricht Geld. Also auch eher ungeeignet. (Allerdings mit dem Vorteil der Platformunabhängigkeit &#8211; SMS kann jedes Handy. Und so teuer sind SMS-Gateways auch nicht.)</p>
<h3>Push Notifications mit Prowl</h3>
<p>Das Mittel der Wahl heißt <a  href="http://en.wikipedia.org/wiki/Apple_Push_Notification_Service">Push-Notification-Service</a> und kommt von Apple. Dieser Service ermöglicht es über eine Internetverbindug Pushnachrichten an ein iPhone zu schicken. Um diesen Dienst benutzen zu können, muss man ein registrierter Apple-Developer sein, oder man benutzt den Webservice &#8220;<a  href="http://prowl.weks.net/">Prowl</a>&#8221; mit zugehöriger iPhone Applikation gleichen Namens.</p>
<p>Nachdem man sich bei Prowl registriert, sich die App gekauft und mit seinem Account verlinkt hat, bekommt man einen API-Key, mit dem man sich über eine HTTP-API Nachrichten auf&#8217;s iPhone schicken kann.</p>
<p>Wer nicht direkt mit der HTTP-API sprechen will, für den stehen diverse <a  href="http://prowl.weks.net/api.php">Bibliotheken</a> bei Prowl bereit, die einem diese Arbeit für die verschiedensten (Script-)Sprachen abnehmen. Schauen wir uns mal ein Beispiel in Ruby an:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#folgende libs müssen zuerst über rubygem installiert werden:</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'prowl'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'net/https'</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Festlegen von ein paar Standardwerten:</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Dein Prowl API-Key</span>
<span style="color:#0066ff; font-weight:bold;">@apikey</span> = <span style="color:#996600;">&quot;1234567890abcdefgh&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Name des Programms, von dem die Nachricht kommt</span>
<span style="color:#0066ff; font-weight:bold;">@application</span> = <span style="color:#996600;">&quot;Programm XY&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Welches Event ist passiert?</span>
<span style="color:#0066ff; font-weight:bold;">@event</span> = <span style="color:#996600;">&quot;Event&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Die beschreibung des Events</span>
<span style="color:#0066ff; font-weight:bold;">@description</span> = <span style="color:#996600;">&quot;something happend...&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Welche Priorität hat die Nachricht?</span>
<span style="color:#008000; font-style:italic;">#5 Werte von -2 (niedrig) bis +2 (hoch)</span>
<span style="color:#008000; font-style:italic;"># Standard ist 0 (normal)</span>
<span style="color:#0066ff; font-weight:bold;">@priority</span> = <span style="color:#006666;">0</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#durchgehen der Attribute</span>
&nbsp;
ARGV.<span style="color:#9900CC;">each_with_index</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>arg, index<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> arg == <span style="color:#996600;">&quot;-a&quot;</span>
    <span style="color:#0066ff; font-weight:bold;">@application</span> = ARGV<span style="color:#006600; font-weight:bold;">&#91;</span>index <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
  <span style="color:#9966CC; font-weight:bold;">elsif</span> arg == <span style="color:#996600;">&quot;-e&quot;</span>
    <span style="color:#0066ff; font-weight:bold;">@event</span> = ARGV<span style="color:#006600; font-weight:bold;">&#91;</span>index <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
  <span style="color:#9966CC; font-weight:bold;">elsif</span> arg == <span style="color:#996600;">&quot;-d&quot;</span>
    <span style="color:#0066ff; font-weight:bold;">@description</span> = ARGV<span style="color:#006600; font-weight:bold;">&#91;</span>index <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
  <span style="color:#9966CC; font-weight:bold;">elsif</span> arg == <span style="color:#996600;">&quot;-p&quot;</span>
    <span style="color:#0066ff; font-weight:bold;">@priority</span> = ARGV<span style="color:#006600; font-weight:bold;">&#91;</span>index <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">to_i</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#hier wird die Nachricht verschickt:</span>
Prowl.<span style="color:#9900CC;">add</span><span style="color:#006600; font-weight:bold;">&#40;</span>
  <span style="color:#ff3333; font-weight:bold;">:apikey</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0066ff; font-weight:bold;">@apikey</span>,
  <span style="color:#ff3333; font-weight:bold;">:application</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0066ff; font-weight:bold;">@application</span>,
  <span style="color:#ff3333; font-weight:bold;">:event</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0066ff; font-weight:bold;">@event</span>,
  <span style="color:#ff3333; font-weight:bold;">:description</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0066ff; font-weight:bold;">@description</span>,
  <span style="color:#ff3333; font-weight:bold;">:priority</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0066ff; font-weight:bold;">@priority</span>
<span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Führt man dieses Script nun einfach so aus, kommt folgende Nachricht auf dem iPhone an:</p>
<p><a  href="http://www.ausminternet.de/wp-content/uploads/2010/12/prowl1.jpg" class="thickbox no_icon" rel="gallery-2069" title="prowl1"><img class="alignnone size-full wp-image-2084" title="prowl1" src="http://www.ausminternet.de/wp-content/uploads/2010/12/prowl1.jpg" alt="" width="320" height="480" /></a></p>
<p>Oder man gibt dem Script Argumente mit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">prowl <span style="color: #660033;">-a</span> Konsole <span style="color: #660033;">-e</span> Encoden <span style="color: #660033;">-p</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;Urlaubsvideo ist fertig&quot;</span></pre></div></div>

<p>Dann bekommt man folgende Meldung:</p>
<p><a  href="http://www.ausminternet.de/wp-content/uploads/2010/12/prowl21.jpg" class="thickbox no_icon" rel="gallery-2069" title="prowl2"><img class="alignnone size-full wp-image-2086" title="prowl2" src="http://www.ausminternet.de/wp-content/uploads/2010/12/prowl21.jpg" alt="" width="320" height="480" /></a></p>
<p>Soweit so gut, nun kann ich also durch anhängen von &#8220;; prowl&#8221; hinter einem Befehl mir nach Beendigung des vorangegangen Befehls eine Nachricht auf&#8217;s iPhone schicken lassen. Schöner wäre es aber, wenn ich nicht immer daran denken müsste.</p>
<h3>Emerge überschreiben</h3>
<p>Unter Gentoo verbringt man viel Zeit mit kompilieren, vorzugsweise, wenn man gerade nicht am Rechner sitzt. Umso ärgerlicher ist es dann, wenn man nach zwei Stunden nachschaut und sieht, dass der Vorgang nach 5 Minuten aufgrund eines Fehlers abgebrochen hat.Da ich aber nicht immer den ganzen prowl-Kram hinten anhängen möchte (und wahrscheinlich auch nur bei jedem vierten Mal dran denken würde) und ich außerdem auch gerne wissen möchte, ob er nun erfolgreich fertig kompiliert hat oder in einen Fehler gelaufen ist, muss eine andere Lösung her.</p>
<p>Man kann relativ einfach vorhandene Programme überschreiben in dem man Beispielsweise in ~/.bin ein Script gleichen Namens anlegt. (Man darf nur nicht vergessen, die Argumente an den Befehl zu übergeben). Im Falle von emerge habe ich mir also unter /root/.bin folgendes Script abgelegt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Alle Argumente zusammenfassen</span>
<span style="color: #007800;">args</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;$@&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#und an das eigentliche emerge übergeben</span>
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>emerge $<span style="color: #000000; font-weight: bold;">@</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#das zuletzt verarbeitete Paket raussuchen</span>
<span style="color: #007800;">LAST</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$(tac /var/log/emerge.log | awk '$2 == &quot;&gt;&gt;&gt;&quot; {print $4,$5,$6,$7; exit;}')</span>&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#checken ob emerge erfolgreich war (exit=0) oder nicht (exit!=0)</span>
<span style="color: #666666; font-style: italic;">#und je nachdem die entsprechenden Nachrichten verschicken.</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$?</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>prowl <span style="color: #660033;">-a</span> Konsole <span style="color: #660033;">-e</span> emerge <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;Kompilieren erfolgreich&quot;</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">else</span>
  <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>prowl <span style="color: #660033;">-a</span> Konsole <span style="color: #660033;">-e</span> emerge <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;Fehler bei Paket <span style="color: #007800;">$LAST</span>&quot;</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>nun kann ich einfach weiterhin wie gewohnt emerge xyz eingeben, bekomme aber am Ende je nach Ausgang des Befehls eine Nachricht gepusht. Dieses Vorgehen lässt sich unter Ubuntu natürlich auch mit apt-get verwirklichen, oder mit einem anderen Programm seiner Wahl.</p>
<h3>Torrent fertig &#8211; Transmission</h3>
<p>Das andere Beispiel von oben waren Torrent-Downloads. Ich nutze Transmission als Client und dieser besitzt eine Scriptingschnitstelle, die es ermöglicht am Ende eines Downloades ein Script auszuführen. Dazu geht man in den Menüpunkt <em>Bearbeiten &gt; Eigenschaften &gt; Torrents &gt; Script ausführen wenn Download fertig</em>. Dort habe ich momentan folgendes kleine Bashscript hinterlegt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>prowl <span style="color: #660033;">-a</span> Transmission <span style="color: #660033;">-e</span> Fertig <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$TR_TORRENT_NAME</span> fertig runtergeladen.&quot;</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">0</span></pre></div></div>

<p>Es stehen durch Transmission einige Variablen bereit, eine davon ist $TR_TORRENT_NAME, welche den Namen des Torrents beinhaltet. Weitere findet man hier<a href=" https://trac.transmissionbt.com/wiki/Scripts"> https://trac.transmissionbt.com/wiki/Scripts</a></p>
<h3>Fazit:</h3>
<p>Die Liste der Dinge die man mit diesem System machen kann ist lang, zum Beispiel kann man jeden fehlgeschlagenen Loginversuch auf seinem Root-Server im Internet per Push-Nachricht verschicken, oder sich seinen eigenen Mail- oder Twitter-Push bauen, oder, oder, oder&#8230;</p>
<p>Getoppt werden würde das ganze nur noch, wenn es so funktionieren würde wie unter OSX: Dort ist Prowl ein Plugin für das globale Benachrichtigungsystem Growl (daher auch der Name) und es leitet alle Nachrichten einfach weiter, bzw. diejenigen, die man weitergeleitet haben möchte. So eine Schnitstelle zum KDE-Benachrichtigungssystem wäre fantastisch, jemand interesse das mal zu coden? ;)</p>
<p>Ich hoffe ich konnte eure Fantasie ein wenig anregen mit mein paar Beispielen und freue mich auf zahlreiche weitere Vorschläge für Anwendungsfälle!</p>
<p>Nicht zuletzt ein Dankeschön an <a  href="http://twitter.com/kayssun">@kayssun</a> für seinen entscheidenden Hinweis :)</p>
<p>(Ach ja, Entschuldigung für den sperrigen Titel, mir viel einfach nichts besseres ein&#8230; ;) )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/12/26/benachrichtigungen-ausserhalb-des-computers-prowl-und-ios-als-benachrichtigungsgateway/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>gpodder &#8211; freier Speicherplatz auf dem iPhone und Playcounts</title>
		<link>http://www.ausminternet.de/2010/06/30/gpodder-freier-speicherplatz-auf-dem-iphone-und-playcounts/</link>
		<comments>http://www.ausminternet.de/2010/06/30/gpodder-freier-speicherplatz-auf-dem-iphone-und-playcounts/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 10:28:31 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[gpodder]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[synchronisation]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=1715</guid>
		<description><![CDATA[Christian Seidel / pixelio.de gpodder ist eine hervorragende Anwendung wenn es um den Download und die Verwaltung von Podcasts geht, erstmal so generell. Leider gibt es zwei kleine Bugs, die den Betrieb mit einem iOS Gerät ziemlich erschweren: Playcounts werden &#8230; <a href="http://www.ausminternet.de/2010/06/30/gpodder-freier-speicherplatz-auf-dem-iphone-und-playcounts/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/06/392417_R_K_by_Christian-Seidel_pixelio.de_.jpg" class="thickbox no_icon" rel="gallery-1715" title="392417_R_K_by_Christian-Seidel_pixelio.de"><img class="alignnone size-full wp-image-1730" title="392417_R_K_by_Christian-Seidel_pixelio.de" src="http://www.ausminternet.de/wp-content/uploads/2010/06/392417_R_K_by_Christian-Seidel_pixelio.de_.jpg" alt="" width="550" height="254" /></a></p>
<p style="text-align: right;"><span style="color: #c0c0c0;"><em>Christian Seidel / pixelio.de</em></span></p>
<p style="text-align: justify;"><a  href="http://gpodder.org">gpodder</a> ist eine hervorragende Anwendung wenn es um den Download und die Verwaltung von Podcasts geht, erstmal so generell. Leider gibt es zwei kleine Bugs, die den Betrieb mit einem iOS Gerät ziemlich erschweren: Playcounts werden nicht synchronisiert und der freie Platz auf dem Gerät wird nicht erkannt. Soweit so schlecht, ein Betrieb ist erstmal unmöglich.</p>
<p style="text-align: justify;">Doch es gibt für beide Problemchen (mehr oder weniger praktikable) Lösungen:</p>
<p style="text-align: justify;"><span id="more-1715"></span></p>
<h3><strong>1. &#8220;Nicht genügend freier Speicherplatz auf dem Gerät verfügbar&#8221;</strong></h3>
<p style="text-align: justify;">Erst einmal muss man unter Ubuntu überhaupt raus finden, wie man gpodder mit dem iPhone beispielsweise bekanntmacht. gpodder erwartet einen Dateipfad zum Gerät, der ist aber unter Lucid Lynx nicht mehr so ganz eindeutig durch das neue GVFS. Man muss wissen, dass die Geräte, die Gnome einbindet unter <strong>~/.gvfs/</strong> liegen. In meinem Falle wäre der Pfad also <strong>/home/elu/.gvfs/Jans iPhone/. </strong></p>
<p style="text-align: justify;">Das Problem dabei ist nun, dass man von diesem Mountpunkt keine vernünfitigen Werte bekommt, was den benutzten und freien Speicherplatz angeht, er ist in beiden Fällen &#8220;0&#8243;. Da aber das Python-Script von gpodder nur genau das abfragt, ist natürlich auf dem iPhone kein Platz mehr verfügbar. (Sondern &#8220;0&#8243; Byte).</p>
<p style="text-align: justify;">Um das zu umgehen ist ein kleiner Eingriff in das Sync-Script von gpodder notwendig, in dem man einfach vorgaukelt, dass genügend freier Speicherplatz auf dem Gerät vorhanden ist. Nachteil ist ganz klar, dass man sich nun selbst kümmern muss, dass noch genügend Platz vorhanden ist.</p>
<p style="text-align: justify;">Man nahme also die Datei: ﻿﻿﻿<strong>/usr/lib/pymodules/python2.6/gpodder/sync.py</strong> und such nach folgender Funktion:</p>
<p style="text-align: justify;">

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">def get_free_space<span style="color: #7a0874; font-weight: bold;">&#40;</span>self<span style="color: #7a0874; font-weight: bold;">&#41;</span>:
    <span style="color: #666666; font-style: italic;"># Reserve 10 MiB for iTunesDB writing (to be on the safe side)</span>
    RESERVED_FOR_ITDB = <span style="color: #000000;">1024</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000;">1024</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000;">10</span>
    <span style="color: #7a0874; font-weight: bold;">return</span> util.get_free_disk_space<span style="color: #7a0874; font-weight: bold;">&#40;</span>self.mountpoint<span style="color: #7a0874; font-weight: bold;">&#41;</span> - RESERVED_FOR_ITDB</pre></div></div>

<div style="text-align: justify;">und ersetze sie durch beispielsweise:</div>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">def get_free_space<span style="color: #7a0874; font-weight: bold;">&#40;</span>self<span style="color: #7a0874; font-weight: bold;">&#41;</span>:
    <span style="color: #666666; font-style: italic;"># Reserve 10 MiB for iTunesDB writing (to be on the safe side)</span>
    RESERVED_FOR_ITDB = <span style="color: #000000;">1024</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000;">1024</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000;">10</span>
    <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1024</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">1024</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">1024</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">1024</span> - RESERVED_FOR_ITDB</pre></div></div>

<p style="text-align: justify;">Nun ist erstmal genug Platz auf dem iPhone &#8220;vorhanden&#8221;. (Man beachte, das ein Update von gpodder diese Datei wieder überschreiben wird!) Kommen wir zum zweiten Problem:</p>
<h3 style="text-align: justify;">2. Playcounts werden wieder auf &#8220;ungespielt&#8221; gesetzt</h3>
<p style="text-align: justify;">Nun ist man also in der Lage, sein iPhone oder sonstiges iOS Gerät mit Podcasts zu bespielen. Leider gibt es nun noch einen Fehler in der Bibliothek libgpod, welche bei jedem Synchronisationsvorgang alle Podcasts auf den Status ungespielt zurücksetzt und man sich die Stelle an der man aufgehört hat wieder mühsam suchen muss.</p>
<p style="text-align: justify;">Ich habe vor einiger Zeit diesbezüglich mal an die Mailingliste geschrieben und auch Prompt Antwort erhalten:</p>
<p style="text-align: justify;"><a  href="http://sourceforge.net/mailarchive/forum.php?thread_name=4BF05795.2030805%40virtualpixel.de&#038;forum_name=gtkpod-devel">http://sourceforge.net/mailarchive/forum.php?thread_name=4BF05795.2030805%40virtualpixel.de&amp;forum_name=gtkpod-devel</a></p>
<p style="text-align: justify;">Kurzfassung: Es gibt bereits zwei Patches gegen das Problem, sie werden auch demnächst in den offiziellen libgpod-Zweig einfließen. (Dies ist bislang, so weit ich das überblicken kann, noch nicht geschehen)</p>
<p style="text-align: justify;">Man nimmt sich also die beiden Patches aus obigem Link und korrigiert damit den Quelltext von gpodder. Et volia, nun funktioniert auch der Sync von Podcasts OHNE dass sich bereits angespielte Episoden wieder zurücksetzten. Allerdings kommt es, zumindest bei mir, öfters vor, dass bei einem zweiten Sync ein Podcasts doppelt auf dem iPhone vorhanden ist, oder das ein zweiter Sync benötigt wird, damit die Playcounts wieder stimmen. Aber das wird sicher auch noch gefixt&#8230;</p>
<p style="text-align: justify;">Nun wünsche ich euch fröhliches Synchronisieren eurer Podcasts!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/06/30/gpodder-freier-speicherplatz-auf-dem-iphone-und-playcounts/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Manchmal hätt&#8217; ich gerne iTunes</title>
		<link>http://www.ausminternet.de/2010/05/15/manchmal-haett-ich-gerne-itunes/</link>
		<comments>http://www.ausminternet.de/2010/05/15/manchmal-haett-ich-gerne-itunes/#comments</comments>
		<pubDate>Sat, 15 May 2010 20:15:00 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[gpodder]]></category>
		<category><![CDATA[Musik]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[synchronisation]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=1679</guid>
		<description><![CDATA[Ja, wirklich, und zwar dann, wenn es um die automatische Synchronisation von Podcasts, Videos und Musik geht und ich gerade schlechte Laune habe, weil ich mir den Nachmittag mit Suchen und Probieren um die Ohren gehauen habe. Werfen wir also &#8230; <a href="http://www.ausminternet.de/2010/05/15/manchmal-haett-ich-gerne-itunes/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Ja, wirklich, und zwar dann, wenn es um die automatische Synchronisation von Podcasts, Videos und Musik geht und ich gerade schlechte Laune habe, weil ich mir den Nachmittag mit Suchen und Probieren um die Ohren gehauen habe. Werfen wir also mal kurz einen Blick in das iTunes Lager:</p>
<p style="text-align: justify;">Sobald ich mein iPhone an iTunes anstecke, werden neue Podcasts auf das Gerät kopiert, auf dem Gerät oder auf dem Laptop gehörte Podcasts werden vom Gerät gelöscht, auf dem Laptop oder iPhone zum Teil gehörte Podcasts werden mit ihrer Abspielposition synchronisiert, auf dem Gerät gehörte Podcasts werden im iTunes als gehört markiert und so weiter und so fort. Außerdem wird die gesamte Musik- und Videosammlung gesynct, oder halt nur Teile davon, je nachdem wie man es vorher im iTunes eingestellt hat. Total komfortabel also: einstecken, warten, abziehen und auf dem neusten Stand sein &#8211; ohne Interaktion.</p>
<p style="text-align: justify;">Unter Linux ist mir bis dato kein Weg bekannt, mein iPhone oder meinen iPod (oder irgendeinen anderen Mp3 Player, wobei das nur geraten ist) genauso bequem zu verwalten. Klar kann ich Musik, Videos und Podcasts auf das Gerät spielen, aber halt alles per Hand und manuell. Einzig gpodder hat einen Sync-Modus, welcher allerdings durch einen <a  href="http://sourceforge.net/tracker/?func=detail&#038;aid=2940596&#038;group_id=67873&#038;atid=519273">Bug in libgpod</a> momentan für iPhone Benutzer unbrauchbar ist, und auch nicht automatisch synct.</p>
<p style="text-align: justify;">Sicherlich ist iTunes nicht das Maß aller Dinge, aber leider noch sehr vieler&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/05/15/manchmal-haett-ich-gerne-itunes/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Das iPhone OS und Linux &#8211; ein aktueller Überblick</title>
		<link>http://www.ausminternet.de/2010/05/06/das-iphone-os-und-linux-ein-aktueller-ueberblick/</link>
		<comments>http://www.ausminternet.de/2010/05/06/das-iphone-os-und-linux-ein-aktueller-ueberblick/#comments</comments>
		<pubDate>Thu, 06 May 2010 20:54:26 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[idevice]]></category>
		<category><![CDATA[ifuse]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[JailBreak]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[libimobiledevice]]></category>
		<category><![CDATA[Musik]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[Thunderbird]]></category>
		<category><![CDATA[Touch]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=1655</guid>
		<description><![CDATA[Seit nunmehr fast drei Jahren ist das Apple iPhone auf dem Markt, seit ungefähr zwei Jahren der iPod  Touch und seit ungefähr einem Monat das iPad. So unterschiedlich diese Geräte auch alle sind, haben sie eines gemeinsam: Das Betriebssystem ist &#8230; <a href="http://www.ausminternet.de/2010/05/06/das-iphone-os-und-linux-ein-aktueller-ueberblick/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/05/Bildschirmfoto.png" class="thickbox no_icon" rel="gallery-1655" title="Bildschirmfoto"><img class="alignnone size-full wp-image-1666" title="Bildschirmfoto" src="http://www.ausminternet.de/wp-content/uploads/2010/05/Bildschirmfoto.png" alt="" width="550" height="157" /></a></p>
<p style="text-align: justify;">Seit nunmehr fast drei Jahren ist das Apple iPhone auf dem Markt, seit ungefähr zwei Jahren der iPod  Touch und seit ungefähr einem Monat das iPad. So unterschiedlich diese Geräte auch alle sind, haben sie eines gemeinsam: Das Betriebssystem ist bei allen dreien das iPhone OS.Grundsätzlich sind diese Geräte kompatibel zu Mac OSX und mit Einschränkungen auch zu Microsoft Windows. Grund sind die <a  href="http://de.wikipedia.org/wiki/Apple_Filing_Protocol">geschlossenen Protokolle</a> von Apple, die einen Zugriff auf das System ermöglichen.</p>
<p style="text-align: justify;">Nun sind diese Geräte allerdings sehr populär, nicht nur unter OSX und Windows Benutzern, sondern auch unter Linuxbenutzern. Ich selber bin nun seit 2 Jahren meist glücklicher Besitzer eines iPhones. Es war also nur eine Frage der Zeit, bis sich die ersten Personen der Problematik annehmen und versuchen diese Geräte linuxkompatibel zu machen, so dass man beides unter einen Hut bringen kann.</p>
<p style="text-align: justify;">Das war, gerade zu Anfangszeiten, nicht immer einfach und ich habe ein Menge geflucht und <a  href="http://www.ausminternet.de/2008/12/07/iphone-linux-evolution-google-und-nuevasync-oder-hurra-svn-evolution-mag-google-und-mein-iphone-ist-mit-linux-synchron/">noch mehr probiert</a>. (Man <a  href="http://www.ausminternet.de/category/iphone/">suche</a> einfach in meinem Blog nach iPhone) Doch mittlerweile hat sich das Bild extrem zum positiven gewendet.</p>
<p style="text-align: justify;">Anfangs brauchte man zwingend einen <a  href="http://blog.iphone-dev.org/">Jailbreak</a>, um überhaupt irgendwas mit dem iPhone unter Linux anzustellen, ein SSH-Zugang zum Gerät war essentiell. Eigentlich nichts schlimmes, aber nicht jeder möchte, bzw. ist in der Lage dazu, sein iPhone zu jailbreaken. Auf Dauer konnte dies also keine akzeptable Lösung sein.</p>
<p style="text-align: justify;">Wie sieht es den heute also aus? Sehr, sehr, und ich glaube man kann mit gutem Gewissen noch ein weiteres &#8220;sehr&#8221; hinzufügen, gut! Fangen wir mal an uns die Einzelheiten anzuschauen.</p>
<p style="text-align: justify;"><span id="more-1655"></span></p>
<h2 style="text-align: justify;">Die Software</h2>
<p style="text-align: justify;">Fangen wir mit der benötigten Software an: An erster Stelle wäre da die Bibliothek <a  href="http://libimobiledevice.org/">libimobiledevice</a>, ehemals libiphone, zu nennen. Sie ist eines der wichtigsten Teile, damit die iPhone OS Geräte überhaupt unter Linux angesprochen werden können. Der zweite wichtige Teil ist die Bibliothek <a  href="http://www.gtkpod.org/libgpod/">libgpod</a>, welche sich um die Musik- und Podcastverwaltung kümmert. Selbstverständlich gibt es noch eine Reihe anderer Software, ohne die der Zugriff auf das iPhone OS nicht möglich wäre, wie zum Beispiel ifuse (um das Dateisystem über fuse einzubinden), usbmuxd (um über USB mehrere parallele Verbindungen zum Gerät aufzubauen) und libplist (um die plist Dateien von Apple zu lesen und zu schreiben). Diese sind aber sehr technisch und auf unterster Eben angesiedelt, so dass ich darauf an dieser Stelle nicht weiter eingehen werden. Man findet sie ebenfalls alle auf <a  href="http://www.libimobiledevice.org">libimobiledevice.org</a>, allerdings sollten sie automatisch per Paketmanagement installiert werden bei den meisten Distributionen.</p>
<p style="text-align: justify;">Wichtig an dieser Stelle: libimobiledevice braucht keinen (!) Jailbreak des Gerätes!</p>
<h2 style="text-align: justify;">Grundlagen</h2>
<p style="text-align: justify;">Das Grundlegende ist der Dateisystemzugriff und das Handling der Apple eigenen Protokolle auf das Gerät, ohne dem geht nichts. Diese Funktionalität wird von der Bibliothek libimobiledevice gehandelt, besser gesagt bietet sie die Möglichkeit dafür. Für die praktische Umsetzung benötigt es noch weiterer Programme. Unter Gnome gibt es in der aktuellen Version des GVFS (&gt;= 1.5.1)﻿﻿﻿ schon Unterstützung für das iPhone OS, vorausgesetzt, dass libimobiledevice installiert ist.</p>
<p style="text-align: justify;">Unter KDE gibt es seit kurzem einen <a  href="http://github.com/JonathanBeck/kio_afc">KIO-Slave</a> für den Zugriff, dieser ist allerdings noch Mitten in der Entwicklung. Ansonsten gibt es noch eine desktopunabhängige Möglichkeit über ifuse das Gerät manuell an einen Pfad zu mounten. Der zugriff auf das Dateisystem ist schon mal viel Wert, doch damit alleine lässt sich erst mal nichts anfangen.</p>
<h2 style="text-align: justify;">Musik, Podcasts und Videos</h2>
<p style="text-align: justify;">Hat man ein iPhone OS Gerät möchte man darauf früher oder später Musik, Podcasts und Filme hören/schauen. Dafür zuständig ist unter Linux die Bibliothek <a  href="http://www.gtkpod.org/libgpod/">libgpod</a>. Warum braucht es dazu extra ein Tool? Bei allen Apple iPods (und auch das iPhone ist in der Hinsicht ein iPod) wird die Musik nicht einfach nur auf das Gerät gespielt, sondern es wird eine interne Datenbank gepflegt, damit zusätzliche Metadaten wie Playcount, Rating etc. gespeichert werden können. Dummerweise ist diese Datenbank (im aktuellen OS übrigens eine einfache SQLite DB) mit einem Hash versehen, die sie vor Manipulation schützen soll. Es gilt also zwei Probleme zu meistern: DB Verwaltung und Hash-Handling. Beides ist mittlerweile kein Problem mehr, wenn man sich der Bibliothek libgpod bedient. Sie kann die Datenbank aller aktuellen iPod und iPhone OS Modelle lesen und mit dem richtigen Hashwerten schreiben. Technisch gesehen also kein Problem. Fehlt nur noch das Programm, welches die Bibliothek benutzt.</p>
<p style="text-align: justify;">Unter Ubuntu Lucid Lynx werden die iPhone OS Geräte beim einbinden in das System als Musikplayer erkannt. <a  href="http://projects.gnome.org/rhythmbox/">Rhythmbox</a> bindet das Gerät problemlos ein, Podcasts und Musik können einfach per Drag and Drop auf das Gerät übertragen werden. Am Ende des Kopiervorgangs erscheint kurz der &#8220;Synchronisiere&#8230;&#8221; Bildschirm, die Datenbank wird geupdatet.</p>
<p style="text-align: justify;"><a  href="http://banshee-project.org/">Banshee</a> ist ein weiterer populärer Mediaplayer unter der Gnome-Desktopumgebung. Leider bauen die Entwickler nicht auf die libgpod Bibliothek auf, sondern haben vor einiger Zeit begonnen eine eigene zu entwickeln, namentlich &#8220;<a  href="http://abock.org/2007/10/20/introducing-podsleuth">podsleuth</a>&#8220;, welche aber bis heute vom Funktionsumfang weit hinter libgpod zurückfällt. Lediglich einige der ersten iPods werden unterstützt. Das umschwenken auf libgpod wird immer wieder von Benutzern <a  href="http://old.nabble.com/Proposal-to-move-Banshee-to-libgpod-td27712382.html">gefordert</a> (nicht zuletzt von mir auch schon) aber bislang leider nicht in die Tat umgesetzt. Unter anderem wird es wohl dadurch erschwert, da Banshee in C# bzw. Mono geschrieben wurde und dafür keine libgpod-Bindings vorhanden sind. Meiner Meinung nach sehr schade, da ich persönlich Banshee einen Ticken besser finde&#8230;</p>
<p style="text-align: justify;">Eine Anwendung extra für Podcasts ist <a  href="http://gpodder.org/">gpodder</a>, welche selbstverständlich, da ebenfalls auf libgpod aufbaut, auch mit den iPhone OS Geräten zusammenarbeitet und einen komfortablen Sync der Podcasts ermöglicht. Meine Favorisierte Anwendung für Podcasts.</p>
<p style="text-align: justify;">Leider gibt es bei den Podcasts aktuell einen <a  href="https://bugs.gpodder.org/show_bug.cgi?id=812">extrem nervigen Bug</a>: Die Geräte merken sich, an welcher Stelle im Podcasts man aufgehört hat zu hören. <a  href="https://bugs.gpodder.org/show_bug.cgi?id=812">(When Syncing New Podcasts &#8211; played and partially played episodes are reset</a>) Man muss also einen Podcasts nicht an einem Stück hören oder sich merken wo man aufgehört hat. Dummerweise wird dieser Wert bei jedem Schreiben der DB zurückgesetzt, so dass alle Podcasts wieder als &#8220;ungespielt&#8221; markiert sind.</p>
<p style="text-align: justify;">Als GTK-Anwendung wäre dann noch <a  href="http://www.gtkpod.org/about.html">gtkpod</a> zu nennen, welche von den Entwicklern der libgpod Bibliothek selbst entwickelt wird. Als Notlösung mal ganz nett, aber ansonsten sind Rhythmbox und Konsorten die bessere Wahl.</p>
<p style="text-align: justify;"><strong>Update:</strong> Wie ich in den Kommentaren drauf hingewiesen wurde, kann gtkpod Videos auf das iPhone transferieren. Gerade kurz getestet und es hat funktioniert. <strong>Updateende</strong></p>
<p style="text-align: justify;">Unter KDE gibt es als Nennenswerten Mediaplayer nur <a  href="http://amarok.kde.org">Amarok</a>. In der aktuellen Version ist das managen der iPhone OS Geräte rudimentär möglich. Sie tauchen selbstständig beim einstecken in Amarok auf und Musik lässt sich übertragen und löschen. Podcast-Sync ist noch in Arbeit. (Dies ist aber ein generelles Problem in Amarok, welches alle portable Mediaplayer betrifft.) Sollte das Gerät in Amarok nicht automatisch auftauchen, so kann es daran liegen, dass eine HAL-Regeldatei fehlt, die das Gerät als Mediaplayer ausweist. Hier ist meine zum <a  href="http://www.ausminternet.de/wp-content/uploads/2010/05/31-apple-mobile-device.fdi_.tar.gz">Download</a>. Einfach nach <strong>/etc/hal/fdi/policy/</strong> kopieren und HAL, bzw. das System neustarten.</p>
<h2 style="text-align: justify;">Kontakte, Kalender, etc.</h2>
<p style="text-align: justify;">Wie schon <a  href="http://www.ausminternet.de/das-iphone-und-linux-aktueller-stand/">hier</a> beschrieben, halte ich den besten Weg immer noch über einen Dienst in der Wolke, zum Beispiel <a  href="http://www.google.com/mobile/sync/">Google</a> oder <a  href="https://www.nuevasync.com/">Nuevasync</a>, welche auf iPhone OS Seite einen Exchange ActiveSync bereitstellen. Dazu entweder Evolution, welches von Haus aus mit Google syncen kann, Thunderbird und <a  href="https://addons.mozilla.org/de/thunderbird/addon/2313">Lightning</a> mit enstprechenden Plugins (<a  href="https://addons.mozilla.org/en-US/thunderbird/addon/7307">Google Contacts</a> und <a  href="https://addons.mozilla.org/en-US/sunbird/addon/4631">Provider for Google Calender</a>, bzw. direkt über CalDAV, welches das iPhone auch nativ beherrscht übrigens) oder unter KDE unter Zuhilfenahme des <a  href="http://www.ausminternet.de/2009/07/15/akonadi-mit-google-calender-und-google-contacts-synchronisieren/">Akonadiplugins</a>.</p>
<p style="text-align: justify;">Möchte man nicht über das Internet syncen, sondern lediglich lokal, so geht dies mittlerweile, wenn auch nur sehr eingeschränkt: Für den Kalender, die Kontakte, sowie Notizen und Lesezeichen gibt es Conduit-Module, welche allerdings bislang nur einen lesenden Zugriff gestatten, als experimental eingestuft und nicht von mir getestet sind (siehe <a  href="http://www.libimobiledevice.org">libimobiledevice.org</a>).</p>
<h2 style="text-align: justify;">Tethering</h2>
<p style="text-align: justify;">Eine nützliche Funktion des iPhone OS von der ich recht häufig Gebrauch mache ist das Tethering, also das Bereitstellen der Internetverbindung für den Laptop beispielsweise. Zu Anfangszeiten musste man sich hierfür noch mit einem gejailbreakten iPhone, SSH-Zugang und einem SOCKS-Proxy herumschlagen, etwas später dann die <a  href="http://www.ausminternet.de/2009/07/18/das-iphone-als-modem-unter-linux-ohne-proxy-per-usb-kabel-und-auch-das-2g/">PPP-Verbindung</a>. Zwar sehr geekig wenn man auf seinem Laptop rumhackt und nach zwei Minuten ein Grinsen im Gesicht hat, weil man so was extrem geekiges gerade macht, aber komfortabel sieht irgendwie anders aus.</p>
<p style="text-align: justify;">Diese Zeiten sind zum Glück vorbei und es ist genauso komfortabel eine Internetverbindung für den Comupter über das iPhone aufzubauen wie unter OSX oder Windows. Man hat die Wahl zwischen Bluetooth oder dem USB-Kabel. Beides habe ich in <a  href="http://www.ausminternet.de/2010/01/08/natives-iphone-tethering-unter-linux/">diesem Artikel</a> ausführlich behandelt. Anzumerken sei lediglich, dass die aktuelle Version des NetworkManagers in Ubuntu Lucid Lynx eigenständig das PAN aufbauen kann, Blueman also nicht mehr nötig ist.</p>
<h2 style="text-align: justify;">Springboardappiconsortierung</h2>
<p style="text-align: justify;">Mit iTunes 9punktIrgendwas kam die Möglichkeit sein Springboard, also die Applications Icons, am Desktop zu ordnen, extrem komfortabel mit der Maus. Diese Funktionalität gibt es über ein Python Programm namens <a  href="http://cgit.sukimashita.com/sbmanager.git/">sbmanager</a> nun auch unter Linux. Detailliertere Infos gibt es in <a  href="http://fernmannblog.wordpress.com/2010/04/09/springboard-icons-sortieren-unter-linux-mit-sbmanager/">FERNmanns Blog</a>.</p>
<h2 style="text-align: justify;">Fotos</h2>
<p style="text-align: justify;">Fotos ließen sich von Anfang an vom Gerät runterladen, da es sich standardmäßig als Kamera am System anmeldet. Der vollständige Sync, also das hochladen von Fotos, sowie das Managen der einzelnen &#8220;Filme&#8221; auf dem Gerät funktionieren noch nicht.</p>
<h2>Backup, Restore, Appinstall und weiterer Entwicklerkram</h2>
<p style="text-align: justify;">Abseits der Mainstreambedürfnisse eines Linux-iPhone OS Users gibt es aber noch weitere Anstrengungen um das Gerät besser mit Linux zu nutzen. Das größte Problem stellt weiterhin das Backup und der Restore da: Einer der einzigen Gründe, warum ich mein iPhone wöchentlich ans iTunes hänge ist, damit ich ein Backup von Gerät habe. Über das Programm <strong>idevicebackup</strong>, welches Teil von libimobiledevice ist, soll es in Zukunft möglich sein, native iPhone OS Backups (full und incremental) zu erstellen, sowie diese auch wieder auf das Gerät zurück zu spielen. Restore funktioniert bislang noch gar nicht, Backup nur so halb&#8230;</p>
<p style="text-align: justify;">Alle möglichen Infos zum Gerät bekommt man mit dem Programm <strong>ideviceinfo</strong>.</p>
<p style="text-align: justify;">Ist man selber Entwickler so kann man mithilfe des Programms <strong>ideviceinstaller</strong> eigene Apps auf das Gerät installieren, bzw. auch wieder löschen. Auch eventuell für Entwickler interessant sein könnte das Programm <strong>idevicesyslog</strong>, welches, passenden Daemon auf dem iPhone vorausgesetzt, das Syslog des iPhone streamen kann.</p>
<h2 style="text-align: justify;">iPad und iPhone OS 4.0</h2>
<p style="text-align: justify;">Das iPad ist seit kurzem auf dem Markt und verkauft sich wie geschnitten Brot (<a  href="http://www.iphoneblog.de/2010/05/03/apple-verkauft-1-millionen-ipads-im-ersten-monat/">1. Millionen Geräte in den ersten 28 Tagen</a>) und auch das nächste iPhone inklusive iPhone OS 4.0 steht in den Startlöchern. Wie schaut es also in Zukunft aus? Gut, das iPad wird heute schon von libimobiledevice unterstützt und iPhone OS 4.0 laut ersten <a  href="http://blog.sukimashita.com/2010/04/09/linux-the-ipad-iphone-os-4-0-and-libimobiledevice-support/">Erfahrungsberichten im Netz</a> ebenfalls, mit Ausnahme des Musiksyncs, da aufgrund des neuen Bookshops mal wieder ein neuer DB-Hash Einzug erhalten hat. Die Entwickler stellen aber in Aussicht, ihn bis zum finalen Release geknackt zu haben, so das auch die 4.0 unterstützt wird.</p>
<h2 style="text-align: justify;">Fazit</h2>
<p style="text-align: justify;">Schaut man sich die Entwicklung der letzten drei Jahre an, kann man eigentlich nur staunen und bewundernd den Hut vor den Leuten ziehen, die das alles möglich gemacht haben. Die iPhone OS Geräte lassen sich mittlerweile sehr komfortabel unter Linux managen und mit den diversen Medien betanken. Sicherlich, es gibt noch eine Menge Baustellen, allen voran die oben angesprochene Backup- und Restoreproblematik. Auch Softwareupdates erfordern noch ein iTunes, vom erstmaligen Aktivierungsvorganges eines jeden neuen Gerätes ganz zu schweigen. Auch der Podcastbug ist mehr als nur nervig, aber so schnell wie die Entwicklung voran geht, bin ich mehr als gespannt, was uns die nächste Zeit noch so bringen wird.</p>
<p style="text-align: justify;">Ich hoffe ich konnte mit diesem Beitrag einen guten Überblick über den aktuellen Stand liefern und ein paar Fragen klären.</p>
<p style="text-align: justify;">Ich für meinen Teil habe im Zuge der Artikelerstellung den Donate-Button auf der Entwicklerseite betätigt und den Leuten 20€ zukommen lassen und kann an dieser Stelle nur dazu aufrufen ebenfalls ein wenig zu spenden, damit uns diese Leute weiterhin überraschen, zum staunen bringen, uns glücklich machen und weiterhin spitzen Software schreiben.</p>
<p style="text-align: justify;">In diesem Sinne, ich lade dann mal die neuen Podcastfolgen auf mein iPhone, damit ich morgen auf dem Weg zur Berufsschule was zu hören habe&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/05/06/das-iphone-os-und-linux-ein-aktueller-ueberblick/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Mit dem Handy ins Ausland &#8211; ohne böse Überraschungen!</title>
		<link>http://www.ausminternet.de/2010/03/15/mit-dem-handy-ins-ausland-ohne-boese-ueberraschungen/</link>
		<comments>http://www.ausminternet.de/2010/03/15/mit-dem-handy-ins-ausland-ohne-boese-ueberraschungen/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 18:29:27 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[communityplanet]]></category>
		<category><![CDATA[Gebühren]]></category>
		<category><![CDATA[Roaming]]></category>
		<category><![CDATA[T-Mobile]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=1610</guid>
		<description><![CDATA[Ich muss nächste Woche beruflich für zwei Tage ins Europäische Ausland, genauer gesagt nach Österreich. Natürlich werde ich mein iPhone mitnehmen, würde aber ungern mit einer horrenden Rechnung nach Hause kommen. Ich hörte vor einiger Zeit, dass man bei T-Mobile &#8230; <a href="http://www.ausminternet.de/2010/03/15/mit-dem-handy-ins-ausland-ohne-boese-ueberraschungen/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img src="http://www.ausminternet.de/wp-content/uploads/2010/03/karte.jpg" alt="" /></p>
<p style="text-align: justify;">Ich muss nächste Woche beruflich für zwei Tage ins Europäische Ausland, genauer gesagt nach Österreich. Natürlich werde ich mein iPhone mitnehmen, würde aber ungern mit einer horrenden Rechnung nach Hause kommen. Ich hörte vor einiger Zeit, dass man bei T-Mobile die Möglichkeit hat, seine Inklusivminuten auch im Ausland zu benutzen. Die Option heißt<a  href="http://www.t-mobile.de/roaming/0,16674,20711-_,00.html"> Smart Traveller</a> und kann ohne weitere Kosten aktiviert werden, bei neueren Tarifen ist sie bereits aktiviert. Ein kurzer Anruf bei der kostenlosen Hotline 2202 (vorausgesetzt, man ruft vom Handy aus an und ist Kunde von T-Mobile) wurde die Option bei mir aktiviert und ich kann nun meine Inklusivminuten auch im Ausland verbrauchen. Zusätzlich muss man für die ersten 60 Minuten die man angerufen wird ebenfalls nichts bezahlen. Sehr schön, macht der rosa Riese auch mal was Positives&#8230;</p>
<p style="text-align: justify;"><span id="more-1610"></span></p>
<p style="text-align: justify;">Nun bleib aber das Problem trotzdem in die Kostenfalle zu laufen, zum Beispiel durch Datenroaming. Ab Juni diesen Jahres müssen die Telkos eine Obergrenze für entstandene Kosten im Ausland einführen, welche beim Erreichen alle weiteren Anrufe und Datenverbindungen blockt und das Informieren per SMS auslöst. Der EU und dem neuen <a  href="http://www.heise.de/mobil/meldung/Handy-Telefonate-und-SMS-im-EU-Ausland-werden-billiger-Update-188089.html">Roaminggesetz</a> sei dank! Daraufhin entstehen keine weiteren Kosten, es sei denn, man deaktiviert die Grenze wieder. Damit es nicht zu plötzlich kommt, wird man beim erreichen von 80% der Grenze schon einmal per SMS informiert. Die Grenze wird im Juni bei jedem automatisch aktiviert und auf 60€ gestellt. Dabei gilt: Es gibt eine Grenze für Datenroaming und ein Grenze für Telefonieroaming. Dementsprechend liegt das gesetzliche Maximum dann bei 120€!</p>
<p style="text-align: justify;">Da mir diese Grenzen zu hoch sind, und außerdem noch nicht Juni ist und diese Option daher bei mir noch nicht aktiviert, habe ich es per Hotline veranlasst und jeweils auf 10€ setzen lassen. So kann ich das Roaming auf dem iPhone auch mal anschalten wenn es notwendig ist, werde dafür aber maximal 10€ bezahlen. Dasselbe gilt für Gespräche, aber da habe ich ja mein Inklusivvolumen. Der Teil der Reisevorbereitungen ist damit abgeschlossen, Österreich ich komme!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/03/15/mit-dem-handy-ins-ausland-ohne-boese-ueberraschungen/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Aufgabenverwaltung mit &#8220;Remember The Milk&#8221; &#8211; zu Hause und Unterwegs</title>
		<link>http://www.ausminternet.de/2010/01/17/aufgabenverwaltung-mit-remember-the-milk-zu-hause-und-unterwegs/</link>
		<comments>http://www.ausminternet.de/2010/01/17/aufgabenverwaltung-mit-remember-the-milk-zu-hause-und-unterwegs/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 21:12:21 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Aufgabenverwaltung]]></category>
		<category><![CDATA[PIM]]></category>
		<category><![CDATA[RTM]]></category>
		<category><![CDATA[ToDo]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=1208</guid>
		<description><![CDATA[Ich bin zu meinem Leidwesen oft recht vergesslich, deswegen sind ein Kalender und eine Todoliste Pflicht für mich. Große Anforderungen habe ich (eigentlich) nicht: Ich möchte eine Übersicht haben, was heute zu erledigen ist, was die nächsten Tage anfällt und &#8230; <a href="http://www.ausminternet.de/2010/01/17/aufgabenverwaltung-mit-remember-the-milk-zu-hause-und-unterwegs/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/P1010439.jpg" class="thickbox no_icon" rel="gallery-1208" title="P1010439"><img class="size-full wp-image-1219" title="P1010439" src="http://www.ausminternet.de/wp-content/uploads/2010/01/P1010439.jpg" alt="" width="550" height="181" /></a></p>
<p style="text-align: justify;">Ich bin zu meinem Leidwesen oft recht vergesslich, deswegen sind ein Kalender und eine Todoliste Pflicht für mich. Große Anforderungen habe ich (eigentlich) nicht: Ich möchte eine Übersicht haben, was heute zu erledigen ist, was die nächsten Tage anfällt und ich möchte es in der Cloud speichern, damit ich vom Laptop ebenso drauf zugreifen kann, wie vom iPhone. Und da beginnt das Problem. Eine Todoliste macht für mich halt nur Sinn, wenn ich sie, in diesem Falle in Form des iPhones, immer bei mir habe bzw. von überall aus benutzen kann.</p>
<p style="text-align: justify;">Auf iPhoneseite gibt es unzählige Aufgabenverwaltungen, von komplexen Getting-Things-Done (GTD) Anwendungen wie Things oder OmniFocus hin zu ganz einfachen Checklisten. Schaut man sich nun an, welche Programme davon in die Cloud syncen, lichtet sich der Wald schon ein wenig. Sucht man nun noch ein Programm unter Linux, welches sich mit einem Cloudservice synchronisieren kann und betrachtet die Schnittmenge, bleibt genau ein Anbieter über: <a  href="http://www.rememberthemilk.com">Remember The Milk</a> (RTM).</p>
<p style="text-align: justify;"><span id="more-1208"></span></p>
<h3 style="text-align: justify;">Remember The Milk</h3>
<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/logo2.png" class="thickbox no_icon" rel="gallery-1208" title="logo2"><img class="size-full wp-image-1240" style="margin-left: 30px; margin-bottom: 30px; float: right;" title="logo2" src="http://www.ausminternet.de/wp-content/uploads/2010/01/logo2.png" alt="" width="188" height="83" /></a>RTM ist kein Getting-Things-Done-Tool, sondern eher eine erweiterte Aufgabenverwaltung. Prinzipiell ist es erstmal ein Webservice. Es werden Tags und Listen unterstützt, man kann Fälligkeitstermine, auch sich wiederholende, festlegen und sich über diverse Wege daran erinnern lassen, Zeitschätzungen zur Dauer der Aufgabenerledigung angeben. und Notizen zu den Aufgaben hinterlegen. Die Standardansicht im Webfrontend zeigt einem an, was man heute zu tun hat, bzw. welche Aufgaben bereits überfällig sind. So stelle ich mir das vor: Eine Aufgabe eintragen, den Kopf frei machen für was anderes und im richtigen Moment daran erinnert werden. Ausserdem gibt es eine API, so dass man auch mit Clientprogrammen seine Aufgaben verwalten kann, was uns zum nächsten Punkt bringt.</p>
<h3 style="text-align: justify;">Tasque</h3>
<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/tasque-0.1.8.png" class="thickbox no_icon" rel="gallery-1208" title="tasque-0.1.8"><img class="size-medium wp-image-1222" style="margin-left: 30px; margin-bottom: 30px; float:right;" title="tasque-0.1.8" src="http://www.ausminternet.de/wp-content/uploads/2010/01/tasque-0.1.8-255x300.png" alt="http://live.gnome.org/Tasque" width="204" height="240" /></a>Auf Linuxseite benutze ich das Programm <a  href="http://live.gnome.org/Tasque">Tasque</a>. Super einfache Bedienung und es synchronisiert sich sehr gut mit RTM. Listen werden unterstützt, Tags allerdings nicht. (Für mich irrelevant).<br />
Tasque besticht durch seine Schlicht- und Einfachheit. Es ist in einer aktuellen Version in den Paketquellen von Ubuntu enthalten und kann dementsprechend einfach installiert werden.<br />
Seit Version 0.2 unterstützt nun auch <a  href="http://gtg.fritalk.com/post/2009/12/10/The-new-Getting-Things-GNOME!-0.2-Gorignak-has-landed!">Getting Things Gnome </a>(GTG) den Sync mit RTM über ein Plugin des neuen Pluginsystems. GTG ist allerdings irgendwie nicht mein Fall, aber das ist wohl Geschmackssache. Ausserdem kann es sein vollen Funktionsumfang in Verbindung mit RTM leider auch nicht ausspielen. Projekte und Unterprojekte als Beispiel sind nicht möglich, da dies seitens RTM nicht unterstützt wird.</p>
<h3 style="text-align: justify;">Unterwegs</h3>
<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/1072-200811070500135.jpg" class="thickbox no_icon" rel="gallery-1208" title="1072-200811070500135"><img class="size-medium wp-image-1228" style="margin-left: 30px; margin-bottom: 30px; float: right;" title="1072-200811070500135" src="http://www.ausminternet.de/wp-content/uploads/2010/01/1072-200811070500135-200x300.jpg" alt="" width="200" height="300" /></a>RTM versteht sich auf der mobilen Seite <a  href="http://www.rememberthemilk.com/services/">mit allen großen System</a>, vom iPhone, über Android und Symbian bis hin zu Windows Mobile, für die es jeweils eine native App direkt von RTM gibt. Allerdings wären wir damit auch schon beim Knackpunkt der Geschichte. Der Mobilesync erfordert eine <a  href="http://www.rememberthemilk.com/upgrade/">RTM Pro-Mitgliedschaft</a>, welche 25$ pro Jahr kostet. Ich habe einen guten Wechselkurs erwischt und habe umgerechnet 16€ bezahlt. Die Pro-Mitgliedschaft kann, inklusive der Anwendung auf dem mobilen Gerät für 14 Tage lang kostenlos getestet werden.</p>
<p style="text-align: justify;">Die Anwendung auf dem iPhone ist allererste Sahne, wenn ich das mal so salopp ausdrücken darf. Da sie direkt von RTM ist, werden selbstverständlich alle Funktionen hervorragend unterstützt. Die RTM-App ist also  ein Pflichtdownload für das mobile Gerät, um einiges voraus vor allen anderen Apps, die unterwegs ebenfalls RTM-Sync versprechen.</p>
<p style="text-align: justify;">Die iPhone App bedient sich des Apple Push-Notification-Dienstes, um die Anzahl der heute zu erledigenden Aufgaben in einer kleinen Badge auf dem Icon anzuzeigen und um einen zur selbst festgelegten Zeit an die Aufgaben per PopUp und Kuhglockensound zu erinnern.</p>
<h3 style="text-align: justify;">Fazit</h3>
<p style="text-align: justify;">Ich bin hoch zufrieden und bereue keinen Tag die Pro-Mitgliedschaft erworben zu haben. RTM nimmt mir einiges an Arbeit ab und ich kann mich auf die wichtigen Sachen konzentrieren ohne irgendwas zu vergessen &#8211; man läuft nicht mehr so vergesslich und verplant durchs Leben. Die Synchronisation von Linux, über den Webservice bis zum iPhone klappt ohne Probleme. Und die kleine Badge auf dem iPhone, immer sichtbar im Dock, erzeugt ein so ungeheuer schlechtes Gewissen, wen man mal etwas aufgeschoben hat&#8230;.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/01/17/aufgabenverwaltung-mit-remember-the-milk-zu-hause-und-unterwegs/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Natives iPhone Tethering unter Linux</title>
		<link>http://www.ausminternet.de/2010/01/08/natives-iphone-tethering-unter-linux/</link>
		<comments>http://www.ausminternet.de/2010/01/08/natives-iphone-tethering-unter-linux/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 12:44:22 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[tethering]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=1176</guid>
		<description><![CDATA[Nachdem die native Tetheringfunktion auf meinem iPhone Classic nun endlich aktiviert ist, will sie natürlich auch genutzt werden. Doch wie schaut es aus unter Linux, bzw. Ubuntu mit Gnome im Speziellen? Ich nehme das Ergebnis mal vorweg: perfekt! Vorweg sei &#8230; <a href="http://www.ausminternet.de/2010/01/08/natives-iphone-tethering-unter-linux/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/P1010419.jpg" class="thickbox no_icon" rel="gallery-1176" title="P1010419"><img class="size-full wp-image-1193" title="P1010419" src="http://www.ausminternet.de/wp-content/uploads/2010/01/P1010419.jpg" alt="" width="550" height="229" /></a></p>
<p style="text-align: justify;">Nachdem die native Tetheringfunktion auf meinem iPhone Classic nun <a  href="http://www.ausminternet.de/iphone/tethering-aktivieren-auf-dem-iphone-2g">endlich aktiviert ist</a>, will sie natürlich auch genutzt werden. Doch wie schaut es aus unter Linux, bzw. Ubuntu mit Gnome im Speziellen? Ich nehme das Ergebnis mal vorweg: perfekt!</p>
<p style="text-align: justify;">Vorweg sei gesagt: Für das nachfolgende braucht man KEINEN Jailbreak! Bei mir war er nur nötig um die Tetheringoption freizuschalten. Für iPhone 3G und 3GS die Tethering aktiviert haben, geht es ohne!</p>
<p style="text-align: justify;">Das iPhone kennt zwei Möglichkeiten des Tetherings: über das USB-Kabel und über Bluetooth. USB wäre die bessere Möglichkeit, da es definitiv akkuschonender ist, also dort mal zuerst geschaut. <span style="text-decoration: line-through;">Ziemlich schnell war klar, das es relativ aussichtslos  sein würde, da unter Windows und OSX ein neuer, proprietärer Netzwerkadapter angelegt wird und es dafür bislang keine Treiber gibt um ihn auch unter Linux zu benutzen. Bleibt also noch Bluetooth.</span></p>
<p style="text-align: justify;"><span style="text-decoration: line-through;"><br />
</span></p>
<p><span id="more-1176"></span></p>
<p style="text-align: justify;"><strong><span style="color: #ff0000;">Update 1 (ungetestet):</span></strong></p>
<p style="text-align: justify;"><strong><span style="color: #ff0000;"> </span></strong><em> Ich bekam gerade folgenden link zugeschickt: </em><a  href="http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver"><em>iPhoneEthernetDriver</em></a><em> Damit soll auch das USB-Tethering möglich sein, durch ein neues Kernel Modul.</em></p>
<p style="text-align: justify;"><span style="color: #339966;"><strong>Update 2 (getestet):</strong></span></p>
<p style="text-align: justify;"><em>Der obige Link funktioniert! Damit hat man dann auch USB-Tethering :) Dennoch finde ich Bluetooth (vorausgesetzt, es geht nicht um jede Minute Akkuleistung) irgenwie charmanter, so ganz ohne Kabel&#8230; (Danke Michi!)</em></p>
<p style="text-align: justify;">Über Bluetooth wird ein <a  href="http://de.wikipedia.org/wiki/Personal_Area_Network">Personal Area Network</a> aufgebaut (PAN). Dies ist ein standardisiertes Verfahren und sollte daher ohne Probleme funktionieren.</p>
<p style="text-align: justify;">Es gibt zwei Wege, die Bluetooth-PAN Verbindung zu nutzen: mit dem NetworkManager oder ohne NetworkManager. Bei beiden Methoden muss das iPhone mit dem PC gepaired sein, wovon ich im Folgenden einfach ausgehe (Bei Problemen: <a  href="http://wiki.ubuntuusers.de/Bluetooth">Bluetooth im ubuntuusers.de Wiki</a>). Wer den NetworkManager nutzt, kann gleich zu Methode 2 gehen.</p>
<h3 style="text-align: justify;">Methode 1: Ohne NetworkManager</h3>
<p style="text-align: justify;">Dafür muss die Bluetoothverbindung und das PAN manuell erstellt werden. Zuerst muss die Hardwareadresse des iPhone rausgefunden werden:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">hcitool scan</pre></div></div>

<p style="text-align: justify;">Oder man schaut unter﻿ Einstellungen -&gt; Allgemein -&gt; Info am iPhone.</p>
<p style="text-align: justify;">Nun baut man zuerst das PAN auf (statt 00:00&#8230; seine eigene Adresse einsetzen):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pand <span style="color: #660033;">-c</span> 00:00:00:00:00:00 <span style="color: #660033;">-n</span></pre></div></div>

<p style="text-align: justify;">Danach das neue erstellte Interface hochfahren:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ifconfig</span> bnep0 up</pre></div></div>

<p style="text-align: justify;">Und sich per DHCP eine IP-Adresse vom iPhone holen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">dhclient bnep0</pre></div></div>

<p style="text-align: justify;">Dies kann man sich auch zukünftig ersparen, in dem man folgende Zeile in die <strong>/etc/network/interfaces</strong> einträgt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">iface bnep0 inet dhcp</pre></div></div>

<p style="text-align: justify;">Nun sollte man über das iPhone online sein! Um die Verbindung wieder abzubauen, einfach folgendes eingeben:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ifconfig</span> bnep0 down
pand <span style="color: #660033;">-K</span></pre></div></div>

<p style="text-align: justify;">Das ganze geht auch etwas komfortabler mit einem Script (bei mir unter /usr/local/bin/tether):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #007800;">pand</span>=<span style="color: #ff0000;">'/usr/bin/pand'</span>
<span style="color: #007800;">ifup</span>=<span style="color: #ff0000;">'/sbin/ifup'</span>
<span style="color: #007800;">ifdown</span>=<span style="color: #ff0000;">'/sbin/ifdown'</span>
<span style="color: #007800;">phone_address</span>=<span style="color: #ff0000;">'00:1C:B3:56:34:C6'</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
&nbsp;
  start<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Connecting to iPhone : &quot;</span>
        <span style="color: #007800;">$pand</span> <span style="color: #660033;">--connect</span> <span style="color: #007800;">$phone_address</span> <span style="color: #660033;">-n</span>
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">2</span>
        <span style="color: #007800;">$ifup</span> bnep0
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;done.&quot;</span>
   <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
  stop<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Disconnecting from iPhone : &quot;</span>
        <span style="color: #007800;">$ifdown</span> bnep0
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">2</span>
        <span style="color: #007800;">$pand</span> <span style="color: #660033;">-K</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;done.&quot;</span>
   <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: tether { start | stop  }&quot;</span>
&nbsp;
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">esac</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></div></div>

<h3 style="text-align: justify;">Methode 2: Mit NetworkManager</h3>
<p style="text-align: justify;">Wenn man den NetworkManager benutzt, was man per default macht wenn man ein aktuelles Ubuntu einsetzt, dann kommt man mit der obigen Methode nicht weit, da viele Programme, darunter auch der Firefox, darauf warten, dass der NetworkManager das &#8220;online&#8221; Signal gibt. Da er allerdings vom Konsolengetippe nichts mitbekommt, ist man noch &#8220;offline&#8221;.</p>
<p style="text-align: justify;">Leider klappt es nicht von Haus aus mit dem Gnome Bluetooth Manager. Es gibt allerdings einen, in meinen Augen wesentlich besseren Ersatz für diesen: <a  href="http://blueman-project.org/">Blueman</a></p>
<p style="text-align: justify;">In Karmic ist er erfreulicherweise in den offiziellen Paketquellen enthalten, leider aber sehr veraltet. Um das Tethering benutzen zu können benötigt man eine aktuelle Version aus <strong>ppa:blueman/ppa</strong></p>
<p style="text-align: justify;">Nach einem beherzten <strong>apt-get update</strong> und <strong>apt-get install blueman</strong> wird der alte Gnome Bluetoothmanager gelöscht und durch Blueman ersetzt.</p>
<p><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/screenshot_004.png" class="thickbox no_icon" rel="gallery-1176" title="screenshot_004"><img class="size-full wp-image-1184" title="screenshot_004" src="http://www.ausminternet.de/wp-content/uploads/2010/01/screenshot_004.png" alt="" width="550" height="214" /></a></p>
<p style="text-align: justify;">Nun kann man das iPhone als neues Gerät einrichten. Nachdem man dies getan und dem iPhone in Blueman vertraut hat, kann man mittels Rechtsklick auf das Gerät in der Geräteliste das Tethering mit Aktivierung des Network Acces Points starten. Der Rest sollte automatisch geschen: Es wird eine neue Verbindung im NetworkManager angelegt und aktiviert, es wird sich per DHCP eine Adresse geholt und die Routen werden gesetzt; man ist online, technisch und, was viel wichtiger ist, auch aus Sicht des networkManagers.</p>
<p style="text-align: justify;">Das einzige was nun zukünftig getan werden muss, um eine Verbindung aufzubauen ist in meinem Falle ein Rechtsklick auf das Blueman Trayicon -&gt; Letzte Verbindungen -&gt; Netzwerkzugriff auf Jan&#8217;s iPhone</p>
<p style="text-align: justify;">Natürlich sind nicht alle Sachen von mir herausgefunden worden. Leider ist mir der Firefox abgestürzt und die Tabs sind weg. Daher kann ich keine Quellenangaben der (meist englischen) Seiten geben. Daher geht mein Dank an das große, weite, allwissende Internet im Allgemeinen! Ich hoffe auf euer Verständniss.</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/01/08/natives-iphone-tethering-unter-linux/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Tethering aktivieren auf dem iPhone 2G</title>
		<link>http://www.ausminternet.de/2010/01/08/tethering-aktivieren-auf-dem-iphone-2g/</link>
		<comments>http://www.ausminternet.de/2010/01/08/tethering-aktivieren-auf-dem-iphone-2g/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 10:09:02 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[2G]]></category>
		<category><![CDATA[Classic]]></category>
		<category><![CDATA[communityplanet]]></category>
		<category><![CDATA[tethering]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=1158</guid>
		<description><![CDATA[Mit der Firmwareversion 3.0 des iPhone OS bekam es die Möglichkeit des &#8220;Tetherns&#8221; spendiert. (Welche wohl übrigens schon, versteckt,  seit 1.0 implementiert gewesen sein soll&#8230;) Tethering bedeutet, dass das iPhone als Modem für einen Computer fungieren kann, also seine Internetverbindung &#8230; <a href="http://www.ausminternet.de/2010/01/08/tethering-aktivieren-auf-dem-iphone-2g/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/P1010416.JPG" class="thickbox no_icon" rel="gallery-1158" title="P1010416"><img class="size-full wp-image-1159" title="P1010416" src="http://www.ausminternet.de/wp-content/uploads/2010/01/P1010416.JPG" alt="P1010416" width="550" height="188" /></a></p>
<p style="text-align: justify;"><a  href="http://www.ausminternet.de/wp-content/uploads/2010/01/P1010416.JPG"></a>Mit der Firmwareversion 3.0 des iPhone OS bekam es die Möglichkeit des &#8220;Tetherns&#8221; spendiert. (Welche wohl übrigens schon, versteckt,  seit 1.0 implementiert gewesen sein soll&#8230;) Tethering bedeutet, dass das iPhone als Modem für einen Computer fungieren kann, also seine Internetverbindung mit ihm teilt. Als die Ankündigung letztes Jahr gemacht wurde, freute ich mich tierisch, musste ich doch bislang immer mein altes Nokia noch mitnehmen um unterwegs online zu sein. Doch zu früh gefreut; Tethering sollte nur für die 3G Modelle verfügbar sein. Fadenscheinige Begründung für diese Entscheidung war, dass EDGE zu langsam ist. Mal davon abgesehen, dass zwei Jahre zuvor EDGE besser war als geschnitten Brot und man auch davor schon Jahre lang &#8220;getethered&#8221; hatte, verstehe ich solche Marketingentscheidungen einfach nicht.</p>
<p style="text-align: justify;">Es hatte allerdings auch was gutes, dass es lediglich eine Marketingentscheidung war. Man konnte damit davon ausgehen, dass es keine technische Beschränkung gibt, sondern nur eine Softwareseitige. Und das sollte sich umgehen lassen! Ich machte mich also auf die Suche im World Wide Web und traf auf viele Leute und Threads die eben dieses Ziel vor Augen hatten. Leider ohne Glück bis dato. Es schien doch nicht so einfach zu sein wie gedacht und ich verlor es mit der Zeit aus den Augen. (Nichts desto trotz<a href="http://www.ausminternet.de/allgemeines/das-iphone-als-modem-unter-linux-ohne-proxy-per-usb-kabel-und-auch-das-2g"> fand ich eine Lösung</a> das iPhone zu tethern, wenn auch etwas umständlich, aber zumindest recht geekig)</p>
<p style="text-align: justify;"><span id="more-1158"></span></p>
<p style="text-align: justify;">Vor zwei Tagen, las ich folgendes von <a  href="https://twitter.com/Schimmelkolonie">@schimmelkolonie</a>:</p>
<blockquote style="text-align: justify;"><p>Woot! iPhone tethering auf dem Classic 2G, schreibe damit gerade diesen Tweet!</p></blockquote>
<p style="text-align: justify;">Meine Neugier war geweckt und ich bat ihn um nähere Infos. Wir tauschten uns kurz aus und er versprach einen Blogartikel drüben bei <a  href="http://www.schimmelkolonie.de">schimmelkolonie.de</a> zu verfassen. Es dauert genau einen Tag und <a  href="http://www.schimmelkolonie.de/?p=1121">Tethering mit dem iPhone 2g / Classic</a> war online. Michi beschreibt dort sehr schön die Hintergründe und die Infos, welche man braucht um tethering auf einem 2G zu aktivieren. Inklusive sämtlicher Threads in den diversen Foren. Dazu möchte ich noch zwei Dinge anmerken:</p>
<ol style="text-align: justify;">
<li>Es gibt keine 100%ige Schritt-für-Schritt-Anleitung des Ganzen. Ich hatte überlegt eine solche zu verfassen, den Gedanken dann aber wieder verworfen. Grund: Wer es mit den gegebenen Informationen nicht alleine schafft, der sollte lieber die Finger davon lassen bevor er sein iPhone funktionsunfähig macht.</li>
<li>Am Ende beschreibt Michi Änderungen an seiner carrier.plist. Ich brauchte diese Änderungen nicht vorzunehmen. Ein Grund könnte sein, dass ich ein original T-Mobile iPhone inklusive Vertrag besitze und er eines mit O2 Vertrag. Also erst schauen ob es auch ohne funktioniert!</li>
</ol>
<p style="text-align: justify;">Zum Schluss möchte ich mich noch einmal ganz ganz ganz dolle bei Michi bedanken, endlich kann das Nokia in der Schublade bleiben!</p>
<p style="text-align: justify;"><strong>Und wie schaut es aus mit Linux?</strong></p>
<p style="text-align: justify;">Natürlich ist diese Frage für mich fast noch wichtiger, aber ich kann sagen: es funktioniert über Bluetooth komplett transparent mit dem NetworkManager in Ubuntu! Aber dazu heute im Laufe des Tages ein gesonderter Artikel.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2010/01/08/tethering-aktivieren-auf-dem-iphone-2g/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Das iPhone als Modem &#8211; unter Linux, ohne Proxy, per USB-Kabel und auch das 2G</title>
		<link>http://www.ausminternet.de/2009/07/18/das-iphone-als-modem-unter-linux-ohne-proxy-per-usb-kabel-und-auch-das-2g/</link>
		<comments>http://www.ausminternet.de/2009/07/18/das-iphone-als-modem-unter-linux-ohne-proxy-per-usb-kabel-und-auch-das-2g/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 22:35:45 +0000</pubDate>
		<dc:creator>Jan</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[PPP]]></category>
		<category><![CDATA[tethering]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.virtualpixel.de/?p=924</guid>
		<description><![CDATA[ACHTUNG: bitte vorher auf die Übersichtsseite zum Thema iPhone &#38; Linux schauen. Es gibt mittlerweile die Möglichkeit das native iPhone OS 3 Tethering auf einem 2G zu aktivieren und es unter Linux zu nutzen, per Bluetooth und per USB! Seit &#8230; <a href="http://www.ausminternet.de/2009/07/18/das-iphone-als-modem-unter-linux-ohne-proxy-per-usb-kabel-und-auch-das-2g/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="iphonestatus">
<h3>ACHTUNG:</h3>
<p>bitte vorher auf die <a  href="http://www.ausminternet.de/das-iphone-und-linux-aktueller-stand">Übersichtsseite zum Thema iPhone &amp; Linux</a> schauen. Es gibt mittlerweile die Möglichkeit das native iPhone OS 3 Tethering auf einem 2G zu aktivieren und es unter Linux zu nutzen, per Bluetooth und per USB!</p>
</div>
<p style="text-align: justify;">Seit iPhone OS 3.0 gibt es die Möglichkeit des &#8220;Tetherings&#8221;, auf gut deutsch: die Nutzung des iPhones als UMTS-Modem. Wie das nun genau funktioniert, und ob es überhaupt mit Linux funktioniert kann ich leider nicht testen, da ich noch das iPhone Classic besitze, welches aus <span style="text-decoration: line-through;">marketing</span> &#8220;technischen&#8221; Gründen diese Funktion nicht besitzt.</p>
<p style="text-align: justify;">Wie dem auch sei, es muss eine Lösung her! Bislang bin ich über ein altes Nokia 6300 unterwegs ins Internet gegangen, MultiSim sei dank. Aber richtig prickelnd ist das nicht. Besser wäre es, das iPhone dafür zu benutzen. Ausserdem sollte es nicht WLAN-basierend sein, sondern über das USB-Kabel funktionieren, damit sich das iPhone vom Laptop mit Strom versorgen kann und nicht in 2 Stunden leer gesaugt ist.</p>
<p style="text-align: justify;">Zum Glück ist das Internet groß und voller Informationen, so dass man das Rad nicht neu erfinden muss. Daher geht der ganze Dank für diesen Artikel auch an snap_b, der <a  href="http://forums.whirlpool.net.au/forum-replies-archive.cfm/1140635.html">hier</a> den Großteil der Anleitung auf English veröffentlicht hat.</p>
<p style="text-align: justify;">Ziel ist es, eine PPP-Verbindung über SSH aufzubauen.</p>
<p style="text-align: justify;">Ich werde nun im Folgenden den Artikel übersetzen und mit einem kleinem Script am Ende versehen, damit das Ganze etwas komfortabler wird.</p>
<p><span id="more-924"></span></p>
<p><span style="color: #ff0000;"><strong>Alle Befehle müssen als Root ausgeführt werden!</strong></span></p>
<h2>Schritt 1: iTunnel</h2>
<p style="text-align: justify;">iTunnel ermöglicht es, eine SSH-Verbindung aufs iPhone über das USB-Kabel herzustellen. Man läd es <a  href="http://www.cs.toronto.edu/~jingsu/itunnel/">hier</a> runter und entpackt es nach <strong>/opt/itunnel</strong></p>
<p>Eine Installation ist nicht notwendig.</p>
<p>Nun wird iTunnel kurz getestet (als Root!):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itunnel<span style="color: #000000; font-weight: bold;">/</span>itunnel</pre></div></div>

<p>Es sollte folgendes zu sehen sein:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">get_iPhone<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> success
- successfully got device
server waiting <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">ssh</span> connection</pre></div></div>

<p>Auf einer zweiten Konsole stellt man nun eine SSH-Verbindung her:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">3023</span> localhost</pre></div></div>

<p>Wie man sieht, stellt iTunnel eine SSH-Verbindung auf localhost mit Port 3023 bereit. Nun sollte man in der Konsole des iPhones sein.</p>
<h2>Schritt 2: Passwortloser Zugriff</h2>
<p style="text-align: justify;">Damit man nicht jedesmal sein Passwort eingeben muss, werden nun SSH-Keys ausgetauscht. Dazu wird zuerst ein Key auf dem Host erstellt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span></pre></div></div>

<p>dabei können alle Abfragen einfach mit Enter bestätigt werden!</p>
<p>als nächstes muss auf dem iPhone etwas getan werden:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">3023</span> localhost
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.ssh</pre></div></div>

<p style="text-align: justify;">normalerweise würde jetzt einfach der SSH-Key mit scp kopiert werden, da es leider mit der Firmware 3.0 des iPhones und der aktuellen iTunnel Version ein Problem gibt, ist es nicht Möglich etwas vom Host auf das iPhone per scp zu kopieren. Deswegen habe ich den &#8220;Umweg&#8221; über iFuse genommen. Wie das geht steht <a  href="http://www.ausminternet.de/linux/iphone-und-linux-fast-ohne-jailbreak">hier</a>.</p>
<p style="text-align: justify;">Hat man das iPhone über iFuse eingebunden, zum Beispiel unter <strong>/media/iPhone</strong> dann kann man nun die Keys kopieren.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.pub <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>iPhone<span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Nun wieder zurück zum iTunnel und ab aufs iPhone. Dort dann folgendes Copy&amp;Pasten:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.pub <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>authorized_keys2
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">700</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.ssh
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">644</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>authorized_keys2
<span style="color: #7a0874; font-weight: bold;">exit</span></pre></div></div>

<p>Nun sollte man sich mit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">3023</span> localhost</pre></div></div>

<p>auf sein iPhone einloggen können, ohne das ein Passwort verlangt wird.</p>
<h2>Schritt 3: slirp und terminal</h2>
<p style="text-align: justify;">Auf iPhone Seite braucht man zum einen das Programm slirp welches eine PPP-Verbindung über eine SSH-Verbindung erstellen kann und zum anderen das Programm Terminal, damit man slirp auch starten kann ;) Beide sind über Cydia erhältlich.</p>
<h2>Schritt 4: Das PPP-Script</h2>
<p>Das Script für die PPP-Verbindung erstellen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>itether</pre></div></div>

<p>und folgendes reinschreiben:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #007800;">IP</span>=<span style="color: #ff0000;">&quot;10.0.2.15:10.0.2.2&quot;</span>
<span style="color: #007800;">NETMASK</span>=<span style="color: #ff0000;">&quot;255.255.255.0&quot;</span>
<span style="color: #007800;">BAUD</span>=<span style="color: #ff0000;">&quot;115200&quot;</span>
<span style="color: #007800;">DEBUG</span>=<span style="color: #ff0000;">&quot;debug logfile /tmp/ppp.log&quot;</span>
<span style="color: #007800;">COMPRESS</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">PTY</span>=<span style="color: #ff0000;">&quot;env SSH_AUTH_SOCK=/tmp/501/SSHKeychain.socket ssh -t root@localhost -p 3023 /usr/bin/slirp -P -b <span style="color: #007800;">$BAUD</span>&quot;</span>
&nbsp;
pppd <span style="color: #007800;">$IP</span> netmask <span style="color: #007800;">$NETMASK</span> <span style="color: #007800;">$BAUD</span> <span style="color: #7a0874; font-weight: bold;">local</span> noauth defaultroute <span style="color: #007800;">$DEBUG</span> usepeerdns pty <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PTY</span>&quot;</span></pre></div></div>

<h2>Schritt 4: Die Start und Stop-Scripte:</h2>
<p>Das Script für den Verbindungsaufbau erstellen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>istart</pre></div></div>

<p>und folgendes reinschreiben:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itunnel<span style="color: #000000; font-weight: bold;">/</span>itunnel<span style="color: #000000; font-weight: bold;">&amp;</span>
<span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">2</span>
itether<span style="color: #000000; font-weight: bold;">&amp;</span>
<span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">4</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;nameserver 208.67.222.222&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>resolv.conf
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> TRUE <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">do</span>
<span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>Das Script für den Verbindungsabbau:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>istop</pre></div></div>

<p>und folgendes reinschreiben:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #c20cb9; font-weight: bold;">killall</span> pppd <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">killall</span> itunnel</pre></div></div>

<h2>Schritt 5: Die Verbindung herstellen</h2>
<p style="text-align: justify;"><span style="text-decoration: line-through;">Zuerst wird auf dem iPhone slirp gestartet. Dazu einfach die Terminal App öffnen, <strong>slirp</strong> eingeben, enter drücken und Terminal App wieder schließen. Slirp bleibt solange gestartet, bis es beendet wird, oder das iPhone neustartet.</span></p>
<p style="text-align: justify;">Wie sich herausgestellt hat, ist es nicht nötig auf dem iPhone zuerst slirp zu starten! Allerdings gibt es das Problem, dass das istart Script erst beim zweiten mal funktioniert, wenn das iPhone oder der PC nach der letzten Verbindung neugestartet wurden&#8230; Jemand eine Idee warum?<span style="text-decoration: line-through;"><br />
</span></p>
<p style="text-align: justify;">Nun braucht nur noch das Script <strong>istart</strong> als Root aufgerufen werden und nach ca 10 Sekunden sollte man über das iPhone online sein!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ausminternet.de/2009/07/18/das-iphone-als-modem-unter-linux-ohne-proxy-per-usb-kabel-und-auch-das-2g/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
	</channel>
</rss>

