Linux 将如何检测我连接了 USB 音频外设?
如果我连接 USB 充电器,它将为我的手机充电,并且状态栏上不会显示任何耳机图标(Android)。
但是,当我将 USB 音频耳机连接到同一个 USB c 型端口时,它会将其检测为音频设备。
我对内核如何处理所有这些感兴趣?
有任何呼叫流程图或任何起点让我研究这个问题吗?
答案1
USB 以标准化方式向主机提供大量信息。用于lsusb -v
查看连接设备的可用信息。这些信息包括供应商和设备编号,与 PCI 设备类似。还有几个定义的设备类别,例如存储、输入或音频。这允许驱动程序处理设备类,即使它不知道这个特定设备。
在您的情况下,USB 耳机被识别为音频设备,并且 USB 音频驱动程序处理耳机。另一方面,充电器会识别为充电器,并让手机知道它可以获得多少电量。简单的充电器无法做到这一点,并且为了安全起见,手机仅使用较低的电流并且需要更长的加载时间。