Lepszy sposób na połączenie Galaxy Nexus (ICS) z Linuksem


13

Mogę podłączyć Galaxy Nexus do mojego urządzenia Kubuntu za pomocą protokołu PTP , ale jest to naprawdę powolne. Przeczytałem ten wywiad o tym, dlaczego Galaxy Nexus nie obsługuje pamięci masowej USB , i poszedłem na http://www.android.com/filetransfer/ zgodnie z instrukcją, ale nie ma sposobu, aby zobaczyć, które pozwolą mi połączyć się z urządzeniem za pomocą maszyny linux i MTP .

Czy ktoś wie, jak uzyskać działanie MTP lub innego protokołu?

Odpowiedzi:


7

Możesz także wypróbować mtpfs lub gMTP . mtpfs pozwala zamontować urządzenie MTP jako system plików, podczas gdy gMTP jest samodzielnym programem.

W AskUbuntu znajduje się odpowiedź, która pokazuje, jak korzystać z mtpfs.


gMTP wydaje się działać bardzo dobrze, jeśli chodzi o kopiowanie zdjęć z mojego starego telefonu. Próba kopiowania przez PTP była bolesna.
Ryan,

1
gMTP jest dla mnie niezadowalający. Jest BARDZO wolny i powoduje błędy w plikach muzycznych (próbuje tworzyć albumy dla każdego przesyłanego pliku). gMTP również ulega awarii często w Ubuntu. Bardziej podoba mi się metoda ADB. Używam także SSHFS przez WiFi i kilku innych metod.
MountainX

6

Rozwinę pomysł Ryana Conrada:

adb z android-narzędzia jest sposobem.

Wolę postępować zgodnie z tym przewodnikiem, aby zainstalować Eclipse z systemem Android-SDK:

http://developer.android.com/sdk/installing.html

Instalacja zależy tylko od JDK. Brak instalacji nowych pakietów. Osobiście wykonuję te same kroki (= rozpakowywanie dwóch folderów w dowolnym miejscu i konfigurowanie środowiska Eclipse) w ten sam sposób w dystrybucjach Ubuntu, Mint lub Debian i wszystko działa.

Po ukończeniu klasycznego przewodnika mam dwa nowe foldery: eclipse i android-sdks . W folderze android- sdks ./platform-tools/adb znajduje się ścieżka do adbnarzędzia, za pomocą którego można push(przesyłać) i pull(pobierać) pliki z urządzenia z Androidem - bez mtpfs lub dodatkowych montowań.

Podobnie jak adbprogram wiersza polecenia, można go zautomatyzować w mgnieniu oka. Co więcej, masz widok Eksploratora plików Eclipse , który zapewnia ładną graficzną strukturę plików drzewa i podstawowy interfejs przeciągania i upuszczania (nie zapomnij najpierw wybrać urządzenia w widoku Urządzenia !).

Poważną wadą tej metody jest to, że tylko adbnarzędzie widzi urządzenie i ma do niego dostęp. Reszta mojego systemu, na przykład Nautilus, nadal nie widzi urządzenia. Ale po przyzwyczajeniu się do stabilności i solidności adbnie jest to dla mnie problemem.


1
adb stanowi problem bezpieczeństwa, jeśli ciągle go włączasz. Pamiętaj, że nie ma dialogu hasła ani nic takiego. Można ominąć blokady ekranu, a nawet pełne szyfrowanie urządzenia. Zwłaszcza jeśli
ładujesz

dzięki za powiadomienie, ce4. Pozwól, że zapytam: co oznacza dostęp do pamięci Android, której powinniśmy używać w nieznanych lokalizacjach?
furikuretsu,

1
dodano własną odpowiedź na temat bluetooth :-)
ce4

6

Możesz użyć bluetooth .

Bluetooth FTP (profil przesyłania plików) jest obsługiwany przez system Linux. Istnieje aplikacja Bluetooth do przesyłania plików, która dodaje tę funkcję do Androida. Nie jest to jednak tak szybkie (<200 kb / s) w zależności od wersji bluetooth. -

Jest moduł bezpieczników zwany obexfs , oto mój zamontowany Nexus S.

