Archiv für die Kategorie ‘Lösung’

APE tags entfernen

Sonntag, 07. Juni 2009

Mit der neuen Ubuntu-Version Jaunty Jackalope vom April 2009 wurde Amarok auf Version 2 (meiner Meinung nach) verschlimmbessert. Für mich ein Grund, auf den Rhythmbox – den Standardplayer unter Ubuntu GNOME – umzusteigen, auch wenn der noch viele Macken hat. (Was sich auch in einer Version < 1.0 niederschlägt)

Mich stört unter anderem das folgende Problem: Falls eine mp3-Datei auch einen APE tag besitzt, wird dieser bevorzugt angezeigt. Leider lässt sich der nicht über Rhythmbox oder EasyTAG bearbeiten geschweige denn entfernen. Im Internet findet man an mehreren Stellen Anleitungen, (leider auf Englisch) diese funktionieren bei mir aber nicht. Stattdessen nutze ich HexEdit (hexedit in universe) und schneide einfach (per Esc-T) den Tag ab. (natürlich lege ich vorher eine Sicherheitskopie an) Dieser wird eingeleitet mit “APETAGEX” und endet am Dateiende. (zu diesem kann man mit “>” springen. Danach macht auch Rhythmbox keine Mucken mehr.

Ein Script ausführen bei suspend und resume

Sonntag, 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

Montag, 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

Montag, 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…

Images brennen

Donnerstag, 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

Montag, 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)

Immer Ärger mit nvidia

Freitag, 21. November 2008

Leider hab ich seit langer Zeit mit dem proprietären beschleunigten Nvidia-Treiber. Mit jedem Upgrade wird eine neue Bastelei nötig, um X zum Laufen zu bringen.

Auch mit Intrepid bekam ich wieder Probleme, konkret sucht modprobe das nvidia-Kernelmodul an der falschen Stelle, und ich weiß nicht, wie ich ihm die richtige beibringen kann.

Mit einem locate nvidia.ko fand ich folgende Vorkommen:

/lib/modules/2.6.24-21-generic/kernel/drivers/video/nvidia/nvidia.ko
/lib/modules/2.6.27-7-generic/updates/dkms/nvidia.ko
/var/lib/dkms/nvidia/177.80/2.6.27-7-generic/i686/module/nvidia.ko
/var/lib/dkms/nvidia/177.80/build/.nvidia.ko.cmd
/var/lib/dkms/nvidia/177.80/build/nvidia.ko

Damit das Modul jetzt trotzdem geladen wird, bevor der XServer gestartet wird, habe ich meiner /etc/init.d/gdm (unter Kubuntu kdm) ein paar Zeilen eingefügt: (mit sudo-Rechten)

else
# Please remove when modprobe problem is solved…
if [ `lsmod | grep -c nvidia` -lt 1 ]; then
log_begin_msg “Module nvidia not loaded. Loading…”
insmod /lib/modules/`uname -r`/updates/dkms/nvidia.ko
log_end_msg $?
fi
log_begin_msg “Starting GNOME Display Manager…”

Die erste und letzte Zeile helfen dabei, die richtige Stelle im Skript zu finden. Das Skript überprüft ob das Modul nvidia bereits geladen ist, wenn nicht wird es mit insmod geladen, dem muss man den vollen Pfad zum Modul angeben.

[edit vom 04.12.2008]

Die ursprüngliche Zeile

insmod /lib/modules/2.6.27-7-generic/updates/dkms/nvidia.ko

funktioniert nach einem Kernelupdate natürlich nicht mehr, daher hab ich sie abgeändert.

ThinkFinger

Freitag, 07. November 2008

Eine praktische Funktion meines Thinkpads (und vieler anderer Modelle) ist der eingebaute Fingerabdruck-Leser, der einen des öfteren die Passworteingabe erspart.

