Davis Weather Envoy & WVIEW, Probleme mit USB Verbindung /dev/ttyUSB*

Das Problem:

Der Weather Envoy Datenlogger der Vantage Pro Wetterstation wird als ttyUSB* device unter Linux erkannt, jedoch scheint die USB Verbindung zwischen Datenlogger und Linux sporadisch abzurechen. Geschieht dies so stürzt WVIEW ab und durch UDEV wird das Gerät unter dem nächsten freien Namen neu mit dem System verbunden. ttyUSB0 -> Unterbrechung -> ttyUSB1 -> usw. Jedoch verliert so die Software zu Datenanalyse WVIEW die Verbindung zum Gerät, da diese sich nur auf ein festes Gerät konfigurieren lässt.

Ein Lösungsvorschlag:

Meine Umsetzung:

Für den Davis Weather Envoy wird eine neue UDEV regel angelegt. Eine UDEV-Regel besteht aus  einer einfachen textdatei im Pfad /etc/udev/rules.d/ , der dateiname muss mit einer Zahl zwischen 00 und 99 beginnen, je niedriger die Zahl desto höher die Priorität für UDEV. Ich habe die regel für den Weather Envoy der Vantage Pro 01-vantage.rules genannt. In unserem Fall soll UDEV sobald der USB-Adapter des Weather Envoy erkannt wurde den symbolischen link /dev/ttyVPpro anlegen. Über diesen kann WVIEW immer auf das aktuelle ttyUSB* device zugreifen. Zusätzlich soll ein Script ausgeführt werden das WVIEW neustartet und so das neue Device verwendet.  Die UDEV-Regel könnte wie folgt aussehen:

BUS=="usb", KERNEL=="ttyUSB*", SYSFS{idVendor}=="10c4" SYSFS{idProduct}=="ea60", SYMLINK+="ttyVPro", RUN+="/root/restartvwiew"

idVendor und idProduct können einfach über lsusb ermittelt werden.

Das kleine Script beendet WVIEW, startet das Programm nach 10 Sekunden neu und logt das Ereignis in einer Datei:

#!/bin/bash
# get date
aDate=`date +%Y-%m-%0e_%H:%M:%S`;
echo "$aDate WVIEW restart due to UDEV change." >> /root/wview_log
/etc/init.d/wview stop
sleep 10
/etc/init.d/wview start

Virtualbox .vdi-Backup unter Linux

There was a time, when I shared a blog. This post was written by Stephan. See all blogpost from him or stalk him on github.


VirtualBox eignet sich bestens, um mit Linux einige Experimente durchzuführen- man kann ja jeder Zeit eine neue virtuelle Maschine installieren.

Um ein Backup der vdi von VirtualBox zu machen, benötigt man folgenden Befehl in der Konsole:

VBoxManage clonevdi `echo $HOME`/.VirtualBox/HardDisks/ubuntu.vdi `echo $HOME`/Desktop/ubuntu.vdi

Ein einfaches kopieren der .vdi-Datei aus dem VirtualBox-Ordner führt beim Einbinden in einem anderen Rechner zu Fehlern - Bitte immer VBoxManage verwenden.

Ab der Virtualboxversion 3.0.8 OSE werden die VDI im Ordner “.VDI/HardDisks” gespeichert.

Die erstellte VDI-Datei muss dann nur noch in den VDI-Ordner kopiert werden. Der Start erfolgt dann wie gewohnt über VirtualBox. Der Name der VDI-Datei muss natürlich angepasst werden.

Viel Spaß

Mediadateien mit ffmpeg umwandeln (Teil I)

There was a time, when I shared a blog. This post was written by Stephan. See all blogpost from him or stalk him on github.


Das folgende Tutorial soll zeigen, wie man aus Flashvideos (Youtube) oder anderen Videodateien mit Hilfe von ffmpeg die Audiospur extrahieren und als mp3 & Co abspeicheren kann. Die Umwandlung erfolgt dabei über ein kleines Shellscript, dass individuell angepasst werden kann.

