Alsa
用 ALSA 更換聲音晶片
我有一台帶有英特爾音效卡的筆記型電腦,
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
讓我選擇更換音效卡,但不是它的晶片。
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