root@local:/tmp# obexfs -b f0:08:f1:xx:xx:xx -- /media/bla
root@local:/tmp# cd /media/bla
root@leo61326:/media/bla# ls -lh /media/bla/DCIM/
total 5,5K
drwxr-xr-x 1 root root    0 2012-05-25 16:09 100ANDRO
drwxr-xr-x 1 root root    0 2012-07-05 17:31 2012-06-09_Rafting
drwxr-xr-x 1 root root    0 2012-07-09 22:30 Camera

Niektóre eksploratory plików obsługują go bezpośrednio poprzez wtyczki (nautilus / gnome / kde / ...) Oto kilka pytań związanych z Ubexu.


1
Ta odpowiedź zasługuje na więcej głosów pozytywnych - nie mogłem zmusić MTP ani PTP do poprawnego działania z moją instalacją Kubuntu.
Nathan Osman,

Mam nadzieję, że będzie lepiej z nowszymi wersjami Ubuntu. Jestem tego pewien. Najczęściej używam ADB w wierszu poleceń (którego często używam), więc jest to dla mnie najszybsza ścieżka. Czasami używam też „bluetooth-sendto some-file”.
ce4

3

Możesz użyć adb i przenieść za pomocą poleceń pull / push adb.

Nie jestem pewien, jakiej dystrybucji systemu Linux używasz, ale znalazłem to, co mówi, że MTP jest spakowany i dostępny dla Ubuntu przez pakiet o nazwie mtp-tools .

Pamiętaj również, że nie dotyczy to Androida 3.x / 4.x, dotyczy to wszystkich urządzeń z systemem 3.x / 4.x, które nie mają zewnętrznej karty SD. Jeśli urządzenie ma gniazdo kart SD, będziesz mógł zamontować urządzenie tak, jak w poprzednich wersjach Androida.


2

mpfs to oparty na FUSE system plików, który może zamontować Nexus w twoim systemie.

mtpfs -o allow_other /media/MOUNTPOINT

Zamontuje to dla ciebie. Aby odmontować, wystarczy umount / media / MOUNTPOINT


0

Inną opcją jest WebDAV .

Konfigurowanie serwera Android WebDAV

Na moim magazynie Nexus 7 zainstalowałem WebDAV Server , otworzyłem go, kliknąłem przycisk Start i od razu byłem w stanie zobaczyć mój /storage/sdcardfolder w przeglądarce internetowej pod adresem URL wyświetlanym przez aplikację, tj.http://192.168.x.y:8080

Należy pamiętać, że w przypadku serwera WebDAV istnieje również możliwość wybrania katalogu głównego (/) lub DCIM oraz SdCard jako katalogu głównego WebDAV .

Korzystanie z serwera WebDAV za pośrednictwem Nautilus

W Nautilus wybrałem „Połącz z serwerem ...” z menu Plik, wybrałem „WebDAV (HTTP)”, wpisałem 192.168.x.yjako serwer i 8080jako port i kliknąłem Połącz.

Poruszanie się po hierarchii katalogów jest wolniejsze niż uzyskiwanie dostępu do innych udziałów sieciowych, ale nie jest niemożliwe. Kopiowanie pojedynczego pliku 42 MB przez Nautilus trwało około 12 sekund, czyli 3,6 MB / s.

Montowanie dysku WebDAV z wiersza polecenia

Zainstalowałem davfs2 i zamontowałem swój udział, /mntużywając polecenia:

sudo mount -t davfs http://192.168.x.y:8080 /mnt

Kopiowanie tego samego pliku 42 MB, ale z bardziej precyzyjnym czasem, zajęło 12,88 s lub 3,24 MB / s.

$ time cp music.fsb /tmp

real    0m12.880s
user    0m0.002s
sys     0m0.143s

Ostrzeżenia

  • Dostęp WebDAV nie jest bezpieczny . Nawet jeśli ustawisz hasło dla udziału WebDAV, połączenie nadal httpnie jest dostępne https, więc nie jest szyfrowane. Używaj WebDAV tylko w bezpiecznej sieci Wi-Fi i na pewno nie włączaj serwera WebDAV, gdy jesteś w kafejce internetowej lub innym niezabezpieczonym Wi-Fi.


0

Działające MTP na Ubuntu dla Galaxy Nexus, Nexus 7 i Acer A500 Od czego zacząć.

