Niektóre aplikacje Ubuntu 13.04 nie mają dostępu do plików w systemach podłączonych do MTP. Dlaczego?

14

Ubuntu 13.04 jest wyposażony w obsługę MTP umożliwiającą dostęp do plików na nowszych urządzeniach z Androidem. Mój Nexus 10 działa OK: po podłączeniu mogę uzyskać dostęp do plików N10 za pomocą Nautilus i mogę kopiować zi do urządzenia. Evince otworzy pliki PDF bezpośrednio z urządzenia, ale niektóre aplikacje nie otwierają plików bezpośrednio z urządzenia, takich jak gedit lub libreoffice. Gedit mówi coś takiego:

Cannot open file mtp://[usb:001,009]/65537/5823/5824

Wydaje mi się, że MTP jest zintegrowany na poziomie gvfs, więc czy wszystkie aplikacje obsługujące gvfs nie powinny mieć dostępu do urządzenia MTP? Dlaczego warto ewangelizować, ale nie gedit?

Wiem, że MTP można zamontować z bezpiecznikiem, ale byłoby miło, gdyby działał ze zwykłymi aplikacjami Nautilus, takimi jak sftp: // lub smb: //.

jjchico
źródło
Miałem ten problem podczas korzystania z maszyny wirtualnej vmware. Może to być związane z opóźnieniami w przekazywaniu danych przez USB lub prezentowaniem się jako więcej niż jedno urządzenie / urządzenie podrzędne i
nieprzeprowadzanie

Odpowiedzi:

29

Specyfikacja MTP nie obsługuje podstawowych operacji otwierania / odczytu / zapisu / zamykania, które są wymagane do wdrożenia normalnego dostępu do plików w systemie Linux - zapewnia tylko przesyłanie / pobieranie plików, i to właśnie implementuje backend MTP.

Nautilus dobrze kopiuje pliki, ale gdy tylko spróbujesz użyć aplikacji, która nie uwzględnia jawnie ograniczonego zestawu operacji, pojawi się błąd. evince jest przykładem aplikacji, która go obsługuje (kopiuje plik do / tmp, a następnie go otwiera).

Tak właśnie dzieje się w 13.04.

Obecnie zdarza się, że Google zaimplementował zestaw rozszerzeń MTP w Androidzie, które oferują otwieranie / odczytywanie / zapisywanie / zamykanie, a dzięki nim można zapewnić normalny dostęp do plików. Wykonałem tę pracę w gałęzi programistycznej gvfs, ale brakowało jej okna wydania 1.16, więc nie pojawi się ona w Ubuntu najwcześniej 13.10.14.04 i nadal nie ma

W międzyczasie możesz użyć mojego ppa do instalowania kompilacji, w których dokonałem backportacji tej pracy.

https://launchpad.net/~langdalepl/+archive/gvfs-mtp

Na koniec należy zauważyć, że te rozszerzenia istnieją tylko w stosie Google MTP. Masz Nexusa 10, więc będzie działał, ponieważ działa na Androidzie - ale ktoś korzystający z urządzenia Samsung lub urządzeń innych producentów nie będzie miał tych rozszerzeń i może nie obsługiwać normalnych operacji we / wy plików.

langdalepl
źródło
Wydaje się jednak, że Windows 7 ma te dodatkowe możliwości lub obejście i jest to całkiem przydatne. Byłoby miło, gdyby te „dodatki” zostały zaimplementowane również w Ubuntu
Álvaro
1
Jako obejście, operacja odczytu może być po prostu pobraniem do / tmp i odczytaniem z niej, co Nautilus może wykonać automatycznie, aby użytkownik miał wrażenie operacji odczytu. Za pomocą podobnych rzeczy możesz pisać (pobierać do / tmp, modyfikować i przesyłać na urządzenie)
Álvaro
2
Nigdy nie czułem się komfortowo z niejawnym zachowaniem pobierania / wysyłania - może to być bardzo nieprzyjemna niespodzianka dla użytkownika i nie chciałem tego przedstawiać. Zastanów się, co się stanie, jeśli masz tam film o pojemności kilku gigabajtów, który chcesz obejrzeć, więc dwukrotnie go kliknij, a następnie nagle zacznie się pobieranie do Twojego / tmp, który jest naprawdę tmpfs ... Lub chcesz edytować jakiś dokument a ty otworzysz, popracujesz, a następnie zapiszesz, ale komputer zawiesza się, zanim fs będzie mógł go przesłać z powrotem, a plik pośredni został zapisany w / tmp, który jest tmpfs, więc zostaje utracony po ponownym uruchomieniu. Nieprzyjazny!
langdalepl,
@ Álvaro Just FYI, specyfikacja MTP została opracowana przez Microsoft. Tak wiele możliwości MTP wydaje się działać świetnie na urządzeniach z Windowsem, ale nie tak bardzo gdzie indziej.
RomaH
0

Miałem problem ze zdjęciem z mojego Fujifilm FinePix S1500. Komunikat o błędzie:

Operation not supported by backend

Rozwiązałem to przez podłączenie kamery i skopiowanie plików z wiersza poleceń za pomocą gphoto2.

Klif
źródło
1
Byłoby miło, gdybyś mógł dokładnie wyjaśnić, jak powinieneś używać polecenia, takiego jakgphoto2
Amith KK