Gestatten, Computer, mein neues Motorola Milestone

veröffentlicht von Daniela

Es war Zeit mein altes Handy zu ersetzen, man konnte es zwar mit voller Wucht in die Ecke schmeissen und es hat überlebt, aber das war auch schon alles was es konnte. Ein hübsches Android sollte es werden. Aber natürlich nicht irgend eins, sondern das Motorola Milestone. Beim dritten Laden meines Vertragspartners hatte ich dann endlich Glück, das letzte Milestone konnte in meinen Besitz übergeben.

Was tut ein Informatiker mit so einem tollen Spielzeug? Natürlich herausfinden, was man damit so alles anstellen kann und wie man es programmiert. Schritt eins: Man muss das seinen Computer dazu bewegen, damit kommunizieren zu können.

Gesagt getan: SDK installiert. Aber was wäre man für ein Gentoo-Benutzer wenn man das so machen würden. Also Portage durchsucht und den entsprechenden Port dev-util/android-sdk-update-manager installiert. Das installiert aber genau wie das Paket von android.com nur den Installer. Nächster Schritt: Herausfinden, wo es denn nun gelandet ist. Wie erwartet werde unter /opt fündig. Dann habe ich as entsprechende Verzeichnis in den Pfad aufgenommen und das Verwaltungsprogramm/Installer (android) gestartet. Ich habe gleich alle verfügbaren Targets (Emulatoren für die verschiedenen Androidversionen) installiert. Das ganze habe ich dann 4 mal wiederholt um auch das aktuelle SDK zu haben. Pro Start kann man nur auf die jeweils nächst höhere Version umstellen.

Nächster Schritt: Mein Computer soll mit meinem Handy sprechen können. Also habe ich die Anleitung gelesen.

Am Android: Menü > Einstellungen > Anwendungen > Entwicklung > USB-Debugging aktivieren. Jetzt habe ich das erste Mal das Handy mit meinem PC verbunden. Ein Blick in dmesg und lsusb sagt mir, alles soweit in Ordnung.

Schritt zwei: udev-Regeln. Hier fängt es an: Ist ja toll man je nach Ubuntu-Version unterschiedliche Regeln verwenden muss. Das hilft mir nur für Gentoo nicht sonderlich weiter solange ihr nicht erwähnt, welche udev-Version Ubuntu benutzt. Eine Recherche später steht meine udev-Regel. Die passende Datei ist /etc/udev/rules.d/51-android.rules. Die Zahl am Anfang des Dateinamens muss dabei eindeutig sein, sie legt die Reihenfolge fest, in der die Regel ausgeführt werden. Es kommt darauf an, wie spät die Regel durchgeführt wird. Bei mir war 51 frei, also habe ich auch den empfohlenen Dateinamen benutzt.

Die für mich passende Regel ist: SUBSYSTEM=="usb|usb_device",SYSFS{idVendor}=="22b8",MODE="0666",GROUP="android",OWNER="username" Ergebnis meiner Recherche war, dass es so, das heisst mit SUBSYSTEm=="usb|usb_device" auch geht und ich gar nicht ausprobieren muss, wie es denn bei meinem System richtig ist. Diese Regel setzt die Rechte für alle Geräte von Motorola passend um, damit ich mit meinem Benutzer auf das Device zugreifen kann.

Die SYSFS{idVendor}=="xxxx" kann man entweder aus der Tabelle auf der android-Seite entnehmen, oder aber auch selber nachschlagen. Die ID steht im Ergebnis von lsusb: Bus 002 Device 002: ID 22b8:41db Motorola PCS. Ein Ausflug nach Sysfs brauchte mir noch die Information, dass für mich usb_device die richtige Einstellung gewesen wäre und ich usb überhaupt nicht bräuchte in der Regel. Das entsprechende Device ist /sys/class/usb_device/usbdev2.2. Ein Aufruf von udevadm info -a -p /sys/class/usb_device/usbdev2.2 liefert mir weitere Details.

Ein erneutes Einstecken des Handys führt dazu, dass die Regel greift und das Device dem entsprechenden Benutzer gehört. Achtung, die ID wird bei jedem neuen Anmelden hochgezählt. Sollen also jetzt die Rechte kontrolliert werden, hilft ein ls -lah /dev/usbdev2.3 weiter.

So, theoretisch sollte jetzt alles gehen, also adb als Benutzer gestartet. Pustekuchen, adb erkennt kein Device.

Einige Recherchen, ein Umstellen vom Gentoo-Packet auf das SDK direkt aus dem Netz, und ein ergebnisloser Besuch im android-IRC-Kanal später findet sich dann endlich die Lösung: Das Motorola Milestone kennt ein weiteres Protokoll um über USB zu kommunizieren, adb nicht. Also wieder am Handy eine Einstellung verändert: Die Bar ganz oben herunterziehen, USB-Verbindung, wahlweise "Keine" oder "Verwaltung der Speicherkarte" auswählen, auf keinen Fall "Windows Media" oder "Motorola...". "Verwaltung der Speicherkarte" erlaubt es, auf die Karte wie auf einen ganz gewöhnlichen USB-Massenspeicher zuzugreifen.

Jetzt endlich, also nach mehreren frustrierenden Stunden, kann mein PC mit dem Handy kommunizieren.