ไม่สามารถดำเนินการกับไฟล์บนอุปกรณ์ MTP ที่เมาท์ผ่าน GVFS:“ ไม่รองรับการทำงาน”


13

ฉันใช้ Linux Mint 17.1 64 บิต (อ้างอิงจาก Ubuntu 14.04) นับตั้งแต่อัปเกรดจาก Linux Mint 14 / Ubuntu 12.10 สคริปต์ Python ที่ฉันใช้เพื่อซิงค์เพลงกับ Walkman ของฉันหยุดทำงาน

ก่อนหน้านี้เมื่อฉันติดตั้ง Walkman ของฉันมันจะปรากฏเป็นพา ธ โดยอัตโนมัติ/run/user/1000/gvfs/WALKMAN/Storage Mediaและทำงานเหมือนกับระบบไฟล์อื่น ๆ : ฉันสามารถคัดลอกแทร็กไปที่มันลบแทร็กออกจากแทร็กอื่น ๆ ทั้งหมดผ่าน Python อย่างไรก็ตามฉันจำไม่ได้ว่าฉันต้องทำการเปลี่ยนแปลงอะไรเพื่อให้เรื่องนี้เกิดขึ้น

ตั้งแต่การอัพเกรดลินุกซ์มิ้นท์ 17 (และตอนนี้ 17.1) เมื่อฉันติด Walkman /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/Storage Mediaมันแสดงขึ้นเป็นเส้นทาง นอกจากนี้เมื่อฉันพยายามเรียกใช้ไฟล์เดียวกันพวกเขาก็ล้มเหลว ฉันได้ค้นพบว่าสิ่งนี้เกิดขึ้นไม่เพียงผ่าน Python เท่านั้น แต่ยังอยู่ในบรรทัดคำสั่งด้วย ตัวอย่างเช่น:

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

ฉันได้ทำการวิจัยเกี่ยวกับปัญหานี้แล้ว แต่คำอธิบายที่พบได้บ่อยที่สุดดูเหมือนว่ามันเคยได้รับการแก้ไขโดย PPA นี้: https://launchpad.net/~langdalepl/+archive/ubuntu/gvfs-mtp

แต่ตอนนี้อูบุนตูตั้งแต่ 13.10 มีการเปลี่ยนแปลงเหล่านี้ทั้งหมดดังนั้นจึงไม่จำเป็นต้องใช้อีกต่อไป เหตุใดฉันจึงยังคงมีข้อผิดพลาดเหล่านี้อยู่ ฉันยังคงสามารถดำเนินการกับไฟล์บน Walkman ของฉันผ่านตัวจัดการไฟล์กราฟิก (Caja บน Linux Mint) ได้โดยไม่ต้องใช้บรรทัดคำสั่ง


ฉันคิดว่ามันสามารถช่วยคุณได้: github.com/hanwen/go-mtpfs
PersianGulf

อุปกรณ์ของฉันเมานต์เป็น MTP แล้ว ... นั่นไม่ใช่ปัญหา
David Pitchford

คำตอบ:


15

เดา: ตอนนี้คุณกำลังใช้งาน MTP เพื่อเข้าถึง Walkman ของคุณและ MTP ก็แย่แล้ว

รายละเอียด

Operation not supportedข้อผิดพลาดที่อาจบ่งชี้ว่า Walkman ของคุณใช้การดำเนินการ MTP ที่ไม่สนับสนุนการเข้าถึง "โดยตรง" อ้างอิงจากhttp://intr.overt.org/blog/?p=174การเข้าถึงโดยตรงประเภทนี้เป็นส่วนขยายเฉพาะสำหรับ Android ดังนั้นจึงอาจไม่ได้รับการสนับสนุนจาก Walkman ของคุณ