Allgemein:

Folgende Pakete müssen installiert werden:

sudo apt-get install build-essential yasm subversion git-core checkinstall

Erklärung:

  1. build-essential: stellt die grundlegenden Pakte fürs Kompilieren zur Verfügung
  2. yasm: beinhaltet einen Assembler, den wir ebenfalls zum Kompilieren der benötigten Encoder benötigen, bewirkt eine Optimierung des Quellcodes bei x264 (mehr)
  3. subversion und git: ermöglichen das Downloaden der aktuellsten Versionen von ffmpeg, xvid u.a. (aus den entsprechenden Repositories)
  4. checkinstall: erzeugt Debianpakete und installiert diese sofort (bei der Angabe von - -install=no wird nur ein Debianpaket erstellt)

Alle heruntergeladenen Archive werden wir im Ordner /tmp/capture abspeichern und auch kompilieren. Okay, let’s go…

Encoder/Decoder

ffmpeg soll mit den neusten Encodern/Decodern kompiliert werden. Dies sind:

  1. lame mp3
  2. faac
  3. faad2
  4. h264
  5. xvid

lame

ffmpeg aus den Ubuntuquellen bietet von Haus aus keine mp3 Unterstüzung. Deshalb müssen wir uns lame als MP3-Encoder installieren - und das natürlich in der neusten Version.

Wir öffnen die Konsole, wechseln ins Verzeichnis /tmp, legen den Ordner “capture” an und betreten diesen anschließend:

cd /tmp
mkdir capture
cd  capture

Dann holen wir uns das neuste lame-Archiv und compilieren es mit den Standardwerten (Version wenn nötig anpassen, eine Übersicht gibt es hier):

wget http://dfn.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz
tar -xzf lame-398-2.tar.gz
cd lame-398-2
./configure
make
sudo checkinstall


faac und faad2, Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)

Analog wie bei lame gehen wir jetzt bei faac und faad vor (wir befinden uns wieder im Ordner /tmp/capture). Achtung: Wer denkt, dass er diesen Endoder/Decoder nicht braucht, soll gewarn seint: Youtube verwendet (auch oder nur ???) AAC in seinen flv-Dateien!!!

wget http://switch.dl.sourceforge.net/sourceforge/faac/faac-1.28.tar.gz
tar -xzf faac-1.28.tar.gz
cd faac-1.28
./configure --enable-shared
make
sudo checkinstall

wget http://switch.dl.sourceforge.net/sourceforge/faac/faad2-2.7.tar.gz
tar -xzf faad2-2.7.tar.gz
cd faad2-2.7
./configure
make
sudo checkinstall

Eine Übersicht der aktuellesten Versionen: faac und faad2

x264

x264 ist ein freier h264 Encoder, der u.a. auch beim beliebten VLC-Player Verwendung findet. Die aktuelle Version laden wir mit git herunter, ansonsten muss beim Kompilieren noch das shared-Flag gesetzt werden, um die Bibliothek auch für andere Programme verfügbar zu machen:

git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-shared
make
sudo checkinstall

xvid

Auch xvid sollte bei ffmpeg nicht fehlen, auch wenn es etwas an Bedeutung verloren hat( eigene Einschätzung;-)):

wget http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.gz
tar -xzf xvidcore-1.2.2.tar.gz
cd xvidcore/build/generic
./configure
make
sudo checkinstall

ffmpeg

Nun können wir ffmpeg zusammen mit den eingangs erstellten Encodern/Decodern kompilieren:

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure  --enable-gpl --enable-x11grab --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-nonfree
make
sudo checkinstall

Anmerkung:

Im zweiten Teil dieses Tutorials werde ich dann auf den Shellscript eingehen, der in Verbindung mit ffmpeg die Audiodateien erzeugen wird.

Bis dahin aber erst einmal: Fröhliches Kompilieren!!!!!!

Bilder in Flash / Actionscript 3.0 laden

