Motorola V220 und Linux - adalbert.familie-prokop.de

Motorola V220 und Linux

by Adalbert Prokop (adalbert.prokop@gmx.de) on 2008

Motorola V220 - geschlossen

Weihnachten steht ja vor der Tür... Und es gibt vorgezogene Weihnachtsgeschenke. Das Handy ist zwar gebraucht, aber es wurde sehr gut behandelt. Ich bekommt nur weitervererbte Handies.

Das V220 hat ein Farbdisplay von 128×128 Pixel und ein kleines schwarz/weiß Aussendisplay von 96×32 Pixel.

Wenn man ein Hintergrundbild für das Handy bastelt, sollte man bedenken, dass sich unten im Display eine 20 Pixel große Statusleiste befindet. Hier werden die Soft-Key-Funktionen und das Menü-Symbol eingeblendet. Oben im Display werden ebenfalls verschiedene Symbole eingeblendet. Die Höhe der oberen Statuszeile ist 11 Pixel, so dass im Endeffekt für das eigentliche Bild nur 128×97 Pixel übrig bleiben. (20+11+97 = 128)

Motorola V220 - geöffnet

Mein altes gewohntes Kommandozeilen-Tool scmxx konnte ich nicht mehr benutzen, da es mit dem Datenformat des V220 nicht zurecht kam und abstürzte. Also begab ich mich auf die Suche nach anderen Tools.

Für das Lesen/Versenden der SMS und Bearbeitung des Telefonbuchs eignet sich KMobileTools ganz gut. Ich benutze die Beta-Version 5.0. Es hat leider einen Bug: Der Name des Eintrags darf keine Kommatas enthalten, sonst wird dieser Eintrag, so wie alle nachfolgenden Einträge, ignoriert. Ich weiß nicht, ob der Bug im CVS-Snapshot immernoch besteht, da ich schon seit sehr langer Zeit keinen Blick darauf geworfen habe. (Stand: 01.04.07)

Für den Datentransfer, also das Hoch- und Herunterladen von Bildern und Klingeltönen kann man moto4lin benutzen. Ich benutze die SVN-Version, da die Version 0.3 bei mir aus irgendeinem Grund nicht funktionierte. Achtung! Diese Software ist in ungeübten Händen gefährlich! Man kann ruck-zuck das Handy unbrauchbar machen, also drei mal nachdenken, bevor man etwas anklickt. Besonders beim Löschen von System-Dateien, um mehr freien Speicher herauszukitzeln, sollte man vorher zumindest eine Sicherung der Dateien anlegen, die man löscht.

Man kann auch interne Speicherparameter des Handies damit manipulieren, die sogenannten Seems. Eine Einleitung in die Bedeutung von Seems und mögliche Manipulationen kann man unter GSM-Free bekommen.

Wenn man das Handy in den Rechner einstöpselt, wird normalerweise eine Gerätedatei für das Senden und Empfangen der AT-Befehle erstellt. Sie heißt bei mir /dev/ttyACM0. Wenn man als User darauf zugreifen will, braucht man Schreib- und Leserechte für diese Datei. Das kann man z.B. erreichen, indem man eine Datei /etc/udev/rules.d/99-motorola.rules erstellt und folgendes einträgt

KERNEL=="ttyACM*", GROUP="users", MODE="0660"

Das ist für die SMS- und Telefonbuchverarbeitung ausreichend. Für moto4lin reicht es aber nicht. Dieses Programm greift auf eine weitere Datei zu, die unter /dev/bus/usb liegt. Das Problem dabei ist, dass ich zu blöd bin eine Passende udev-Regel dafür zu erstellen, zumal der Name der Datei jedes mal variert. Ich habe mir aber damit abgeholfen, die Dateirechte „manuell“ zu ändern. Das geht, indem man zu der früher erwähnten 99-motorola.rules vier weitere Zeilen hinzufügt.

BUS=="usb", SYSFS{idProduct}=="4902", SYSFS{idVendor}=="22b8", RUN += "/bin/chmod 660 $env{DEVNAME}"

BUS=="usb", SYSFS{idProduct}=="4902", SYSFS{idVendor}=="22b8", RUN += "/bin/chgrp users $env{DEVNAME}"
BUS=="usb", SYSFS{idProduct}=="4901", SYSFS{idVendor}=="22b8", RUN += "/bin/chmod 660 $env{DEVNAME}"

BUS=="usb", SYSFS{idProduct}=="4901", SYSFS{idVendor}=="22b8", RUN += "/bin/chgrp users $env{DEVNAME}"

Diese Zeilen bewirken, dass jeder User in der Gruppe users Schreib- und Leserechte bekommt. Der Witz bei moto4lin liegt darin, dass das Handy in den sogenannten P2K Modus wechsel. Dabei verschwindet die Gerätedatei die mit dem USB-Gerät 22b8:4902 verbunden war und es taucht eine neue auf, die mit 22b8:4901 verbunden ist. Je nach dem, ob moto4lin oder udev schneller ist, kann es passieren, dass moto4lin Fehlermeldungen ausgibt, dass es nicht mit dem Handy verbinden kann. In solchem Fall startet man am einfachsten moto4lin neu, dann klappt die Verbindung, da die neue Gerätedatei bestehen bleibt.

