GVFS aracılığıyla monte edilen bir MTP cihazında dosya işlemleri gerçekleştirilemiyor: “İşlem desteklenmiyor”


13

Linux Mint 17.1 64-bit (Ubuntu 14.04 tabanlı) kullanıyorum. Linux Mint 14 / Ubuntu 12.10'dan yükseltmeden beri, müziği Walkman'imle senkronize etmek için kullandığım Python betiği çalışmayı durdurdu.

Daha önce, Walkman'imi monte ettiğimde, otomatik olarak yol olarak /run/user/1000/gvfs/WALKMAN/Storage Mediagörünecekti ve diğer dosya sistemleri gibi çalışacaktı: Python aracılığıyla parçaları kopyalayabilir, ondan parçaları silebilirdim. Ancak bunun gerçekleşmesi için herhangi bir değişiklik yapmam gerekip gerekmediğini hatırlayamıyorum.

Linux Mint 17'ye (ve şimdi 17.1'e) yükseltme yaptığımdan beri, Walkman'i bağladığımda, yol olarak görünüyor /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/Storage Media. Ayrıca, aynı dosya işlemlerini çalıştırmayı denediğimde, şimdi başarısız olurlar. Bunun sadece Python ile değil, komut satırında da olduğunu keşfettim. Örneğin:

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

Bu sorunla ilgili biraz araştırma yaptım, ancak en yaygın açıklama, daha önce bu PPA tarafından çözülmüş gibi görünüyor: https://launchpad.net/~langdalepl/+archive/ubuntu/gvfs-mtp

Ama şimdi, 13.10'dan beri Ubuntu sürümleri tüm bu değişiklikleri içeriyor, bu yüzden artık gerekli olmamalı. Peki neden hala bu hataları yaşıyorum? Hala komut satırından değil, bir grafik dosya yöneticisi (Caja, Linux Mint üzerinde) üzerinden Walkman'imde dosya işlemleri yapabiliyorum.


Sanırım size yardımcı olabilir: github.com/hanwen/go-mtpfs
PersianGulf

Cihazım zaten MTP olarak takılıyor ... sorun değil.
David Pitchford 30'15

Yanıtlar:


15

Bir tahmin: Artık Walkman'inize erişmek için aslında MTP kullanıyorsunuz ve MTP berbat.

ayrıntılar

Operation not supportedHata Walkman "doğrudan" erişimi desteklemeyen bir MTP uygulamasını kullandığını gösteriyor olabilir. Göre http://intr.overt.org/blog/?p=174 büyük ihtimalle Walkman tarafından desteklenmeyen bu yüzden doğrudan erişim bu tür bir Android özgü uzantısıdır.

Sonuç olarak, Walkman'inizdeki dosyalara MTP kullanarak erişmek için yalnızca birkaç seçili yol kullanabilirsiniz: Tek bir işlemle dosyaları okuyan veya yazan her şey desteklenirken, bir dosyanın seçilen bölümlerine erişim bu MTP uygulamaları için desteklenmiyor. . Ve görünüşe göre cpve Python her zaman ikinci erişim yöntemini kullanıyor ve bu nedenle başarısız oluyor.

Olası Geçici Çözüm

Ancak, sadece yerine cpgeçebilirsiniz gvfs-copy. Samsung Android telefon ile yaptığım testlerde (sakat bir MTP uygulaması da var) gvfs-copy, cpbaşarısız olan yerlerde telefona dosya kopyalayabildi .

Arka fon

Bu cihaza bağlı MTP sınırlamaları hakkında fazla bilgi bulamadım; durumun biraz açıklandığı bazı parçacıklar:

/ubuntu//a/284831 https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/1389001/comments/2 https://bugs.launchpad.net/ubuntu/+source / gvfs / + böcek / 1157583 / yorum / 1

Neden daha önce çalıştı?

Walkman ile erişilebilir neden olarak cpDarphane 17 Darphane 14'de değil de, bu bir iç anahtarı neden olabilir PTP için OVP'de erişim sistemi olarak. En azından Ubuntu 12.04'ten 14.04'e geçerken Samsung cihazı için fark ettim. Telefon hem PTP hem de MTP'yi destekliyor, ancak Ubuntu 12.04 görünüşe göre sadece PTP'yi destekliyor; yani kullanılan buydu. Yeni Ubuntu sürümü MTP için yerleşik desteğe sahip olduğundan, bu artık bunun yerine kullanılıyor.

Hatta Walkman'inize daha önce USB sabit diskleri ve flash sürücülerin kullandığı USB Yığın Depolama Aygıtı olarak erişilmiş olabilir . Belki bir nedenden ötürü Linux (veya Walkman'iniz) MTP'nin Yığın Depolama erişimi yerine tercih edilebilir olduğuna karar verdi.

