Alsa

用 ALSA 更換聲音晶片

  • June 3, 2014

我有一台帶有英特爾音效卡的筆記型電腦,lspci報告為

00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)

它負責模擬音頻(揚聲器,3.5 毫米插孔)和 HDMI 聲音(因為我的筆記型電腦有 HDMI 輸出)報告aplay --list-devices

   **** List of PLAYBACK Hardware Devices ****
   card 0: PCH [HDA Intel PCH], device 0: ALC269VB Analog [ALC269VB Analog]
     Subdevices: 1/1
     Subdevice #0: subdevice #0
   card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
     Subdevices: 1/1
     Subdevice #0: subdevice #0

顯然音效卡已配置,驅動程序已載入。但是,媒體播放器不會產生任何聲音。pavucontrol顯示播放器有輸出 - 在播放選項卡下,用作視覺回饋的滑塊正在“彈跳”。但是在“輸出設備”選項卡下,相同的滑塊根本沒有反應。在配置選項卡下,“配置文件”設置為“模擬立體聲雙工”,它應該是。如果我將配置文件更改為“數字立體聲(HDMI)輸出”,afero提到的滑塊突然開始反彈。現在對我來說很明顯,無論是 ALSA 還是 PulseAdio(我不知道應該歸咎於哪個)都將 HDMI 晶片辨識為預設晶片。alsamixer讓我選擇更換音效卡,但不是它的晶片。alsamixer 介面

pactl list輸出

Module #0
   Name: module-device-restore
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Automatically restore the volume/mute state of devices"
       module.version = "5.0"

Module #1
   Name: module-stream-restore
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Automatically restore the volume/mute/device state of streams"
       module.version = "5.0"

Module #2
   Name: module-card-restore
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Automatically restore profile of cards"
       module.version = "5.0"

Module #3
   Name: module-augment-properties
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Augment the property sets of streams with additional static information"
       module.version = "5.0"

Module #4
   Name: module-switch-on-port-available
   Argument: 
   Usage counter: n/a
   Properties:


Module #5
   Name: module-udev-detect
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Detect available audio hardware and load matching drivers"
       module.version = "5.0"

Module #6
   Name: module-alsa-card
   Argument: device_id="0" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1"
   Usage counter: 0
   Properties:
       module.author = "Lennart Poettering"
       module.description = "ALSA Card"
       module.version = "5.0"

Module #7
   Name: module-jackdbus-detect
   Argument: channels=2
   Usage counter: n/a
   Properties:
       module.author = "David Henningsson"
       module.description = "Adds JACK sink/source ports when JACK is started"
       module.version = "5.0"

Module #8
   Name: module-bluetooth-policy
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Frédéric Dalleau"
       module.description = "When a bluetooth sink or source is added, load module-loopback"
       module.version = "5.0"

Module #9
   Name: module-bluetooth-discover
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "João Paulo Rechi Vita"
       module.description = "Detect available Bluetooth daemon and load the corresponding discovery module"
       module.version = "5.0"

Module #10
   Name: module-bluez5-discover
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "João Paulo Rechi Vita"
       module.description = "Detect available BlueZ 5 Bluetooth audio devices and load BlueZ 5 Bluetooth audio drivers"
       module.version = "5.0"

Module #11
   Name: module-esound-protocol-unix
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "ESOUND protocol (UNIX sockets)"
       module.version = "5.0"

Module #12
   Name: module-native-protocol-unix
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Native protocol (UNIX sockets)"
       module.version = "5.0"

Module #13
   Name: module-gconf
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "GConf Adapter"
       module.version = "5.0"

Module #14
   Name: module-default-device-restore
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Automatically restore the default sink and source"
       module.version = "5.0"

Module #15
   Name: module-rescue-streams
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "When a sink/source is removed, try to move its streams to the default sink/source"
       module.version = "5.0"

Module #16
   Name: module-always-sink
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Colin Guthrie"
       module.description = "Always keeps at least one sink loaded even if it's a null one"
       module.version = "5.0"

Module #17
   Name: module-intended-roles
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Automatically set device of streams based on intended roles of devices"
       module.version = "5.0"

Module #18
   Name: module-suspend-on-idle
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "When a sink/source is idle for too long, suspend it"
       module.version = "5.0"

Module #19
   Name: module-console-kit
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Create a client for each ConsoleKit session of this user"
       module.version = "5.0"

Module #20
   Name: module-systemd-login
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Create a client for each login session of this user"
       module.version = "5.0"

Module #21
   Name: module-position-event-sounds
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Position event sounds between L and R depending on the position on screen of the widget triggering them."
       module.version = "5.0"

Module #22
   Name: module-role-cork
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "Mute & cork streams with certain roles while others exist"
       module.version = "5.0"

Module #23
   Name: module-filter-heuristics
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Colin Guthrie"
       module.description = "Detect when various filters are desirable"
       module.version = "5.0"

Module #24
   Name: module-filter-apply
   Argument: 
   Usage counter: n/a
   Properties:
       module.author = "Colin Guthrie"
       module.description = "Load filter sinks automatically when needed"
       module.version = "5.0"

