Estou executando o Linux Mint 17.1 de 64 bits (baseado no Ubuntu 14.04). Desde a atualização do Linux Mint 14 / Ubuntu 12.10, o script Python usado para sincronizar músicas com o meu Walkman parou de funcionar.
Anteriormente, quando eu montava o meu Walkman, ele aparecia automaticamente como o caminho /run/user/1000/gvfs/WALKMAN/Storage Media
e funcionava como qualquer outro sistema de arquivos: eu podia copiar faixas para ele, excluir faixas dele etc., por todo o Python. No entanto, não me lembro se tive que fazer alguma alteração para que isso acontecesse.
Desde a atualização para o Linux Mint 17 (e agora 17.1), quando eu monto o Walkman, ele aparece como o caminho /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/Storage Media
. Além disso, quando tento executar as mesmas operações de arquivo, elas agora falham. Eu descobri que isso acontece não apenas através do Python, mas também na linha de comando. Por exemplo:
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
Eu fiz algumas pesquisas sobre esse problema, mas a explicação mais comum parece ser que ele foi resolvido anteriormente por este PPA: https://launchpad.net/~langdalepl/+archive/ubuntu/gvfs-mtp
Mas agora, as versões do Ubuntu desde 13.10 contêm todas essas alterações, portanto, não é mais necessário. Então, por que ainda estou tendo esses erros? Ainda consigo fazer operações de arquivos no meu Walkman por meio de um gerenciador de arquivos gráficos (Caja, no Linux Mint), mas não através da linha de comando.
fonte
Respostas:
Um palpite: agora você está realmente usando o MTP para acessar o seu Walkman, e o MTP é péssimo.
Detalhes
O
Operation not supported
erro pode indicar que o seu Walkman usa uma implementação MTP que não suporta acesso "direto". De acordo com http://intr.overt.org/blog/?p=174, esse tipo de acesso direto é uma extensão específica do Android, portanto, provavelmente não é suportada pelo seu Walkman.Como resultado, você pode usar apenas algumas maneiras selecionadas para acessar arquivos no seu Walkman usando o MTP: acho que tudo o que lê ou grava arquivos em uma única operação é suportado, enquanto o acesso a partes selecionadas de um arquivo não é suportado para essas implementações do MTP . E parece que o
cp
Python sempre usa o último método de acesso e, portanto, falha.Solução possível
No entanto, você poderá substituir apenas
cp
porgvfs-copy
. Nos meus testes com um telefone Samsung Android (que também possui uma implementação de MTP prejudicada),gvfs-copy
foi possível copiar arquivos para o telefone onde houvecp
falha.fundo
Não consegui encontrar muita informação sobre essas limitações MTP dependentes do dispositivo; Aqui estão alguns trechos em que a situação é explicada um pouco:
/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
Por que funcionou antes?
Quanto ao motivo pelo qual o Walkman estava acessível
cp
no Mint 14, mas não no Mint 17, isso pode ser causado por uma troca interna de PTP para MTP como sistema de acesso. Pelo menos foi o que notei no dispositivo Samsung ao mudar do Ubuntu 12.04 para 14.04. O telefone suporta PTP e MTP, mas o Ubuntu 12.04 aparentemente apenas suporta PTP; então foi isso que foi usado. Como a nova versão do Ubuntu possui suporte interno para o MTP, isso agora é usado.Na verdade, pode até ser que o seu Walkman tenha sido acessado anteriormente como dispositivo de armazenamento em massa USB , que é o que os discos rígidos e unidades flash USB usam. Talvez por alguma razão o Linux (ou o seu Walkman) tenha decidido que o MTP era preferível ao acesso ao armazenamento em massa.
Você pode ver o método de acesso usado consultando a URL do Walkman (no Nautilus, vá para a pasta Walkman, pressione Ctrl + L e veja a barra de endereços): para MTP, o dispositivo é encontrado em, por exemplo.
mtp://[usb:001,004]/
enquanto para PTP é algo parecidogphoto2://[usb:001,004]/store_00010001
. Para acesso ao armazenamento em massa, o URL é apenas um caminho normal/media/WALKMAN
.Não sei se o MTP tem vantagens reais sobre o PTP ou o armazenamento em massa ou se é possível voltar ao PTP ou ao armazenamento em massa. No Linux, as implementações MTP e PTP têm seu próprio conjunto de bugs, portanto, pode depender do seu caso de uso qual é o melhor. O armazenamento em massa AFAIK é a opção mais desejável para o usuário, mas o suporte ao dispositivo nos telefones está diminuindo.
fonte
gvfs-copy
não funciona para mim melhor do que o normalcp
. E no meu caso, o mesmo telefone funcionava no passado através do MTP. Alguns telefones funcionam e outros não. Em todo MTP (como eu seleciono a opção de conexão MTP no menu do telefone). update: encontrou o problema. Estava tentando copiar do cartão para o armazenamento do telefone. Eu tive que copiar primeiro para o sistema de arquivos local (por exemplo, / tmp) e depois copiar para o armazenamento do telefone. Parece que a cópia direta mtp-> mtp ainda não funciona.Para acessar meu telefone celular, tive que instalar o servidor mtp através do Synaptic Package Manager no meu Linux Mint 17.1 Mate. Meu Linux Mint 17 Mate anterior não exigia a instalação do mtp-server, meu celular foi reconhecido automaticamente ao conectar via porta usb. Talvez essa informação ajude.
fonte
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.
E meu dispositivo Adroid não se conectou através do MTP na minha instalação do Mint 17. Provavelmente após uma atualização 17.1.apt-get install mtp-server
resolveu meu problema. Isso é para outros usuários com esse problema podem ajudá-los, como me ajudou.Eu me deparei com esse mesmo problema no Ubuntu 16.04 e no Samsung Galaxy SIII conectado no modo MTP.
Usando a sugestão de Oliver para usar gvfs-copy, copiar diretamente do meu NAS para o telefone não funciona: (nem o Nautilus). Esta é uma solução alternativa para um possível bug no gvfs-copy.
Nem o formato de caminho alternativo sugerido pela página de manual:
Copiar o arquivo para uma pasta local primeiro, no entanto, funcionou. {Obrigado akostadinov} (e o Nautilus também).
fonte
No Debian Jessie,
gvfs-copy
do pacotegvfs-bin
funciona para mim.fonte
Você pode tentar usar o rsync para sincronizar com o seu dispositivo, embora, com as transferências do MTP, geralmente não seja possível definir a data e hora para cada arquivo. Para tornar as transferências mais rápidas, você deve usar a opção --size-only para rsync e não a opção -t. Acho mais fácil alterar o diretório para o diretório mtp, como / run / user / 1000 / gvfs / mtp: host = blahblah / blah / blah e execute:
A opção -n é executar uma execução a seco. Apenas apague essa opção se estiver satisfeito com os resultados.
fonte