Linux und Nokia

gnokii

von Andreas Bohne


Der Artikel beschreibt, mit welcher Software man ein Nokia Handy unter Linux anspricht und welche zusätzlich Hardware nötig ist.

Wer eines der folgenden  Nokia Handys: 3810, 3110, 8110, 5110, 6110 besitzt, kann in dem folgenden Artikel erfahren, wie man das Handy an einen Rechner anschließt und welche Sofware benötigt wird, um die Funktionen des Handys zu verwalten.

Ende 1998 wurde das Projekt Gnokki (für Gnu Nokia) ins Leben gerufen. Das Projekt soll ein Pendant zu der Nokia Netsuite darstellen, die bekanntlich nur für Windows verfügbar ist und nicht gerade zu der günstigsten Software gehört. Die Entwicklung von gnokii ist noch voll im Gange, und bis all die Funktionen, welche Netsuite bietet, realisiert sind, wird es noch eine Weile dauern. Dennoch sind inzwischen die wichtigsten Funktionen, wie die Telephonbuchverwaltung und das Senden und Empfangen von SMS (Short Message Mails) umgesetzt.

Das Projekt wird koordiniert von drei Entwicklen, welche selber tatkräftig programmieren, aber auch Patches von aktiven Benutzern in das Projekt einbinden.
Diese federführenden Entwickler sind Staffan Ulfberg aus Norwegen, Hugh Blemings aus Australien und Pavel Janík aus der Tschechischen Republik. Staffan ist Dozent an der Universität in Stockholm im Bereich Numerical Analysis and Computing Science (NADA). Er verwaltet auch die Web-Seiten des Projektes. Hugh arbeitet in Australien bei der Firma Linuxcare und betreibt das gnokii-Projekt nebenher. Pavel studiert Mathematik und Ökonomie an der Masaryk-Universität in Brno und arbeitet nebenher noch als Entwickler im Bereich Systeme und Sicherheit. Allen dreien gemeinsam ist die Ansicht, daß es auch unter Linux eine Software (ähnlich der Netsuite von Nokia) zum Ansprechen des Handys geben sollte und wenn es sie nicht gibt, dann sucht man sich Gleichgesinnte und entwickelt sie halt.
 
 

Abb. 1: Die Entwickler
Staffan Ulfberg Hugh Blemings Pavel Janík ml.

Aber bevor wir in die Tiefen der Software gehen, bedarf es noch einer zusätzlichen Hardware - einem speziellen Kabel, welches den Rechner mit dem Handy verbindet. Bezitzer eines IR-fähigen Handys und eines Notebook mit IR-Schnittstelle benötigen dieses nicht.
Abbildung 2 zeigt die Anschlußleiste des Nokia-Handys. Die für die Kommunikation wichtigen Kontakte sind Pin 7 = Rx (Daten empfangen), Pin 8 = Tx (Daten senden) und Pin 9 (Logische Masse). Die andere Seite des Kabels wird mit der seriellen Schnittstelle des Rechners (Laptops) verbunden.
 
 
 
 

Abb. 2: Anschlußsleiste am Handy

 

Kabel
Der Vorteil, den das Nokia-Handy bietet, ist, daß es keine Modemkarte benötigt, sondern von Haus aus über eine serielle Schnittstelle verfügt. Es muß lediglich eine Pegelwandlung durchgeführt werden, welche die +-12V Pegelspannung der RS232-Schnittstelle auf 5V ändert. Dieses wird durch einen MAX233-Baustein realisiert. Die Abbildung 3 zeigt, wie man sich selber ein solches Kabel herstellen kann. Das teuerste Element ist dabei der Spezialstecker, um an das Handy anzudocken. Diesen muß man sich von einer Freisprecheinrichtung "klauen".
 

Abb. 3: Schaltplan für die Pegelwandlung

 

