Lego Mindstorms RCX 1.0

Date:2015-01-16 13:24:00

I had a, probably around 10 to 15 year old, box with a Lego Mindstorms RCX 1.0 sitting in my basement. I thought I could not use it anymore because the control tower needs a serial connection and I do not own a computer with a serial connection anymore. However, recently a friend told me that there are serial to USB adapters and that they even work nicely under Linux :-) He recommended the Digitus USB to Serial DB9 adapter and I followed that advise. The adapter cost me around 11 EUR. But I do not know if there are other, cheaper, better, ... adapters. On my Debian Wheezy I had nothing to do than plugin it in. The kernel recognised it immediately and loaded all needed drivers. Now, I needed a compiler to run some code on the RCX. My fried recommended Bricx Command Center 3.3. However, that the program seems not to exist for Debian. But their webpage forwarded me to the brickOS project. Their compiler seems to be dead since 2004 but surprisingly there are Debian packages for it:
# aptitude install brickos brickos-doc
My first try to use brickos failed but that was because the contacts in my RCX and the tower were corroded. Probably because of some battery leakage years ago. I was able to polish them clean using sand paper. After the installation and after I plugged the (cleaned) tower in and started the RCX I was able to upload the brickOS operating system to the RCX:
$ sudo chmod 666 /dev/ttyUSB0
$ export RCXTTY=/dev/ttyUSB0
$ firmdl3 /usr/lib/brickos/brickOS.srec
I did not read much documentation, but I assembled my first program using the demo programs shipped with the brickOS package. They can be found in:
Those demos included two makefiles. One for C and one for C++ code. I used the C++ Makefile to compile my own code and uploaded it to the RCX using:
dll NameOfYourFile.lx
And now a little rover is running around in my flat :-)

Debian 7.5 on an Acer Aspire One D270

Date:2014-07-11 16:52:00

I own an Acer Aspire One D270 netbook. At the moment I run Debian Squeeze on it but now it is time to update it to the current stable version: Debian 7.5 "Wheezy". The hard-disk will be encrypted, further I plan to set up Fluxbox as window manager and to set up a suspend to disk system.

Prepare the Hardware

  • I will do a network installation (netinstall) of Debian. Therefore the netbook should be connected to the internet via a ethernet cable. (That makes it easier because we do not have to think about setting up wifi during installation).
  • The Aspire One has no CD or DVD drive, but Debian can be installed via USB. The images can be found here. I used the CD iso image debian-7.5.0-amd64-netinst.iso. The image can be copied to a usb stick via:
    $ su -
    Password: ***
    # cat debian-7.5.0-amd64-netinst.iso > /dev/sdb
    Note: Make sure to use the device the USB stick is connected to. In my case this was /dev/sdb. Would be dangerous to use the wrong one and to delete one of your harddisk.
  • Further, I need the additional firmware package, which can be found here. The content of the tar.gz archive should be copied to a (second) empy USB stick.
  • Now we check, that the Netbook is plugged into a power socket (no need to do this on battery), connected to the ethernet and the two USB sticks are plugged in.

Install a Rescue System

  • I will install a non encrypted backup system. This system has no GUI and should not be used for every day work. However it may become handy if something weird happens.
  • Boot the netbook, choose install and select your language, country, keyboard layout and then wait for Debian doing his thing.
  • Choose eth0 as network.
  • Choose a machine and domain name (or use the default).
  • Set a root password and create a new user.
  • The installer will do some stuff, just wait for it to finish.
  • Now we come to the hard disk partitioning.
    1. Choose manual
    2. delete all partitions already on the hard disk (but be careful not to erase the usb sticks)
    3. select the free disk space, create a partition of the full disk minus one or two GB, format it to get rid of old operating systems, set it as "Do not use"
    4. create a partition using the rest of the hard disk set it to ext4 and use it as "/", apply the changes, say that you do not like swap (we are installing just a small rescue system at the moment. the real system will become swap), say that you really like to apply your partitioning scheme
  • wait for the installation of the system
  • choose a country for your mirror and then the mirror itself
  • enter the proxy settings, if you need one (for a "normal" home network you can probably leave this blank)
  • wait again, this time for the installation of apt
  • decide if you like to take place at the packet tracking
  • choose what you need for your rescue system. I decided for ssh-server, laptop, and standard system tools. If you feel familiar with the command line you do not need any X window system for the rescue system
  • wait for the installation
  • install the boot loader into the master boot record
  • boot the rescue system and test if it works

