जीवीएफएस के माध्यम से स्थापित एमटीपी डिवाइस पर फ़ाइल संचालन करने में असमर्थ: "ऑपरेशन समर्थित नहीं"


13

मैं लिनक्स मिंट 17.1 64-बिट (उबंटू 14.04 पर आधारित) चला रहा हूं। जब से लिनक्स मिंट 14 / उबंटू 12.10 से अपग्रेड किया जा रहा है, पायथन लिपि जिसका उपयोग मैं अपने वॉकमैन को संगीत सिंक करने के लिए करता हूं, ने काम करना बंद कर दिया है।

पहले, जब मैंने अपना वॉकमैन माउंट किया था, तो यह स्वचालित रूप से पथ के रूप में दिखाई /run/user/1000/gvfs/WALKMAN/Storage Mediaदेगा और किसी भी अन्य फ़ाइल सिस्टम की तरह काम करेगा: मैं पायथन के माध्यम से पटरियों को कॉपी कर सकता हूं, इससे पटरियों को हटा सकता हूं, आदि। हालाँकि, मुझे यह याद नहीं है कि ऐसा होने के लिए मुझे कोई बदलाव करना था।

लिनक्स मिंट 17 (और अब 17.1) में अपग्रेड करने के बाद से, जब मैं वॉकमैन को माउंट करता हूं, तो यह पथ के रूप में दिखाई देता है /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/Storage Media। इसके अलावा, जब मैं एक ही फ़ाइल संचालन को चलाने का प्रयास करता हूं, तो वे अब विफल हो जाते हैं। मुझे पता चला है कि यह केवल पायथन के माध्यम से नहीं होता है, बल्कि कमांड लाइन पर भी होता है। उदाहरण के लिए:

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

मैंने इस समस्या पर कुछ शोध किया है, लेकिन सबसे आम स्पष्टीकरण यह लगता है कि यह पूर्व में इस पीपीए द्वारा हल किया गया था: https://launchpad.net/~langdalepl/+archive/ubuntu/gvfs-mtp

लेकिन अब, 13.10 के बाद के उबंटू संस्करणों में ये सभी बदलाव हैं, इसलिए इसे अब आवश्यक नहीं होना चाहिए। तो मैं अभी भी इन त्रुटियों को क्यों कर रहा हूँ? मैं अभी भी एक ग्राफिकल फ़ाइल प्रबंधक (लिनक्स मिंट पर काजा) के माध्यम से अपने वॉकमैन पर फ़ाइल संचालन करने में सक्षम हूं, केवल कमांड लाइन के माध्यम से नहीं।


मुझे लगता है कि यह आपकी मदद कर सकता है: github.com/hanwen/go-mtpfs
फ़ारसीगुल्फ़

मेरा डिवाइस पहले से ही MTP के रूप में माउंट करता है ... यह समस्या नहीं है।
डेविड पिचफोर्ड 1

जवाबों:


15

एक अनुमान: अब आप वास्तव में अपने वॉकमैन तक पहुँचने के लिए एमटीपी का उपयोग कर रहे हैं, और एमटीपी बेकार है।

विवरण

Operation not supportedत्रुटि का संकेत हो सकता है कि आपके वॉकमेन एक एमटीपी कार्यान्वयन का समर्थन नहीं करता "प्रत्यक्ष" पहुँच का उपयोग करता है। Http://intr.overt.org/blog/?p=174 के अनुसार इस तरह की सीधी पहुंच एक Android- विशिष्ट एक्सटेंशन है, इसलिए यह संभवतः आपके वॉकमैन द्वारा समर्थित नहीं है।

परिणामस्वरूप, आप केवल एमटीपी का उपयोग करके अपने वॉकमेन पर फ़ाइलों तक पहुंचने के लिए कुछ चुनिंदा तरीकों का उपयोग कर सकते हैं: मुझे लगता है कि एक एकल ऑपरेशन में फ़ाइलों को पढ़ने या लिखने में सब कुछ समर्थित है, जबकि इन एमटीपी कार्यान्वयन के लिए किसी फ़ाइल के चयनित भागों तक पहुंच समर्थित नहीं है। । और ऐसा प्रतीत होता है कि cpऔर पायथन हमेशा बाद की पहुंच विधि का उपयोग करते हैं और इसलिए विफल होते हैं।

