Vertauschte TV-Karte und USB Webcam beim Booten

Bei meinem Freund Wolfgang trat das Problem auf, dass beim Booten seines Linux Mint Debian Edition Systems die TV-Karte und die USB Webcam jeweils zufällig den Device Link video0 oder video1 erhielt. So funktionierte z.B. tvtime nur manchmal, da ja der Device Link fest in /etc/tvtime/tvtime.xml eingetragen ist. Ebenso verhielt es sich mit der Webcam. Die Webcam zeigte z.B. mit guvcview nur dann ein Bild, wenn die Webcam zufällig den richtigen Device Link beim Booten erhalten hatte.

Wir haben uns nun beholfen, indem wir für beide Geräte eine Udev Regel in /etc/udev/rules.d/70-persistent-video.rules platziert haben:

#WEBCAM
SUBSYSTEMS=="usb", KERNEL=="video?", SUBSYSTEM=="video4linux", ATTR{name}=="Name der Webcam mit lsusb ermittelt", DRIVERS=="usb", SYMLINK+="video0"

#TVKARTE
SUBSYSTEMS=="pci", KERNEL=="video?", SUBSYSTEM=="video4linux", ATTR{name}=="Name der Karte mit lspci ermittelt", DRIVERS=="bttv", SYMLINK+="video1"

Nun funktionieren beide Geräte tadellos.

In Linux veröffentlicht | Kommentieren

The Grandmothers of Invention

Ich war am 15.04.2013 bei „The Grandmothers of Invention“ im Hirsch in Nürnberg. Die Band hat seit Ihrer Gründung bereits etliche Musiker beheimatet. Die jetzige Besetzung um die Frank Zappa Weggefährten Napoleon Murphy Brok und Don Preston besteht aus:

  • Napoleon Murphy Brock, Saxophon, Flöte, Gesang
  • Don Preston, Keyboard, Gesang
  • Dave Johnson, Bass
  • Chris Garcia, Schlagzeug, Gesang
  • Mike Miller, Gitarre, Gesang

Es war ein fantastisches Konzert, das einem Mut macht, in dieser verrückten Welt weiter zu machen und sich die Liebe zu bewahren. Napoleon Murphy Brok war wie immer guter Laune und versprühte mit seinem Witz und seinen geschmeidigen Tanzeinlagen positive Energie.

Ich habe die Grandmothers schon auf dem Frank Zappa Festival Zappanale in Bad Doberan in einer anderen Besetzung gesehen und war begeistert. Ich habe leider nur zwei offizielle Tonaufnahmen der Band: Eating The Astoria (2000) und A Grandmothers Night At The Gewandhaus (2003).

Ihre “One Size Fits All” Tour führt sie 2013 noch in weitere fünf deutsche Städte. Siehe http://www.grandmothersofinvention.com/tourdates.html

Absolut Empfehlenswert!

In persönliches veröffentlicht | Kommentieren

Joomla! timezone richtig einstellen

Da die meisten Hosting Server ihre timezone auf UTC (koordinierte Weltzeit) gesetzt haben, stimmen bei Joomla! die Uhrzeitangeben meist nicht, auch wenn man in der Konfiguration z.B. Europe/Berlin eingetragen hat.

Um dies zu korrigieren sollte folgende Zeile in die .htaccess Datei im root der Installation eingetragen werden:

SetEnv TZ Europe/Berlin

Für “Europe/Berlin” natürlich die Stadt die eurer Zeitzone entspricht eintragen. Hier eine Liste möglicher Einträge.

Dann muss noch die Datei configuration.php im root eurer Installation mit einem Editor bearbeitet werden und als UTF-8 ohne BOM gespeichert werden. Folgende beiden Angaben sollten entsprechend eurer Zeitzone geändert werden:

public $offset = 'Europe/Berlin';
public $offset_user = 'Europe/Berlin';
In Joomla!, Server-Konfiguration veröffentlicht | Kommentieren

Energiewende schon lange vollzogen