Von einem Selbstbau ist jedoch abzuraten, da es inzwischen diese Kabel kaufen kann. Nokia hat sich lange Zeit dagegen gewehrt, ein Kabel einzeln abzugeben. Man bekam das Kabel nur, wenn man auch die Netsuite für Windows gekauft hat. Wer aus irgendwelchen Gründen mal ein Kabel nachhaben wollte, stieß auf taube Ohren und mußte das ganze Paket (Software + Kabel) neu kaufen.
Bei Wolfgang Busch aus Hamburg war der Grund ein kleiner junger Hund, der seine neuen Zähne an dem Kabel ausprobiert hat. Aber als Student der Elektrotechnik wußte er sich zu helfen und hat sich kurzerhand ein solches Kabel nachgebaut. Im Netz findet man inzwischen auch noch andere Anbieter solcher Nachbauten. Mein Kabel stammt aus Hamburger Quelle und die Qualität ist hervorragend. Zwar muß man das Kabel im Voraus bezahlen, da einige Leute meinten, sie könnten sich mal schnell eines bestellen und haben dann die Annahme verweigert, so daß Wolfgang auf den Portokosten sitzen geblieben ist. Da der Preis mit 80 DM (incl. Versandkosten) wirklich knapp kalkuliert ist, hatte er wenig Verständnis für solcherlei Kapriolen. Die Bezugadresse ist unten angegeben.
 
 

Abb. 4: Das Datenkabel 

Software
Die Software Gnokii kann über die Adresse http://gnokii.org heruntergeladen werden.
Der Quellcode unterteilt sich in 3 logische Einheiten:  Erstens das Programm gnokii, ein shell-orientiertes Programm, mit dem man das Handy ansprechen kann. Zweitens gnokiid, welches als Dämon läuft und gedacht ist, einkommende SMS-Mails automatisch abzufragen (polling). Ferner soll das Programm über das Device /dev/gnokii einen Datacall und Faxcall führen könne. Das Device stellt im Prinzip ein virtuelles Hayes-At kompatibles Modem dar. Drittens gibt es das xgnokii-Programm, ein graphisches, gt-basiertes Frontend zu gnokii. Die Tendenz geht in dem Projekt dahin, die Funktionaliät in Zukunft komplett im gnokiid zu verstauen und das gnokii- und xgnokii-Programm nur noch als Eingabemodul zu verwenden, welches dann die Daten via Port an den gnokiid-Dämon übermittelt, wonach dieser dann die Aktionen ausführt.

Die Installation gliedert sich in mehrere Schritte.
1) Entpacken mit tar xvfz gnokii-0.3.1.tar.gz
2) Makefile editieren und das Handy-Modell eintragen
2) make
3) Als root unter /etc in der Datei group die neue Gruppe gnokki anlegen:
4) Als root den Befehl <chown -R root:gnokii *> in dem Verzeichnis ausführen, in dem auch die Sourcen von gnokii übersetzt wurden.
5) Als root den Dateien gnokii, gnokkid und xgnokii mit chmod 6755 Superuser-Rechte verleihen. In der Anleitung wird zwar empfohlen, 6754 zu setzen, aber für die ersten Schritte ist die andere Alternative eher zu empfehlen.
6) Mit <mgnokiidev 1> einen symbolichen Link vom pseudo ttyp1 zu /dev/gnokii erzeugen.
7) Wenn man die Binaries noch installiert haben möchte: make install
8) Die Datei sample.gnokiirc nach $HOME/.gnokiirc kopieren und editieren (Model eintragen).
 

gnokii
Die nachfolgende Tabelle soll einen Eindruck vermitteln, welche Funktionen von gnokii zur Verfügung gestellt werden. Es kann schon einmal sein, daß es bei der einen oder anderen Funktion noch Schwierigkeiten gibt, aber es ist nur eine Frage der Zeit, bis dies mit der nächsten Version behoben ist.
Das zeichenbasierte gnokii-Programm bietet dem Benutzer folgende Funktionen an:
 
