Usb

連接usb-c耳機

  • February 17, 2021

我有一個帶 USB-C 插孔的耳機。它們是 Google Pixel 3 附帶的。我使用的是 Archlinux,我很想將它們與筆記型電腦上的 USB-C 插孔一起使用。但是,我不知道我需要採取哪些步驟才能使其發揮作用。

這是我到目前為止所做的。

  • lsusb顯示設備:Bus 003 Device 005: ID 18d1:5033 Google Inc.
  • dmesg連接設備時顯示:
    [ 2520.298434] usb 3-1: new full-speed USB device number 5 using xhci_hcd
    [ 2520.694851] usb 3-1: New USB device found, idVendor=18d1, idProduct=5033, bcdDevice= 0.20
    [ 2520.694857] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 2520.694861] usb 3-1: Product: Pixel USB-C earbuds
    [ 2520.694864] usb 3-1: Manufacturer: Google
    [ 2520.694867] usb 3-1: SerialNumber: 00000089MAJ24397

但是,aplay -l沒有顯示任何反映我的耳機的設備。由此,我認為問題在於 ALSA 沒有將新的 USB 設備辨識為一副耳機。我假設我現在必須編輯一些 ALSA 配置文件來教 ALSA 關於這個設備。

如何找出我需要在哪個文件中編輯什麼內容才能讓 ALSA 發現我的耳機?

編輯

似乎完整的系統更新已經神奇地解決了這個問題,並且現在可以開箱即用。非常感謝此處發布的所有幫助以供將來參考。

請將耳塞連接到電腦並執行以下命令:

lsusb -d 18d1:5033 -v | grep Class

如果輸出包含單詞AudioStreaming任何地方,則有希望:耳塞具有內置 DAC,並且可以辨識為標準 USB 音頻設備。

但如果這個詞不可見,則可能是耳塞中唯一的數字電子設備是一個微型晶片,它基本上告訴“我是一組 USB-C 無源耳塞;請隨意將特定的 USB-C 引腳直接連接到模擬音頻輸出。” 由於 USB-C 耳塞上市時的標準尚未完成,因此似乎有一些競爭解決方案。

本質上,耳機可以直接連接到 USB-C 連接器中的特定引腳,並且控制設備需要能夠將這些引腳切換到模擬音頻輸出模式。智能手機的 USB-C 控制器顯然可以做到這一點;但我非常懷疑許多筆記型電腦在音頻晶片和 USB-C 控制器之間是否有必要的佈線來將模擬音頻信號從 USB-C 中路由出來。

另請參閱:https ://www.reviewgeek.com/11101/dont-bother-with-usb-c-headphones-for-now/

如果 USB 設備資訊確實包含Audio類和Streaming子類,則snd-usb-audio應該載入模組。如果它工作正常,音頻設備應該列在/proc/asound/cards; 之後,唯一剩下的問題可能是獲得分配給設備的正確 PulseAudio 配置文件(如果您使用的是 PulseAudio)。

但是如果snd-usb-audio模組無法使用設備,那麼它可能有一些需要考慮的硬體怪癖;該模組已經有許多您可以嘗試的怪癖選項。在這種情況下,特別是如果您發現添加特定的 quirk 選項可以使設備正常工作,您還應該通過電子郵件將lsusb -v設備的輸出和您的發現描述發送給 Linux 音頻驅動程序開發人員,以便正確的 quirk(s)將在未來的核心版本中自動應用於您的設備模型。

如果您的發行版使用 PulseAudio 並且在所有這些檢查之後它沒有看到您的設備,那麼還有一件事可能是錯誤的:為設備分配正確的 PulseAudio 配置文件。配置文件位於/usr/share/pulseaudio/alsa-mixer/profile-sets/目錄中(至少在 Debian/Ubuntu 上),並且default.conf配置文件中有非常描述性的註釋。您可能會發現其中一個非預設配置文件適用於您的設備,或者您可能必須編寫一個新配置文件。

要將特定 PulseAudio 配置文件分配給音頻設備,您可以使用 udev 規則。它應該是這樣的:

SUBSYSTEM=="sound", <conditions to match only your device>, ENV{PULSE_PROFILE_SET}="profilename.conf"

引用自:https://unix.stackexchange.com/questions/536472