我可以使用PTP协议将Galaxy Nexus连接到我的Kubuntu机器,但这确实很慢。我已经阅读了有关为何Galaxy Nexus不支持USB大容量存储的采访,并且按照说明去了http://www.android.com/filetransfer/,但是我无法看到哪个能让我使用linux机器和MTP连接到设备。
有谁知道如何使MTP或任何其他协议起作用?
我可以使用PTP协议将Galaxy Nexus连接到我的Kubuntu机器,但这确实很慢。我已经阅读了有关为何Galaxy Nexus不支持USB大容量存储的采访,并且按照说明去了http://www.android.com/filetransfer/,但是我无法看到哪个能让我使用linux机器和MTP连接到设备。
有谁知道如何使MTP或任何其他协议起作用?
Answers:
我将扩展Ryan Conrad的想法:
adb
从android-tools就是这样。
我更喜欢按照此指南使用android-sdk安装Eclipse:
http://developer.android.com/sdk/installing.html
安装仅取决于JDK。无需安装新软件包。我个人在Ubuntu,Mint或Debian发行版上以相同的方式执行了相同的几个步骤(=在任何地方提取两个文件夹并配置eclipse),并且一切都正常了。
完成本经典指南后,我有两个新文件夹:eclipse和android-sdks。在android-sdks文件夹中,./ platform - tools/adb是adb
工具的路径,可用于从android设备push
(上传和pull
获取)文件(无需mtpfs或其他挂载)。
如同adb
命令行程序一样,它可以轻松实现自动化。此外,您还有Eclipse的File Explorer视图,该视图提供了漂亮的图形树文件结构和基本的拖放界面(请不要忘记首先在Devices视图中选择您的设备!)。
这种方法的最大缺点是只有adb
工具才能看到设备并可以访问它。我的系统的其余部分(包括Nautilus)仍然看不到该设备。但是在习惯了稳定性和鲁棒性之后,adb
这对我来说不是问题。
您可以使用蓝牙。
Linux支持Bluetooth FTP(文件传输配置文件),并且有Bluetooth File Transfer应用程序将此功能添加到了android。但是,根据蓝牙版本的不同,它的传输速度不是那么快(<200kb / s)。–
有一个名为obexfs的保险丝模块,这是我安装的Nexus S:
root@local:/tmp# obexfs -b f0:08:f1:xx:xx:xx -- /media/bla
root@local:/tmp# cd /media/bla
root@leo61326:/media/bla# ls -lh /media/bla/DCIM/
total 5,5K
drwxr-xr-x 1 root root 0 2012-05-25 16:09 100ANDRO
drwxr-xr-x 1 root root 0 2012-07-05 17:31 2012-06-09_Rafting
drwxr-xr-x 1 root root 0 2012-07-09 22:30 Camera
一些文件浏览器直接通过插件(nautilus / gnome / kde / ...)支持它。 这是一些与Ubuntu相关的obex问题。
另一个选择是WebDAV。
设置Android WebDAV服务器
在我的库存Nexus 7上,我安装了WebDAV Server,将其打开,单击“开始”按钮,然后立即可以/storage/sdcard
在Web浏览器中的应用程序显示的URL上看到我的文件夹,即http://192.168.x.y:8080
请注意,对于WebDAV Server,您还可以选择选择根(/)或DCIM以及SdCard作为WebDAV 根目录。
通过Nautilus使用WebDAV服务器
在Nautilus中,我从“文件”菜单中选择“连接到服务器...”,然后选择“ WebDAV(HTTP)”,192.168.x.y
作为服务器和8080
端口输入并单击“连接”。
在目录层次结构中导航比访问其他网络共享要慢,但并非不可行。通过Nautilus复制单个42MB文件大约需要12秒,即3.6MB / s。
从命令行安装WebDAV驱动器
我使用以下命令安装了davfs2并安装了共享/mnt
:
sudo mount -t davfs http://192.168.x.y:8080 /mnt
复制相同的42MB文件,但定时更精确,耗时12.88s或3.24MB / s。
$ time cp music.fsb /tmp
real 0m12.880s
user 0m0.002s
sys 0m0.143s
注意事项
http
不是https
,因此未加密。仅在安全的wifi网络上使用WebDAV,并且当您在网吧或其他不安全的wifi中时,一定不要启用WebDAV服务器。您可以在此应用程序中以usb电缆速度使用FTP协议(并不是说它要求具有adb,但是在设置adb之后,连接/传输非常快捷,而且您甚至可以在自己喜欢的文件管理器中查看文件。
https://play.google.com/store/apps/details?id=com.theolivetree.ftp服务器
说明在游戏商店的说明中。
在适用于Galaxy Nexus,Nexus 7和Acer A500的Ubuntu上运行MTP。
我在此站点Ubuntu 12.04-MTP模式下自动安装Nexus 7上找到了有关Nexus 7(我刚刚带来的)的一些说明。所有归功于该页面作者的发现。我下面的说明来自于此站点,仅适用于命令,如果您需要更多说明,请参见上面的站点。
我使用Ubuntu 12.10,并已为Nexus 7,Galaxy Nexus和Acer A500进行了配置。使用说明
配置保险丝
更改/etc/fuse.conf,以便所有人阅读。
# sudo chmod a+r /etc/fuse.conf
编辑/etc/fuse.conf以从user_allow_other中删除注释#,以使默认的fuse.conf看起来像
# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000
# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
user_allow_other
编译并安装go_mtp
# sudo apt-get install libmtp-dev 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
创建安装点
Use the following as you need..
# sudo mkdir /media/Nexus7
# sudo chmod 777 /media/Nexus7
# sudo mkdir /media/GalaxyNexus
# sudo chmod 777 /media/GalaxyNexus
# sudo mkdir /media/A500
# sudo chmod 777 /media/A500
设置udev规则
使用您最喜欢的编辑器并创建以下文件(首先删除您可能尝试过的所有其他Android udev规则)。
# sudo vi /etc/udev/rules.d/99-android.rules
粘贴以下内容。您可以删除不需要的规则,这两个nexus设备对于引导加载程序和恢复似乎具有相同的ID。注意:您需要用用户名/登录名替换#YOURLOGIN#。
# Google Nexus 7 & Galaxy Nexus 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery
# Google Nexus 7 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e43", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on
# Google Nexus 7 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0666" # MTP media with USB debug on
# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /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 -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"
# Google Nexus 7 MTP mode : automatic unmount when unplugged
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"
# Google Galaxy Nexus 16 Gb Bootloader & recovery mode
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery
# Google Galaxy Nexus 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6865", MODE="0666" # PTP media
#SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on
# Google Galaxy Nexus 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666" # MTP media with USB debug on
# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /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 #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"
# Google Nexus 7 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"
# Acer A500 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3201", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="d001", MODE="0666" # Recovery
# Acer A500 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b2", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b1", MODE="0666" # PTP media with USB debug on
# Acer A500 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", MODE="0666" # MTP media with USB debug on
# Acer A500 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"
# Acer A500 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="remove", RUN+="/bin/umount /media/A500"
注意:如果您使用gedit并编辑了文件,则需要删除99-android.rules〜,因为udev会感到不高兴。
接下来,重新启动udev
# sudo service udev restart
编辑/ etc / fstab
Add the following to /etc/fstab
DeviceFs(Nexus\0407) /media/Nexus7 fuse.DeviceFs(Nexus\0407) allow_other,rw,user,noauto 0 0
DeviceFs(Galaxy\040Nexu) /media/GalaxyNexus fuse.DeviceFs(Galaxy\040Nexu) allow_other,rw,user,noauto 0 0
DeviceFs(A500) /media/A500 fuse.DeviceFs(A500) allow_other,rw,user,noauto 0 0
完了
现在,您可以连接设备,并且可以使用内部存储设备了,尽管它似乎没有任何危害,但您应记住在断开连接之前先卸载。
注意:似乎在某个时候,Nexus 7的ENV {ID_MODEL}更改为Nexus_7(我认为是Android 4.2更新)。
来自http://www.winters.org.nz/android-hints-tips-stuff/working-mtp-on-ubuntu