Sound stumm schalten

05. April 2009

Will man den Sound über die Konsole stumm schalten, bietet sich amixer an:

amixer -c 0 sset Master mute

stellt (zumindest bei mir) die erste Soundkarte stumm.

Verknüpft mit einem Resume-Skript kann man auf einfache Art und Weise dafür sorgen, dass keine peinlichen Startgeräusche beim Aufwecken des Laptops entstehen:

#!/bin/sh
# Auto-mute on resume to avoid embarrasing situations…
# Script written by Matthäus Brandl <mbrandl@gmx.de>
# Published under the GPLv3 or newer

case $1 in
 hibernate|suspend)
  # Do nothing on suspend
  exit 0
  ;;
 resume)
  # Normally after »Suspend to RAM« there is no need to mute
  exit 0
  ;;
 thaw)
  # Now mute the sound on resume
  amixer -c 0 sset Master mute
  ;;
 *)  echo “Error! Call this script with either hibernate, suspend, thaw or resume” >&2
  exit 1
  ;;
esac

Ein Script ausführen bei suspend und resume

05. April 2009

Es sind die verschiedensten Szenarien denken, für die man ein Skript direkt vor dem »Suspend to Disk« oder »Suspend to RAM« respektive direkt nach dem jeweiligen Aufwachen ausführen will.

Zu diesem Zweck nutzt man am Besten (unter Hardy) die pm-utils. Mit root-Rechten muss man eine Datei im Verzeichnis /etc/pm/sleep.d/ anlegen. Es beginnt am Besten mit einer zweiziffrigen Zahl, welche die Ausführreihenfolge festlegt, und hat die Dateiendung »sh«. Nicht vergessen, es ausführbar zu machen. Das Skript wird dann mit root-Rechten und dem folgenden Parameter ausgeführt:

  • hibernate: Starte »Suspend to Disk«
  • thaw: Erwache von »Suspend to Disk«
  • suspend: Starte »Suspend to RAM«
  • resume: Erwache von »Suspend to RAM«

Legt man also das Skript /etc/pm/sleep.d/99-test.sh mit dem folgenden Inhalt an:

#!/bin/sh
echo “$(date): Script called with $1″ >> /home/user/Desktop/sleep

erhält man auf seinem Dektop die Datei sleep mit zB folgendem Inhalt:

Sun Apr  5 19:31:11 CEST 2009: Script called with hibernate
Sun Apr  5 19:32:51 CEST 2009: Script called with thaw
Sun Apr  5 19:34:03 CEST 2009: Script called with suspend
Sun Apr  5 19:34:32 CEST 2009: Script called with resume

Ein universelles Gerüst für diese Dateien findet man im ArchWiki (en):

#!/bin/bash
case $1 in
    hibernate)
        echo "Hey guy, we are going to suspend to disk!"
        ;;
    suspend)
        echo "Oh, this time we're doing a suspend to RAM. Cool!"
        ;;
    thaw)
        echo "oh, suspend to disk is over, we are resuming..."
        ;;
    resume)
        echo "hey, the suspend to RAM seems to be over..."
        ;;
    *)  echo "somebody is calling me totally wrong."
        ;;
esac

Viel Spaß

Nokia E51 mit Network Manager 0.7

19. Januar 2009

Hinweis: Dieses Problem wurde mittlerweile mit einem Update behoben.

Eigentlich konnte ich, seit mit Intrepid der Network Manager in der Version 0.7.0 ausgeliefert wird, sehr einfach mit dem Handy ins Internet gehen. Per Kabel anschließen, der Network Manager erkennt es, fragt nach meinem Anbieter und bietet mir ab dann unter dem Oberpunkt Mobiles Breitband einen neuen Punkt (z.B.Eplus) den ich anklicken muss, schon bin ich verbunden.

Doch gestern viel mir auf, dass der Network Manager mein Handy nicht mehr erkennt. Mit ein bisschen Glück bin ich aber sehr schnell auf die Lösung des Problems gestoßen. Es liegt nicht am NM, sondern an der HAL. Das Handy muss in eine Regeldatei eingetragen werden, ab dem nächsten Verbinden kann der NM es wieder regulär verwenden:

Die Datei  /usr/share/hal/fdi/information/10freedesktop/10-modem.fdi muss mit root-Rechten bearbeitet werden und folgende Änderung vorgenommen werden:

Den Bereich der Nokia Handys suchen:

<!– Nokia –>

Und dem Kommentar und dem Feld der product_id die ID des E51 hinzufügen:

<!– Nokia –>
<match key=”@info.parent:usb.vendor_id” int=”0×421″>
<!– 6300/3109c/6120 Classic/E51/E71/E70/N95-3/E90/N70/E61/N95-2/N96/N82/N82 (alternate chip)/E66 –>
<match key=”@info.parent:usb.product_id” int_outof=”0x4f9;0×64;0x2f;0xab;0×418;0x4f0;0x4ce;0x43a;0x44d;0×070;0x3a;0×71;0×72;0xb0;0×42″>

