如果计算机仅能通过 USB 访问手机,那么是什么阻止手机访问计算机的文件系统呢?

如果计算机仅能通过 USB 访问手机,那么是什么阻止手机访问计算机的文件系统呢?

好吧,让我们取消一些限制,特别是操作系统

假设两台设备都运行基于 Linux 的操作系统,并且两台设备都是管理员/根用户。[澄清:我并不是说手机经过调整以运行基于 Linux 的操作系统,我的意思是它默认运行 Linux]

为什么电脑可以访问手机,而手机不能访问手机?这不是问题,我只是好奇为什么会发生这种情况。

我的理论:

  1. 手机有特定的驱动程序使其成为存储设备,而电脑没有
  2. 手机配备软件,使部分存储空间可供计算机进行读/写操作

这就是我所知道的一切,我尝试研究这个主题,但没有得到任何结果。

注意:我并不是在寻求解决方案如何为了使文件传输正常工作,我要求为什么会不会不起作用

答案1

由于 USB-C 充电现在已成为手机和笔记本电脑上的常态,USB-C 端口可以作为主机或外围设备出现,这是因为 USB-PD/USB-BC 充电需要外围设备模式才能工作。

当将手机或笔记本电脑插入 USB-A 充电器时,电缆的 USB-C 端会指示设备进入“B 模式”或外围设备模式。根据充电器和要充电的设备,它们会进行一些握手来确定可以安全地从充电器中吸取多少电量。我不会深入讨论这个过程,因为这不是讨论的主题。重点是,如果笔记本电脑或手机可以使用 USB-C/公头转 USB-A/公头电缆充电,那么它就支持进入外围设备模式。

如果手机和笔记本电脑通过 USB-C/公头转 USB-A/公头电缆连接,并且 USB-C 端在手机上,那么手机将显示为笔记本电脑的外围设备。这意味着电源只能从笔记本电脑流向手机。由于手机是外围设备,笔记本电脑是主机,因此手机是此连接上的被动伙伴或从属设备,而笔记本电脑是主动伙伴或主设备。这意味着笔记本电脑正在“驱动总线”,这可能比字面意思更形象。笔记本电脑可以向手机索要数据,例如查看手机存储中的文件,但除非有软件可以做到这一点,否则相反的操作将无法进行。

假设手机上有 USB-C/公头转 USB-A/母头适配器,则可以翻转 USB-C/公头转 USB-A/公头电缆,这样手机就是主机,笔记本电脑就是外设。在大多数情况下,这只允许笔记本电脑从手机获取充电电源,这可能是也可能不是你想要的。这种电力传输之所以发生,是因为现在笔记本电脑是从设备,手机是主设备。

有多种方法可以让笔记本电脑做更多事情,而不仅仅是作为从属设备获取电源。一个例子是 Apple 的目标磁盘模式功能。这是存储在主板上的软件,独立于正常操作系统之外。这使得笔记本电脑就像是内部驱动器的“哑”驱动器盒。这主要用作诊断工具,一种从无法启动的计算机中恢复数据和/或修复驱动器上的文件以便再次启动的手段。

网络上有一款软件,允许带有 USB-C 端口的 Linux 计算机在软件中模拟 USB 外围设备。其中一项功能是模拟存储驱动器,以便连接的 USB 主机可以读取和写入文件。一个这样的项目被称为“Linux USB 小工具”,其中的“小工具”指的是模拟的外围设备。该软件允许一次模拟多个“小工具”,例如以太网、驱动器存储和 HID(人机界面设备,如键盘、鼠标或操纵杆)。我会不时看看这个项目在普通笔记本电脑上的进展如何,似乎进展缓慢。关键是,让你的笔记本电脑看起来像 USB 外围设备不仅仅是理论上可能,人们已经做到了这一点。

我首先提到使用 USB-C/公头转 USB-A/公头电缆只是为了更容易地直观地看到正在发生的事情,因为这种电缆强制确定连接的哪一端是主端,哪一端是从端,无需猜测。使用 USB-C/公头转 USB-A/公头电缆可以获得同样的功能。C/公头电缆。当手机和笔记本电脑以这种方式连接时,可能会随机分配从属和主模式角色,或者一个或两个设备都会让另一个设备知道偏好。如果两者都没有偏好,则随机确定角色,如果两者都有相同的偏好,则随机确定角色。如果分配的角色不符合用户的偏好,则拔下电缆并重新连接将触发角色交换(假设两个设备都支持这两个角色)。

角色交换中存在记忆,在不同平台上的行为可能略有不同。拔出时间太短,设备将无法检测到断开连接和重新连接。等待时间太长,之前分配的角色将被遗忘,重新连接时角色可能不会交换。

据我所知,所有计算机的 USB-C 端口都支持主机或主设备角色以及外围设备或从设备模式。这对于通过 USB-C 充电的笔记本电脑以及带有 USB-C 的 Apple 计算机来说肯定是这样的。我怀疑所有支持 USB-C 的台式计算机也会进入外围设备或从设备模式,我只是还没有亲自尝试过,也没有看到有人演示过这种工作方式。

在 USB 规范中,USB 3.0 是一种点对点模式。这是一种很少使用的模式,使用时似乎专门用作软件开发工具,当其他端口无法用于调试数据时,这是一种从计算机中获取数据的方法。以太网和串行端口似乎是首选。如果两台计算机都有 USB-A 端口,则通过 USB 3.x 进行点对点通信将需要使用通常称为“调试电缆”的东西。我怀疑,当一台或两台计算机都有 USB-C 端口时,通过 USB 进行点对点通信不需要特殊的电缆,只需要一根能够实现“超高速”数据传输速度的电缆。

智能手机将拥有可充当 USB-C 端口主设备或从设备的软件,这描述了您的体验。在个人电脑上安装类似的软件是可能的,只是目前还相当复杂。

它的工作原理是将正确的软件安装到 Linux 计算机上。可能还需要特定类型的 USB-C 控制器,我只是还没有看到对此的提及。也许没有提到这一点,因为每台计算机都有双用途 USB-C 端口。

答案2

计算机具有 USB 硬件和软件,只能作为其他设备的主机,因此它不能作为另一台主机的设备。有些手机可以支持作为主机,您可以将它们连接到其他设备,如 USB 大众媒体或 MIDI 键盘,但这需要特殊的电缆,以便手机知道它有一个适配器,因此它应该切换角色作为主机。

相关内容