Wie man diesen in Ubuntu aktiviert, findet man im ubuntuusers.de-Wiki, durch den Umstieg auf HAL in Intrepid hat sich aber leider ein kleiner Bug eingeschlichen, der es nötig macht, <Enter> nach dem Fingerabdruck-Scan zu drücken. Das ist nicht sehr dramatisch, aber nervig. Im Wiki findet man leider keine Hilfe, aber einen Verweis auf den zugehörigen Bug #256429. Dessen Kommentare helfen da schon wesentlich weiter, konkret kann man mit einem PPA eine alternative Version des ThinkFinger-Pakets installiert. (Der Fehler wird aber nur umgangen, nicht behoben)

Folgende Zeilen an die /etc/apt/sources.list anhängen und

sudo apt-get update

ausführen. Dann sollte automatisch das Update auf die aktuellere Version angeboten werden.

Wer wieder die Originalversionen zurück will, muss zuerst die beiden eingefügten Zeilen wieder aus der sources.list entfernen. Danach genügt ein

sudo apt-get update

sudo apt-get install –reinstall thinkfinger-tools libpam-thinkfinger

Achtung! vor reinstall sind zwei Minus, also “- -reinstall”

Mausrad die Zweite

Freitag, 07. November 2008

Mit dem Kernel 2.6.27-7-generic unter Intrepid hat sich anscheinend eine Regression eingeschlichen, die Mausrad-Emulation funktioniert nach dem Ruhemodus nicht mehr.

Abhilfe zu diesem Bug #282387 schafft der Vorschlag von Niklas Vanhainen:

  1. cd; mkdir evdev.new; cd evdev.new
  2. wget http://launchpadlibrarian.net/19254960/preinit.diff
  3. sudo apt-get build-dep xserver-xorg-input-evdev
  4. apt-get source xserver-xorg-input-evdev
  5. cd xserver-xorg-input-evdev-2.0.99+git20080912
  6. patch -p1 < ../preinit.diff
  7. ./autogen.sh –prefix=/usr
  8. make
  9. sudo make install
  10. X neu starten (z.B.: <Strg>-<Alt>-<Backspace>)

Erklärung des Vorgehens:

  1. ein Arbeitsvereichnis erstellen
  2. die Datei preinit.diff in diesem Verzeichnis speichern
  3. die Abhängigkeiten des fehlerhaften Pakets installieren
  4. den Quellcode des fehlerhaften Pakets herunterladen
  5. das Verzeichnis mit dem Quellcode betreten
  6. den Patch anwenden
  7. den gepatchten Quellcode kompilieren
  8. den gepatchten Quellcode kompilieren
  9. das gepatchte Paket installieren
  10. X neu starten, damit die Änderungen in Aktion treten

Viel Erfolg!

Mausrad-Emulation

Freitag, 31. Oktober 2008

Bis Hardy sorgten zwei Zeilen dafür, dass man den Trackpoint meines Thinkpads (und wohl einiger weiterer Laptops auch) als Mausrad nutzen kann, wenn man dabei die mittlere Maustaste hält. Unter Intrepid aber wird die xorg.conf ignoriert, (zumindest was Eingabegeräte anbelangt) und damit auch gleich diese wertvolle Funktion. (Ich merkte so erst, wie wichtig sie mir geworden war)

Aber es gibt eine einfache Lösung, einfach im Verzeichnis /etc/hal/fdi/policy/ die Datei 99-mouse-wheel.fdi mit folgendem Inhalt anlegen:

<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
 <device>
  <match key="info.product" string="TPPS/2 IBM TrackPoint">
   <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
   <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
   <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
   <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
  </match>
 </device>
</deviceinfo>

Nach einem Neustart von HAL und X sollte es wie gewünscht funktionieren. ($ sudo /etc/init.d/hal restart && sudo /etc/init.d/gdm restart)

Der Dateiname ist im Prinzip egal, die Dateien werden aber alphabetisch abgearbeitet, je später im Alphabet, desto geringer die Wahrscheinlichkeit, dass die Einstellungen von einer anderen Datei überschrieben werden. Und ein nichtssagender Name ist immer schlecht…

Mehr Informationen: