My Blog · RSS

从 20MB/s 到 185MB/s:一次 Linux 下 USB 传输瓶颈排查实录

2025-11-11 00:00

🚀 从 20MB/s 到 185MB/s:一次 Linux 下 USB 传输瓶颈排查实录

🧩 背景

由于我最近需要传输大量照片到我的手机,确认手机是支持USB3.2的,xps也是

设备环境:

  • 💻 电脑:Dell XPS 9370(Thunderbolt 3 / USB-C 接口)
  • 🐧 系统:Debian 12
  • 📱 手机:Samsung Galaxy S24
  • 问题:通过 USB 传照片仅有约 20 MB/s 速度

一、初步排查:确认 USB 接口与识别情况

首先查看系统识别的 USB 设备:

lsusb

输出(节选):

Bus 001 Device 010: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy series, misc. (MTP mode)

查看内核日志:

sudo dmesg | tail -n 20

结果:

usb 1-1: new high-speed USB device number 10 using xhci_hcd

“high-speed” 表示 USB 2.0 模式(480 Mbps) 对应理论速率上限 60 MB/s,因此 20 MB/s 的传输速率是正常的 USB2.0 表现。


二、分析:为什么手机只跑在 USB 2.0 模式?

1️⃣ 线缆问题

很多快充线(哪怕 PD 100W)只支持 USB 2.0 数据,因为:

通道类型导线组成作用
PD 电力通道VBUS、GND、CC1/CC2供电(最高 240W)
USB 3.x 数据通道TX1±、RX1±、TX2±、RX2±高速数据传输

PD 只要求能供电,不要求传数据,因此很多线省掉了高速差分线。

✅ 结果:快充没问题,但传输速率被锁在 USB 2.0。


2️⃣ 接口问题

XPS 9370 有多个 Type-C 接口,不同端口对应不同的 root hub。 部分接口挂在 USB 2.0 Hub 上,因此要测试每个端口。


3️⃣ 手机设置问题

三星默认 USB 模式通常为 “仅充电”,需要切换为:

  • Use USB for → Transferring files / Android Auto
  • USB controlled by → Connected device

三、更换线缆 + 调整模式后再次检测

执行:

lsusb -t

输出:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Imaging, Driver=usbfs, 5000M

✅ “5000M” 表示已进入 USB 3.0 SuperSpeed 模式(5 Gbps)

理论上最高 625 MB/s。


四、仍然只有 30 MB/s?原来是 MTP 协议瓶颈

MTP(Media Transfer Protocol)是 Android 默认文件传输协议:

  • 每个文件需 metadata 协商;
  • 数据在用户态/内核态频繁切换;
  • 单线程顺序传输。

⚠️ 即便物理层是 USB3.0,MTP 实际速率仍仅 20–40 MB/s。


五、绕过 MTP:改用 ADB Bulk 传输

1️⃣ 启用 ADB 调试模式

手机端:

开发者选项 → 开启 USB 调试

PC 端:

adb devices

第一次执行可能出现:

unauthorized

手机上会弹出提示框:

“是否允许此计算机调试?”

勾选“始终允许”,再执行:

adb kill-server
adb start-server
adb devices

成功后输出:

RFCXC0B4D9P    device

2️⃣ 实际文件传输命令

创建目标目录:

adb shell "mkdir -p /sdcard/DCIM/20251111"

传输文件:

adb push /home/dyq/Downloads/test.mkv /sdcard/DCIM/20251111/

输出:

1 file pushed, 0 skipped. 185.6 MB/s (2080135658 bytes in 10.689s)

🚀 实测速率 185 MB/s,完全释放 USB 3.0 链路带宽。


六、协议科普:USB、Thunderbolt、PD 的关系

协议管理机构最大速率特点
USB (Universal Serial Bus)USB-IFUSB4 可达 80 Gbps主流通用标准
Thunderbolt (雷电)Intel / AppleTB3/TB4 = 40 Gbps多协议复用(PCIe + DP + USB)
PD (Power Delivery)USB-IF最高 240W仅负责供电,与数据通道独立

📚 关键区别

  • USB = 数据协议
  • PD = 供电协议
  • Thunderbolt = 复合协议(兼容 USB + PCIe + DP)

一根 PD 100W 线不一定支持高速数据, 而 Thunderbolt 3 线一定支持至少 40 Gbps 数据 + PD 供电。


七、Thunderbolt 与 USB 的融合

  • Thunderbolt 3 → 由 Intel 开发
  • USB4 → 由 USB-IF 基于 Thunderbolt 3 开放规范制定

换句话说:

✅ USB4 = 开放版 Thunderbolt 3 ✅ Thunderbolt 4 = Intel 认证版 USB4

因此 M 系列 MacBook、XPS、ThinkPad 等现代设备的 Type-C 端口同时支持:

  • USB3.2
  • Thunderbolt 3/4
  • USB4
  • PD 快充
  • DisplayPort Alt Mode

八、最终结果对比

层级初始状态优化后状态
物理链路USB 2.0 (480 Mbps)USB 3.0 (5 Gbps)
协议MTPADB Bulk
实际速度20 MB/s185 MB/s
核心改动换线 + 调整手机模式 + ADB 调试🚀 性能恢复正常

🧠 总结

  • ⚡ PD 供电 ≠ 高速数据
  • ⚡ USB 3.x / Thunderbolt / USB4 正在融合
  • ⚡ MTP 是性能瓶颈,ADB 才能充分利用 USB3 带宽

常用命令:

lsusb -t
dmesg | tail -n 20
adb devices
adb push /path/file /sdcard/path/

📘 最终感想

USBC的确是一个开放的协议,能插,但不一定能用。哈哈哈哈。