通过 USB 将三星 Android 8.0 手机连接到 Kubuntu 14.04

通过 USB 将三星 Android 8.0 手机连接到 Kubuntu 14.04

我正在尝试连接一个全新的三星 Galaxy S7电话Android 8.0致我的Kubuntu 14.04 电脑通过USB。

当我连接设备时,它正常显示在设备通知程序上我的电脑。我检查SAMSUNG_Android-> Open with File Manager,就像我对旧的 Android 5.0 设备所做的那样(它总是不稳定,但可以工作)。同时,设备上的通知显示Android system: Transferring media files via USB

计算机上出现一个对话框No Storages found. Maybe you need to unlock your device?,显示 ,而设备并未锁定。同时,设备上出现一个对话框,显示Allow access to phone data? The connected device will be able to access data on this phone. DENY/ALLOW。我检查了一下ALLOW,但文件管理器只显示一个空文件夹,刷新也无济于事。无论我重复多少次,行为始终相同,并且我从未访问过任何数据

根据 Android 论坛上的建议,我在手机上启用了Developer options和,而默认情况下是。USB debuggingUSB ConfigurationMTP (Media Transfer Protocol)

在计算机上,我尝试安装并使用mtpfsjmtpfs,但没有成功。我的理解是它们都libmtp在下面使用。我有libmtp 1.1.6mtp-detect

Unable to open ~/.mtpz-data for reading, MTPZ disabled.libmtp version: 1.1.6

Listing raw device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung Galaxy models (MTP).
   Found 1 device(s):
   Samsung: Galaxy models (MTP) (04e8:6860) @ bus 5, dev 8
Attempting to connect device(s)
ignoring libusb_claim_interface() = -6PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
LIBMTP ERROR: couldnt parse extension samsung.com/devicestatus:1
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: Error 02fe: PTP: Protocol error, data expected
USB low-level info:
   bcdUSB: 512
   bDeviceClass: 0
   bDeviceSubClass: 0
   bDeviceProtocol: 0
   idVendor: 04e8
   idProduct: 6860
   IN endpoint maxpacket: 512 bytes
   OUT endpoint maxpacket: 512 bytes
   Raw device info:
      Bus location: 5
      Device number: 8
      Device entry info:
         Vendor: Samsung
         Vendor id: 0x04e8
         Product: Galaxy models (MTP)
         Vendor id: 0x6860
         Device flags: 0x48000207

随后是一系列附加信息。

我尝试将手机连接到Windows 7 计算机,并且完美运行

然后我尝试同样的方式Windows 7 虚拟机在我的 Kubuntu 14.04 主机内,但不幸的是没有看到 USB 设备。

然后,我尝试Kubuntu 18.04 虚拟机在同一个 Kubuntu 14.04 主机内。这样可以看到 USB 设备,但在使用文件管理器访问时,计算机上会显示一个对话框,The process for the mtp protocol died unexpectedly但设备上没有任何内容。在我的 Kubuntu 14.04 计算机上,我的旧 Android 5.0 手机仍然会随机出现这样的消息,但最终它会正常工作;而这里始终失败。mtp-detect现在显示

libmtp version: 1.1.13

Listing raw device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung Galaxy models (MTP).
   Found 1 device(s):
   Samsung: Galaxy models (MTP) (04e8:6860) @ bus 1, dev 4
Attempting to connect device(s)
LIBMTP PANIC: Could not open session! (Return code 8194)
  Try to reset the device.
Unable to open raw device 0
OK.

在谷歌上搜索该消息,我找不到任何有用的信息。

最后,我安装最新的libmtp 1.1.15从我的 Kubuntu 14.04 上的源代码。文件管理器访问没有任何变化,而mtp-detect同样说

Unable to open ~/.mtpz-data for reading, MTPZ disabled.libmtp version: 1.1.15

Listing raw device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung Galaxy models (MTP).
   Found 1 device(s):
   Samsung: Galaxy models (MTP) (04e8:6860) @ bus 5, dev 16
Attempting to connect device(s)
LIBMTP PANIC: Could not open session! (Return code 8194)
  Try to reset the device.
Unable to open raw device 0
OK.

设备将显示熟悉的ALLOW/DENY对话框。

我记得我尝试过另一款三星 Android 手机手机(我认为是 6.0 或 7.0)另一个 Kubuntu 14.04计算机具有相同的No Storages found行为ALLOW/DENY,但当时我并不太在意,因为那不是我的手机。

我花了无数个小时尝试其他解决方法,但都没有成功。我无法更改我的操作系统,至少现在不行。它仍然支持六个月,而新系统似乎没有任何改善。我也不能更换手机,但不能通过 USB 传输文件使它变得毫无用处。

这样的东西真的应该可以立即使用,对吧?

答案1

检查/etc/udev/rules.d名为 的文件xx-android.rules。我相信我手动创建了我的文件,但那是几年前的事了。可能是在您运行的 14.04 上。我的 android 规则文件名为51-android.rules

如果此文件存在,请打开它以确定您的特定设备是否包含在内。我敢打赌它不包含在内。

如果不,

`sudo <your_favorite_editor> /etc/udev/rules.d/xx-android.rules`

并添加以下规则

`ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"`

如果您没有 xx-android.rules 文件,请告诉我,我会告诉您如何创建一个。

仅针对 GP,这是 Android 规则文件的模板

SUBSYSTEM!="usb", GOTO="android_usb_rules_end"
LABEL="android_usb_rules_begin"

ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", SYMINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

LABEL="android_usb_rules_end"

以下需要 root 权限...将模板放在 /etc/udev/rules.d/ 中。另存为 xx-android.rules,其中 'xx' 是 10 到 99 之间的数字。例如:51-android.rules

注销您的会话并重新登录。我建议重新启动。

相关内容