ด้วยเหตุนี้คุณสามารถใช้วิธีที่ได้รับการเลือกเพื่อเข้าถึงไฟล์ใน Walkman ของคุณโดยใช้ MTP: ฉันเดาว่าทุกอย่างที่อ่านหรือเขียนไฟล์ในการดำเนินงานเดียวได้รับการสนับสนุนในขณะที่การเข้าถึงส่วนที่เลือกของไฟล์ไม่รองรับการใช้งาน MTP เหล่านี้ . และปรากฏว่าcpและ Python ใช้วิธีการเข้าถึงแบบหลังและจะล้มเหลวเสมอ

วิธีแก้ปัญหาที่เป็นไปได้

แต่คุณอาจจะเพียงแค่เปลี่ยนจากcp gvfs-copyในการทดสอบของฉันกับโทรศัพท์ซัมซุง Android (ซึ่งมีการใช้งาน MTP ที่พิการเช่นกัน) 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 / + ข้อผิดพลาด / 1157583 / ความเห็น / 1

ทำไมมันทำงานก่อน

สำหรับสาเหตุที่ Walkman ของคุณเข้าถึงได้cpใน Mint 14 แต่ไม่ใช่ใน Mint 17 อาจเกิดจากสวิตช์ภายในจากPTPเป็นMTPเป็นระบบการเข้าถึง อย่างน้อยนั่นคือสิ่งที่ฉันสังเกตเห็นสำหรับอุปกรณ์ Samsung เมื่อเปลี่ยนจาก Ubuntu 12.04 เป็น 14.04 โทรศัพท์รองรับทั้ง PTP และ MTP แต่ Ubuntu 12.04 รองรับเฉพาะ PTP เท่านั้น นั่นคือสิ่งที่ใช้ เนื่องจาก Ubuntu รุ่นใหม่นั้นรองรับ MTP ในตัวตอนนี้จึงใช้แทน

ที่จริงแล้วอาจเป็นกรณีที่ Walkman ของคุณเคยใช้เป็นอุปกรณ์เก็บข้อมูล USBซึ่งเป็นฮาร์ดดิสก์ USB และแฟลชไดรฟ์ที่ใช้ อาจด้วยเหตุผลบางประการ Linux (หรือ Walkman ของคุณ) ตัดสินใจว่า MTP นั้นดีกว่าการเข้าถึง Mass Storage

คุณสามารถดูวิธีการเข้าถึงที่ใช้โดยดู URL ของ Walkman (ใน Nautilus ไปที่โฟลเดอร์ Walkman กด Ctrl + L แล้วดูแถบที่อยู่): สำหรับ MTP ที่พบอุปกรณ์ดังกล่าว mtp://[usb:001,004]/ในขณะที่ PTP มันเป็นเช่นgphoto2://[usb:001,004]/store_00010001นั้น สำหรับการเข้าถึง Mass Storage URL /media/WALKMANที่เป็นเพียงเส้นทางปกติเช่น

ฉันไม่ทราบว่า MTP มีข้อได้เปรียบจริงใด ๆ เหนือ PTP หรือ Mass Storage หรือว่าเป็นไปได้ที่จะเปลี่ยนกลับเป็น PTP หรือ Mass Storage ภายใต้ Linux ทั้งการใช้งาน MTP และ PTP มีชุดของตัวเองของข้อบกพร่องดังนั้นมันอาจขึ้นอยู่กับกรณีการใช้งานของคุณที่หนึ่งจะดีกว่า AFAIK Mass Storage เป็นตัวเลือกที่ต้องการมากที่สุดสำหรับผู้ใช้ แต่การสนับสนุนอุปกรณ์ในโทรศัพท์กำลังลดลง


2
ขอบคุณที่แนะนำให้ฉันรู้จักกับ gvfs-copy อย่างไรก็ตามมันเป็นเรื่องใหญ่มากมันไม่ได้คัดลอกไดเรกทอรีซ้ำ มีอีกที่ฉันสามารถทำซ้ำได้หรือไม่
TuxForLife

