Desde o Ubuntu 13.04 , o acesso ao armazenamento de dispositivos externos via MTP deve funcionar imediatamente através de um módulo GVFS-MTP.
Embora essa pergunta seja sobre o Galaxy Nexus, também são suportados outros dispositivos Android, players de mídia habilitados para Windows Phones e MTP .
Para solução de problemas, consulte esta resposta .
Estou tendo alguns problemas para que as transferências de arquivos funcionem no MTP com o Galaxy Nexus. Estou usando o Kubuntu 11.10 de 64 bits, e foi isso que fiz e os resultados que obtive:
Adicionada regra para o dispositivo em
/etc/udev/rules.d/51-android.rules
. A regra é a seguinte e funciona paraadb
:SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
Reiniciado
udev
(e o computador apenas para garantir).
O Adb funciona e todos os métodos de leitura do dispositivo via MTP parecem funcionar (tentei montar com mtpfs, gmtp e usar o pacote mtp-tools diretamente). No entanto, quando tento escrever no dispositivo, nada do que tentei funciona.
Como exemplo, a execução mtp-newfolder test_dir 0 0
fornece a seguinte saída:
libmtp version: 1.1.0
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
Folder creation failed.
ERROR: Could not close session!
Se eu correr mtp-folders
atrás de uma mtp-newfolder com falha sem reconectar o dispositivo, obtenho a seguinte saída:
Attempting to connect device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
mtp-folders: Successfully connected
Friendly name: (NULL)
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_all_metadata_fast(): could not get proplist of all objects.
Error 2: (Look this up in ptp.h for an explanation.)
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: (Look this up in ptp.h for an explanation.)
LIBMTP_Get_Storage()
: Resource temporarily unavailable
OK.
Acompanhado pelo seguinte em dmesg:
[ 1000.912082] usb 2-4: reset high speed USB device number 7 using ehci_hcd
[ 1001.045877] usb 2-4: usbfs: process 3166 (mtp-folders) did not claim interface 0 before use
Alguém tem alguma idéia sobre o que fazer?
EDITAR:
Eu também tentei o modo PTP. Mais uma vez, a leitura funciona bem, mas não consigo escrever nada no dispositivo.
Respostas:
Desde o Ubuntu 13.04, o acesso ao armazenamento de dispositivos externos via MTP funciona imediatamente, por meio de um módulo GVFS-MTP.
Pergunta relacionada: Existem planos para melhorar o suporte a mtp em versões futuras do Ubuntu?
Para solução de problemas, consulte esta resposta .
Para mim, era um problema não ter os
libmtp
arquivos mais recentes no meu sistema. Então resolvi o problema e fiz esse artigo para ajudar outras pessoas .Resumo do link: Houve um bug no
libmtp
pacote com versões mais antigas do Ubuntu. Este bug já foi corrigido na última fonte delibmtp
.fonte
Você já tentou a sugestão de Bilal Akhtar no omgubuntu ?
Conectando seu telefone ou tablet Android ao Ubuntu com MTPFS
Configuração
Primeiro, instale as ferramentas necessárias com
sudo apt-get install mtp-tools mtpfs
Conecte seu Galaxy Nexus ao seu computador. No seu telefone, abra a gaveta de notificações e clique em "Tipo de conexão USB". Verifique se MTP está selecionado.
Em seguida, execute estes comandos:
Você deve obter uma saída como esta:
Agora, execute estes comandos:
Uma janela do Gedit deve abrir. Digite este texto, tudo em uma única linha :
Substitua
VENDORID
pelo queidVendor
você anotou anteriormente. Da mesma forma, substituaPRODUCTID
pelo queidProduct
você anotou. No meu caso, eles eram04e8
e685c
respectivamente, mas poderiam ter sido diferentes para você.Salve e feche o arquivo. Em seguida, desconecte o telefone e execute estes comandos:
$USER
é uma variável de shell padrão e deve ser o usuário que você deseja adicionar (geralmente você mesmo). Agora, execute este comando:Na janela do Gedit, remova o
#
no início da última linha (a que começa com#user_allow_other
) assim:Você está quase pronto! Agora, reinicie o computador e execute estes três comandos:
Uso
Conecte seu telefone, verifique se ele está usando MTP e execute
android-connect
.Voila! Agora você pode navegar pelo conteúdo do seu telefone Android usando o Nautilus. Basta iniciar o gerenciador de arquivos e, na barra lateral, clicar em GalaxyNexus para navegar pelo conteúdo do telefone, como faria com um pen drive. Você também pode adicionar, remover e modificar arquivos como um sistema de arquivos normal.
Para remover o telefone com segurança, basta executar
android-disconnect
.Conclusão
A partir de agora, você só precisa correr
android-connect
para montar o telefone eandroid-disconnect
removê-lo com segurança. Todo o resto deve ser tratado automaticamente. Tentei várias maneiras de fazer com que a montagem e a desmontagem acontecessem automaticamente na conexão por cabo, mas essa foi a melhor solução que eu consegui encontrar.Esses dois comandos não exigirão permissões de root para serem executados. Todos os usuários que são membros do grupo de usuários de fusíveis devem poder executar esses comandos sem acesso root.
É isso aí! Você conectou com sucesso o seu telefone Ice Cream Sandwich ao seu computador Ubuntu. O processo pode demorar muito para um novato, mas tenho certeza de que alguém irá aparecer e criar uma GUI para tudo isso, para que tudo aconteça sem problemas. :)
fonte
mtpfs
, ou simplesmente suporta apenas um dispositivo conectado por vez?Conectando dispositivos via MTP com GVFS
Desde o Ubuntu 13.04, o acesso ao armazenamento de dispositivos compatíveis com MTP funciona imediatamente através de um back-end GVFS . Por favor, dê uma olhada. Existem planos para melhorar o suporte a mtp em versões futuras do Ubuntu? para instruções de instalação anteriores a 13.04.
Esta solução deve funcionar para todos os dispositivos Android que fornecem funcionalidade MTP e provavelmente todos os dispositivos não Android com funcionalidade MTP, como Windows Phones e Portable Media Players .
Não fique confuso
Houve alguma confusão, vamos tentar esclarecer as coisas:
Você não precisa fazer nada que possa anular sua garantia!
Desbloquear apenas se refere à tela de bloqueio dos sistemas operacionais nesta resposta.
Você não precisa configurar o acesso de desenvolvedor ao seu dispositivo, como ADB, fastboot ou algo semelhante através de certas regras do udev. (Você pode encontrar instruções para Android no capítulo Configurando o acesso USB -la e ou dela e .)
Tanto quanto sei, você também não precisa do FUSE ou configura as opções relacionadas ao FUSE.
Solução de problemas
Não consigo colocar arquivos no dispositivo.
Seu dispositivo deve estar desbloqueado para acessar o armazenamento do dispositivo com o Ubuntu via MTP.
Estou recebendo uma mensagem de erro informando que o dispositivo não pode ser montado.
Se você receber a mensagem de erro abaixo, tente reconectar o dispositivo uma vez .
Se a mensagem de erro aparecer novamente, abra uma nova janela do nautilus a partir do iniciador (de preferência clicando no ícone do dispositivo) e provavelmente fechando a janela atual do nautilus. Possivelmente relacionado: como criar regras do udev para desativar um dos dispositivos Android?
Verifique se existem regras do udev para o seu dispositivo
Abra um terminal e digite
lsusb
. Encontre o seu dispositivo na saída e anote o ID (por exemplo0fce:01b1
). A primeira parte é o ID do fornecedor, a última parte, o ID do produto.Abra o arquivo de regras mtp udev correspondente
nano /lib/udev/rules.d/69-libmtp.rules
e procure o ID do seu produto (use Ctrl+ W). Se você não conseguir encontrá-lo, crie uma entrada personalizada/etc/udev/rules.d/69-libmtp.rules
seguindo o padrão abaixo e reinicie .Você deve registrar um bug no pacote libmtp (mais precisamente libmtp-common ) para incluir seu dispositivo em versões futuras, se isso funcionou para você.
Eu ainda não consigo conectar
Seu dispositivo não é compatível com o subjacente
libmtp
ou você pode enfrentar o mesmo problema que o meu Lumia 620, siga a solução alternativa (etapas para reprodução) que eu publiquei no LP # 1247572: O Nokia Lumia 620 (WP8) falha ao montar de maneira confiável via gvfs-mtp no nautilus . (O dispositivo ainda não funciona perfeitamente aqui, mas usandomtp-detect
ajuda.)Você deve procurar no rastreador de erros libmtp do seu dispositivo e seguir as instruções para novos dispositivos na página do projeto para abrir um relatório de erro.
O rastreador de erros lista meu dispositivo como suportado, mas ainda não funciona
Em alguns casos, um relatório de bug referente ao seu dispositivo já pode ter sido arquivado e resolvido em uma versão libmtp mais recente do que a sua distribuição é fornecida (por exemplo: Motorola Moto G ). Se for esse o caso, você terá que aguardar a atualização dos repositórios oficiais ou procurar um PPA atualizado.
Uma lista atualizada de todas as versões libmtp disponíveis nos canais oficiais do software Ubuntu e PPAs privados pode ser encontrada aqui (certifique-se de expandir Outras versões do 'libmtp' em arquivos não confiáveis ). A partir de 13/02/2014, esse PPA de Matthieu Baerts oferece o pacote libmtp mais recente disponível para o Ubuntu.
Aviso : este PPA contém uma variedade de pacotes diferentes e possivelmente instáveis. Eu recomendaria não adicioná-lo ao seu sistema. Em vez disso, você pode baixar os pacotes libmtp separadamente e instalá-los manualmente em seu sistema.
Familiarize-se com os CAE e seus riscos antes de prosseguir. Leia também o parágrafo abaixo sobre como restaurar seus pacotes originais antes de prosseguir com as seguintes etapas:
Baixe os seguintes pacotes:
libmtp-common
,libmtp-runtime
,libmtp9
,mtp-tools
. Certifique-se de escolher a arquitetura certa para o seu sistema (isso geralmente seráamd64
).Aqui estão os links dos pacotes em 13/02/2014 : libmtp-common , libmtp-runtime , libmtp9 , mtp-tools
Prossiga com a instalação manual dos pacotes atualizados com o dpkg (mude
$HOME/Downloads
para a pasta de download e verifique se não há outros arquivos deb:Depois que tudo tiver sido instalado com sucesso, reinicie o computador, desbloqueie o dispositivo Android, conecte-o via USB e ele deverá aparecer no seu gerenciador de arquivos.
Isso funcionou bem para mim (@Glutanimate) com meu Motorola Moto G. Como eu estava executando o Ubuntu 12.04 LTS, primeiro tive que instalar uma versão atualizada do
gnome-gvfs
. Consulte as instruções de instalação anteriores à 13.04 na parte superior para obter mais informações.Para desfazer as alterações se algo der errado ou se o dispositivo ainda não for reconhecido, você precisará instalar manualmente os pacotes originais. Vá para a visão geral do libmtp source e encontre sua versão do Ubuntu. Expanda a entrada em questão e continue com o download dos pacotes, como você fez na etapa 2 anterior. Continue com a instalação conforme descrito na etapa 3 e reinicie o sistema. Tudo deve voltar ao normal agora.
fonte
/etc
é inteiramente sua. Como explicado acima, idealmente todas as regras do udev devem ser fornecidas ootb. Caso contrário, deve-se registrar um bug para incluir a regra que falta/lib/.../69-libmtp.rules
, para que todos fiquem felizes com o próximo lançamento./etc
depende de você./lib/udev/rules.d/69-libmtp.rules
é o que os mantenedores do pacote escolheram e estou sugerindo registrar um bug nesse pacote (atualizei minha resposta) para os usuários que encontrarem esse problema. Se você ainda tiver problemas com isso, fale com os mantenedores ou poste sua própria resposta. Agora estou saindo dessa conversa com você sobre esse assunto.Todos os programas baseados em
libmtp
ainda parecem ter problemas com o Galaxy Nexus (a partir da libmtp 1.1.3). Programas baseados emgphoto2
trabalho para mim.Pessoalmente, estou usando
gphotofs
, disponível em um pacote com o mesmo nome.Use
gphotofs ~/mymountpoint
para montar efusermount -u ~/mymountpoint
desmontar quando terminar.fonte
gphotofs
me deixa com um único diretório que está vazio.Instale o seguinte e reinicie:
fonte
The following packages have unmet dependencies: gvfs-backends : Depends: gvfs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-daemons (= 1.28.2-1ubuntu1~16.04.2) Depends: gvfs-libs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-common (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed E: Unable to correct problems, you have held broken packages.
Como primeiro passo, eu instalaria
jmtpfs
(sudo apt-get install jmtpfs
no terminal - Ctrl+ Alt+ T), criaria uma pastamkdir foldername
e, em seguida, montaria o dispositivojmtpfs foldername
, e depois iria para o nautilus (Arquivos).Se o seu dispositivo não é compatível com a
libmtp
versão no ubuntu. Você precisa fazer o download e criar uma versão recentelibmtp
(> 1.1.12), como em: Como instalar a versão mais recente do libmtp?Você poderá ver as pastas também usando
mtp-folders
em um terminal ou com a interface gráficagmtp
.As etapas anteriores podem mostrar um erro se você as executar sem
sudo
:Para evitar o uso do sudo, você deve adicionar seu dispositivo ao
/etc/udev/rules.d/51-android.rules
arquivo como acima (consulte a descrição) e recarregar regras ou reiniciar.fonte
Apenas uma pequena solução alternativa, conecte seu telefone baseado em ICS com o bom e velho MASS STORAGE http://forum.xda-developers.com/showthread.php?t=1556367
fonte