Nach meinem Update auf Android 4.0 (Ice Cream Sandwich) auf meinem Motorola Xoom ist mir aufgefallen, dass sich das Gerät nicht automatisch beim Einstecken mountet. Scheinbar hatte schon Honeycomb (Android 3) das gleiche Problem, allerdings muss ich gestehen dass ich vor dem Update noch nie Daten direkt auf das Tablet kopieren wollte. Auf meiner Suche nach einer Lösung bin ich auf diesen Blogeintrag auf OMG Ubuntu gestoßen: [How to] Connect your Android Ice Cream Sandwich Phone to Ubuntu for File Access
So warum funktioniert das automatische Mounten nach Gingerbread (Android 2.3) nicht mehr? Android verwendet bis einschließlich Gingerbread das USB mass storage protocol, dieses Protokoll erlaubt es aber nicht dass die Partition gleichzeitig auf dem Androidgerät und dem PC gemountet ist. Daraus resultiert also dass die Partition auf dem Androidgerät ausgehängt wird, wenn diese auf dem PC gemountet wird. Android verwendet seit Honeycomb keine getrennten Partitionen für Apps und Daten mehr, dass heißt Android kann die Partition nicht mehr aushängen und somit ist auch das USB mass storage protocol nicht mehr möglich. Um trotzdem Daten zwischen dem PC und dem Smartphone/Tablet austauschen zu können verwendet Android nun ein anderes Protokoll: Media Transfer Protocol (MTP).
Soweit zur Theorie, doch wie mountet man jetzt “das Smartphone” unter (Ubuntu)-Linux? Zuerst müssen wir die dafür nötigen Programme installieren:
|
1 |
sudo apt-get install mtp-tools mtpfs |
Dannach können wir die idVendor und die idProduct des Geräts ermitteln:
|
1 2 3 4 5 |
$ mtp-detect | grep idVendor
idVendor: 22b8
$ mtp-detect | grep idProduct
idProduct: 70a9 |
Mit der idVendor und der idProduct legen wir nun eine neue uDev-Regel an, ich persönlich bevorzuge den Editor vim, der folgende Befehl verwendet allerdings gedit:
|
1 |
gksu gedit /etc/udev/rules.d/51-android.rules |
Diese neue Datei füllen wir mit folgendem Inhalt:
|
1 2 |
# Motorola Xoom
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0666" |
Die Werte für idVendor und idProduct müssen natürlich durch die vorher ermittelten Werte ersetzt werden.
Jetzt können wir (bei abgestecktem Gerät) uDev neustarten, den mount-Ordnet anlegen, useren eigenen Benutzer der fuse Gruppe zuweisen und die fuse-Datei editieren:
|
1 2 3 4 5 |
$ sudo service udev restart
$ sudo mkdir /media/MotorolaXoom
$ sudo chmod a+rwx /media/MotorolaXoom
$ sudo adduser hdr fuse
$ gksu gedit /etc/fuse.conf |
In der /etc/fuse.conf ändern wir folgende Zeile:
|
1 |
#user_allow_other |
zu
|
1 |
user_allow_other |
Um das (U)Mounten etwas komfortabler zu gestalten erstellen wir 2 aliase:
|
1 2 |
$ echo "alias android-connect=\"mtpfs -o allow_other /media/MotorolaXoom\"" >> ~/.bashrc
$ echo "alias android-disconnect=\"fusermount -u /media/MotorolaXoom\"" >> ~/.bashrc |
Nach einem reboot sollte sich das Androidgerät mit android-connect mounten und mit android-disconnect wieder umounten lassen.