Install the Main System

  • plug in the installation usb stick ons more and boot it
  • follow the installer like before until you come to the partition dialogue
  • choose "Use as: physical volume for encryption". finish this dialogue in the overview choose "Configure encrypted volumes" say yes to the next dialogue and in the next one choose "Create encrypted volume" choose your desired partition (probably /dev/sda1) and go on and in the next dialogue go on finish (the second option) and confirm your decision in the next one.
  • On my machine Debian was now working for over 12 hours to encrypt the partition.
  • Now choose a passphrase. You have to enter it each time you boot your machine.
  • You will be returned to the partitioning dialogue. Select the new partition (at the top of the dialogue) and choose "Use as: physical volume for LVM"
  • now we go back to the partitioning dialogue and choose "Configure the Logical Volume Manager", we confirm the question and create a volume group with a free choosen name and add the /dev/mapper/sda1_crypt device to the group.
  • now we create two logical volumes:
    1. one for swap (my netbook has 2 GB of RAM so I made the SWAP as large as 4GB, this is way big enough for suspend to RAM)
    2. one for "/" system. I took the rest of the harddisk. but you can also add more for /home/ or /opt/ or whatever you need
  • go back to the partitioning dialogue and configure the two new volumes for their destination (select them, goto "use as:" and follow the instructions.
  • Now we set our rescue system disk (the debian we installed at first) to be used as /boot and that it should not be reformatted.
  • We hope we did everything correct and apply the new configuration and confirm it and then we have to wait again for the partitioning and then for the installation of the main system.
  • Then we carry on like in the installation of the rescue system. Configure the mirror for apt, the proxy, the packet manager survey (popularity-contest). In the software choose dialogue I selected this time, grafical desktop environment and again ssh-server, laptop and system tools. Install the bootloader grub in the MBR. For me the installer found also the rescue system and added it correct to the bootloader.
  • We reboot the system (make sure to remove the thumbdrives before you do it) and test if our main system boots properly and if everything seems fine
  • Debian asks us first for the passphrase for the encrypted harddisk (you can ignore the warning about the missing lvm volumes, before it asks you for the passphrase. They are encrypted at this time and linux will find them later). Then the grapgical greeter should power up and you can log in with the account we created earlier. Now gnome should start.


  • I edited the file /boot/grub/grub.cfg to make it clear which entry in the boot menu starts which system. Therefore I changed the name of the rescue system to "Rescue System: Debian GNU/Linux, mit Linux 3.2.0-4-amd64 (on /dev/sda2)"
  • Now I install the software I need:
    # aptitude install tmux rsync git-all texlive-full vim-gnome 
    python-numpy python-scipy python-matplotlib icedove iceweasel
    pidgin mpd gmpc  okular gcc make build-essential jabref gimp
    conky-all ipython ipython-notebook ipython-qtconsole vlc
    fluxbox gkrellm fbpager fbpanel eterm imagemagick wmmixer
    gcalcli radiotray gnome-terminal
To be continued...


Installing a ATI Radeon Sapphire HD 7850 on Debian Squeeze

Date:2013-02-18 12:39:00

Yesterday, I tried in a long session to install an ATI Radeon Sapphire HD 7850 graphics card on a Debian 6.0 machine. I tried to follow these instructions: But all I got where some error messages in the log files and a black screen with a blinking dash. I also tried the open source driver that was pre installed in Debian and the one from backports. But they all failed. The problem seemed to be that they where to old for my graphics card.

In the end I tried to install the ATI driver named Catalyst manually without apt-get. One of the how to claimed, that this will not lead to success, but it worked for me. So here is what I did:
I googled "ati catalyst linux download" and found the official web page of the driver. Then all that was left to do was to download and execute the file:
$ su - # become root
# mkdir catalyst13.1
# cd catalyst13.1/
# wget
# unzip amd-driver*.zip 
# chmod +x amd-driver*.run 
# ./amd-driver-installer-catalyst-*.run --install
# reboot
If your as lucky as I was a little GUI will pop up and guide you through the installation process. If the driver claims, that an driver is already installed, remove it with:
# aptitude purge fglrx-control fglrx-driver
Good luck!

Skype 4.0 on Debian 6.0 Squeeze amd64

Date:2013-01-21 20:55:00

A working (at least on two of my three machines, the other on has sound problems with skype) Debian package of Skype 4.0 for Squeeze on the amd64 architecture can be found here: .

Installation is as usual via dpkg:
dpkg -i skype-debian_4.0.0.8-1_amd64.deb

cut mp3 files

Date:2012-07-03 08:15:00

From time to time I like to cut some parts out of a mp3 file. I am doing this with the mp3cut program (in the poc-streamer package in Debian):
mp3cut -o outfile.mp3 -t 16:09:43+000-17:46:30+000 infile.mp3
(via Go2Linux)

Mergin pdf files

Date:2012-04-24 21:16:00

You can merge several pdf files into one single pdf by using pdftk:

pdftk a.pdf b.pdf cat output merged.pdf

Executing the current line in vim

Date:2012-04-10 07:21:00

You can execute the (vim) command in the current line by pressing
For example: You have the following line in your latex file:
% :r!grep section %
Now you can execute this line by placing the cursor on it, and typing (in command mode) yy@". And you get a list of all sections of the current file.

Linux läuft jetzt auch auf Kartoffeln

Date:2008-12-12 10:40:00

Einer Gruppe aus Amsterdam ist jetzt endlich der bioinformatische Durchbruch gelungen auf den wir alle schon lange warten. Die Installation von Linux auf einer Kartoffel.Ich geh mir dann mal schnell ein paar Säcke Kartoffeln kaufen und baue mir einen Cluster.


Date:2008-02-25 13:15:00

Bei der Universität Hamburg habe ich eine extrem gute Anleitung (mit Bildern :-) !!) zum Aufbauen von SSH-Tunneln gefunden: Ansprechen eines CVS-Servers durch einen SSH-Tunnel Anders als der Titel vermuten lässt wird dort nicht nur erklärt wie man CVS (was auch auf svn übertragbar ist) tunnelt sondern auch wie man sich über einen Gateway-Rechner mit einem dritten Rechner verbindet.