Das ist der minimalste Code um ein Bild per Actionscript 3.0 zu laden und anzuzeigen. ((http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/Loader.html#includeExamplesSummary))

Einfach eine neue Flashdatei anlegen diesen Code ins erste Frame einfügen, speichern und ausführen. Das Bild muss im gleichen Verzeichnis wie die *.fla liegen.

var url:String = "bild.jpg";
function BildLaden() {
   var loader:Loader = new Loader();
   var request:URLRequest = new URLRequest(url);
   loader.load(request);
   addChild(loader);
   }
BildLaden();

Wie installiere ich Redmine auf lighttpd mit FastCGI?

Als Voraussetzung für dieses Tutorial solltest du eine funktionierende Ruby on Rails-Umgebung haben. Dazu bietet sich das lighttpd Tutorial im Nerdlabor an. (1)

Dieses Tutorial basiert auf der original RedmineInstall. (2)

Als erstes brauchst du die neuste Version von Redmine. Downloaden, entpacken, in den Webroot kopieren (bei mir ist das /var/www/, kann aber auch jeder andere Ordner sein).

wget http://rubyforge.org/frs/download.php/52944/redmine-0.8.2.tar.gz
tar xzf redmine-0.8.2.tar.gz
cp -r redmine-0.8.2/ /var/www/
mv /var/www/redmine-0.8.2/ /var/www/redmine

Jetzt musst du eine Datenbank anlegen. Ich nutze MySQL aber es sind auch alle anderen bekannten Datenbanken möglich. Dazu die MySQL-Konsole starten und eine Datenbank erzeugen.

mysql -u  root -p
mysql>create database redmine character set utf8;

Als nächstes müssen wir die Datenbankanbindung von Redmine konfigurieren.

cd /var/www/redmine/config
cp database.yml.example database.yml
nano database.yml

Dort im “production”-Bereich Datenbankname, -benutzer und -passwort angeben. In diesem Beispiel ist es root, aber es empfiehlt sich für Redmine einen eigenen Datenbankbenutzer anzulegen.

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: root
  password: passwort
  encoding: utf8

Jetzt können wir die Datenbank befüllen.

Erstens mit Struktur:

cd ..
rake db:migrate RAILS_ENV="production"

Zweitens mit einer Standardkonfiguration:

rake redmine:load_default_data RAILS_ENV="production"

Als nächstes erstellen wir eine dispatch.fcgi aus dem mitgelieferten Beispiel.

cd public/
cp dispatch.fcgi.example dispatch.fcgi

In dieser Datei muss ggf. noch der Pfad zur Ruby-bin angepasst werden. Um das zu tun, einfach mit

nano dispatch.fcgi

die erste Zeile in

#!/usr/local/bin/ruby

abändern. Je nachdem wo euer Ruby liegt.

Als nächstes muss noch die lighttpd.conf angepasst werden. Dazu mit

nano /etc/lighttpd/lighttpd.conf

folgende Zeilen hinzufügen bzw. abändern.

$HTTP["host"] == "redmine.meinedomain.de" { #hier ist auch localhost oder sonstwas möglich
        server.document-root = "/var/www/redmine/public"

        server.dir-listing          = "disable"
        server.error-handler-404 = "/dispatch.fcgi"

        fastcgi.server      = ( ".fcgi" => ( "redmine" => (
                "min-procs"       => 1,
                "max-procs"       => 1,
                "socket" => "/tmp/redmine.socket",
                "bin-path" => "/var/www/redmine/public/dispatch.fcgi",
                "bin-environment" => ( "RAILS_ENV" => "production" )
        ) ) )
}

Jetzt müssen noch die Ordnerrechte an den Webserver-User übergeben werden. Bei mir ist das der Benutzer “www-data”.

cd ../..
chown -R www-data:www-data redmine/

Jetzt kannst du mit

sudo /etc/init.d/lighttpd restart

lighty neustarten und hoffen, dass Redmine unter der angegebenen Adresse erreichbar ist. :)