我刚刚购买了一部新的 TCL Idol X S950 手机,我正在解决一些问题以便让它在我的系统上可见。
这部手机使用的是 Android 4.2.2,我猜这是导致问题的原因:我之前的手机使用的是 Android 4.1,在 nautilus/dolphin 中可以正确显示(使用mtpfs
)。
现在我已经尝试安装mtp-tools
,但什么也没有任何变化。
lsusb
给了我那个列表(T&A 手机应该是我的手机)。
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 1bbb:0168 T & A Mobile Phones
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1bcf:2b80 Sunplus Innovation Technology Inc.
Bus 002 Device 003: ID 8086:0189 Intel Corp.
dmesg
给出了这个输出:
15780.855333] usb 3-2: new high-speed USB device number 2 using xhci_hcd
[15780.874336] usb 3-2: New USB device found, idVendor=1bbb, idProduct=0168
[15780.874348] usb 3-2: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[15780.874354] usb 3-2: Product: TCL S950
[15780.874359] usb 3-2: Manufacturer: TCT
[15780.874364] usb 3-2: SerialNumber: FESKMRSOYLW8RKSK
答案1
将您的设备包含在 libmtp 源代码中
您可以尝试将您的设备包含在 libmtp 源代码中并从源代码构建 libmtp。
安装 mtp-tools 和可选的 checkinstall 包:
sudo apt-get install mtp-tools libusb-dev checkinstall
sudo mtp-detect
记下 VID 和 PID 编号,例如:
- 视频 22b8
- 进程ID 2e82
从以下位置下载最新的 libmtp 源代码项目现场。撰写本文时版本为 1.1.6,因此这是一个例子:
wget http://downloads.sorceforge.net/project/libmtp/1.1.6/libmtp-1.1.6.tar.gz
tar xvf libmtp-1.1.6.tar.gz
cd libmtp-1.1.6
在源中添加一个到您的设备条目:
gedit src/music-players.h
例子:
{ "Motorola", 0x22b8, "Moto G (XT1032)", 0x2e82, DEVICE_FLAGS_ANDROID_BUGS }
笔记,注意,
文件中结尾的逗号(),如下所示:
[...]
{ "Motorola", 0x22b8, "Moto X (XT1058)", 0x2e63,
DEVICE_FLAGS_ANDROID_BUGS },
{ "Motorola", 0x22b8, "Moto G (XT1032)", 0x2e82,
DEVICE_FLAGS_ANDROID_BUGS },
{ "Motorola", 0x22b8, "Droid Maxx (XT1080)", 0x2e67,
DEVICE_FLAGS_ANDROID_BUGS },
[...]
现在配置、构建和安装(checkinstall
建议make install
)修补版本:
./configure
make
sudo checkinstall
重新启动就完成了。
答案2
我在使用 Iview i700 时也遇到了同样的问题。下面是我解决问题的方法。
插入前和插入后均使用‘lsusb’。
Android设备出现在列表后:
Bus 002 Device 009: ID 8087:0a15 Intel Corp.
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 10d5:5a08 Uni Class Technology Co., Ltd
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我编辑了规则
sudo gedit /lib/udev/rules.d/69-libmtp.rules
并添加了我的 pad 的数字(你的可能不同)
# Iview i700 Tablet
ATTR{idVendor}=="8087", ATTR{idProduct}=="0a15", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
我还编辑了 android 规则sudo gedit /etc/udev/rules.d/51-android.rules
并再次添加了我的pad的数字。
ATTR{idVendor}=="8087", ATTR{idProduct}=="0a15", MODE="0666"
最后我拔掉了电源插头,并发出了命令sudo service udev restart
重新插入后,Nautilus 立即识别了 MTP 设置上的垫子
注意:(PTP 之前可用,但只打开了 Shotwell)
资料来源:部分基于 writemem 的指南,网址为http://ubuntuforums.org/showthread.php?t=2226702仅包括我使用的步骤(我跳过了 1、2 和 7,因为没有必要)