Theoretisch ist das auch für andere Handymodelle vorstellbar, die Werte für venor_id und product_id erhält man mit lsusb:

$ lsusb | grep Nokia

Bus 001 Device 002: ID 0421:0042 Nokia Mobile Phones

Das Format ist dabei ID <vendor_id>:<product_id> und muss mit einem vorangstellten 0x eingetragen werden. (führende Nullen sind nicht notwendig)

Nachtrag: (vom 19.01.2009)

Der zugehörige Bug in Launchpad ist #261416, ein Patch, der das hier Vorgeschlagene erledigt, findet sich hier.

xmodmap

19. Januar 2009

Vermutlich wurden die Probleme, die mir xmodmap seit Intrepid gemacht hat, inzwischen korrigiert. Jedenfalls habe ich festegestellt, dass es wieder funktioniert, wie hier beschrieben…

Tastatur-Konfiguration 2

08. Dezember 2008

In einem vergangenen Post erwähnte ich eine Reihe von Problemchen, die ich mit meiner Tastatur habe, sowohl bei meinem Desktop-Rechner als auch bei meinem ThinkPad. Mehr durch Zufall bin ich auf den Bug #287428 gestoßen, in dem das von mir angesprochene Problem bemängelt wird, dass die Menü-Taste in xev den Wert XF86WakeUp statt Menu zurückgibt. So kann ich sie dann auch nicht als Compose nutzen.

In der Bug-Beschreibung wird dafür auch gleich die Lösung geliefert. Einfach mit root-Rechten die Datei /usr/share/X11/xkb/symbols/inet öffnen und dort nach “key <I151>” suchen. Jetzt noch XF86WakeUp durch den gewünschten Keycode ersetzten und nach einem Neustart des X-Servers (z.B. <STRG>-<ALT>-X) arbeitet die Taste wie gewünscht. Zwei Beispiele: wer sie tatsächlich als Menü-Taste nutzen will trägt “Menu” ein, wer sie als Compose nutzen möchte trägt “Multi_key” ein.

Auch habe ich endlich einen Weg gefunden, die seit Hardy nicht mehr nutzbare ThinkVantage-Taste wieder mit einer Funktion zu belegen. In die Datei /usr/share/hotkey-setup/ibm.hk muss die Zeile “setkeycodes e017 148″ hinzugefügt werden, dann steht nach einem Neustart des Laptops die Taste als XF86Launch1 zur Verfügung. Unter System > Einstellungen > Tastenkombinationen kann ihr dann eine Funktion gegeben werden.

Videos nach Ogg Theora konvertieren

07. Dezember 2008

Meine Canon Ixus macht eigentlich recht schöne Videos, diese allerdings im proprietären avi-Format. Wer auf seinem Rechner aber aus gutem Grund möglichst nur offene Formate nutzen möchte, für den ist Ogg Theora eine Möglichkeit.

Zum Konvertieren bietet sich das Programm ffmpeg2theora an, (universe) das alles, was FFmpeg verarbeiten kann, in ein Theora-Video umwandelt.

Die Benutzung ist denkbar einfach:

$ ffmpeg2theora video.avi

wandelt die Datei video.avi in das Theora-Format und speichert das Ergebnis im gleichen Verzeichnis unter video.ogv. Zu den wichtigsten Parametern gehört:

  • -o <Dateiname> Speichert das Ergebnis unter dem angegebenen Dateinamen
  • -v <0 – 10> Regelt die Video-Kompression, je höher die Zahl desto weniger Kompression. (Standard ist 4)
  • -a <-2 – 10> Regelt die Audio-Kompression, wie oben (Standard ist 1)
  • -f <Format> Gibt das Format der Eingabe-Datei an.

Einen guten Überblick über die doch sehr vielen Möglichkeiten bekommt man in den man-Pages.

Theora-Videos können z.B. mit Cinelerra geschnitten werden, bei YouTube können sie ohne Probleme hochgeladen werden. (Auflösung und Qualität anpassen, ffmpeg2theora kann auch von ogv zu ovg konvertieren) Unter MS Windows müssen die notwenigen DirectShow-Filter installiert werden, damit ogg genutzt werden kann.

Und falls man das Video eines Tages doch wieder als avi braucht, kann man es einfach rückwandeln:

$ mencoder video.ogv -ovc lavc -oac mp3lame -o video.avi

Großbuchstaben in Kleinbuchstaben umwandeln

04. Dezember 2008

Die md5-Prüfsumme des Vista-CD-Images war leider schlecht formatiert in dem Batch-Skript eingebunden:

echo MD5 should be: 48-A6-A0-B3-44-02-07-5C-7E-98-AF-DB-F6-87-81-D2