Module #25
   Name: module-x11-publish
   Argument: display=:0.0
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "X11 credential publisher"
       module.version = "5.0"

Module #26
   Name: module-x11-xsmp
   Argument: display=:0.0 session_manager=local/localhost:@/tmp/.ICE-unix/281,unix/localhost:/tmp/.ICE-unix/281
   Usage counter: n/a
   Properties:
       module.author = "Lennart Poettering"
       module.description = "X11 session management"
       module.version = "5.0"

Sink #0
   State: SUSPENDED
   Name: alsa_output.pci-0000_00_1b.0.analog-stereo
   Description: Built-in Audio Analog Stereo
   Driver: module-alsa-card.c
   Sample Specification: s16le 2ch 44100Hz
   Channel Map: front-left,front-right
   Owner Module: 6
   Mute: no
   Volume: front-left: 49145 /  75% / -7.50 dB,   front-right: 49145 /  75% / -7.50 dB
           balance 0.00
   Base Volume: 65536 / 100% / 0.00 dB
   Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
   Latency: 0 usec, configured 0 usec
   Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
   Properties:
       alsa.resolution_bits = "16"
       device.api = "alsa"
       device.class = "sound"
       alsa.class = "generic"
       alsa.subclass = "generic-mix"
       alsa.name = "ALC269VB Analog"
       alsa.id = "ALC269VB Analog"
       alsa.subdevice = "0"
       alsa.subdevice_name = "subdevice #0"
       alsa.device = "0"
       alsa.card = "0"
       alsa.card_name = "HDA Intel PCH"
       alsa.long_card_name = "HDA Intel PCH at 0xd1b00000 irq 49"
       alsa.driver_name = "snd_hda_intel"
       device.bus_path = "pci-0000:00:1b.0"
       sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
       device.bus = "pci"
       device.vendor.id = "8086"
       device.vendor.name = "Intel Corporation"
       device.product.id = "1c20"
       device.product.name = "6 Series/C200 Series Chipset Family High Definition Audio Controller"
       device.form_factor = "internal"
       device.string = "front:0"
       device.buffering.buffer_size = "352800"
       device.buffering.fragment_size = "176400"
       device.access_mode = "mmap+timer"
       device.profile.name = "analog-stereo"
       device.profile.description = "Analog Stereo"
       device.description = "Built-in Audio Analog Stereo"
       alsa.mixer_name = "Intel CougarPoint HDMI"
       alsa.components = "HDA:10ec0269,10250504,00100100 HDA:80862805,80860101,00100000"
       module-udev-detect.discovered = "1"
       device.icon_name = "audio-card-pci"
   Ports:
       analog-output: Analog Output (priority: 9900)
       analog-output-speaker: Speakers (priority: 10000)
       analog-output-headphones: Headphones (priority: 9000, not available)
   Active Port: analog-output
   Formats:
       pcm

Source #0
   State: SUSPENDED
   Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
   Description: Monitor of Built-in Audio Analog Stereo
   Driver: module-alsa-card.c
   Sample Specification: s16le 2ch 44100Hz
   Channel Map: front-left,front-right
   Owner Module: 6
   Mute: no
   Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
           balance 0.00
   Base Volume: 65536 / 100% / 0.00 dB
   Monitor of Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
   Latency: 0 usec, configured 0 usec
   Flags: DECIBEL_VOLUME LATENCY 
   Properties:
       device.description = "Monitor of Built-in Audio Analog Stereo"
       device.class = "monitor"
       alsa.card = "0"
       alsa.card_name = "HDA Intel PCH"
       alsa.long_card_name = "HDA Intel PCH at 0xd1b00000 irq 49"
       alsa.driver_name = "snd_hda_intel"
       device.bus_path = "pci-0000:00:1b.0"
       sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
       device.bus = "pci"
       device.vendor.id = "8086"
       device.vendor.name = "Intel Corporation"
       device.product.id = "1c20"
       device.product.name = "6 Series/C200 Series Chipset Family High Definition Audio Controller"
       device.form_factor = "internal"
       device.string = "0"
       module-udev-detect.discovered = "1"
       device.icon_name = "audio-card-pci"
   Formats:
       pcm