संभव समाधान

हालाँकि, आप बस cpद्वारा प्रतिस्थापित करने में सक्षम हो सकते हैं gvfs-copy। सैमसंग एंड्रॉइड फोन के साथ मेरे परीक्षणों में (जिसमें एक अपंग एमटीपी कार्यान्वयन भी है) gvfs-copyफोन की फाइलों को कॉपी करने में सक्षम था जहां cpविफल रहा।

पृष्ठभूमि

मुझे इन डिवाइस-निर्भर MTP सीमाओं के बारे में अधिक जानकारी नहीं मिल सकी; यहां कुछ स्निपेट हैं जहां स्थिति को कुछ हद तक समझाया गया है:

/ubuntu//a/284831 https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/1389001/comments/2 https://bugs.launchpad.net/ubuntu/+source / gvfs / + बग / 1,157,583 / टिप्पणी / 1

इससे पहले क्यों काम किया?

जैसे कि आपका वॉकमैन cpमिंट 14 में नहीं बल्कि मिंट 17 में सुलभ था , यह PTP से MTP तक एक्सेस सिस्टम के रूप में आंतरिक स्विच के कारण हो सकता है। उबंटू 12.04 से 14.04 तक स्विच करते समय कम से कम यही मैंने सैमसंग डिवाइस के लिए देखा। फोन PTP और MTP दोनों का समर्थन करता है, लेकिन Ubuntu 12.04 जाहिरा तौर पर केवल PTP का समर्थन करता है; इसलिए इसका उपयोग किया गया। चूंकि नए उबंटू संस्करण में एमटीपी के लिए अंतर्निहित समर्थन है, इसलिए अब इसका उपयोग किया जाता है।

वास्तव में यह भी हो सकता है कि आपके वॉकमैन को पहले USB मास स्टोरेज डिवाइस के रूप में एक्सेस किया गया था , जो कि USB हार्ड डिस्क और फ्लैश ड्राइव का उपयोग करता है। हो सकता है कि किसी कारण से लिनक्स (या आपका वॉकमैन) ने निर्णय लिया कि एमटीपी मास स्टोरेज एक्सेस पर बेहतर था।

आप वॉकमैन के लिए URL (Nautilus में, वॉकमैन फ़ोल्डर में जाएं, Ctrl + L दबाएं और पता बार देखें) के लिए उपयोग की गई एक्सेस विधि देख सकते हैं: MTP के लिए डिवाइस उदा के तहत पाया जाता है। mtp://[usb:001,004]/जबकि PTP के लिए यह कुछ ऐसा है gphoto2://[usb:001,004]/store_00010001। मास स्टोरेज के लिए URL एक सामान्य रास्ता है /media/WALKMAN

मुझे नहीं पता कि एमटीपी का पीटीपी या मास स्टोरेज पर कोई वास्तविक लाभ है या पीटीपी या मास स्टोरेज पर वापस स्विच करना संभव है या नहीं। लिनक्स के तहत, एमटीपी और पीटीपी कार्यान्वयन दोनों के पास बग्स का अपना सेट है, इसलिए यह आपके उपयोग के मामले पर निर्भर हो सकता है कि कौन सा बेहतर है। AFAIK मास स्टोरेज उपयोगकर्ता के लिए सबसे वांछनीय विकल्प है लेकिन फोन में डिवाइस का समर्थन कम हो रहा है।


2
मुझे gvfs-copy से परिचित कराने के लिए धन्यवाद। हालाँकि, यह एक विशाल बम्मर है जो पुनरावर्ती रूप से निर्देशिकाओं की नकल नहीं करता है। वहाँ एक और मैं इसे पुनरावर्ती कर सकता हूँ?
TuxForLife