Znalazłem instrukcje dotyczące Nexusa 7 (które właśnie przyniosłem) na tej stronie Ubuntu 12.04 - Automount Nexus 7 w trybie MTP. Uznanie dla autora tej strony za zrozumienie. Instrukcje, które mam poniżej pochodzą z tej strony, są przycięte do poleceń, jeśli chcesz uzyskać więcej wyjaśnień, zobacz powyższą stronę.

Użyłem Ubuntu 12.10 i skonfigurowałem dla mojego Nexusa 7, Galaxy Nexusa i Acer A500. Instrukcje

Skonfiguruj BEZPIECZNIK

Zmień plik /etc/fuse.conf, aby był czytany przez wszystkich ..

# sudo chmod a+r /etc/fuse.conf

Edytuj /etc/fuse.conf, aby usunąć komentarz # z user_allow_other, aby domyślny fuse.conf wyglądał jak

# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000

# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
user_allow_other

Skompiluj i zainstaluj go_mtp

# sudo apt-get install libmtp-dev golang 
# mkdir /tmp/go
# export GOPATH=/tmp/go
# go get github.com/hanwen/go-mtpfs
# sudo mv /tmp/go/bin/go-mtpfs /usr/local/sbin/go-mtpfs
# sudo chmod a+x /usr/local/sbin/go-mtpfs

Utwórz punkty montowania

Use the following as you need..
# sudo mkdir /media/Nexus7
# sudo chmod 777 /media/Nexus7
# sudo mkdir /media/GalaxyNexus
# sudo chmod 777 /media/GalaxyNexus
# sudo mkdir /media/A500
# sudo chmod 777 /media/A500

Skonfiguruj reguły udev

Użyj swojego ulubionego edytora i utwórz następujący plik (usuń wszelkie inne reguły udev dla Androida, z którymi mogłeś eksperymentować jako pierwszy).

# sudo vi /etc/udev/rules.d/99-android.rules

Wklej następującą zawartość. możesz usunąć reguły, których nie potrzebujesz. Wygląda na to, że dwa urządzenia Nexus mają takie same identyfikatory dla programu ładującego i odzyskiwania. UWAGA: musisz zastąpić # YOURLOGIN # swoją nazwą użytkownika / loginem.

# Google Nexus 7 & Galaxy Nexus 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Nexus 7 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e43", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Nexus 7 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"


# Google Galaxy Nexus 16 Gb Bootloader & recovery mode
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Galaxy Nexus 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6865", MODE="0666" # PTP media
#SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Galaxy Nexus 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"


# Acer A500 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3201", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Acer A500 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b2", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b1", MODE="0666" # PTP media with USB debug on

# Acer A500 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", MODE="0666" # MTP media with USB debug on

# Acer A500 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"

# Acer A500 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="remove", RUN+="/bin/umount /media/A500"

UWAGA: jeśli używałeś gedit i edytowałeś plik, musisz usunąć 99-android.rules ~, ponieważ udev się zdenerwuje.

Następnie uruchom ponownie udev

# sudo service udev restart

Edytuj / etc / fstab

Add the following to /etc/fstab
DeviceFs(Nexus\0407)        /media/Nexus7         fuse.DeviceFs(Nexus\0407)      allow_other,rw,user,noauto    0    0
DeviceFs(Galaxy\040Nexu)    /media/GalaxyNexus    fuse.DeviceFs(Galaxy\040Nexu)  allow_other,rw,user,noauto    0    0
DeviceFs(A500)              /media/A500           fuse.DeviceFs(A500)            allow_other,rw,user,noauto    0    0

Skończone.

Możesz teraz podłączyć swoje urządzenia, a pamięć wewnętrzna będzie dostępna do użytku, należy pamiętać o odinstalowaniu przed odłączeniem, chociaż nie wydaje się to wyrządzać żadnej szkody.

Uwaga: wydaje się, że ENV {ID_MODEL} dla nexusa 7 zmieniło się w pewnym momencie na Nexus_7 (myślę, że w przypadku aktualizacji Androida 4.2).

From http://www.winters.org.nz/android-hints-tips-stuff/working-mtp-on-ubuntu


0

Jest bardzo przydatne narzędzie, które nazywa się „Wifi File Transfer”. Po prostu pobierz go ze Sklepu Play na urządzenie z Androidem i zainstaluj. Okazuje telefon z Androidem na mini serwerze, który pozwala pobierać i przesyłać pliki zi na telefon.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.