Ist zwar schön, dass MS die Prüfsumme liefert, obwohl XP meines Wissens keine geeigneten Bordmittel mitbringt, aber so kann ja nichtmal ein Linux-Nutzer etwas damit anfangen, md5sum erkennt die Summe nicht. Da ist bequemes umformatieren mit der Shell angesagt.

Die Bindestriche bekommt man ja schnell weg:

$ cat VISTA.ISO.CMD | grep MD5 | awk ‘{print $5}’ | sed s/-//g
48A6A0B34402075C7E98AFDBF68781D2

Doch wie bekommt man die Ziffern A-F des Hexadezimalen klein? Die erste, etwas umständliche Methode wäre:

sed s/A/a/g | sed s/B/b/g | sed s/C/c/g | sed s/D/d/g | sed s/E/e/g | sed s/F/f/g

Klar, dass das wesentlich einfacher und schneller geht: tr A-Z a-z

$ cat VISTA.ISO.CMD | grep MD5 | awk ‘{print $5}’ | sed s/-//g | tr A-Z a-z
48a6a0b34402075c7e98afdbf68781d2

Ich habe die Dateienamen der besseren Lesbarkeit zuliebe abgekürzt.

copy /B unter Linux

04. Dezember 2008

An meiner Uni bietet Microsoft einen (sogenannten) Maniac-Server an, von dem man sich (als Student einiger Fakultäten) legal diverse der Entwicklung dienenden Programme herunterladen kann. Dazu gehören die meisten MS-Betriebssysteme aber nicht die Office-Suiten.

Nun habe ich mir heute das iso von Windows Vista SP1 heruntergeladen, die iso kommt aber auf zwei Dateien aufgeteilt daher und wird von einem Batch-Script begleitet, dass die beiden zusammenfügt. Das läuft auf Linux natürlich nicht, so dass ich mal hineingesehen habe, worum es geht.

Dort werden die beiden Dateien mit folgendem Befehl zu einer zusammengefügt:

> copy /B vista.PART1.iso + vista.PART2.iso vista.iso

Dass die Dateien eigentlich aus Großbuchstaben bestehen muss ich ja nicht extra erwähnen, oder? ;-)

Ohne eine Idee was copy /B eigentlich macht, hab ich mal das Internet durchforstet, um das gleiche mit Linux-Bordmitteln zu erledigen. Das ist einfacher als gedacht, den /B schaltet den Binärmodus ein, das + sorgt dafür, dass die beiden Dateien aneinander gehängt werden und unter dem dritten Dateinamen ausgegeben werden.

Konkatenation erledigt in Linux der Befehl cat. Dann lautet der Befehl ganz einfach:

$  cat VISTA.PART* > VistaDeSP1.iso

Schon erhält man sein brennfertiges iso-CD-Image.

Ich habe die Dateienamen der besseren Lesbarkeit zuliebe abgekürzt.

Images brennen

04. Dezember 2008

Nichts leichter als unter GNOME iso-CD-Images zu brennen oder zu mounten, ersteres funktioniert z.B. mit Brasero, für letzteres findet sich Anleitungen im ubuntuusers-Wiki.

Doch da viele Menschen in einer proprietären Welt leben, gibt es auch ne Menge anderer Image-Formate, die Brasero nicht direkt verarbeiten kann. Doch auch hier ist man mit GNU/Linux nicht allein, für die meisten Formate gibt es eine CLI-Anwendung. (siehe diese Liste)

In meinem Fall musste ich ein bin/cue-Image umwandeln, also einfach schnell bchunk über die Paketverwaltung installieren, das Programm aufrufen, Fertig!

$ sudo apt-get install bchunk

$ bchunk image.bin image.cue image.iso

Brasero will nicht brennen

24. November 2008

Heute wollte ich das erste Mal seit Intrepid eine CD-R mit Brasero brennen. Doch die Version 0.8.2 verweigerte mir den Dienst mit der Meldung, dass auf meinem Rohling kein Platz mehr sei.

Nach der Lektüre einiger Bug-Reports fand ich im GNOME Bug Tracker die Lösung: die aktuellste Version 0.8.3 soll wieder funktionieren.

Um diese zu installieren, muss man sich erst einmal die Sources als tarball herunterladen. Danach werden die Abhängigkeiten erfüllt:

$ sudo apt-get install build-essential && sudo apt-get build-dep brasero

Schließlich noch den tarball entpacken:

$ tar xvjf brasero-0.8.3.tar.bz2

bzw. falls du den gzip-gepackten tarball heruntergeladen hast:

$ tar xvzf brasero-0.8.3.tar.gz

Abschließend den üblichen Dreischritt:

$ cd brasero-0.8.3

$ ./configure

$ sudo make

$sudo make install

Fertig! Alles geht wieder wie gehabt…

(checkinstall hat bei mir einen Fehler gegeben)