Saltar para conteúdo


Foto
- - - - -

Automount do SDCard via MTP para o Nexus 7, Nexus 7 3G e Galaxy Nexus em Linux


  • Por favor inicie sessão para responder
1 resposta a este tópico

#1 on.one

on.one

    Mestre de Android

  • Former Staff
  • PipPipPipPipPipPip
  • 5169 mensagens
  • LocalizaçãoAlfragide

Mensagem publicada 02 February 2013 - 09:37

Automount do SDCard via MTP para o Nexus 7, Nexus 7 3G e Galaxy Nexus

Requisitos:
- go-mtpfs

Ao adquirir o meu Nexus 7 3G ( Tilapia ) esta foi a primeira situação com que me deparei, ou seja, o sdcard interno do Nexus 7 3G não ficava disponível automaticamente como sucedia no Galaxy Nexus.
Assim, depois de pesquisar um pouco e efectuar a configuração no meu PC decidi elaborar este tutorial.

1. Configurar FUSE

É necessário permitir a leitura do ficheiro /etc/fuse.conf com o comando :

- # sudo chmod a+r /etc/fuse.conf

Para que os filesystems possam ser usados por qualquer utilizador temos que modificar o ficheiro /etc/fuse.conf e alterar o seu funcionamento predefinido.

- # sudo gedit /etc/fuse.conf

Ficheiro /etc/fuse.conf
...
# Allow non-root users to specify the 'allow_other' or 'allow_root' mount options.
user_allow_other

2. Compilar e instalar o go-mtpfs

Neste passo é necessário compilar e instalar o go-mtpfs. Os comandos seguintes efectuam o download, a compilação e instalação do go-mtpfs de maneira a que fique pronta a usar no sistema.

# sudo apt-get install libmtp-dev git golang
# mkdir /tmp/go
# export GOPATH=/tmp/go
# go get github.com/hanwen/go-mtpfs
# sudo mv /tmp/go/bin/go-mtpfs /usr/local/sbin/go-mtpfs
# sudo chmod a+x /usr/local/sbin/go-mtpfs

3. Criar os mount points para os respectivos equipamentos

Para além de haver a necessidade de criar os mount points para os respectivos equipamento, é também necessário dar as permissões adequadas para que os filesystems sejam posteriormente montados com a conta do utilizador.

# sudo mkdir /media/Nexus7
# sudo chmod 777 /media/Nexus7
# sudo mkdir /media/Nexus73G
# sudo chmod 777 /media/Nexus73G
# sudo mkdir /media/GalaxyNexus
# sudo chmod 777 /media/GalaxyNexus

4. Criar as regras UDEV ( UDEV Rules )

Este passo envolve o uso de algumas ferramentas para determinar as configurações a efectuar. Se houver interesse posso mais tarde deixar o processo de recolha dessa informação de uma forma detalhada.
Assim apenas deixo o resultado final.

Depois da recolha de todos os dados necessários à configuração, é necessario criar ou editar o ficheiro com as regras necessárias :

- # sudo gedit /etc/udev/rules.d/51-android.rules

Ficheiro /etc/udev/rules.d/51-android.rules
# Google Nexus 7 3G MTP mode : automatic mount when plugged (all android versions)
ENV{ID_MODEL}=="Nexus_7_3G", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -b -u -LOGIN- /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus73G"
ENV{ID_MODEL}=="Nexus_7_3G", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -b -u -LOGIN- /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus73G"

# Google Nexus 7 MTP mode : automatic mount when plugged (all android versions)
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -b -u -LOGIN- /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -b -u -LOGIN- /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"

# Galaxy_Nexus MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="add", RUN+="/usr/bin/sudo -u -LOGIN- /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="add", RUN+="/usr/bin/sudo -u -LOGIN- /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"

# Google Nexus 7 3G MTP mode : automatic unmount when unplugged (all android versions)
ENV{ID_MODEL}=="Nexus_7_3G", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/Nexus73G"
ENV{ID_MODEL}=="Nexus_7_3G", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/Nexus73G"

# Google Nexus 7 MTP mode : automatic unmount when unplugged (all android versions)
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"

# Galaxy_Nexus MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"
É necessário substituir -LOGIN- pelo username do utilizador.

Depois de efectuada a configuração das UDEV rules é necessário reiniciar o serviço :

# sudo service udev restart

5. Editar os mount point no /etc/fstab para que seja possível efectuar o eject dos filesystems

# sudo gedit /etc/fstab

Ficheiro /etc/fstab
DeviceFs(Nexus\0407) /media/Nexus7 fuse.DeviceFs(Nexus\0407) allow_other,rw,user,noauto 0 0
DeviceFs(Nexus\0407\0403G) /media/Nexus7 fuse.DeviceFs(Nexus\0407\0403G) allow_other,rw,user,noauto 0 0
DeviceFs(Galaxy\040Nexu /media/GalaxyNexus fuse.DeviceFs(Galaxy\040Nexu allow_other,rw,user,noauto 0 0

A partir deste momento o sdcard do Nexus 7, Nexus 7 3G e Galaxy Nexus são montados como qualquer outro sistema de ficheiros.

Espero que este tutorial vos possa ser útil.
Deixem feedback.

Um abraço.

Agradecimento: Este tutorial teve por base a consulta destes dois tópicos :
- Working MTP on Ubuntu for Galaxy Nexus, Nexus 7 and Acer A500
- Ubuntu - Automount Nexus 7 in MTP mode

Editado por on.one, 02 February 2013 - 20:53.

  • martini_man69, Hugo Tender, zedaale e 1 outro gosta disto

Nexus 6 - Stock Android 6.0.1 (MMB29K), no userdata encription, display @ 1080p.


#2 Davidosky99

Davidosky99

    Guru de Android

  • Membros
  • PipPipPipPipPip
  • 1244 mensagens
  • LocalizaçãoPorto
  • Oneplus One

Mensagem publicada 05 September 2013 - 19:40

thanks man