1
ยังไม่ทำงานสำหรับฉันดีกว่าปกติgvfs-copy cpและในกรณีของฉันโทรศัพท์รุ่นเดียวกันทำงานในอดีตผ่าน MTP โทรศัพท์บางรุ่นใช้งานได้และบางรุ่นไม่ทำงาน All over MTP (เพราะฉันเลือกตัวเลือกการเชื่อมต่อ MTP ในเมนูโทรศัพท์) อัปเดต: พบปัญหา พยายามคัดลอกจากการ์ดไปยังที่จัดเก็บข้อมูลในโทรศัพท์ ฉันต้องคัดลอกไปยังระบบแฟ้มท้องถิ่นก่อน (เช่น / tmp) จากนั้นคัดลอกไปยังที่เก็บข้อมูลโทรศัพท์ ดูเหมือนว่าสำเนาโดยตรงของ mtp-> mtp ไม่ทำงาน (ยัง)
akostadinov

ทั้ง gvfs-copy หรือ gvfs-move ก็ใช้ได้สำหรับฉันเช่นกัน ใช้ Caja 1.8.2 ฉันสามารถย้ายพวกเขาโดยใช้ส่วนต่อประสานกราฟิกแล้วลบไฟล์
Julien Lamarche

2

ในการเข้าถึงโทรศัพท์มือถือของฉันฉันต้องติดตั้ง mtp-server ผ่านทาง Synaptic Package Manager บน Linux Mint 17.1 Mate ของฉัน Linux Mint 17 Mate ตัวก่อนหน้าของฉันไม่ต้องการให้ฉันติดตั้ง mtp-server โทรศัพท์มือถือของฉันถูกจดจำโดยอัตโนมัติเมื่อทำการเชื่อมต่อผ่านพอร์ต usb ข้อมูลนี้อาจจะช่วยได้


คุณหมายถึงผ่านทางบรรทัดคำสั่งหรือไม่ อย่างที่ฉันบอกไปฉันยังคงสามารถเข้าถึงได้ผ่านทางตัวจัดการไฟล์ GUI
David Pitchford

Caja ตอบสนองความต้องการของฉันดังนั้นฉันไม่สามารถช่วยคุณในบรรทัดคำสั่ง
Scott

ขอบคุณสก็อต คำตอบของคุณช่วยฉันแก้ไขข้อผิดพลาดนี้: 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 ของฉันไม่ได้เชื่อมต่อผ่าน MTP ในการติดตั้ง Mint 17 ของฉัน อาจเป็นหลังจากการอัพเกรด 17.1 apt-get install mtp-serverแก้ไขปัญหาของฉัน นี่สำหรับผู้ค้นหารายอื่นที่มีปัญหานี้อาจช่วยพวกเขาได้เพราะมันช่วยฉันได้

2

ฉันพบปัญหาใน Ubuntu 16.04 และ Samsung Galaxy SIII ที่เชื่อมต่อในโหมด MTP

การใช้คำแนะนำของ Oliver เพื่อใช้ gvfs-copy การคัดลอกโดยตรงจาก NAS ของฉันไปยังโทรศัพท์ไม่ทำงาน: (ไม่มี Nautilus) นี่คือการแก้ไขข้อผิดพลาดในรูปแบบ 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

รูปแบบพา ธ สำรองไม่แนะนำโดย manpage:

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

การคัดลอกไฟล์ไปยังโฟลเดอร์ในเครื่องก่อน แต่ใช้งานได้ {ขอบคุณ akostadinov} (และ Nautilus ก็เช่นกัน)

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

1

บน Debian Jessie 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 เช่น / run / user / 1000 / gvfs / mtp: host = blahblah / blah / blah / จากนั้นเรียกใช้:

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

ตัวเลือก -n คือการดำเนินการแห้ง เพียงลบตัวเลือกนั้นถ้าคุณพอใจกับผลลัพธ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.