1
gvfs-copyसामान्य से बेहतर मेरे लिए भी काम नहीं करता है cp। और मेरे मामले में, उसी फोन ने एमटीपी के अतीत में काम किया। कुछ फोन काम करते हैं और कुछ अब नहीं। सभी एमटीपी (जैसा कि मैं फोन मेनू में एमटीपी कनेक्ट विकल्प का चयन करता हूं)। अद्यतन: समस्या मिली। कार्ड से फोन स्टोरेज में कॉपी करने की कोशिश कर रहा था। मुझे पहले स्थानीय फाइल सिस्टम पर कॉपी करना था (उदाहरण के लिए / tmp) फिर फोन स्टोरेज पर कॉपी करना। Mtp-> mtp डायरेक्ट कॉपी की तरह काम नहीं करता है (अभी तक)।
अकोस्टैडिनोव

मेरे लिए न तो gvfs-copy या gvfs- स्थानांतरित ने काम किया। काजा 1.8.2 का उपयोग करते हुए, मैं ग्राफिक इंटरफ़ेस का उपयोग करके उन्हें स्थानांतरित करने और फिर फ़ाइलों को हटाने में सक्षम था।
जूलियन लैमरचे

2

अपने सेल फोन का उपयोग करने के लिए मुझे अपने लिनक्स मिंट 17.1 मेट पर Synaptic Package Manager के माध्यम से mtp-server स्थापित करना था। मेरे पिछले लिनक्स मिंट 17 मेट को मुझे mtp-server स्थापित करने की आवश्यकता नहीं थी, मेरे सेल फोन को usb पोर्ट के माध्यम से कनेक्ट करने पर स्वचालित रूप से मान्यता प्राप्त थी। शायद यह जानकारी मदद करेगी।


क्या आप कमांड लाइन के माध्यम से मतलब है? जैसा कि मैंने कहा, मैं अभी भी GUI फ़ाइल प्रबंधक के माध्यम से इसे एक्सेस कर सकता हूं।
डेविड पिचफोर्ड 1

काजा मेरी जरूरतों का जवाब देता है, इसलिए मैं कमांड लाइन के साथ आपकी मदद नहीं कर सकता।
स्कॉट

शुक्रिया स्कॉट। आपके उत्तर ने मुझे इस त्रुटि संदेश को हल करने में मदद की: 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.और मेरे Adroid डिवाइस ने अपने मिंट 17 इंस्टॉलेशन पर MTP के माध्यम से कनेक्ट नहीं किया। संभवतः 17.1 अपग्रेड के बाद। apt-get install mtp-serverमेरी समस्या हल कर दी। यह इस समस्या के साथ अन्य खोजकर्ताओं के लिए है जो मेरी मदद कर सकता है।

2

मैं Ubuntu 16.04 और MTP मोड में जुड़े सैमसंग गैलेक्सी SIII पर इस समस्या में भाग गया।

Gvfs-copy का उपयोग करने के लिए ओलिवर के सुझाव का उपयोग करते हुए, मेरे NAS से सीधे फ़ोन पर कॉपी करना काम नहीं करता है: (ना ही Nautilit)। यह gvfs-copy में संभावित बग के लिए एक कार्य-दौर है।

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

न ही मैनपेज द्वारा सुझाए गए वैकल्पिक पथ प्रारूप:

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

फ़ाइल को किसी स्थानीय फ़ोल्डर में कॉपी करना हालांकि पहले काम करता था। {धन्यवाद एकोस्टाडिनोव} (और ऐसा ही नॉटिलस ने किया)।

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

1

डेबियन जेसी पर, gvfs-copyपैकेज से gvfs-binमेरे लिए काम करता है।

$ 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

आप अपने डिवाइस के साथ सिंक करने के लिए rsync का उपयोग करने का प्रयास कर सकते हैं, हालांकि MTP ट्रांसफ़र के साथ आप आमतौर पर प्रत्येक फ़ाइल के लिए समय और दिनांक टिकट सेट नहीं कर सकते हैं। स्थानान्तरण को जल्दी करने के लिए, आपको rsync के लिए - केवल-विकल्प का उपयोग करना चाहिए और -t विकल्प का नहीं। मुझे निर्देशिका को mtp निर्देशिका में बदलना आसान है, जैसे / रन / उपयोगकर्ता / 1000 / gvfs / mtp: host = blahblah / blah / blah, फिर चलाएँ:

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

-N विकल्प सूखी रन करने के लिए है। यदि आप परिणामों से संतुष्ट हैं तो बस उस विकल्प को मिटा दें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.