--monitor  Handy-Status auf stderr ausgeben 
--version  Zeigt Version und Copyright an 
--enterpin  Übermittelt die eingegebene PIN an das Handy 
--getmemory  Liest den angegebenen Speicherbereich aus: Gültige
Speicherbereiche sind: ME, SM, FD, ON, EN, DC, RC, MC, LD
ME  Interner Speicher des Handys (Mobile Equipment) 
SM  Speicher der SIM-Karte  (SiM card)
FD  Fest eingetragene Rufnummern  (Fixed Dial Numbers)
ON  Eigene Nummer  (Own Numbers)
EN  Notfall-Nummern  (Emergency Numbers)
DC  Angerufene Nummern  (Dialled Numbers)
RC  Empfangene Nummern  (Received Numbers)
MC  Fehlende Nummern  (Missed Numbers)
LD  Zuletzt gewählte Nummer  (Last Dialed)
--writephonebook  Liest die Daten via stdin und schreibt sie ins interne Telephonbuch. Die Daten müssen in dem Format sein, das --getmemory beim Auslesen des Telephonbuches benutzt.
--getsms  Liest eine oder mehrere SMS-Mail(s) aus dem Speicher und gibt sie nach stdout aus.
--deletesms  Löscht eine oder mehrere SMS-Mail(s).
--sendsms  Sendet eine SMS-Mail
--getsmsc  Zeigt die SMSC (message_center_number) an
--setdatetime  Setzt Zeit und Datum des Handys.
--getdatetime  Liest die aktuelle Zeit und das aktuelle Datum aus.
--setalarm  Stellt den Wecker .
--getalarm  Zeigt die eingestellte Weckzeit an.
--dialvoice  Bereitet ein 'voice call' vor. (Noch nicht realisiert)
--dialdata  Bereitet ein 'data call' vor. (Noch nicht realisiert)
--sendoplogo  Senden eines Operator-Logos.
--sendclicon  Senden eines CL-Icons.
--getspeeddial  Liest die Wählgeschwindigkeit
--setspeeddial  Setzt die Wählgeschwindigkeit 
--sendoplogoviasms Sendet ein Logo als Operator-Logo
--getcalendarnote  Liest einen Kalendereintrag aus.
--writecalendarnote  Schreibt einen Kalendereintrag.
--deletecalendarnote  Löscht einen Kalendereintrag 
--getdisplaystatus  Zeigt das Bild vom Display an
--netmonitor  Setzt und fragt den Netzmonitor-Modus ab. 
--identify  Zeigt IMEI, Model und Revision an
--senddtmf  Überträgt eine DTMF-Sequenz
--reset  Telephon-zurücksetzen 
--setlogo logofile  Logo festlegen
--setlogo text  Begrüßungstext festlegen
--getlogo logofile  Logo auslesen. 

 

Beispiel
Wie sendet man nun konkret auf Kommandozeilenbasis eine SMS-Mail  an jemanden?
helios> echo "Dieses ist irgendeine SMS-Mail" | gnokii --sendsms <Telephonnummer>

Und wenn man die SMS-Mail, die im zweiten Slot steht, aus dem Handy auf den Rechner übertragen möchte, so geschieht das Auslesen mit:
helios> gnokii --getsms ME 2 2

xgnokii
Aber die eigentliche Intention des Projektes war, ein graphisches Frontend für die Handy-Funktionen bereitzustellen. Dieses ist mit dem Programm xgnokii realisiert. Die Graphik basiert auf Funktionen aus dem freien gt-Graphik-Paket. Dabei ist es ratsam, die aktuelle Version 1.2.6 zu verwenden, um die Quellen fehlerfrei zu compilieren. Bei früheren Versionen treten Fehler auf, die vermutlich darauf zurückzuführen sind, daß bestimmte Funktionen noch nicht realisiert waren, deren Code deswegen vergeblich gesucht wird.

Abb. 5: Xgnokii - Control Center

Nach dem Start von xgnokii landet man in einer Art Übersicht, von der aus man auf die einzelnen Unterpunkte verzweigen kann.
Diese bisher realisierten Unterpunkte sind Telephonbuch (Contacts), Lesen und Schreiben von SMS-Mails sowie Optionen für das Einstellen des Handys. Auf der linken Seite bekommt man den Batteriestatus und die Feldstärke angezeigt.
 
 

