Od czasu przechowywania Ubuntu 13.04 dostęp do urządzeń zewnętrznych za pośrednictwem MTP powinien działać od razu po wyjęciu z pudełka za pośrednictwem modułu GVFS-MTP.
Chociaż to pytanie dotyczy Galaxy Nexus, obsługiwane są również inne urządzenia z Androidem, a także telefony z systemem Windows i odtwarzacze multimedialne z obsługą MTP .
Aby uzyskać informacje na temat rozwiązywania problemów, zobacz tę odpowiedź .
Mam dość problemów z przesyłaniem plików w trybie MTP w Galaxy Nexus. Używam 64-bitowego Kubuntu 11.10 i oto co zrobiłem i wyniki, które otrzymuję:
Dodano regułę dla urządzenia w
/etc/udev/rules.d/51-android.rules
. Reguła jest następująca i działa dlaadb
:SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
Zrestartowano
udev
(i na wszelki wypadek komputer).
Adb działa i wszystkie metody odczytu z urządzenia za pośrednictwem MTP wydają się działać (próbowałem zamontować z mtpfs, gmtp i bezpośrednio użyć pakietu mtp-tools). Kiedy próbuję pisać na urządzeniu, nic, co próbowałem, działa.
Na przykład uruchomienie mtp-newfolder test_dir 0 0
daje następujące dane wyjściowe:
libmtp version: 1.1.0
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
Folder creation failed.
ERROR: Could not close session!
Jeśli uruchomię się mtp-folders
po uszkodzonym folderze mtp-newfolder bez ponownego podłączania urządzenia, otrzymam następujące dane wyjściowe:
Attempting to connect device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
mtp-folders: Successfully connected
Friendly name: (NULL)
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_all_metadata_fast(): could not get proplist of all objects.
Error 2: (Look this up in ptp.h for an explanation.)
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: (Look this up in ptp.h for an explanation.)
LIBMTP_Get_Storage()
: Resource temporarily unavailable
OK.
Towarzyszy im w dmesg:
[ 1000.912082] usb 2-4: reset high speed USB device number 7 using ehci_hcd
[ 1001.045877] usb 2-4: usbfs: process 3166 (mtp-folders) did not claim interface 0 before use
Czy ktoś ma pojęcie o tym, co robić?
EDYTOWAĆ:
Próbowałem także w trybie PTP. Znów czytanie działa dobrze, ale nie mogę nic zapisać na urządzeniu.
Odpowiedzi:
Od Ubuntu 13.04 dostęp do pamięci masowej urządzeń zewnętrznych przez MTP działa od razu po wyjęciu z pudełka za pośrednictwem modułu GVFS-MTP.
Powiązane pytanie: Czy są jakieś plany poprawy obsługi protokołu mtp w przyszłych wersjach systemu Ubuntu?
Aby uzyskać informacje na temat rozwiązywania problemów, zobacz tę odpowiedź .
Dla mnie był to problem z brakiem najnowszych
libmtp
plików w moim systemie. Naprawiłem więc problem i napisałem ten artykuł, aby pomóc innym .Podsumowanie linku: Wystąpił błąd w
libmtp
pakiecie ze starszymi wersjami Ubuntu. Ten błąd został już rozwiązany w najnowszej źródła olibmtp
.źródło
Czy próbowałeś sugestii Bilala Akhtara w omgubuntu ?
Podłączanie telefonu lub tabletu z systemem Android do Ubuntu za pomocą MTPFS
Ustawiać
Najpierw zainstaluj niezbędne narzędzia za pomocą
sudo apt-get install mtp-tools mtpfs
Podłącz Galaxy Nexus do komputera. W telefonie otwórz szufladę powiadomień i kliknij „Typ połączenia USB”. Upewnij się, że wybrano MTP.
Następnie uruchom następujące polecenia:
Otrzymasz takie wyjście:
Teraz uruchom następujące polecenia:
Powinno się otworzyć okno Gedit. Wpisz w to ten tekst, wszystko w jednym wierszu :
Zamień
VENDORID
naidVendor
wcześniej zanotowany. Podobnie zamieńPRODUCTID
naidProduct
zanotowany. W moim przypadku były04e8
i685c
odpowiednio, ale mogą one być różne dla Ciebie.Zapisz i zamknij plik. Następnie odłącz telefon i uruchom następujące polecenia:
$USER
jest domyślną zmienną powłoki i powinien to być użytkownik, którego chcesz dodać (zazwyczaj sam). Teraz uruchom to polecenie:W oknie Gedit usuń
#
na początku ostatniego wiersza (ten, który zaczyna się od#user_allow_other
) w następujący sposób:Jesteś prawie gotowy! Teraz uruchom ponownie komputer, a następnie uruchom następujące trzy polecenia:
Stosowanie
Podłącz telefon, upewnij się, że telefon korzysta z MTP i uruchom
android-connect
.Voila! Teraz możesz przeglądać zawartość swojego telefonu z Androidem za pomocą Nautilus. Po prostu uruchom menedżera plików, a następnie na pasku bocznym kliknij GalaxyNexus, aby przeglądać zawartość telefonu tak, jak w przypadku pamięci USB. Możesz także dodawać, usuwać i modyfikować pliki tak jak normalny system plików.
Aby bezpiecznie usunąć telefon, po prostu uruchom
android-disconnect
.Wniosek
Od teraz wystarczy uruchomić,
android-connect
aby zamontować telefon, a następnieandroid-disconnect
bezpiecznie go usunąć. Wszystko inne powinno być obsługiwane automatycznie. Próbowałem wielu sposobów, aby montowanie i odmontowywanie odbywało się automatycznie po podłączeniu kabla, ale było to najlepsze rozwiązanie, jakie mogłem wymyślić.Te dwa polecenia nie będą wymagały uprawnień roota do uruchomienia. Wszyscy użytkownicy, którzy są członkami grupy użytkowników bezpieczników, powinni mieć możliwość uruchamiania tych poleceń bez dostępu użytkownika root.
Otóż to! Pomyślnie podłączyłeś telefon Ice Cream Sandwich do komputera Ubuntu. Proces ten może być długi dla początkującego, ale jestem pewien, że ktoś przyjdzie i stworzy GUI dla tego wszystkiego, aby wszystko przebiegło gładko. :)
źródło
mtpfs
, czy może po prostu obsługuje tylko 1 podłączone urządzenie na raz?Łączenie urządzeń przez MTP z GVFS
Od czasu Ubuntu 13.04 dostęp do urządzeń obsługujących MTP działa od razu po instalacji przez backend GVFS . Proszę spojrzeć na Czy są jakieś plany poprawy obsługi protokołu mtp w przyszłych wersjach Ubuntu? instrukcje instalacji przed 13.04.
To rozwiązanie powinno działać na wszystkich urządzeniach z Androidem, które zapewniają funkcjonalność MTP i prawdopodobnie na wszystkich urządzeniach innych niż Android z funkcją MTP, takich jak telefony z systemem Windows i przenośne odtwarzacze multimedialne .
Nie mylcie się
Nastąpiło pewne zamieszanie, spróbujmy wyjaśnić:
Ty nie musisz robić niczego, co może spowodować utratę gwarancji!
Odblokowanie odnosi się tylko do ekranu blokady systemu operacyjnego w tej odpowiedzi.
Nie musisz konfigurować dostępu programisty do swojego urządzenia, takiego jak ADB, fastboot lub coś podobnego za pomocą pewnych reguł udev. (Można znaleźć instrukcje dla Androida w rozdziale Konfigurowanie dostępu USB swój e lub jej e ).
O ile wiem, również nie potrzebujesz BEZPIECZNIKA ani nie konfigurujesz opcji związanych z BEZPIECZNIKIEM.
Rozwiązywanie problemów
Nie mogę umieścić plików na urządzeniu.
Twoje urządzenie musi być odblokowane, aby uzyskać dostęp do pamięci urządzenia z Ubuntu za pośrednictwem MTP.
Otrzymuję komunikat o błędzie informujący, że urządzenia nie można zamontować.
Jeśli pojawi się poniższy komunikat o błędzie, spróbuj ponownie uruchomić urządzenie raz .
Jeśli komunikat o błędzie pojawi się ponownie, otwórz nowe okno nautilusa w programie uruchamiającym (najlepiej klikając ikonę urządzenia) i prawdopodobnie zamykając bieżące okno nautilusa. Możliwe powiązanie: jak utworzyć reguły udev, aby wyłączyć jedno z urządzeń z Androidem?
Sprawdź, czy dla Twojego urządzenia istnieją reguły udev
Otwórz terminal i wpisz
lsusb
. Znajdź swoje urządzenie na wyjściu i zanotuj identyfikator (np0fce:01b1
.). Pierwsza część to identyfikator dostawcy, ostatnia część to identyfikator produktu.Otwórz odpowiedni plik reguł mtp udev za pomocą
nano /lib/udev/rules.d/69-libmtp.rules
i wyszukaj identyfikator produktu (użyj Ctrl+ W). Jeśli nie możesz go znaleźć, musisz utworzyć niestandardowy wpis/etc/udev/rules.d/69-libmtp.rules
zgodnie z poniższym wzorcem i uruchomić ponownie .Powinieneś rozważyć zgłoszenie błędu w pakiecie libmtp (a dokładniej - wspólny libmtp ), aby Twoje urządzenie zostało uwzględnione w przyszłych wersjach, jeśli to zadziałało.
Nadal nie mogę się połączyć
Twoje urządzenie nie jest obsługiwane przez urządzenie bazowe
libmtp
lub możesz napotkać ten sam problem, który mam z moim Lumią 620, postępuj zgodnie z obejściem (kroki do odtworzenia), które opublikowałem w LP # 1247572: Nokia Lumia 620 (WP8) nie można zamontować niezawodnie za pośrednictwem gvfs-mtp w nautilus . (Urządzenie nadal nie działa tutaj bezbłędnie, ale korzystanie zmtp-detect
pomocy.)Powinieneś przeszukać tracker błędów libmtp dla swojego urządzenia i postępować zgodnie z instrukcjami dla nowych urządzeń na stronie projektu, aby otworzyć raport o błędzie.
Moduł śledzenia błędów wyświetla moje urządzenie jako obsługiwane, ale nadal nie działa
W niektórych przypadkach raport o błędzie dotyczący twojego urządzenia mógł być już złożony i rozwiązany w nowszym wydaniu libmtp niż to, z czym jest dostarczana Twoja dystrybucja (np .: Motorola Moto G ). W takim przypadku musisz poczekać na aktualizację oficjalnych repozytoriów lub poszukać zaktualizowanej umowy PPA.
Zaktualizowaną listę wszystkich wersji libmtp dostępnych za pośrednictwem oficjalnych kanałów oprogramowania Ubuntu i prywatnych umów PPA można znaleźć tutaj (koniecznie rozwiń Inne wersje „libmtp” w niezaufanych archiwach ). Od 2014/02/13 ten PPA autorstwa Matthieu Baerts oferuje najnowszy pakiet libmtp dostępny dla Ubuntu.
Ostrzeżenie : ten PPA zawiera wiele różnych i prawdopodobnie niestabilnych pakietów. Odradzam dodawanie go do twojego systemu. Zamiast tego możesz pobrać pakiety libmtp osobno i ręcznie zainstalować je w systemie.
Zanim przejdziesz dalej, zapoznaj się z umowami PPA i ich ryzykiem . Przeczytaj także poniższy akapit dotyczący przywracania oryginalnych pakietów, zanim wykonasz następujące czynności:
Pobierz następujące pakiety:
libmtp-common
,libmtp-runtime
,libmtp9
,mtp-tools
. Upewnij się, że wybrałeś odpowiednią architekturę dla swojego systemu (zazwyczaj tak będzieamd64
).Oto linki do pakietów na dzień 2014/02/13: libmtp-common , libmtp-runtime , libmtp9 , mtp-tools
Kontynuuj, aby ręcznie zainstalować zaktualizowane pakiety za pomocą dpkg (przejdź
$HOME/Downloads
do folderu pobierania i upewnij się, że nie ma innych plików deb:Po pomyślnym zainstalowaniu wszystkiego uruchom ponownie komputer, odblokuj urządzenie z Androidem, podłącz je przez USB i powinno pojawić się w menedżerze plików.
Działa to dobrze dla mnie (@Glutanimate) z moją Motorolą Moto G. Ponieważ korzystałem z Ubuntu 12.04 LTS, najpierw musiałem zainstalować zaktualizowaną wersję
gnome-gvfs
. Więcej informacji znajduje się na górze instrukcji instalacji przed 13.04 .Aby cofnąć zmiany, jeśli coś pójdzie nie tak lub urządzenie nadal nie zostanie rozpoznane, musisz ręcznie zainstalować oryginalne pakiety. Głowa do informacji źródłowej libmtp i znaleźć wydaniu Ubuntu. Rozwiń wpis i przejdź do pobierania pakietów, tak jak w kroku 2 wcześniej. Kontynuuj instalację zgodnie z opisem w kroku 3 i uruchom ponownie system. Wszystko powinno teraz wrócić do normy.
źródło
/etc
zależy wyłącznie od Ciebie. Jak wyjaśniono powyżej, najlepiej wszystkie reguły udev powinny być dostarczone ootb. Jeśli nie, należy zgłosić błąd w celu włączenia brakującej reguły/lib/.../69-libmtp.rules
, aby wszyscy byli zadowoleni z następnej wersji./etc
zależy od Ciebie./lib/udev/rules.d/69-libmtp.rules
jest to, co wybrali opiekunowie pakietów i sugeruję, aby zgłosić błąd w tym pakiecie (zaktualizowałem odpowiedź) dla użytkowników, którzy napotkają ten problem. Jeśli nadal masz z tym problem, porozmawiaj z opiekunami lub opublikuj własną odpowiedź. Kłaniam się teraz rozmową z tobą na ten temat.Wszystkie programy oparte na
libmtp
nadal wydają się mieć problemy z Galaxy Nexus (od libmtp 1.1.3). Programy oparte nagphoto2
pracy dla mnie.Osobiście używam
gphotofs
, dostępny w pakiecie o tej samej nazwie.Użyj,
gphotofs ~/mymountpoint
aby zamontować, a następniefusermount -u ~/mymountpoint
odmontować, kiedy skończysz.źródło
gphotofs
pozostawia mi jeden katalog, który jest pusty.Zainstaluj następujące elementy i uruchom ponownie:
źródło
The following packages have unmet dependencies: gvfs-backends : Depends: gvfs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-daemons (= 1.28.2-1ubuntu1~16.04.2) Depends: gvfs-libs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-common (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed E: Unable to correct problems, you have held broken packages.
Pierwszym krokiem byłoby zainstalowanie
jmtpfs
(sudo apt-get install jmtpfs
w terminalu - Ctrl+ Alt+ T), następnie utworzenie folderu za pomocą,mkdir foldername
a następnie zamontowanie urządzenia za pomocąjmtpfs foldername
, a następnie przejście do nautilus (Pliki).Jeśli twoje urządzenie nie jest kompatybilne z
libmtp
wersją w Ubuntu. Musisz pobrać i zbudować najnowszą wersjęlibmtp
(> 1.1.12), jak w: Jak mogę zainstalować najnowszą wersję libmtp?Powinieneś być w stanie zobaczyć foldery również
mtp-folders
w terminalu lub z interfejsem graficznymgmtp
.Poprzednie kroki mogą pokazywać błąd, jeśli uruchomisz je bez
sudo
:Aby uniknąć korzystania z sudo, należy dodać urządzenie do
/etc/udev/rules.d/51-android.rules
pliku jak wyżej (patrz desgua) i przeładować reguły lub ponownie uruchomić.źródło
Tylko małe obejście, połącz swój telefon oparty na ICS ze starym, dobrym MASOWYM PRZECHOWYWANIEM http://forum.xda-developers.com/showthread.php?t=1556367
źródło