Vim7 mit Tabs

Date:2008-01-07 10:55:00

Ich habe mich ein bisschen mit der Tab-Funktion von vim auseinander gesetzt und dachte mir ich trage hier mal ein paar Tipps zusammen bevor ich sie wieder vergesse:

- um mehrer Dateien in Tabs zu öffnen, gibt es die Option -p: vim -p datei1 datei2 datei3

- eine neues Tab bekommt man im Kommandomodus von vim mit :tabedit oder :tabe

- man kann auch gleich eine neue Datei auf diese Weise öffnen: :tabe datei4

- mit Strg+w gf kann man einen Dateinamen unter dem Coursor in einem neuen Tab öffnen

- mit der Option tabpagemax kann man die Anzahl der maximal offenen Tabs festlegen. Neue Dateien werden danach nur noch in normalen Puffern geöffnet. Bei mir steht in der .vimrc:
set tabpagemax=20

- mit Ngt kann man zu Tab N springen: 3gt

- und damit man auch weiß welcher Tab welche Nummer hat kann man mit guitablabel die Nummer auf den Tab schreiben. Bei mir steht das so in der .vimrc:
set guitablabel=%N/ %t %M

Ein Kommentar am Rande

Date:2007-05-30 11:43:00

Nachdem ich heute vor dem Problem stand eine große Anzahl von Zeilen in einem Tcl-Skript auszukommentieren habe ich folgende Lösung dafür gefunden (das ganze natürlich in Vim. Wer noch einen anderen Editor verwendet sollte sich schämen): Strg-V bringt einen in den Visual-Block-Mode. Dann markiert man den Anfang aller zu kommentierenden Zeilen und drückt dann I (das große I) um in den Inser-Mode zu kommen, dann kann man das Kommentarzeichen einfügen (hier also # ) und ein Escape kommentiert alles auf einen Schlag aus. Vielen Dank an das Not So Frequently Asked Questions--Blog


Date:2007-09-03 16:03:00

Ich habe mich heute dazu entschieden etwas über Datenbackups zu schreiben und wie einfach das ganze eigentlich ist. Ich war früher auch eher schlampig mit meinen Backups und habe ca. 1-2 mal im Jahr (meistens vor einem Betriebssystem-Update) ein Backup auf Cds gemacht. Das war dann ein gemütlicher Nachmittag an dem ich so um die 40Cds gebrannt habe. Irgendwann habe ich mich dazu durchgerungen regelmäßiger Backups von meinen Daten zu machen. Das macht mit CDs dann natürlich keinen Spaß mehr. Also habe ich mir eine externe Festplatte gekauft. Die kosten zwar ein paar Euro dafür kann man damit aber wesentlich besser seine Daten retten. Die externe Platte sollte logischerweise in etwas gleich groß oder etwas größer sein, als die interne. Das wichtigeste was man jetzt noch machen muss ist sich den Backup-Vorgang so weit wie möglich zu automatisieren. Wenn ich die ganze Zeit über dabei sitzen muss oder die Dateien einzeln kopiere bringt das nichts. Dann kann ich auch wieder CDs brennen. Wenn man einschlägige Datenrettungs-Literatur ließt bekommt man meistens den Tipp das Backup automatisert um 3uhr Nachts starten zu lassen. Das Problem dabei ist: In Firmen funktioniert das vielleicht nocht, aber die meisten Leute die ich kenne (mich eingeschlossen) machen ihren Computer aus, wenn sie ihn nicht brauchen. Also funktioniert das Zeitgesteuerte-Backup hier nicht. Was man noch machen könnte wären den Computer extra für das Backup mit einer Zeitschaltuhr hochzufahren. Da bei mir der Rechner im Schlafzimmer steht kommt das für mich auch nicht in Frage. Ich habe dann darüber nachgedacht das Backup automatisiert beim Hoch- oder Runterfahren zu starten. Wenn ich den Computer hochfahre will ich ihn dann aber auch sofort benutzen und nicht erst eine viertel Stunde warten bis das Backup fertig ist. Und beim Herrunterfahren ist es mir auch lieber, wenn der Rechner gleich ausgeht (außerdem kommt hier noch ein technisches Problem mit meiner externen Festplatte zum Zuge. Da will ich aber jetzt nicht drauf eingehen.) Lange Rede, kurzer Sinn. Ich habe keine Lösung gefunden das Backup automatisiert zu starten. Über Ideen bin ich jederzeit dankbar. Was ich allerdings gemacht ist mir das Starten des Backupvorganges so einfach wie möglich zu machen. Ich habe mir ein kleines Linux-Bash-Skript geschrieben, welches das Backup durchführt. Ich muss also nur noch ein Programm starten und schon wird alles gesichert. Das kann man dann noch schnell starten bevor das Mittagessen fertig ist oder der Film anfängt oder wenn man den letzten Satz der Diplomarbeit geschrieben hat. Mein Skript sieht so aus:
####### Configuration ########
TARGET="/mnt/backup" # Verzeichnis, wohin das Backup geschoben wird
SOURCE="/"           # Quelle des Backups
LOG="backup-`/bin/date +%d%m%Y%T`.log" # Dateiname der log-Datei
RSYNC_OPTIONS="-a -v --exclude-from=auslassdatei.rsync"
Es wird hier mit dem Programm rsync (das muss man eventuell noch extra installieren) alle neuen Daten in TARGET nach SOURCE kopiert. Dabei wird eine log-Datei geschrieben (mit dem aktuellen Datum im Dateinamen um alte Logs nicht zu überschreiben). Außerdem gebe ich dem Programm noch einen nice-Level von 19 mit, damit andere Programme auch noch eine Chance haben zum Zuge zu kommen. Dann gibt es noch die Datei auslassdatei.rsync in der ich Verzeichnisse aufliste, die nicht mit ins Backup sollen (zum Beispiel den mount-Ort des Backups. Sonst gibt es eine Endlosschleife). Bei mir sieht die Datei so aus, andere werden sie anpassen müssen:
So und damit die Windows-User (und die sind es ja meistens die ihre Rechner kaputt machen ;-) ) sich nicht beschweren: Mit SyncBack macht meine Freundin ihre Backups von Windows XP aus. Und sogar mir ist es schon gelungen mit dem Programm ein Backup zu machen. Also in Zukunft bitte keine Anrufe mehr der Art: Mein Rechner ist kaputt. Mach ihn ganz und die Daten musst du auch noch retten. Das muss ab jetzt heißen: Mein Rechner ist kaputt. Kannst du ihn vielleicht reparieren und dann mein Backup wieder einspielen?