Walkman'in URL'sine bakarak kullanılan erişim yöntemini görebilirsiniz (Nautilus'ta Walkman klasörüne gidin, Ctrl + L tuşlarına basın ve adres çubuğuna bakın): MTP için cihaz örneğin altında bulunur. mtp://[usb:001,004]/PTP için böyle bir şey gphoto2://[usb:001,004]/store_00010001. Yığın Depolama erişimi için URL yalnızca normal bir yoldur /media/WALKMAN.

MTP'nin PTP veya Yığın Depolama'ya göre gerçek bir avantajı olup olmadığını veya PTP veya Yığın Depolama'ya geri dönmenin mümkün olup olmadığını bilmiyorum. Linux altında, hem MTP hem de PTP uygulamalarının kendi hataları vardır, bu nedenle hangisinin daha iyi olduğuna dair kullanım durumunuza bağlı olabilir. AFAIK Yığın Depolama kullanıcı için en çok tercih edilen seçenektir, ancak telefonlarda cihaz desteği azalmaktadır.


2
Beni gvfs-copy ile tanıştırdığın için teşekkürler. Ancak, dizinleri yinelemeli olarak kopyalamayan büyük bir serseri. Özyineli olarak yapabileceğim başka bir şey var mı?
TuxForLife

1
Ayrıca gvfs-copynormalden daha iyi benim için çalışmaz cp. Ve benim durumumda, aynı telefon geçmişte MTP üzerinden çalışıyordu. Bazı telefonlar çalışıyor ve bazıları çalışmıyor. Tüm MTP üzerinden (telefon menüsünde MTP bağlantı seçeneğini seçtiğim için). güncelleme: sorunu buldu. Karttan telefon belleğine kopyalamaya çalışıyordu. Önce yerel dosya sistemine (örn. / Tmp) sonra telefon belleğine kopyalamam gerekiyordu. Görünüşe göre mtp-> mtp doğrudan kopyası çalışmıyor (henüz).
akostadinov

Ne gvfs-copy ne de gvfs-move benim için de işe yaramadı. Caja 1.8.2'yi kullanarak grafik arayüzünü kullanarak onları taşıyabildim ve dosyaları sildim.
Julien Lamarche

2

Cep telefonuma erişmek için, Linux Mint 17.1 Mate cihazımdaki Synaptic Paket Yöneticisi aracılığıyla mtp-server kurmak zorunda kaldım. Önceki Linux Mint 17 Mate, mtp sunucusu kurmamı gerektirmedi, cep telefonum usb portu üzerinden bağlandığında otomatik olarak tanındı. Belki bu bilgi yardımcı olacaktır.


Komut satırı üzerinden mi demek istiyorsun? Dediğim gibi, hala GUI dosya yöneticisi üzerinden erişebiliyorum.
David Pitchford 30'15

Caja ihtiyaçlarımı karşılıyor, bu yüzden komut satırında size yardımcı olamıyorum.
Scott

Teşekkürler Scott. Cevabınız bu hata mesajını 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.çözmeme yardımcı oldu: Adroid cihazım Mint 17 kurulumumda MTP üzerinden bağlanmadı. Muhtemelen 17.1 güncellemesinden sonra. apt-get install mtp-serversorunumu çözdü. Bu, bu sorunu olan diğer araştırmacılar için bana yardımcı olduğu için onlara yardımcı olabilir.

2

Bu sorunla Ubuntu 16.04 ve MTP modunda bağlı Samsung Galaxy SIII'de karşılaştım.

Oliver'ın gvfs-copy kullanma önerisini kullanmak, doğrudan NAS'ımdan telefona kopyalama işe yaramaz: (Nautilus da işe yaramadı). Bu, gvfs-copy'daki olası bir hata için bir çalışma turudur.

gvfs-copy '/run/user/1000/gvfs/smb-share:server=n2100,share=public/Music/The Story of Funk-1.mp2' '/run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C005%5D/Card/Music/Radio/'
Error copying file /run/user/1000/gvfs/smb-share:server=n2100,share=public/Music/The Story of Funk-1.mp2: Operation unsupported

Ayrıca, manpage tarafından önerilen alternatif yol biçimi de:

gvfs-copy 'smb://n2100/public/Music/The Story of Funk-1.mp2' 'mtp://[usb:001,005]/Card/Music/Radio'
Error copying file smb://n2100/public/Music/The Story of Funk-1.mp2: Operation unsupported

Ancak dosyayı önce yerel bir klasöre kopyalamak işe yaradı. {Teşekkürler akostadinov} (Nautilus da öyle).

gvfs-copy '/home/nigel/The Story of Funk-1.mp2' 'mtp://[usb:001,005]/Card/Music/Radio'

1

Debian Jessie'de, gvfs-copypaketten gvfs-binbenim için çalışıyor.

$ dpkg -S $(which gvfs-copy)
gvfs-bin: /usr/bin/gvfs-copy
$ dpkg -l gvfs-bin |tail -1
ii  gvfs-bin       1.22.2-1     amd64        userspace virtual filesystem - binaries

0

Cihazınızla senkronize etmek için rsync'i kullanmayı deneyebilirsiniz, ancak MTP aktarımlarında genellikle her dosya için saat ve tarih damgasını ayarlayamazsınız. Aktarımları daha hızlı yapmak için, -t seçeneğini değil, rsync için --size-only seçeneğini kullanmalısınız. / Run / user / 1000 / gvfs / mtp: host = blahblah / blah / blah gibi bir dizini mtp dizinine değiştirmenin en kolay yolunu buluyorum, sonra:

rsync -n -vlr --size-only --delete /source/of/files/ ./

-N seçeneği kuru çalışma gerçekleştirmektir. Sonuçlardan memnunsanız bu seçeneği silin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.