GVFS를 통해 마운트 된 MTP 장치에서 파일 작업을 수행 할 수 없습니다 :“작업이 지원되지 않습니다”


13

Linux Mint 17.1 64 비트를 실행 중입니다 (Ubuntu 14.04 기반). Linux Mint 14 / Ubuntu 12.10에서 업그레이드 한 이후로 Walkman과 음악을 동기화하는 데 사용하는 Python 스크립트가 작동을 멈췄습니다.

이전에는 Walkman을 마운트했을 때 자동으로 경로로 표시되어 /run/user/1000/gvfs/WALKMAN/Storage Media다른 파일 시스템처럼 작동합니다. Python을 통해 트랙을 복사하거나 트랙을 삭제할 수 있습니다. 그러나 이것이 일어나도록 변경해야했는지 기억이 나지 않습니다.

Walkman을 마운트 할 때 Linux Mint 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

이 문제에 대한 조사를 수행했지만 가장 일반적인 설명은 이전에이 PPA에 의해 해결 된 것으로 보입니다. https://launchpad.net/~langdalepl/+archive/ubuntu/gvfs-mtp

그러나 13.10 이후의 Ubuntu 버전에는 이러한 모든 변경 사항이 포함되어 있으므로 더 이상 필요하지 않습니다. 그렇다면 왜 여전히 이러한 오류가 발생합니까? 명령 행이 아닌 그래픽 파일 관리자 (Caja, Linux Mint)를 통해 Walkman에서 파일 작업을 계속 수행 할 수 있습니다.


나는 그것이 당신을 도울 수 있다고 생각합니다 : github.com/hanwen/go-mtpfs
PersianGulf

내 장치는 이미 MTP로 마운트되어 있지만 문제는 아닙니다.
David Pitchford

답변:


15

추측 : 이제 실제로 Walkman에 액세스하기 위해 MTP를 사용하고 있으며 MTP는 짜증납니다.

세부

Operation not supported오류는 Walkman이 "직접"액세스를 지원하지 않는 MTP 구현을 사용하고 있음을 나타낼 수 있습니다. http://intr.overt.org/blog/?p=174 에 따르면 이런 종류의 직접 액세스는 Android 전용 확장이므로 Walkman에서 지원하지 않을 수 있습니다.

결과적으로, MTP를 사용하여 Walkman의 파일에 액세스하는 몇 가지 선택된 방법 만 사용할 수 있습니다. 한 번의 작업으로 파일을 읽거나 쓰는 모든 것이 지원되는 반면 파일의 선택된 부분에 대한 액세스는 이러한 MTP 구현에서 지원되지 않는 것 같습니다. . 그리고 cp파이썬은 항상 후자의 액세스 방법을 사용하므로 실패합니다.

가능한 해결 방법

그러나, 당신은 대체 할 수 있습니다 cpgvfs-copy. MTP 구현이 무너진 Samsung Android 휴대 전화로 테스트 한 결과 실패한 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 / + bug / 1157583 / comments / 1

왜 이전에 작동 했습니까?

Walkman이 cpMint 14에서 액세스 할 수 있지만 Mint 17에서는 액세스 할 수없는 이유에 대해서는 액세스 시스템으로서 PTP 에서 MTP 로의 내부 스위치로 인해 발생할 수 있습니다 . 적어도 우분투 12.04에서 14.04로 전환 할 때 삼성 장치에 대해 알았습니다. 전화는 PTP와 MTP를 모두 지원하지만 Ubuntu 12.04는 분명히 PTP 만 지원합니다. 그것이 사용 된 것입니다. 새로운 Ubuntu 버전에는 MTP가 기본적으로 지원되므로이 버전이 대신 사용됩니다.

실제로 Walkman이 이전에 USB 대용량 저장 장치 로 액세스 된 경우 일 수도 있는데, 이는 USB 하드 디스크 및 플래시 드라이브가 사용하는 것입니다. 아마도 어떤 이유로 Linux (또는 Walkman)는 MTP가 Mass Storage 액세스보다 선호된다고 결정했습니다.