Klingeltöne für das V220

Das Handy kann MP3- und WAV-Dateien abspielen. Aus Plaztgründen sollte man MP3-Dateien bevorzugen. Unter Linux kann man Klingeltöne am einfachsten mit der Kombination aus sox und lame erzeugt. Mit sox kann man WAV-Dateien manipulieren und mit lame kann man sie als MP3 kodieren.

Die meisten Anleitungen zum erstellen von Klingeltönen geben folgende Tipps

  • Die Länge der Datei sollte ca. 20 Sekunden betragen. Das muss jeder selber abschätzen, aber die meisten Netzbetreiber leiten nach 20 Sekunden den Anruf auf die Mailbox um, das heißt mehr bekommt ihr sowieso nicht zu hören.
  • Der kleine Lautsprecher des Handys kann keine tolle Qualität leisten. Das heißt, es ist absolut ausreichend, wenn man die Datei in 22.050 Hz, mono und 48 kbps kodiert. Bei der Wiedergabe hört man keinen Unterschied zu besserer Qualität.
  • Die MP3-Dateien sollten mit konstanter Bitrate kodiert werden. (Konstant ist das Gegeteil von variabel).
  • Man sollte einen Hochpassfilter anwenden. Wie der Name schon sugeriert, werden bei einen Hochpass alle tiefen Frequenzen ausgefiltert. Warum? Der kleine Lautsprecher im Handy ist für niedrige Frequenzen nicht geeignet. Zu laute tiefe Frequenzen können den Lautsprecher beschädigen. Die Grenzfrequenz sollte bei ca. 85-150Hz angesetzt werden.

Alles ganz einfach oder? Nein? Na gut, dann mal zwei Beispiele. Angenommen wir haben eine Datei musik.wav und wollen daraus einen Klingelton (oder sonstigen Ton) basteln.

Als WAV (nur für kurze Signale geeignet)

sox musik.wav -r 22050 -w ton.wav fade 0:0.5 0:20 0:0.5 highpass 150

Das Produziert die Datei ton.wav, mit einer Samplerate von 22.050Hz (-r 22050), 16 Bit (-w), die über eine halbe Sekunde „eingeblendet” wird, von 20 Sekunden Gesamtdauer ist und über eine halbe Sekunde ausgeblendet wird. Dabei wird ein Hochpassfilter angewendet, der alle Frequenzen unterhalb von 150Hz wegfiltert.

Als MP3 (für alles geeignet)

sox musik.wav ton.wav fade 0:0.5 0:20 0:0.5
lame -q 0 --cbr -b 48 --resample 22.05 --highpass 0.15 ton.wav ton.mp3

Zuerst schneiden wir mit sox nur ein 20 Sekundes langes Stück (wie oben) heraus. Das Filtern und umkodieren überlassen wir dieses mal lame. Dem lame-Kodierer sagen wir, dass wir beste mögliche Qualität haben wollen (-q 0), es soll mit konstanter Bitrate kodiert werden (--cbr), die Bitrate soll 48kbps betragen (-b 48), eine Samplerate von 22,05kHz = 22050Hz uns ausreicht (--resample 22.05) und ein Hochpass bei 0,15kHz = 150Hz angelegt werden soll (--highpass 0.15).

Weitere tolle Optionen von sox und lame kann man auf den zugehörigen Homepages nachlesen.

man sox
man lame

Hochladen der Klingeltöne

Wenn man die selbstgemachten Klingeltöne unter Linux hochlädt, sieht man sie anschließend im Multimedia/Sounds Menü auf dem Handy, aber man kann sie nicht als Klingeltöne auswählen. Das Handy zeigt die Töne zwar an, aktualisiert aber nicht die Datenbank der möglichen Klingeltöne. Diese ist in zwei Dateien auf dem Handy gespeichert: MyToneDB.db und TempToneDB.db. Leider ist mir kein Tool bekannt, dass diese Dateien aktualisieren würde - ausser natürlich die Original-Software von Motorola, die nur für Windows existiert. Eine rabiate Möglichkeit besteht darin diese Dateien zu löschen und anschließend das Handy zu rebooten. Nach einem Neustart werden beide Dateien neu angelegt, dieses mal mit allen vorhandenen Klingeltönen. Leider muss man jetzt alle Klingeltöne neu einstellen.

Java

Natürlich war das Gerät zunächst kastriert, sprich: Man durfte über das USB-Kabel keine Java-Applikationen auf das Handy laden. Ein Schelm, wer denkt, dass die Provider so den Kunden zu teuren Downloads zwingen wollen. Mit dem Seem-Editor kann man jedoch die Java-Funktionalität wieder einschalten.

Unter Linux leistet das Program linjal gute Dienste. Nachdem der Java-Upload auf dem Handy initiiert wurde, startet man linjal und gibt ihm als Parameter die *.jad-Datei an. Anschließend muss man noch den Upload auf dem Handy bestätigen. Auf diese Art und weise habe ich sehr lustige Spielchen hochladen können: