<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on cat /dev/snapshot</title><link>https://rumpf.eu/michael/posts/</link><description>Recent content in Posts on cat /dev/snapshot</description><generator>Hugo -- 0.154.5</generator><language>en</language><lastBuildDate>Mon, 24 Feb 2014 00:25:00 +0100</lastBuildDate><atom:link href="https://rumpf.eu/michael/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Integrating Jenkins, SonarQube, and Nexus</title><link>https://rumpf.eu/michael/posts/2014-02-24-integrating-jenkins-sonarqube-and-nexus/</link><pubDate>Mon, 24 Feb 2014 00:25:00 +0100</pubDate><guid>https://rumpf.eu/michael/posts/2014-02-24-integrating-jenkins-sonarqube-and-nexus/</guid><description>&lt;p&gt;In this post I will describe a solution to add a portal page, a common header and a dynamic panel to
each of the three tools Jenkins, SonarQube, and Nexus. Those modifications lead to a better visual
integration and intensifies the impression that the tools belong together.&lt;/p&gt;
&lt;p&gt;As a pre-requisite you need an Apache HTTP server, configured as reverse proxy and the tools accessible
via the following context path:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/jenkins&lt;/li&gt;
&lt;li&gt;/sonarqube&lt;/li&gt;
&lt;li&gt;/nexus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The folder structure which contains the portal page and the customization fragments looks like this:&lt;/p&gt;</description></item><item><title>Page decoration plugins for Jenkins, SonarQube, and Nexus</title><link>https://rumpf.eu/michael/posts/2014-02-23-page-decoration-plugins-for-jenkins/</link><pubDate>Sun, 23 Feb 2014 18:34:00 +0100</pubDate><guid>https://rumpf.eu/michael/posts/2014-02-23-page-decoration-plugins-for-jenkins/</guid><description>&lt;p&gt;While trying to apply a unified visual layout to the tools &lt;a href="http://jenkins-ci.org/"&gt;Jenkins&lt;/a&gt;, 
&lt;a href="http://www.sonarqube.org/"&gt;SonarQube&lt;/a&gt;, and &lt;a href="http://www.sonatype.org/nexus/"&gt;Nexus&lt;/a&gt; I learned that
there are some plugins available, but none of them really fits the intended purpose.&lt;/p&gt;
&lt;p&gt;Jenkins has no easy way of changing its appearance and the 
&lt;a href="https://wiki.jenkins-ci.org/display/JENKINS/Simple+Theme+Plugin"&gt;Simple Theme plugin&lt;/a&gt; comes only
close to what is needed. In SonarQube there is a
&lt;a href="http://docs.codehaus.org/display/SONAR/Branding+Plugin"&gt;Branding plugin&lt;/a&gt; with which you can display
an image at the top of each page, but that&amp;rsquo;s basically all. The Nexus plugin to change the
&lt;a href="http://blog.sonatype.com/2010/02/custom-logo-nxpro/"&gt;Sonatype Nexus logo is available for the professional version only&lt;/a&gt;,
but buying the professional version just for being able to change the logo is not really an option.&lt;/p&gt;</description></item><item><title>Music Player Daemon on Raspberry Pi</title><link>https://rumpf.eu/michael/posts/2013-06-10-music-player-daemon-on-raspberry-pi/</link><pubDate>Mon, 10 Jun 2013 21:06:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2013-06-10-music-player-daemon-on-raspberry-pi/</guid><description>&lt;p&gt;This is not yet another &amp;ldquo;how to configure &lt;a href="http://www.musicpd.org/"&gt;MPD&lt;/a&gt; on the Raspberry Pi&amp;rdquo; article,
because there are a lot of excellent &lt;a href="http://www.musicpd.org/"&gt;MPD&lt;/a&gt; HOWTOs already available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://hempeldesigngroup.com/embedded/stories/raspberry-pi-setup-as-mpd-sever/"&gt;http://hempeldesigngroup.com/embedded/stories/raspberry-pi-setup-as-mpd-sever/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.t3node.com/blog/streaming-audio-with-mpd-and-icecast2-on-raspberry-pi/"&gt;http://www.t3node.com/blog/streaming-audio-with-mpd-and-icecast2-on-raspberry-pi/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lesbonscomptes.com/pages/raspmpd.html"&gt;http://lesbonscomptes.com/pages/raspmpd.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, I experienced a bottleneck with the configuration described by those articles. The load
was slightly over 1 but it was high enough to cause some stuttering every 30 seconds.&lt;/p&gt;
&lt;p&gt;The first optimization is to avoid using a separate streaming solution like icecast&lt;/p&gt;
&lt;p&gt;MPD has its own, built-in streaming plugin which can be configured like this:&lt;/p&gt;</description></item><item><title>Debugging UPnP/DLNA traffic to a Sony LCD TV</title><link>https://rumpf.eu/michael/posts/2012-10-08-debugging-upnpdlna-traffic-to-sony-lcd/</link><pubDate>Mon, 08 Oct 2012 14:27:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2012-10-08-debugging-upnpdlna-traffic-to-sony-lcd/</guid><description>&lt;p&gt;The issue I have is that my Sony LCD TV seems to be very picky regarding the UPnP/DLNA protocol when playing
media from a control point to the television. The Android App
&lt;a href="https://play.google.com/store/apps/details?id=com.bubblesoft.android.bubbleupnp&amp;amp;hl=en"&gt;BubbleUPnP&lt;/a&gt; does a
good job here as playing music works out of the box. Initial tests with the &lt;a href="http://4thline.org/projects/cling/"&gt;Cling Java library&lt;/a&gt;
to play music does not work out of the box. Therefore I wanted to debug the HTTP SOAP protocol in order to see where the differences are.&lt;/p&gt;</description></item><item><title>Use Java 7 on Buildhive</title><link>https://rumpf.eu/michael/posts/2012-08-14-use-java-7-on-buildhive/</link><pubDate>Tue, 14 Aug 2012 14:09:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2012-08-14-use-java-7-on-buildhive/</guid><description>&lt;p&gt;Changing source and target version to 1.7 is not sufficient to enable Java 7 on Buildhive at the moment.&lt;br&gt;
Adding the following profile to your Maven POM makes sure that your local build is not affected by
the special configuration and when running on Buildhive, JDK 7 is used for both build and test-run.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;  &amp;lt;profiles&amp;gt;
    &amp;lt;profile&amp;gt;
      &amp;lt;id&amp;gt;buildhive&amp;lt;/id&amp;gt;
      &amp;lt;build&amp;gt;
        &amp;lt;plugins&amp;gt;
          &amp;lt;plugin&amp;gt;
            &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;2.5.1&amp;lt;/version&amp;gt;
            &amp;lt;configuration&amp;gt;
              &amp;lt;source&amp;gt;1.7&amp;lt;/source&amp;gt;
              &amp;lt;target&amp;gt;1.7&amp;lt;/target&amp;gt;
              &amp;lt;showDeprecation&amp;gt;true&amp;lt;/showDeprecation&amp;gt;
              &amp;lt;showWarnings&amp;gt;true&amp;lt;/showWarnings&amp;gt;
              &amp;lt;encoding&amp;gt;UTF-8&amp;lt;/encoding&amp;gt;
              &amp;lt;executable&amp;gt;/opt/jdk/jdk1.7.0/bin/javac&amp;lt;/executable&amp;gt;
              &amp;lt;fork&amp;gt;true&amp;lt;/fork&amp;gt;
            &amp;lt;/configuration&amp;gt;
          &amp;lt;/plugin&amp;gt;
          &amp;lt;plugin&amp;gt;
            &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;maven-surefire-plugin&amp;lt;/artifactId&amp;gt;
            &amp;lt;configuration&amp;gt;
              &amp;lt;jvm&amp;gt;/opt/jdk/jdk1.7.0/bin/java&amp;lt;/jvm&amp;gt;
              &amp;lt;forkMode&amp;gt;once&amp;lt;/forkMode&amp;gt;
            &amp;lt;/configuration&amp;gt;
          &amp;lt;/plugin&amp;gt;
        &amp;lt;/plugins&amp;gt;
      &amp;lt;/build&amp;gt;
    &amp;lt;/profile&amp;gt;
  &amp;lt;/profiles&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The profile can be selected by adding the following line to the configuration of your Buildhive job:&lt;/p&gt;</description></item><item><title>Raspberry Pi</title><link>https://rumpf.eu/michael/posts/2012-06-30-raspberry-pi/</link><pubDate>Sat, 30 Jun 2012 12:26:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2012-06-30-raspberry-pi/</guid><description>&lt;p&gt;My Raspberry Pi finally arrived after 4 months:&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://lh4.ggpht.com/-d4He0twcz6g/T-7UaBINYfI/AAAAAAAAJTQ/2exhKrF50Ck/1341051972105.png"&gt;&lt;/p&gt;
