Linux는 USB 오디오 주변 장치가 연결되어 있는지 어떻게 감지합니까?
USB 충전기를 연결하면 휴대폰이 충전되지만 상태 표시줄에 헤드폰 아이콘이 표시되지 않습니다(Android).
그런데 USB 오디오 헤드셋을 동일한 USB Type-C 포트에 연결하면 오디오 장치로 감지됩니다.
커널이 이 모든 것을 어떻게 처리하는지 궁금합니다.
이 문제를 조사할 수 있는 호출 흐름 다이어그램이나 시작점이 있습니까?
답변1
USB는 표준화된 방식으로 호스트에 많은 양의 정보를 제공합니다. lsusb -v
연결된 장치에 대해 사용 가능한 정보를 보는 데 사용됩니다 . 이 정보에는 PCI 장치와 마찬가지로 공급업체 및 장치 번호가 포함됩니다. 저장소, 입력 또는 오디오와 같은 여러 가지 정의된 장치 범주도 있습니다. 이를 통해 드라이버는 특정 장치에 대해 알지 못하는 경우에도 장치 클래스를 처리할 수 있습니다.
귀하의 경우 USB 헤드셋이 오디오 장치로 인식되고 USB 오디오 드라이버가 헤드셋을 처리합니다. 반면에 충전기는 이를 충전기로 인식하고 휴대폰이 얼마나 많은 전력을 얻을 수 있는지 알려줍니다. 간단한 충전기로는 이 작업을 수행할 수 없으며 안전을 위해 전화기는 더 낮은 전류만 사용하고 로드하는 데 더 오랜 시간이 걸립니다.