Sep 052014
  • Producer: Sun Microsystems
  • Model: Ultra 40
  • Code: A71
  • Codename: Sirius
  • CPUs: 2x AMD Opteron Dual Core 280
  • CPU Freq: 2.8 GHz
  • Grafik: Quadro FX 3500
  • RAM: 8GiB PC3200 DDR-400 ECC
  • HDDs: 2x 465GiB
  • Power Supply: 1000W

The hardware is detailed in this gist.

HDD Brackets

The SUN SPUD brackets work. I bought two additional ones with the article nr. 540-6562.


Aug 272014

This post is based on my previous blog post, Updating DNS Entries (with nsupdate or alternative implementations) – Run Your Own DDNS, and on Cédric Félizard’s post “Your Own Dynamic DNS“.

Running your own DynDNS (DDNS) server is easy when you have your own domain registered and an own Linux server up and running. A .de domain, for example, costs only about 6 EUR per year if you register at an inexpensive domain hoster in Germany. Let’s say you have registered Now you can use a subdomain such as to contain all your dynamic IPs. An individual host could then be named something like The advantage of using a subdomain instead of itself is that you can refer the authority for this subdomain to your own server while the upper zone can still be managed by the DNS hoster. The following sections will describe how to set this up in detail.

Aug 262014

Since Python 3.3 venv is a module found in the standard library of Python. It can replace virtualenv / virtualenvwrapper. Creating a virtual environment is as simple as this:

python3 -m venv ~/.pyvenv/iplogger-3.4
source ~/.pyvenv/iplogger-3.4/bin/activate
# I didn't need the step below, don't know when it is required:
#curl | python

### If you want to include site packages of your system:
python3 -m venv --system-site-packages ~/.pyvenv/system-3.4
source ~/.pyvenv/system-3.4/bin/activate
# I didn't need the step below, don't know when it is required:
#curl | python


Aug 262014

This is a follow up post for that one: Hosted Raspberry Pi at PCExtreme – Reinstalled with Raspbian.

I crashed my original OS and asked the kind people at PCExtreme to reinstall my RPi. They did and here is what I did when I received the credentials for the newly set up system:

elk:WhatsMyIP pklaus$ ssh root@bigpi
Warning: Permanently added the RSA host key for IP address '' to the list of known hosts.'s password: 
Welcome to Arch Linux ARM

         IRC: #archlinux-arm on

Last login: Wed Dec 31 17:01:01 1969 from

OK, so the time is not correct, but that can be fixed. They connected from last time for login.

Aug 182014

My Raspberry Pi running Arch Linux ARM hosted by PCExtreme in the Netherlands wasn’t reachable anymore after a forced reboot from their side. Most probably I didn’t adapt the configuration of the static IP to newer releases of the network configuration system when I installed upgrades on the RPi. The forced reboot then meant that the system didn’t come up anymore or that it didn’t set the IP right. So I asked them if they could reinstall the operating system on the SD card (preferably Arch Linux ARM). They told me they could reinstall the OS and asked me if I wanted to pay 24,20 EUR (incl. tax). I said Yes and had my RPi up and running again. But this time on Raspbian. They didn’t tell me they were NOT going to install ArchLinuxARM but just installed Raspbian instead. I was using it for some days (how I set it up is described in this post) but then asked via email if they could install it with Arch Linux ARM as requested. They did and now I’m back on Arch Linux ARM.

Aug 152014
showmount -e
sudo mkdir /private/nfs

sudo mount -o rw,resvport -t nfs /private/nfs
sudo mount -o rw -t nfs /private/nfs

open /private/nfs

If you cannot write to the share, your numeric user ID may not match a user on the target machine and thus you may not have permission to write to the directory. Fix it by setting chmod 777 /mnt/md1.


VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
Aug 142014

Check out OpenWRT port for Raidsonic IB4220 and IB4210

OpenWrt images to download

Getting started

Setting up the disks

Partitioning and RAID

ssh root@yak
parted -s $dev mktable gpt
parted -s $dev mkpart primary 2MiB 512MiB
parted -s $dev mkpart primary 512MiB 100%
parted -s $dev set 1 raid on
parted -s $dev set 2 raid on
parted -s $dev unit MiB print

mdadm --create --verbose --level=1 --metadata=1.2 --raid-devices=1 --force /dev/md0 /dev/sda1
mdadm --create --verbose --level=1 --metadata=1.2 --raid-devices=1 --force /dev/md1 /dev/sda2

mdadm /dev/md0 -Gb internal
mdadm /dev/md1 -Gb internal

mkfs.xfs /dev/md1

Set up the mount point in the web interface at System -> Mount Points. You can mount /dev/md1 to /mnt/md1, for example.

Aug 122014

Network Call Monitor

Activate the feature by calling:

#96*5*    activate call monitor support
#96*4*  deactivate call monitor support

Then you can connect to the FB7490 and get notified about calls:

nc 1012
# or on Mac OS X:
nc 1012

Keycodes (German)

Sending a FAX (from the command line)

It seems like capifax does not exist anymore?

It would basically work like this:

Activate CapiOverTCP by calling #96*3* and test it using Telnet: telnet 5031

Aug 122014
# Install memcached on Arch Linux ARM:
pacman -S memcached
# Start the memcached daemon manually:
memcached -d -m 128 -l -p 11211 -u nobody
# Check the systemd startup file /usr/lib/systemd/system/memcached.service
# Set up memcached to start automatically at system startup
systemctl enable memcached.service
# See for more info

# Install the memcache bindings for Python3:
pip install python3-memcached

Now modify your application to include the following:

Jul 112014

With Python Standard Library Methods

from struct import pack
from math import sin, pi
import wave
import random


wv ='test_mono.wav', 'w')
wv.setparams((1, 2, RATE, 0, 'NONE', 'not compressed'))
maxVol=2**15-1.0 #maximum amplitude
for i in range(0, RATE*3):
   wvData+=pack('h', round(maxVol*sin(i*2*pi*500.0/RATE))) #500Hz

wv ='test_stereo.wav', 'w')
wv.setparams((2, 2, RATE, 0, 'NONE', 'not compressed'))
maxVol=2**15-1.0 #maximum amplitude
for i in range(0, RATE*3):
   wvData+=pack('h', round(maxVol*sin(i*2*pi*500.0/RATE))) #500Hz left
   wvData+=pack('h', round(maxVol*sin(i*2*pi*200.0/RATE))) #200Hz right

With scikits.audiolab


VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)