Walkman의 URL을보고 사용 된 액세스 방법을 볼 수 있습니다 (Nutilus에서 Walkman 폴더로 이동 한 후 Ctrl + L을 누르고 주소 표시 줄을보십시오). MTP의 경우 장치는 예를 들어 있습니다. mtp://[usb:001,004]/PTP의 경우와 같습니다 gphoto2://[usb:001,004]/store_00010001. 대용량 저장소 액세스의 경우 URL은과 같은 일반적인 경로 /media/WALKMAN입니다.

MTP가 PTP 또는 대용량 저장소에 비해 실제로 이점이 있는지 또는 PTP 또는 대용량 저장소로 다시 전환 할 수 있는지 여부는 알 수 없습니다. Linux에서는 MTP 및 PTP 구현에 고유 한 버그 세트가 있으므로 사용 사례에 따라 어느 쪽이 더 좋을 수 있습니다. AFAIK 대용량 저장소는 사용자에게 가장 바람직한 옵션이지만 전화의 장치 지원은 쇠퇴하고 있습니다.


2
gvfs-copy를 소개해 주셔서 감사합니다. 그러나 디렉토리를 재귀 적으로 복사하지 않는 것은 엄청납니다. 재귀 적으로 할 수있는 다른 것이 있습니까?
TuxForLife

1
또한 gvfs-copy평소보다 나에게 더 잘 작동하지 않습니다 cp. 그리고 제 경우에는 동일한 전화가 과거 MTP를 통해 작동했습니다. 일부 전화는 작동하지만 일부는 작동하지 않습니다. 전화 메뉴에서 MTP 연결 옵션을 선택하면 MTP 전체에 적용됩니다. 업데이트 : 문제를 발견했습니다. 카드에서 휴대 전화 저장소로 복사하려고했습니다. 먼저 로컬 파일 시스템 (예 : / tmp)에 복사 한 다음 전화 저장 장치에 복사해야했습니다. mtp-> mtp 직접 복사가 작동하지 않는 것 같습니다 (아직).
akostadinov

gvfs-copy 또는 gvfs-moved도 나에게 효과적이지 않았다. Caja 1.8.2를 사용하여 그래픽 인터페이스를 사용하여 파일을 이동 한 다음 파일을 삭제할 수있었습니다.
Julien Lamarche

2

휴대폰에 액세스하려면 Linux Mint 17.1 Mate에서 Synaptic Package Manager를 통해 mtp-server를 설치해야했습니다. 이전의 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 기기가 Mint 17 설치에서 MTP를 통해 연결되지 않았습니다. 아마 17.1 업그레이드 후. apt-get install mtp-server내 문제를 해결했다. 이것은이 문제가있는 다른 검색 자에게 도움이 될 수 있습니다.

2

Ubuntu 16.04와 MTP 모드로 연결된 Samsung Galaxy SIII 에서이 문제가 발생했습니다.

Oliver의 제안을 사용하여 gvfs-copy를 사용하면 NAS에서 전화로 직접 복사 할 수 없습니다 (노틸러스도 마찬가지). 이것은 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

그러나 먼저 파일을 로컬 폴더에 복사하면 작동했습니다. {감사합니다. akostadinov} (그리고 노틸러스도 마찬가지였습니다).

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

MTP 전송에서는 일반적으로 각 파일의 시간 및 날짜 스탬프를 설정할 수 없지만 rsync를 사용하여 장치와 동기화 할 수 있습니다. 전송 속도를 높이려면 -t 옵션이 아니라 rsync에 --size-only 옵션을 사용해야합니다. 디렉토리를 / run / user / 1000 / gvfs / mtp : host = blahblah / blah / blah와 같은 mtp 디렉토리로 변경하는 것이 가장 쉽다는 것을 알았습니다.

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

-n 옵션은 드라 이런을 수행하는 것입니다. 결과에 만족하면 해당 옵션을 지우십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.