Ich habe meinen Stromanbieter bereits vor Fukushima gewechselt. Ich beziehe schon seit 01.08.2010 100% Ökostrom von naturstrom. Ich habe somit meinen eigenen privaten Atomausstieg längst vollzogen.
Und das Ganze ist auch noch günstiger als der vorherige Anbieter EWE. Ich weiß, dass mit meinem monatlichen Stromabschlag auch Neuanlagen in Deutschland gefördert werden und sogar Projekte im Ausland unterstützt werden.
Um möglichst wenig Energie zu verbrauchen, nutze ich schon seit über 10 Jahren für die Lichterzeugung Energiesparlampen und werde, sobald die LED-Lampen bezahlbar werden, auf diese Form der Beleuchtung umsteigen. Darüber hinaus überlege ich gerade, meinen ca. 20 Jahre alten Kühlschrank durch einen neuen mit einer Energieeffizienzklasse von A+++ zu ersetzen.
Wer gerade überlegt, ebenfalls den Stromanbieter zu wechseln, sollte bedenken, dass es nur VIER(!) überregionale echte 100% Ökostromanbieter gibt, die da lauten: Greenpeace Energy, naturstrom, Lichtblick und EWS Schönau. Die mittlerweile hunderten Anbieter von vermeintlichem Ökostrom, kaufen im besten Fall RECS Zertifikate um ihren Kohlestrom bzw. Atomstrom grün zu waschen, oder sind im Grunde Tarife von den vier großen Energiekonzernen im Land.
Auf atomausstieg-selber-machen.de könnt ihr euch unabhängig über die echten Ökostromanbieter informieren.

Seit 08.04.2011 ist auch mein Girokonto bei der Hypovereinsbank gekündigt und ich habe zur GLS Gemeinschaftsbank eG gewechselt. Ich wollte einfach mein Geld nicht mehr einer Bank anvertrauen, die es massiv in Hersteller von Waffen (u.a. Streumunition und Antipersonenminen) investiert.
Die GLS Bank ist eine der ersten nachhaltig investierenden Umweltbanken und ich bin sehr zufrieden bisher. Bei Kontoeröffnung kann man sogar wählen, in welchen Bereich das eigene Geld vorwiegend investiert werden soll, z.B. Energiewende oder Ökolandwirtschaft. Auf jeden Fall kann man sicher sein, dass nur in nachhaltige Projekte und Firmen investiert wird.

Wer noch eine Idee hat, wie ich mein Gewissen noch nachhaltiger beruhigen könnte, bitte schreibt mir. ;-)

In persönliches veröffentlicht | Kommentieren

Nun nutze ich Linux Mint Debian Edition

Seit einigen Tagen nutze ich nun Linux Mint Debian Edition, kurz LMDE. LMDE ist im Prinzip Debian testing mit einigen Mint Anpassungen, z.B. kann man die Desktopumgebung MATE und Cinnamon nutzen. Außer einigen Anpassungen wegen VMware Player läuft alles einwandfrei. Hab wieder meinen LAMP Server mit ssmtp installiert. SAMBA für die virtuellen Windows Maschinen in VMware Player, Chromium, Opera, Epiphany und Firefox unter Linux und dann natürlich IE6 in einer IE6 VM, IE7 und IE8 in einer Windows XP x64 VM und IE9 in einer Windows 7 VM. Safari in einer Mac OS X Lion VM. Dann natürlich noch etliche Versionen von Firefox, Opera und Google Chrome.
Somit kann ich meine Webseiten in so ziemlich jedem Browser in jedem Betriebsystem testen, den man sich vorstellen kann.
Die Geschwindigkeit ist wesentlich höher als unter Linux Mint oder gar ubuntu. Bisher bin ich überwiegend begeistert.

In persönliches veröffentlicht | Kommentieren

Joomla! 1.5.x Joomfish Übersetzung nach Joomla! 2.5.x Beiträge migrieren