Abb. 6: Telephonbuchverwaltung

Verzweigt man in die Rubrik Telephonbuch, so kann man als erstes das Telephonbuch aus dem Handy auslesen. Dabei können die Telephonnummern an zwei Stellen im Handy gespeichert werden. Die eine Möglichkeit ist die Speicherung in der SIM-Karte des Handys, die andere Möglichkeit ist das Ablegen der Nummer im Speicher des Handys. Es werden beide Speicherbereiche ausgelesen und durch ein Flag in der Liste gekennzeichnet. In der Abbildung X wurden nur Nummern in der SIM-Karte gefunden. Die Namen und Nummern kann man mit den Standardfunktionen bearbeiten. Neben Name und Nummer kann noch die Teilnehmer-Gruppenzuordnung festgelegt werden.
 
 

Abb. 7: SMS

Der zweite Unterpunkt der Übersicht ist der SMS-Service-Bereich, der das Versenden und Enpfangen von SMS-Mails realisiert. Verzweigt man in diesen Unterpunkt, kann man sich anschauen, welche SMS-Mails auf dem Handy vorhanden sind. Dabei werden die SMS-Mails in der Inbox und der Outbox berücksichtigt. Es stehen nun vier Funktionen zur Verfügung, um die SMS-Mails zu bearbeiten. Neben dem Weiterleiten, dem Antworten und dem Löschen kann man auch neue SMS-Mails eingeben und versenden. Das Angenehme daran ist, daß man sich nicht mehr die Finger wund tippen muß. Die Adresse kann wie beim Handy-Direktbetrieb aus dem Telephonbuch extrahiert werden.

Abb. 8: Optinen

In dem Bereich Optionen kann der Benutzer Einstellungen an den Parametern für xgnokii vornehmen. Dabei werden die Rubriken Verbindung zum Handy, Alarm, SMS, Benutzer, Gruppe und Hilfefunktion zur Verfügung gestellt.
 
 

Abb. 9: Konsole

Nach dem Starten von xgnokii wird auf der Konsole einiges an Zusatzfunktionen ausgegeben. Wahrscheinlich können nur Experten mit den ausgegebenen Daten wirklich was anfangen.

Zusammenfassend  kann man dieses Projekt uneingeschränkt loben, denn es schließt durch seine hervorragende Umsetzung wieder eine Lücke in dem Fundus der Linuxsoftware. Das Detailwissen, das bisher in gnokii eingeflossen ist, ist gewaltig - auch wenn solche Funktionen wie Datacall und Logoverwaltung noch nicht realisiert bzw. eingebaut worden sind. Dieses liegt zum einen am chronischen Zeitmangel der Entwickler und zum anderen an der Politik des Stillschweigens von Nokia, was alle Beteidigten sehr beklagen und wo sich die Entwickler eine bessere Zusammenarbeit wüschen würden.

Ein anderes Softwarepaket, welches an dieser Stelle noch erwähnt werden soll, ist sms_client, welches sich auf die Fahnen geschrieben hat, einen SMS-Client für Unix zu entwickeln.

Ganz zum Schluß möchte ich noch einen Dank von Hugh an die deutschen gnokii-Benutzer weiterleiten. Er ist sehr erfreut über die rege Teilname an dem gnokii-Projekt. Man kann sich unverbindlich in einer Datenbank im Netz eintragen und somit sein Interesse an dem Projekt offiziell kundtun. Hierbei stellen die Benutzer aus Deutschland die größte Fraktion.
 
 

Adressen
gnokii Homepage:  http://gnokii.org/
Verbindungskabel http://www.datacable.de/
SMS-Client: http://www.styx.demon.co.uk/ 
Gute Handy Seiten: http://gsm-cables.com/topsites/topsites.html
gnokii Mailingliste: gnokii-request@net.lut.ac.uk 

Der Autor
Andreas Bohne ist Diplominformatiker mit Schwerpunkt Medizin und Technische Informatik. Seit September 99 ist sein Notebook überall zu erreichen :-)