&lt;p&gt;The stable Debian distribution &amp;ldquo;Squeeze&amp;rdquo; does not contain support for all of the Raspberry Pi
features. That means there is no way around the the latest Debian &amp;ldquo;Wheezy&amp;rdquo; image: 
&lt;a href="http://www.raspberrypi.org/archives/1435"&gt;http://www.raspberrypi.org/archives/1435&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But even with the latest image version there is still some configuration effort left&amp;hellip;&lt;/p&gt;
&lt;h2 id="wlan-stick"&gt;WLAN Stick&lt;/h2&gt;
&lt;p&gt;For network connectivity I have chosen the Conrad WLAN Stick N150 Nano, which is based on the following chipset: USB: 0BDA:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter.&lt;br&gt;
Unfortunately this chipset has some issues with the current drivers from both Debian Linux images as discussed in the forum thread &lt;a href="http://www.raspberrypi.org/phpBB3/viewtopic.php?f=26&amp;amp;t=6256&amp;amp;sid=85adf66d944a48285a706d8cb6884190&amp;amp;start=350"&gt;Automatic setup for RTL8188CUS based wifi adapters&lt;/a&gt;. By executing the script install-rtl8188cus-latest.sh from the forum thread, the adapter started working immediately after the script was finished.&lt;br&gt;
The general WLAN configuration is described in detail in the Debian Wiki: &lt;a href="http://wiki.debian.org/WiFi/HowToUse#Command_Line"&gt;http://wiki.debian.org/WiFi/HowToUse#Command_Line&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Wake On LAN</title><link>https://rumpf.eu/michael/posts/2012-03-03-wake-on-lan/</link><pubDate>Sat, 03 Mar 2012 22:50:00 +0100</pubDate><guid>https://rumpf.eu/michael/posts/2012-03-03-wake-on-lan/</guid><description>&lt;p&gt;Under Ubuntu I chose the following way to activate wake on LAN on the eth0 device:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Install ethtool
sudo apt-get install ethtool
# Create init script to set the wol bit on the device
sudo vi /etc/init.d/wakeonlan
#!/bin/sh
ethtool -s eth0 wol g
exit
# Make the script executable
sudo chmod a+x /etc/init.d/wakeonlan
# Create the init links
sudo update-rc.d wakeonlan defaults
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Under Debian the following approach has been chosen:&lt;/p&gt;</description></item><item><title>Deploying weld-osgi to jcoderz.org repository</title><link>https://rumpf.eu/michael/posts/2011-12-31-for-deploying-weld-osgi-to-jcoderz/</link><pubDate>Sat, 31 Dec 2011 16:36:00 +0100</pubDate><guid>https://rumpf.eu/michael/posts/2011-12-31-for-deploying-weld-osgi-to-jcoderz/</guid><description>&lt;p&gt;For deploying weld-osgi to the jcoderz.org repository the following modifications to the &lt;code&gt;pom.xml&lt;/code&gt;
files are necessary (after applying the wagon-ssh extensions to the your Maven installation, see previous post):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Deploy the WELD API packages&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;git clone -b WELD-963 http://github.com/mathieuancelin/api.git WELD-963
cd WELD-963
vi pom.xml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Add the following XMl fragment to the maven-deploy-plugin&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;   &amp;lt;build&amp;gt;
      &amp;lt;plugins&amp;gt;
         &amp;lt;plugin&amp;gt;
            &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;maven-deploy-plugin&amp;lt;/artifactId&amp;gt;
            &amp;lt;configuration&amp;gt;
               &amp;lt;skip&amp;gt;true&amp;lt;/skip&amp;gt;
            &amp;lt;/configuration&amp;gt;
            &amp;lt;dependencies&amp;gt;
              &amp;lt;dependency&amp;gt;
                &amp;lt;groupId&amp;gt;org.apache.maven.wagon&amp;lt;/groupId&amp;gt;
                &amp;lt;artifactId&amp;gt;wagon-ssh&amp;lt;/artifactId&amp;gt;
                &amp;lt;version&amp;gt;2.2&amp;lt;/version&amp;gt;
              &amp;lt;/dependency&amp;gt;
            &amp;lt;/dependencies&amp;gt;
         &amp;lt;/plugin&amp;gt;
      &amp;lt;/plugins&amp;gt;
   &amp;lt;/build&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;mvn -e clean install -Dmaven.test.skip=true
mvn -e deploy -DaltDeploymentRepository=jcoderz-snapshots::default::scp://jcoderz.org/var/www/repos/maven2-snapshot/ -Dmaven.test.skip=true
cd ..
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt; &lt;br&gt;
2. Deploy the WELD OSGi packages&lt;/p&gt;</description></item><item><title>Maven 3: SSH deployment to foreign repository</title><link>https://rumpf.eu/michael/posts/2011-12-31-maven-3-ssh-deploy-to-foreign/</link><pubDate>Sat, 31 Dec 2011 16:08:00 +0100</pubDate><guid>https://rumpf.eu/michael/posts/2011-12-31-maven-3-ssh-deploy-to-foreign/</guid><description>&lt;p&gt;Using the maven-deploy-plugin to deploy artifacts to a repository that is not the
original target repository of a project is getting complicated with Maven 3 when
the wagon SSH provider is not part of the Maven distribution. The following JAR
files must be added to the Maven distribution into the &lt;code&gt;lib/ext&lt;/code&gt; extension folder:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;jsch-0.1.44-1.jar&lt;/li&gt;
&lt;li&gt;plexus-utils-3.0.jar&lt;/li&gt;
&lt;li&gt;plexus-interactivity-api-1.0-alpha-6.jar&lt;/li&gt;
&lt;li&gt;wagon-ssh-2.2.jar\n* wagon-ssh-external-2.2.jar&lt;/li&gt;
&lt;li&gt;wagon-ssh-common-2.2.jar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then the parent &lt;code&gt;pom.xml&lt;/code&gt; of the project must be extended by the  following lines:&lt;/p&gt;</description></item><item><title>Building weld-osgi</title><link>https://rumpf.eu/michael/posts/2011-12-06-building-weld-osgi/</link><pubDate>Tue, 06 Dec 2011 23:11:00 +0100</pubDate><guid>https://rumpf.eu/michael/posts/2011-12-06-building-weld-osgi/</guid><description>&lt;p&gt;In case you want to use &lt;a href="http://seamframework.org/Weld"&gt;Weld&lt;/a&gt; inside your OSGi application you first need to compile a few branches on your own:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mathieuancelin/api/tree/WELD-963"&gt;WELD-963&lt;/a&gt; branch of the weld/api project&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mathieuancelin/core/tree/weld-osgi"&gt;weld-osgi&lt;/a&gt; branch from the weld/core project&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those branches will soon be merged into the official Weld codebase. But in the meantime you need to follow the steps below in order to get the packages compiled.&lt;br&gt;
A prerequisite is that git and Maven 3 is available&lt;/p&gt;</description></item><item><title>m3player version 0.1.3 released</title><link>https://rumpf.eu/michael/posts/2011-08-20-m3player-version-013-released/</link><pubDate>Sat, 20 Aug 2011 01:45:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-08-20-m3player-version-013-released/</guid><description>&lt;p&gt;&lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player version 0.1.3&lt;/a&gt; has the following new features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;m3player can be run as a daemon with &lt;code&gt;-d&lt;/code&gt; or &lt;code&gt;--daemon&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The name of the UPnP Media Renderer can be configured by &lt;code&gt;-n&lt;/code&gt; or &lt;code&gt;--name&lt;/code&gt;. This is done by copying
the XML files from &lt;code&gt;/usr/share/m3player&lt;/code&gt; to &lt;code&gt;/var/lib/m3player&lt;/code&gt; and filtering place-holders in some of the files.&lt;/li&gt;
&lt;li&gt;The version of the MediaRenderer device can be configured by &lt;code&gt;-r&lt;/code&gt; or &lt;code&gt;--root&lt;/code&gt;. The default is &lt;code&gt;MediaRendererV2.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The UPnP server can be bound to a network interface, specified by &lt;code&gt;-i&lt;/code&gt; or &lt;code&gt;--interface&lt;/code&gt;. Example: eth0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The help output shows an overview of all the parameters available:&lt;/p&gt;</description></item><item><title>Turning m3player into a daemon</title><link>https://rumpf.eu/michael/posts/2011-08-11-turning-m3player-into-daemon/</link><pubDate>Thu, 11 Aug 2011 21:29:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-08-11-turning-m3player-into-daemon/</guid><description>&lt;p&gt;As most of the public HOWTOs seem to be either incomplete or a bit outdated and because I
have no copy of the book
&lt;a href="http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0201563177"&gt;Advanced Programming in the UNIX Environment&lt;/a&gt;,
Instead I found the following microHOWTOs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.microhowto.info/howto/cause_a_process_to_become_a_daemon.html"&gt;Cause a process to become a daemon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microhowto.info/howto/cause_a_process_to_become_a_daemon_in_c.html"&gt;Cause a process to become a daemon in c&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By following the steps, described there I was able to turn
&lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player&lt;/a&gt; into a daemon.
The daemon behavior can be turned on by passing the &lt;code&gt;-d&lt;/code&gt; or &lt;code&gt;--daemon&lt;/code&gt; switches to the command
line. When the daemon switch is specified, all output (stdout and stderr) gets redirected into
the log file at the default location &lt;code&gt;/var/log/m3player.log&lt;/code&gt; or to the location, specified by
the &lt;code&gt;-l&lt;/code&gt; or &lt;code&gt;--logfile&lt;/code&gt; switch.&lt;/p&gt;</description></item><item><title>m3player version 0.1.2 released</title><link>https://rumpf.eu/michael/posts/2011-08-01-m3player-version-012-released/</link><pubDate>Mon, 01 Aug 2011 01:22:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-08-01-m3player-version-012-released/</guid><description>&lt;p&gt;I just released version 0.1.2 of &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player&lt;/a&gt;. The new version includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compilation and packaging for OpenWRT&lt;/li&gt;
&lt;li&gt;Installation of the ipkg package on the TL-WR1043ND device&lt;/li&gt;
&lt;li&gt;Support for command-line parameters:
&lt;ul&gt;
&lt;li&gt;config - Path to the config file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/m3player/m3player.ini&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;pidfile - Location of the PID file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/var/run/m3player.pid&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;xmlfolder - Location of the descriptor XML files (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/share/m3player&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;name - Set the name of the player instance (Hostname or m3player)&lt;/li&gt;
&lt;li&gt;filename - The name of the root device file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;MediaRenderedV1.xml&lt;/span&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Support for an INI file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/m3player/m3player.ini&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;Fixes to the GStreamer pipeline to work in the stripped down OpenWRT environment with only a few plugins&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When launching the &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player&lt;/a&gt; it starts playing the first entry from the preset list.&lt;/p&gt;</description></item><item><title>Building a TP-Link TL-WR1043ND OpenWRT 10.03 image</title><link>https://rumpf.eu/michael/posts/2011-07-31-building-tp-link-tl-wr1043nd-openwrt/</link><pubDate>Sun, 31 Jul 2011 23:48:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-31-building-tp-link-tl-wr1043nd-openwrt/</guid><description>&lt;p&gt;This article gives a step-by-step description on how to get the
&lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3ddity-player&lt;/a&gt; working on the
TP-Link TL-WR1043ND device, using the stable version of OpenWRT 10.03 (backfire).&lt;/p&gt;
&lt;p&gt;First you need to checkout the OpenWRT 10.03 (backfire) branch:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;svn co svn://svn.openwrt.org/openwrt/branches/backfire
cd backfire
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then the feed for the &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3ddity-player&lt;/a&gt; must be added:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cp feeds.conf.default feeds.conf
echo &amp;#34;src-svn jcoderz http://www.jcoderz.org/svn/m3dditiez/branches/openwrt-10.3/packages&amp;#34; &amp;gt;&amp;gt; feeds.conf
./scripts/feeds update ./scripts/feeds install -a
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now run menuconfig and select the necessary modules:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;make menuconfig
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The following list shows only menuconfig entries where settings have been changed. Settings not shown here are left untouched.&lt;/p&gt;</description></item><item><title>Music player fully integrated into the OpenWRT build process</title><link>https://rumpf.eu/michael/posts/2011-07-25-music-player-fully-integrated-into/</link><pubDate>Mon, 25 Jul 2011 00:44:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-25-music-player-fully-integrated-into/</guid><description>&lt;p&gt;The &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3ddity-player&lt;/a&gt; and the GUPnP libraries,
on which the player depends upon, can now easily be build for OpenWRT, just follow the steps below:&lt;/p&gt;
&lt;p&gt;1. Checkout the trunk version of OpenWRT&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;svn co svn://svn.openwrt.org/openwrt/trunk
cd trunk
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;Add the &lt;a href="http://www.jcoderz.org/m3dditiez/"&gt;jCoderZ&lt;/a&gt; package repository to the list of feeds &lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cp feeds.conf.default feeds.conf
echo &amp;#34;src-svn jcoderz &amp;#34; \ 
     &amp;#34;http://www.jcoderz.org/svn/m3dditiez/trunk/&amp;#34; \ 
&amp;#34;openwrt/packages&amp;#34; &amp;gt;&amp;gt; feeds.conf
./scripts/feeds update 
./scripts/feeds install -a
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;3. Run menuconfig and select the packages as described
&lt;a href="http://dev-snapshot.blogspot.com/2011/07/building-openwrt-image-optimized-for.html"&gt;here&lt;/a&gt;&lt;/p&gt;</description></item><item><title>jCoderZ.org</title><link>https://rumpf.eu/michael/posts/2011-07-24-jcoderzorg/</link><pubDate>Sun, 24 Jul 2011 13:31:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-24-jcoderzorg/</guid><description>&lt;p&gt;The OpenWRT music player, which I have blogged about recently, has found a 
home at &lt;a href="https://github.com/jCoderZ/m3player"&gt;https://github.com/jCoderZ/m3player&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Quest for a USB audio device part 2...</title><link>https://rumpf.eu/michael/posts/2011-07-19-quest-for-usb-audio-device-part-2/</link><pubDate>Tue, 19 Jul 2011 20:21:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-19-quest-for-usb-audio-device-part-2/</guid><description>&lt;p&gt;The new audio devices arrived but unfortunately they show the same glitches as the devices I tested
&lt;a href="http://dev-snapshot.blogspot.com/2011/07/seeking-cheap-usb-audio-device-that.html%22"&gt;before&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="%22http://www.logilink.eu/showproduct/UA0053.htm"&gt;USB Soundkarte mit Virtual 3D Soundeffekt LogiLink®&lt;/a&gt;
This device is also based on the chipset &amp;ldquo;Tenx Technology, Inc. TP6911 Audio Headset&amp;rdquo; and has the same
issues as the previous device (USB Sound Audio), i.e. the output is far too loud.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="%22http://www.logilink.eu/showproduct/UA0078.htm"&gt;USB Soundkarte mit Virtual 7.1 Soundeffekt LogiLink®&lt;/a&gt;
The sound is good but as with the previous device a clicking noise is heard during reboot, power-off,
power-on, plug-in/out. The chipset is &amp;ldquo;C-Media Electronics, Inc. Audio Adapter&amp;rdquo;
So both adapters use the same chipsets and show the same issues. It seems as if there are not
too many different cheap USB audio devices on the market, just rebranded stuff from the same
manufacturer.&lt;/p&gt;</description></item><item><title>Seeking a cheap USB audio device for the TP-Link TL-WR1043ND</title><link>https://rumpf.eu/michael/posts/2011-07-13-seeking-cheap-usb-audio-device-that/</link><pubDate>Wed, 13 Jul 2011 22:48:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-13-seeking-cheap-usb-audio-device-that/</guid><description>&lt;p&gt;I&amp;rsquo;m seeking for a USB audio device that works with the TP-Link TL-WR1043ND under OpenWRT. Until now I tried 2 different devices with unacceptable issues.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. USB Sound Audio (Amazon)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-qWqnVo0dbP8/Th4AOAsdarI/AAAAAAAAElw/m7Hwk4flU3U/s1600/TP6911.jpg"&gt;&lt;img loading="lazy" src="http://2.bp.blogspot.com/-qWqnVo0dbP8/Th4AOAsdarI/AAAAAAAAElw/m7Hwk4flU3U/s200/TP6911.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The device gets detected under Linux as Tenx Technology, Inc. TP6911 Audio Headset. The following warnings are reported by &lt;/p&gt;
&lt;p&gt;dmesg when connecting the device:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;usb_audio: Warning! Unlikely big volume range (=13568), cval-&amp;gt;res is probably wrong.
usb_audio: [2] FU [PCM Playback Volume] ch = 2, val = 2560/16128/1
usb_audio: Warning! Unlikely big volume range (=6096), cval-&amp;gt;res is probably wrong.
usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 0/6096/1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The issue with this device is that the volume level is so high that it cannot be controlled. Between mute and 10% the output sounds distorted. At 20% the volume level is at its maximum, with no audible change between 20% and 100%.
&lt;strong&gt;2. auvisio Visual Sound Technologies (pearl.de)&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Make ALSA settings persistent on OpenWRT</title><link>https://rumpf.eu/michael/posts/2011-07-13-make-alsa-settings-persistent-on/</link><pubDate>Wed, 13 Jul 2011 21:36:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-13-make-alsa-settings-persistent-on/</guid><description>&lt;p&gt;The command-line tool alsamixer can be used to control the volume of the USB audio output:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-EHJmq1aKXrI/Th3tP-sqcLI/AAAAAAAAEls/SGdLN4yRHo4/s1600/alsamixer.png"&gt;&lt;img loading="lazy" src="http://2.bp.blogspot.com/-EHJmq1aKXrI/Th3tP-sqcLI/AAAAAAAAEls/SGdLN4yRHo4/s320/alsamixer.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately the setting does not survive a reboot. Another tool from the alsa-utils package can be used for this purpose: alsactl&lt;/p&gt;
&lt;p&gt;After setting the volume with alsamixer, the following command persists the current setting in the file-system for device 0:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;alsactl -f /etc/alsa/alsa0.state store 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;During startup, the state must be restored again. This can be achieved by adding the following command to /etc/rc.local:&lt;/p&gt;</description></item><item><title>Building an OpenWRT image optimized for MP3 audio playback</title><link>https://rumpf.eu/michael/posts/2011-07-13-building-openwrt-image-optimized-for/</link><pubDate>Wed, 13 Jul 2011 20:36:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-13-building-openwrt-image-optimized-for/</guid><description>&lt;p&gt;For the audio-renderer, see revious posts, I decided to switch to the trunk version of OpenWRT.&lt;br&gt;
I experienced some issues with the USB audio hardware and the trunk version should prove that there
are no issues with the USB audio drivers which are already fixed.&lt;br&gt;
The following configuration is for the bleeding-edge version, some module names have changed so it
cannot be applied to the Kamikaze (10.3) version without modification (e.g. block-mount contains the
overlay functionality and kmod-fs-ext4 has support for all ext file-system versions).&lt;br&gt;
&lt;strong&gt;NOTE: This configuration has stripped all modules which are not necessary for USB audio and Wireless LAN.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Using a password safe on multiple platforms</title><link>https://rumpf.eu/michael/posts/2011-07-09-using-password-safe-on-multiple/</link><pubDate>Sat, 09 Jul 2011 15:40:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-09-using-password-safe-on-multiple/</guid><description>&lt;p&gt;After the Playstation Network Hack I decided to change to secure passwords for all my accounts.
The drawback is that nobody can remember secure passwords anymore, so there is no way around using a
password safe.&lt;/p&gt;
&lt;p&gt;The only application that is available on all the different platforms I use is KeePass (V1.x on Windows,
KeePassX under Linux, and KeePassDroid on Android). Under Windows the the 1.x version must be used in
order to stick to the same file format as the KeePassX and the KeePassDroid applications.&lt;/p&gt;</description></item><item><title>Radio presets</title><link>https://rumpf.eu/michael/posts/2011-06-27-radio-presets/</link><pubDate>Mon, 27 Jun 2011 23:26:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-27-radio-presets/</guid><description>&lt;p&gt;One important feature for the audio renderer is the support for &lt;strong&gt;presets&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I do not want to search for my mobile phone in order to select a music source when I enter the kitchen in the morning. The use-case where you turn on your analog radio and the tuning wheel is right at the position of your favorite radio station is unbeatable simple.&lt;/p&gt;
&lt;p&gt;Therefore the audio-renderer has a list of MP3 streaming URLs where the first one will be played upon startup of the process. The channels can be switched by sending a signal to the server process:&lt;/p&gt;</description></item><item><title>UPnP audio renderer released</title><link>https://rumpf.eu/michael/posts/2011-06-27-upnp-audio-renderer-released/</link><pubDate>Mon, 27 Jun 2011 23:05:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-27-upnp-audio-renderer-released/</guid><description>&lt;p&gt;A very early version of my UPnP audio-renderer had been released on Gitorius &lt;a href="https://gitorious.org/gupnp-audio-renderer"&gt;https://gitorious.org/gupnp-audio-renderer&lt;/a&gt;
(&lt;strong&gt;Update 2011-08-01&lt;/strong&gt;: It has been renamed to m3player and been moved to &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;here&lt;/a&gt;).
It implements the necessary parts of the UPnP MediaRenderer specification.&lt;/p&gt;
&lt;p&gt;The implementation is based on excellent frameworks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.gupnp.org/"&gt;GUPnP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gstreamer.freedesktop.org/"&gt;GStreamer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.gnome.org/glib/"&gt;GLib&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The initial target for the renderer is the &lt;a href="http://www.openwrt.org/"&gt;OpenWRT&lt;/a&gt; platform (see previous articles about a WiFi music player).
I decided to use C instead of Vala (that was a decision against Rygel) as the memory constraints are very limited and I need to save
memory whereever possible. Although my C language skills are a bit rusty, I did not want to learn another language. Additionally, the
usage of Vala would increase the effort to port the whole vala stuff to the OpenWRT build-system. Luckily GStreamer and GLib are already
available on OpenWRT.&lt;/p&gt;</description></item><item><title>Compile a development version of GUPnP from HEAD</title><link>https://rumpf.eu/michael/posts/2011-06-13-compile-development-version-of-gupnp/</link><pubDate>Mon, 13 Jun 2011 17:53:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-13-compile-development-version-of-gupnp/</guid><description>&lt;p&gt;Follow the commands below in order to setup a local environment for working with the latest development version of the GUPNP framework.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir $(pwd)/base
git clone http://git.gnome.org/browse/gssdp
cd gssdp
./autogen.sh --prefix=$(pwd)/../base --exec-prefix=$(pwd)/../base
make &amp;amp;&amp;amp; make install
cd ..
git clone http://git.gnome.org/browse/gupnp
cd gupnp
PKG_CONFIG_PATH=$(pwd)/../base/lib/pkgconfig ./autogen.sh --prefix=$(pwd)/../base --exec-prefix=$(pwd)/../base
cd ..
git clone http://git.gnome.org/browse/gupnp-tools
cd gupnp-tools
PKG_CONFIG_PATH=$(pwd)/../base/lib/pkgconfig ./autogen.sh --prefix=$(pwd)/../base --exec-prefix=$(pwd)/../base
cd ..
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Run the following commands for setting the environment to use the fresh compiled libraries instead of the OS provided ones (Empathy under Ubuntu 11.04 uses an older version of the GUPNP libraries. I ran into segmentation faults because the libraries did not match):&lt;/p&gt;</description></item><item><title>Building a custom OpenWRT image for the TP-Link TL-WR1043ND</title><link>https://rumpf.eu/michael/posts/2011-06-12-building-custom-openwrt-image-for-tp/</link><pubDate>Sun, 12 Jun 2011 16:36:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-12-building-custom-openwrt-image-for-tp/</guid><description>&lt;p&gt;[&lt;img loading="lazy" src="http://1.bp.blogspot.com/-My4aqk4nBL4/TfSaA1akJ5I/AAAAAAAAEkg/GpWbxKqabLs/s200/IMAG0292.jpg"&gt;]
[&lt;img loading="lazy" src="http://3.bp.blogspot.com/-eqzxpdUiMJ8/TfSaC26_9QI/AAAAAAAAEkk/5lGKpLAiEvs/s200/IMAG0293.jpg"&gt;]&lt;/p&gt;
&lt;p&gt;For my low-budget wireless music player I had to tweak OpenWRT in order to support my setup. For initial tests I decided to use the &lt;a href="http://mpd.wikia.com/"&gt;Music Player Daemon&lt;/a&gt; and &lt;a href="http://www.underbit.com/products/mad/"&gt;madplay&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following steps describe how to setup OpenWRT on the TP-Link WR1043ND. It assumes that the OpenWRT 10.03.1-rc4 firmware has already been installed, that the IP address of the router has been set to 192.168.0.111, and that an USB audio, as well as that an USB stick has been connected to the device via an USB hub.&lt;/p&gt;</description></item><item><title>Low-budget WiFi Music Player</title><link>https://rumpf.eu/michael/posts/2011-06-12-low-budget-wifi-music-player/</link><pubDate>Sun, 12 Jun 2011 13:17:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-12-low-budget-wifi-music-player/</guid><description>&lt;p&gt;After searching the net for quite a while I could not find a pure wireless music player for small money. In case
you want to equip multiple rooms in your house with a music player it will cost you a lot of money. All products
on the market come with a lot of features, of which most are not necessary. The following links show interesting
hacks on how to build your own WiFi music player based on OpenWRT:&lt;/p&gt;</description></item><item><title>GUPNP: Failed to get SCPD: Cannot resolve hostname ((null))</title><link>https://rumpf.eu/michael/posts/2011-06-05-gupnp-failed-to-get-scpd-cannot-resolve_05/</link><pubDate>Sun, 05 Jun 2011 18:23:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-05-gupnp-failed-to-get-scpd-cannot-resolve_05/</guid><description>&lt;p&gt;The following message occurs when the &lt;code&gt;&amp;lt;urlbase&amp;gt;&amp;lt;/urlbase&amp;gt;&lt;/code&gt; tag of the root device description is empty when trying to autoconnect actions:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;** (process:25888): WARNING **: Failed to get SCPD: Cannot resolve hostname ((null))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Changing it to &lt;strong&gt;http://localhost&lt;/strong&gt; fixes the issue.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34;?&amp;gt;
&amp;lt;root xmlns=&amp;#34;urn:schemas-upnp-org:device-1-0&amp;#34;&amp;gt;
  &amp;lt;specVersion&amp;gt;
    &amp;lt;major&amp;gt;1&amp;lt;/major&amp;gt;
    &amp;lt;minor&amp;gt;0&amp;lt;/minor&amp;gt;
  &amp;lt;/specVersion&amp;gt;
&amp;lt;URLBase&amp;gt;http://localhost&amp;lt;/URLBase&amp;gt;
  &amp;lt;device&amp;gt;
    &amp;lt;!-- ... --&amp;gt;
  &amp;lt;/device&amp;gt;
&amp;lt;/root&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The message is a bit misleading. I was first trying to find an issue with my DNS configuration.&lt;/p&gt;</description></item><item><title>Compiling GUPnP on Ubuntu 11.04</title><link>https://rumpf.eu/michael/posts/2011-06-03-compiling-gupnp-on-ubuntu-1104/</link><pubDate>Fri, 03 Jun 2011 15:55:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-03-compiling-gupnp-on-ubuntu-1104/</guid><description>&lt;p&gt;Because the &lt;a href="http://gupnp.org/"&gt;GUPnP&lt;/a&gt; stack is lacking some documentation I describe my experiences with getting it complied under Ubuntu 11.04. &lt;br&gt;
The commands will setup an environment that does not interfere with the Ubuntu provided packages, which are older than the ones compiled here. The library files will be installed under the location:
~/workspaces/openwrt/upnp&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir -p ~/workspaces/openwrt/upnp
cd ~/workspaces/openwrt/upnp
wget -O - http://gupnp.org/sites/all/files/sources/gupnp-igd-0.1.11.tar.gz | tar xvfz -
wget -O - http://gupnp.org/sites/all/files/sources/gupnp-0.16.1.tar.gz | tar xvfz -
wget -O - http://gupnp.org/sites/all/files/sources/gupnp-igd-0.1.10.tar.gz | tar xvfz -
wget -O - http://gupnp.org/sites/all/files/sources/gupnp-tools-0.8.3.tar.gz | tar xvfz -
wget -O - http://gupnp.org/sites/all/files/sources/gupnp-dlna-0.6.1.tar.gz | tar xvfz -
wget -O - http://gupnp.org/sites/all/files/sources/gupnp-av-0.8.0.tar.gz | tar xvfz -
wget -O - http://gupnp.org/sites/all/files/sources/gssdp-0.10.0.tar.gz | tar xvfz -
wget -O - http://gupnp.org/sites/all/files/sources/gupnp-vala-0.8.0.tar.gz | tar xvfz -
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>VirtualBox 4.0.2 on Ubuntu 11.04</title><link>https://rumpf.eu/michael/posts/2011-05-29-virtualbox-402-on-ubuntu-1104/</link><pubDate>Sun, 29 May 2011 13:55:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-05-29-virtualbox-402-on-ubuntu-1104/</guid><description>&lt;p&gt;After an update to Ubuntu 11.04 VirtualBox was not running anymore. Startup fails with a hint that the kernel modules exited in error and that I should use DKMS to reconfigure the kernel module.&lt;/p&gt;
&lt;p&gt;Running the vboxdrv setup command also led to an error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo /etc/init.d/vboxdrv setup
[sudo] password for desktop: 
 * Stopping VirtualBox kernel modules                                  *  done.
 * Uninstalling old VirtualBox DKMS kernel modules                     *  done.
 * Trying to register the VirtualBox kernel modules using DKMS                  
Error! Bad return status for module build on kernel: 2.6.38-8-generic (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/vboxhost/4.0.2/build/ for more information.
 * Failed, trying without DKMS
 * Recompiling VirtualBox kernel modules                                        
 * Look at /var/log/vbox-install.log to find out what went wrong
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The log file indicates that a header file was missing:&lt;/p&gt;</description></item><item><title>New version of smpppd-web</title><link>https://rumpf.eu/michael/posts/2006-01-12-new-version-of-smpppd-web/</link><pubDate>Thu, 12 Jan 2006 05:46:00 +0100</pubDate><guid>https://rumpf.eu/michael/posts/2006-01-12-new-version-of-smpppd-web/</guid><description>&lt;p&gt;The original versions of &lt;a href="http://www.suse.de/~cwh/"&gt;smppd-web&lt;/a&gt; by Christopher Hofmann neither support adding and removing links on the fly nor do they support dial-on-demand ISDN interfaces. That is the reason why I extended the original codebase by these features.&lt;br&gt;
Further more the users for which I developed the software are german speaking only so that gettext support was also an important feature. Initially I added  support for german and english languages.&lt;/p&gt;
&lt;p&gt;As I&amp;rsquo;m not a SuSE user in general, the new version probably does not follow the SuSE directory guidelines and it does not come packaged as a RPM. Therefore it would be great if someone with SuSE RPM packaging know-how would create a successor RPM package out of Christopher&amp;rsquo;s original version. Or even better Christopher packages a new version for &lt;a href="http://old-en.opensuse.org/User:Cwh"&gt;OpenSuSE&lt;/a&gt; ;)&lt;/p&gt;</description></item><item><title>Creating an ISDN Gateway with SuSE 9.3</title><link>https://rumpf.eu/michael/posts/2005-10-19-creating-isdn-gateway-with-suse-93/</link><pubDate>Wed, 19 Oct 2005 07:31:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2005-10-19-creating-isdn-gateway-with-suse-93/</guid><description>&lt;p&gt;In Germany flatrates are available for DSL only, so people, living in areas where DSL is not available, have to pay expensive time based fees for slowly connecting to the Internet. The problem is that M$ Windows and many of the installed tools are known for initiating internet connections although the user did not ask them to do so. Therefore it is crucial to reliably disconnect the ISDN line so that those unwanted connection attempts will not succeed. ISDN routers, which might be of help here, are hard to find nowadays and do not offer the comfort as new DSL routers do.&lt;/p&gt;</description></item><item><title>Setting up a free Microsoft debugging environment on Windows XP</title><link>https://rumpf.eu/michael/posts/2005-07-27-setting-up-free-microsoft-debugging/</link><pubDate>Wed, 27 Jul 2005 07:45:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2005-07-27-setting-up-free-microsoft-debugging/</guid><description>&lt;p&gt;This is a short guide on how to debug applications or dynamic link libraries created by the post &lt;em&gt;free Microsoft C++ compile environment&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The following tools need to be installed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.5.3.7.exe"&gt;Microsoft Debug Tools&lt;/a&gt; (13MB): &lt;strong&gt;c:\msdev\debug&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exe"&gt;Windows XP with Service Pack 2 symbols&lt;/a&gt; (195MB)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then extend your environment&amp;rsquo;s LIB path by adding the &lt;em&gt;Visual Studio .NET 2003&lt;/em&gt; lib folder. &lt;em&gt;Visual Studio .NET 2003&lt;/em&gt; was installed during the former &lt;em&gt;.NET SDK&lt;/em&gt; installation, unfortunately the path, specified for the &lt;em&gt;.NET SDK&lt;/em&gt; is not taken as installation path for Visual Studio but the usual program folder is used instead, in my case &lt;code&gt;C:\Programme\Microsoft Visual Studio .NET 2003&lt;/code&gt;. Find out the path&amp;rsquo;s short name with &lt;code&gt;dir /X&lt;/code&gt; and add the following line with your specific path to the &lt;code&gt;setenv.cmd&lt;/code&gt; script below the three &lt;code&gt;call&lt;/code&gt; statements:&lt;/p&gt;</description></item><item><title>More Reverse Engineering</title><link>https://rumpf.eu/michael/posts/2005-07-06-more-reverse-engineering/</link><pubDate>Wed, 06 Jul 2005 09:26:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2005-07-06-more-reverse-engineering/</guid><description>&lt;p&gt;I did more reverse engineering on the &lt;em&gt;DataRecorder&lt;/em&gt; Windows tool that comes with the &lt;em&gt;TFA Klima-Logger&lt;/em&gt; hygrometer in order to find out which serial lines are used as input lines.&lt;/p&gt;
&lt;p&gt;The evaluation version of &lt;a href="http://www.hex-rays.com/idapro/"&gt;IDA Pro Disassembler and Debugger&lt;/a&gt; did a great job here. The only thing I had to do was to load the executable &lt;code&gt;DataRecorder.exe&lt;/code&gt; into the disassembler and find the places where the Win32 API function &lt;code&gt;GetCommModemStatus&lt;/code&gt; gets called. A search for the function name revealed two sub-routines inside the huge pile of Assembler code. Looking at the references to data segment constants it was quite easy to determine which of the two sub-routines was the Assembler version of &lt;code&gt;CI2CDriver::Sda()&lt;/code&gt; and which one was the Assembler version of &lt;code&gt;CI2CDriver::Scl()&lt;/code&gt;. The first sub-routine was referencing an error message&lt;/p&gt;</description></item><item><title>Intercepting Win32 API system calls</title><link>https://rumpf.eu/michael/posts/2005-07-03-intercepting-win32-api-system-calls/</link><pubDate>Sun, 03 Jul 2005 01:04:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2005-07-03-intercepting-win32-api-system-calls/</guid><description>&lt;p&gt;For reverse-engineering the Windows software of the &lt;em&gt;TFA Klima-Logger&lt;/em&gt; I tried to analyze the I2C protocol over the serial line by intercepting Win32 API system calls.&lt;/p&gt;
&lt;p&gt;Searching with Google about the topic &lt;em&gt;intercept Win32 function&lt;/em&gt; I stumbled over the Microsoft Research tool &lt;a href="http://research.microsoft.com/sn/detours/"&gt;Detours&lt;/a&gt; which was exactly what I was looking for. Version 1.5 of the tool is freely available for download and already comes with an example to intercept serial API system calls which served as a starting point for my serial communication interception library.&lt;/p&gt;</description></item><item><title>Linux support for TFA Klima-Logger</title><link>https://rumpf.eu/michael/posts/2005-07-02-linux-support-for-tfa-klima-logger/</link><pubDate>Sat, 02 Jul 2005 00:23:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2005-07-02-linux-support-for-tfa-klima-logger/</guid><description>&lt;p&gt;&lt;strong&gt;Update 2012-03-01:&lt;/strong&gt;&lt;br&gt;
I just ordered 2 outdoor sensors and the plan is to connect the &lt;a href="http://www.tfa-dostmann.de/Bedienungsanleitungen/30.3015_e.pdf"&gt;Klima-Logger&lt;/a&gt; to a &lt;a href="http://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt; Board to make the data available via browser on my home network. Here are some resources I found&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://oss.inqnet.at/trac/klimalogger/"&gt;https://oss.inqnet.at/trac/klimalogger/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://members.home.nl/xbasic/01c2249c770e62101/index.html"&gt;http://members.home.nl/xbasic/01c2249c770e62101/index.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc0670.pdf"&gt;http://www.atmel.com/dyn/resources/prod_documents/doc0670.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.wetterstationsforum.de/phpBB/viewtopic.php?t=7605&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=0&amp;amp;sid=472299c23b04447cc15aa92492c4a76f"&gt;http://www.wetterstationsforum.de/phpBB/viewtopic.php?t=7605&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=0&amp;amp;sid=472299c23b04447cc15aa92492c4a76f&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://web.student.tuwien.ac.at/~e9725348/Projects/klimalogger/"&gt;http://web.student.tuwien.ac.at/~e9725348/Projects/klimalogger/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Outdated:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I recently bought a hygrometer from &lt;a href="http://www.tfa-dostmann.de/TFA2003_englisch/"&gt;TFA-Dostmann&lt;/a&gt;, called &lt;a href="http://www.tfa-dostmann.de/Bedienungsanleitungen/30.3015_e.pdf"&gt;Klima-Logger&lt;/a&gt;. It is the cheapest thermometer and hygrometer with PC connectivity I could find on the market. Unfortunately only a Windows software is provided to get the recorded values for temperature and humidity. I thought a Linux driver would be cool and started searching for resources on the net.  Usually the Linux community is very fast in supporting new gadgets of any kind, but  nothing could be found.&lt;/p&gt;</description></item></channel></rss>