Ich soll demnächst für einen Kunden eine Seite von Joomla! 1.5.x auf Joomla! 2.5.x migrieren. Die Seite ist zweisprachig mit Hilfe von Joomfish realisiert. Die neue Installation soll auch wieder zweisprachig werden, aber auf Basis der Joomla! eigenen Mehrsprachigkeits Funktionen.
Also haben wir das Problem, dass bei einer Migration, mit der jUpgrade Komponente, nur die deutschen Beiträge migriert werden. So habe ich mich daran gesetzt und habe ein PHP Skript programmiert, mit dem es möglich ist, die Übersetzung aus den MySQL Tabellen von Joomfish in Joomla! Beiträge zu migrieren.
Der Ablauf ist folgendermaßen gedacht. Als erstes wird in einem Unterordner bzw. auf einer Subdomain ein nacktes Joomla! 2.5.x mit der gleichen Datenbank aber anderem Tabellenpräfix installiert. Dann wird mein Script auf die Datenbank angewendet, was schon mal alle Übersetzungen in Beiträge das neuen Joomla! überführt. Diese werden alle ausgewählt und in einem Rutsch einer Kategorie zugeordnet und die Sprache auf Englisch gesetzt. Danach kann man dann die eigentliche Migration über die jUpgrade Komponente dürchführen. Hier das Skript:

< ?php
error_reporting('E_ALL');
/*
 * Migrationsskript fuer Joomla mit JoomFish-Extension
 * Migriert Contents von Zweit-Sprachen (Sprach-$id)
 * zu Joomla-Content-Tabellen
*/

$conn = mysql_connect('localhost', 'root', 'xxxxxxx');
mysql_select_db('joomfish', $conn);
//$iconn = &$conn;
$iconn = mysql_connect('localhost', 'root', 'xxxxxxx', true);
mysql_select_db('joomfish', $iconn);
 
// Einstellungen
$j1_prfx= "jos_"; // Quelle Joomla 1.5 Tabellenpräfix
$j2_prfx= "j25_";  // Ziel Joomla 2.5 Tabellenpräfix
$lang_id = 1;   // zu exportierende Sprache 
 
$log = fopen ("migrate_jf.log", "w"); // log handle
 
echo "Migration von JF-Contents gestartet..." . "<br>";
 
$query = "SELECT * FROM `".$j1_prfx."jf_content` WHERE `language_id` = '".$lang_id."' AND `reference_table` = 'content';";

if (!$result = mysql_query($query, $conn)) die (mysql_error());
else $num_rows = mysql_num_rows($result); 

echo $num_rows . " Felder gefunden.<br>";

while ($row = mysql_fetch_object($result)) { 

// INSERT, UPDATE und DELETE erzeugen 

	$insert1 = "INSERT INTO `" . $j2_prfx. "content" . "` SET `catid` = '". $row->reference_id . "';";
   
	if (!$iresult = mysql_query($insert1, $iconn)) {
		echo  "Fehler: ". mysql_error() . " durch SQL: " . $insert1 . "<br>";
		fwrite($log, "Fehler: ". mysql_error() . " durch SQL: " . $insert1 . PHP_EOL);
	}  else  { 
					fwrite($log, $insert1 . PHP_EOL);
				}

	$insert2 = "UPDATE `" . $j2_prfx. "content" . "` SET `" . $row->reference_field . "` = '" . mysql_real_escape_string($row->value, $iconn);
	$insert2 .= "', `state` = '" . $row->published . "', `modified` = '" . $row->modified . "', `modified_by` = '" . $row->modified_by . "'";
	$insert2 .= ", `access` = '3'"; 
	$insert2 .=" WHERE `catid` = '" . $row->reference_id . "' LIMIT 1;";
 
	if (!$iresult = mysql_query($insert2, $iconn)) {
		echo  "Fehler: ". mysql_error() . " durch SQL: " . $insert2 . "<br>";
		fwrite($log, "Fehler: ". mysql_error() . " durch SQL: " . $insert2 . PHP_EOL);
	}  else  { 
					fwrite($log, $insert2 . PHP_EOL);
				}

	$insert3 = "DELETE FROM `" . $j2_prfx. "content" . "` WHERE `alias` = '';";

	if (!$iresult = mysql_query($insert3, $iconn)) {
		echo  "Fehler: ". mysql_error() . " durch SQL: " . $insert3 . "<br>";
		fwrite($log, "Fehler: ". mysql_error() . " durch SQL: " . $insert3 . PHP_EOL);
	}  else  { 
					fwrite($log, $insert3 . PHP_EOL);
				}

} // loop ende

fclose($log);

echo "Migration erledigt." . "<br>";

mysql_close($conn);
mysql_close($iconn);
 