Source #1
   State: SUSPENDED
   Name: alsa_input.pci-0000_00_1b.0.analog-stereo
   Description: Built-in Audio Analog Stereo
   Driver: module-alsa-card.c
   Sample Specification: s16le 2ch 44100Hz
   Channel Map: front-left,front-right
   Owner Module: 6
   Mute: no
   Volume: front-left: 8251 /  13% / -54.00 dB,   front-right: 8251 /  13% / -54.00 dB
           balance 0.00
   Base Volume: 5206 /   8% / -66.00 dB
   Monitor of Sink: n/a
   Latency: 0 usec, configured 0 usec
   Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
   Properties:
       alsa.resolution_bits = "16"
       device.api = "alsa"
       device.class = "sound"
       alsa.class = "generic"
       alsa.subclass = "generic-mix"
       alsa.name = "ALC269VB Analog"
       alsa.id = "ALC269VB Analog"
       alsa.subdevice = "0"
       alsa.subdevice_name = "subdevice #0"
       alsa.device = "0"
       alsa.card = "0"
       alsa.card_name = "HDA Intel PCH"
       alsa.long_card_name = "HDA Intel PCH at 0xd1b00000 irq 49"
       alsa.driver_name = "snd_hda_intel"
       device.bus_path = "pci-0000:00:1b.0"
       sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
       device.bus = "pci"
       device.vendor.id = "8086"
       device.vendor.name = "Intel Corporation"
       device.product.id = "1c20"
       device.product.name = "6 Series/C200 Series Chipset Family High Definition Audio Controller"
       device.form_factor = "internal"
       device.string = "front:0"
       device.buffering.buffer_size = "352800"
       device.buffering.fragment_size = "176400"
       device.access_mode = "mmap+timer"
       device.profile.name = "analog-stereo"
       device.profile.description = "Analog Stereo"
       device.description = "Built-in Audio Analog Stereo"
       alsa.mixer_name = "Intel CougarPoint HDMI"
       alsa.components = "HDA:10ec0269,10250504,00100100 HDA:80862805,80860101,00100000"
       module-udev-detect.discovered = "1"
       device.icon_name = "audio-card-pci"
   Ports:
       analog-input-internal-mic: Internal Microphone (priority: 8900)
       analog-input-mic: Microphone (priority: 8700, not available)
   Active Port: analog-input-internal-mic
   Formats:
       pcm

Client #0
   Driver: module-systemd-login.c
   Owner Module: 20
   Properties:
       application.name = "Login Session c1"
       systemd-login.session = "c1"

Client #3
   Driver: module-x11-xsmp.c
   Owner Module: 26
   Properties:
       application.name = "XSMP Session on xfce4-session as 2c7bf982c-3f0a-4235-93e5-780d27ff15f0"
       xsmp.vendor = "xfce4-session"
       xsmp.client.id = "2c7bf982c-3f0a-4235-93e5-780d27ff15f0"

Client #10
   Driver: protocol-native.c
   Owner Module: 12
   Properties:
       application.name = "pactl"
       native-protocol.peer = "UNIX socket client"
       native-protocol.version = "29"
       application.process.id = "1707"
       application.process.user = "tichomir"
       application.process.host = "localhost"
       application.process.binary = "pactl"
       application.language = "C"
       window.x11.display = ":0.0"
       application.process.machine_id = "98bf0358e390486598b6233568214778"
       application.process.session_id = "c1"

Card #0
   Name: alsa_card.pci-0000_00_1b.0
   Driver: module-alsa-card.c
   Owner Module: 6
   Properties:
       alsa.card = "0"
       alsa.card_name = "HDA Intel PCH"
       alsa.long_card_name = "HDA Intel PCH at 0xd1b00000 irq 49"
       alsa.driver_name = "snd_hda_intel"
       device.bus_path = "pci-0000:00:1b.0"
       sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
       device.bus = "pci"
       device.vendor.id = "8086"
       device.vendor.name = "Intel Corporation"
       device.product.id = "1c20"
       device.product.name = "6 Series/C200 Series Chipset Family High Definition Audio Controller"
       device.form_factor = "internal"
       device.string = "0"
       device.description = "Built-in Audio"
       module-udev-detect.discovered = "1"
       device.icon_name = "audio-card-pci"
   Profiles:
       input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 60, available: yes)
       output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6000, available: yes)
       output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 6060, available: yes)
       output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5400, available: yes)
       output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5460, available: yes)
       output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (sinks: 1, sources: 0, priority: 300, available: yes)
       output:hdmi-surround+input:analog-stereo: Digital Surround 5.1 (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 360, available: yes)
       off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
   Active Profile: output:analog-stereo+input:analog-stereo
   Ports:
       analog-input-internal-mic: Internal Microphone (priority: 8900, latency offset: 0 usec)
           Properties:
               device.icon_name = "audio-input-microphone"
           Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo
       analog-input-mic: Microphone (priority: 8700, latency offset: 0 usec, not available)
           Properties:
               device.icon_name = "audio-input-microphone"
           Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo
       analog-output: Analog Output (priority: 9900, latency offset: 0 usec)
           Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
       analog-output-speaker: Speakers (priority: 10000, latency offset: 0 usec)
           Properties:
               device.icon_name = "audio-speakers"
           Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
       analog-output-headphones: Headphones (priority: 9000, latency offset: 0 usec, not available)
           Properties:
               device.icon_name = "audio-headphones"
           Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
       hdmi-output-0: HDMI / DisplayPort (priority: 5900, latency offset: 0 usec, not available)
           Properties:
               device.icon_name = "video-display"
           Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround, output:hdmi-surround+input:analog-stereo

我通過添加以下程式碼解決了這個問題/etc/asound.conf

pcm.custom
{
   type plug
   slave
   {
       pcm "dmix:0,0"
   }
}

pcm.!default pcm.custom

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