Używam Linux Mint 17.1 64-bit (oparty na Ubuntu 14.04). Od czasu aktualizacji z wersji Linux Mint 14 / Ubuntu 12.10 skrypt Pythona, którego używam do synchronizacji muzyki z odtwarzaczem Walkman, przestał działać.
Poprzednio, kiedy montowałem odtwarzacz Walkman, automatycznie pojawiał się jako ścieżka /run/user/1000/gvfs/WALKMAN/Storage Media
i działał jak każdy inny system plików: mogłem kopiować do niego ścieżki, usuwać z niego itp., Wszystko przez Python. Jednak nie pamiętam, czy musiałem wprowadzić jakieś zmiany, aby tak się stało.
Od czasu aktualizacji do wersji Linux Mint 17 (a teraz 17.1), kiedy montuję odtwarzacz Walkman, pojawia się on jako ścieżka /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/Storage Media
. Ponadto, gdy próbuję uruchomić te same operacje na plikach, nie udaje im się to. Odkryłem, że dzieje się to nie tylko przez Python, ale także w wierszu poleceń. Na przykład:
david@MILTON:~$ cp '/data/Music/10SecsWhiteNoise.mp3' '/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C006%5D/Storage Media/MUSIC'
cp: cannot create regular file ‘/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C006%5D/Storage Media/MUSIC/10SecsWhiteNoise.mp3’: Operation not supported
Przeprowadziłem badania dotyczące tego problemu, ale najczęstszym wyjaśnieniem wydaje się być to, że został on wcześniej rozwiązany przez tę umowę PPA: https://launchpad.net/~langdalepl/+archive/ubuntu/gvfs-mtp
Ale teraz wersje Ubuntu od 13.10 zawierają wszystkie te zmiany, więc nie powinno być już konieczne. Dlaczego więc nadal mam te błędy? Nadal jestem w stanie wykonywać operacje na plikach na moim odtwarzaczu Walkman za pomocą graficznego menedżera plików (Caja, w Linux Mint), ale nie za pomocą wiersza poleceń.
źródło
Odpowiedzi:
Zgadnij: używasz teraz MTP do uzyskiwania dostępu do odtwarzacza Walkman, a MTP jest do bani.
Detale
Operation not supported
Błąd może wskazywać, że Walkman wykorzystuje implementację MTP, która nie obsługuje „bezpośredni dostęp”. Według http://intr.overt.org/blog/?p=174 ten rodzaj bezpośredniego dostępu jest rozszerzeniem specyficznym dla Androida, więc prawdopodobnie nie jest obsługiwany przez odtwarzacz Walkman.W rezultacie możesz użyć tylko kilku wybranych sposobów dostępu do plików w odtwarzaczu Walkman za pomocą MTP: Chyba wszystko, co czyta lub zapisuje pliki w jednej operacji, jest obsługiwane, podczas gdy dostęp do wybranych części pliku nie jest obsługiwany dla tych implementacji MTP . I wygląda na to, że
cp
i Python zawsze używa tej drugiej metody dostępu, a zatem kończy się niepowodzeniem.Możliwe obejście
Jednakże, może być w stanie po prostu zastąpić
cp
przezgvfs-copy
. W moich testach z telefonem z Androidem Samsunga (który również ma sparaliżowaną implementację MTP)gvfs-copy
byłem w stanie skopiować pliki na telefon, w przypadkucp
niepowodzenia.tło
Nie mogłem znaleźć wielu informacji na temat ograniczeń MTP zależnych od urządzenia; oto kilka fragmentów, w których sytuacja została nieco wyjaśniona:
/ubuntu//a/284831 https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/1389001/comments/2 https://bugs.launchpad.net/ubuntu/+source / gvfs / + bug / 1157583 / comments / 1
Dlaczego to działało wcześniej?
Co do tego, dlaczego twój Walkman był dostępny
cp
w Mennicy 14, ale nie w Mennicy 17, może to być spowodowane wewnętrznym przełączeniem z PTP na MTP jako system dostępu. Przynajmniej to zauważyłem w przypadku urządzenia Samsung po przejściu z Ubuntu 12.04 na 14.04. Telefon obsługuje zarówno PTP, jak i MTP, ale Ubuntu 12.04 najwyraźniej obsługuje tylko PTP; więc tego właśnie użyto. Ponieważ nowa wersja Ubuntu ma wbudowaną obsługę MTP, teraz jest ona używana.W rzeczywistości może nawet zdarzyć się, że dostęp do odtwarzacza Walkman był wcześniej używany jako urządzenie pamięci masowej USB , czyli tego, czego używają dyski twarde i dyski flash USB. Być może z jakiegoś powodu Linux (lub twój Walkman) zdecydował, że MTP jest lepszy niż dostęp do pamięci masowej.
Metodę dostępu można zobaczyć, patrząc na adres URL odtwarzacza Walkman (w Nautilus, przejdź do folderu Walkman, naciśnij Ctrl + L i spójrz na pasek adresu): w przypadku MTP urządzenie znajduje się pod np.
mtp://[usb:001,004]/
podczas gdy w przypadku PTP jest to coś w rodzajugphoto2://[usb:001,004]/store_00010001
. W przypadku dostępu do pamięci masowej adres URL to zwykła ścieżka/media/WALKMAN
.Nie wiem, czy MTP ma jakąkolwiek faktyczną przewagę nad PTP lub Mass Storage, czy też można wrócić do PTP lub Mass Storage. W Linuksie zarówno implementacje MTP, jak i PTP mają swój własny zestaw błędów, więc może to zależeć od twojego przypadku użycia, który jest lepszy. Pamięć masowa AFAIK jest najbardziej pożądaną opcją dla użytkownika, ale obsługa urządzeń w telefonach słabnie.
źródło
gvfs-copy
nie działa dla mnie lepiej niż zwyklecp
. I w moim przypadku ten sam telefon działał w przeszłości przez MTP. Niektóre telefony działają, a niektóre nie teraz. Cały MTP (ponieważ wybieram opcję połączenia MTP w menu telefonu). aktualizacja: znaleziono problem. Próbowałem skopiować z karty do pamięci telefonu. Musiałem najpierw skopiować do lokalnego systemu plików (np. / Tmp), a następnie skopiować do pamięci telefonu. Wygląda na to, że bezpośrednia kopia mtp-> mtp nie działa (jeszcze).Aby uzyskać dostęp do mojego telefonu komórkowego, musiałem zainstalować serwer mtp poprzez Synaptic Package Manager na moim Linux Mint 17.1 Mate. Mój poprzedni Linux Mint 17 Mate nie wymagał ode mnie instalacji serwera mtp, mój telefon komórkowy został rozpoznany automatycznie po podłączeniu przez port USB. Może te informacje pomogą.
źródło
Kon 'mtp://[usb:003,029]/' niet weergeven. Fout: The name :1.1813 was not provided by any .service files Kies een andere weergavemethode en probeer het opnieuw.
I moje urządzenie Adroid nie nawiązało połączenia przez MTP w mojej instalacji Mint 17. Prawdopodobnie po aktualizacji 17.1.apt-get install mtp-server
rozwiązał mój problem. Dotyczy to innych osób poszukujących tego problemu, które mogą mi pomóc.Natknąłem się na ten problem na Ubuntu 16.04 i Samsung Galaxy SIII podłączony w trybie MTP.
Korzystanie z sugestii Olivera do użycia gvfs-copy, kopiowanie bezpośrednio z mojego NASa na telefon nie działa: (podobnie jak Nautilus). Jest to obejście możliwego błędu w gvfs-copy.
Alternatywny format ścieżki nie sugerował również strony:
Najpierw jednak skopiowano plik do folderu lokalnego. {Dzięki akostadinov} (podobnie jak Nautilus).
źródło
Na Debianie Jessie
gvfs-copy
z pakietugvfs-bin
działa dla mnie.źródło
Możesz spróbować użyć rsync do synchronizacji z urządzeniem, chociaż przy transferach MTP zwykle nie możesz ustawić znacznika czasu i daty dla każdego pliku. Aby przyspieszyć przesyłanie, należy użyć opcji --size-only dla rsync, a nie opcji -t. Najłatwiej jest zmienić katalog na katalog mtp, taki jak / run / user / 1000 / gvfs / mtp: host = blahblah / blah / blah, a następnie uruchomić:
Opcja -n polega na wykonaniu próbnego rozruchu. Po prostu usuń tę opcję, jeśli jesteś zadowolony z wyników.
źródło