?>
In Joomla!, Webdesign veröffentlicht | 1 Antwort

pics2party.de auf Joomla! 2.5.x migriert

Habe mal wieder eine Joomla! Migration von 1.5.25 auf Version 2.5.x durchgeführt.

Bei pics2party.de habe ich auch gleich das Template von Grund auf neu programmiert, da das alte Template des Kunden mit Artisteer erstellt wurde, an dem ich damals nur einige Anpassungen gemacht habe. Das neue Template ist nun 100% valide und sehr schlank programmiert.

Da der Kunde ca. 7 GB an Bildern in einer Phoca Gallerie hat, war die Migration ein wenig knifflig. Das Migrations-Script von jupgrade 2.5.1 hat es leider nicht geschafft, alle Bilder in den neuen Joomla! Ordner zu kopieren. Die Bilder per FTP herunter zu laden und neu hoch zu laden hätte mehrere Stunden gedauert, also habe ich mich mit phpfilemanager.php beholfen. Das ist ein PHP Script mit dem man auch Befehle auf dem Server ausführen kann.

Mein Befehl war z.B. : cp -r /www/xxxxxxxx/images/phocagallery/* /www/xxxxxxxx/joomla25/images/phocagallery/

Falls man natürlich SSH Zugang zum Server hat, ist die Sache naturgemäß noch einfacher, da man direkt Zugriff auf die Konsole des Linux Systems auf dem Server hat.

Außerdem mussten nach der Installation der neuen Phoca Gallery Komponente, auf dem Joomla! 2.5.x ein paar SQL Anweisungen ausgeführt werden, damit die Galerie wieder funktioniert:

Als erstes müssen alle alten Phoca Gallery Tabellen mit dem Präfix des Joomla! 1.5 exportiert werden, die Präfixe in der SQL Datei an das neue Präfix angepasst werden und in die neue Datenbank importiert werden. Dann müssen noch folgende SQL Abfragen in der Datenbank durchgeführt werden:

UPDATE `j25_phocagallery` SET `language` = '*';
UPDATE `j25_phocagallery_categories` SET `language` = '*';
UPDATE `j25_phocagallery_comments` SET `language` = '*';
UPDATE `j25_phocagallery_fb_users` SET `language` = '*';
UPDATE `j25_phocagallery_img_comments` SET `language` = '*';
UPDATE `j25_phocagallery_img_votes` SET `language` = '*';
UPDATE `j25_phocagallery_img_votes_statistics` SET `language` = '*';
UPDATE `j25_phocagallery_tags` SET `language` = '*';

j25_ natürlich an das Präfix eurer Joomla! 2.5.x Installation anpassen. Danach müssen noch die Galerie Menüpunkte und die Phoca Gallery Kategorien einmal geöffnet und abgespeichert werden und die Galerie funktioniert wieder.

Alles in Allem wirkt die Seite jetzt wesentlich stabiler.

In Joomla!, Webdesign veröffentlicht | Kommentieren

Nutze jetzt Linux Mint 12 ‘Lisa’

Da ich mit dem neuen unity Desktop von ubuntu nicht mehr zufrieden war, habe ich neulich Linux Mint 12 Codename ‘Lisa’ installiert. Meine Daten habe ich ja sowieso auf einer extra home Partition, aber da ich ja auch täglich automatisierte Backups mit rsnapshot auf meine externe 1,5TB Festplatte mache, habe ich bei der Installation auch /home gelöscht und mit einem völlig jungfreulichen Linux Mint begonnen.

Ich bin froh, dass ich meine geliebte Taskleiste wieder habe. Ich habe das Gefühl jetzt wieder in der gewohnten Geschwindigkeit arbeiten zu können. Um in Unity mal schnell ein Fenster zu wechseln musste man erst mit der Maus an den linken Bildschrimrand, das Icon des Programms suchen und falls das Programm mehrere Fenster auf hat, klicken und dann mit einem zweiten Klick das entsprechende Fenster auswählen.

Ich verstehe nicht, was daran erhöhter Useability entspricht. Bei ‘Lisa’ hat man, wie früher bei gnome2 gewohnt, eine schöne Taskleiste am unteren Fensterrand, aus der man blitzschnell das benötigte Fenster in den Vordergrund holen kann. Es ist praktisch nur eine Anpassung des gnome3 Desktops, aber wie ich finde höchst gelungen.

In Linux, persönliches veröffentlicht | 2 Antworten

Mit mencoder analoges TV aufnehmen

Wer noch eine analoge TV-Karte in seinem Rechner hat, kann unter Linux mit mencoder sehr leicht qualitativ hochwertige Aufnahmen vom TV machen. Wer noch alte VHS Kassetten hat, kann diese über den Video Eingang der TV Karte leicht digitalisieren.

Mit folgendem Shell Skript lässt sich der Kanal S39 von der TV-Karte digitalisieren:

#!/bin/bash
mencoder tv:// -tv driver=v4l2:device=/dev/video1:input=0:fps=25:width=720:height=576:amode=1:forcechan=2:chanlist=europe-west:channel=S39:forceaudio:immediatemode=0:alsa:adevice=hw.3,0:audiorate=32000 -ffourcc DX50 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:turbo:vbitrate=1200:keyint=15 -oac mp3lame -lameopts cbr:br=128 -endpos 01:20:00 -vf pp=lb -o aufnahme.avi

adevice=hw:3,0 entsprechend der Nummer der verwendeten TV-Karte anpassen. Die Nummer kann mit dem Befehl

cat /proc/asound/cards

in Erfahrung gebracht werden.

/dev/video1 kann auch /dev/video0 sein, falls ihr keine Webcam oder ein anderes Videogerät im Rechner habt.

Mit channel= kann man den aufzunehmenden Kanal einstellen. Eine Liste der Kanäle kann man sich mit:

scantv -c /dev/video1 -C /dev/vbi0 -o ~/Kananlliste.txt in sein Homeverzeichnis anlegen.

mit -endpos 01:20:00 lässt sich z.B. eine Aufnahmedauer von 1 Stunde und 20 Minuten einstellen.

Das Script nimmt den TV Stream als DIVX Video mit mp3 Ton auf, das auf fast allen handelsüblichen DVD Playern abgespielt werden kann. Die Bitrate und somit die Qualität habe ich so eingestellt, dass eine 90 minütige Aufnahme ca. 1 GB Platz auf der Festplatte verbraucht.

Mit folgendem Shell Skript lässt sich der S-Video Eingang der TV-Karte digitalisieren:

#!/bin/bash
mencoder tv:// -tv driver=v4l2:device=/dev/video1:input=2:fps=25:width=720:height=576:amode=1:forceaudio:immediatemode=0:alsa:adevice=hw.3,0:audiorate=32000 -ffourcc DX50 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:turbo:vbitrate=1200:keyint=15 -oac mp3lame -lameopts cbr:br=128 -endpos 00:50:00 -vf pp=lb -o aufnahme.avi

Wer über Composite (Cinch-Stecker) aufnimmt, sollte input=1 wählen.

adevice=hw.3,0 wieder wie oben beschrieben anpassen

In Linux veröffentlicht | Kommentieren

tvtime gibt keinen Ton aus

Mit manchen TV-Karten (vor Allem mit saa7134 Modul) ist tvtime nicht dazu zu bewegen Sound auszugeben. Eventuell ist der ALSA-Kanal “Video” deaktiviert oder heruntergeregelt. Der Kanal “Video” kann wie unter Alsamixer beschrieben aktiviert werden.
Alternativ kann mit gst-launch aus den gstreamer-tools der Ton der TV-Karte eingeschaltet werden.

  • gstreamer-tools (main)

Wiki/Vorlagen/Installbutton/button.png

Dann ein Startskript z.B. tvtime.sh für tvtime erstellen, dieses ausführbar machen und den Starter im Menü auf dieses Skript zeigen lassen. Das Skript hat folgenden Inhalt:

#!/bin/bash
gst-launch alsasrc device=hw:2,0 ! audio/x-raw-int,rate 32000 ! volume volume=5 ! autoaudiosink & tvtime
killall gst-launch-0.10
exit

device=hw:2,0 entsprechend der Nummer der verwendeten TV-Karte anpassen. Die Nummer kann mit dem Befehl

cat /proc/asound/cards

in Erfahrung gebracht werden.

In Linux veröffentlicht | Kommentieren