将您的设备包含在 libmtp 源代码中

将您的设备包含在 libmtp 源代码中

我刚刚购买了一部新的 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 设置上的垫子 MTPi700

注意:(PTP 之前可用,但只打开了 Shotwell)

资料来源:部分基于 writemem 的指南,网址为http://ubuntuforums.org/showthread.php?t=2226702仅包括我使用的步骤(我跳过了 1、2 和 7,因为没有必要)

相关内容