news 2026/5/5 15:58:02

pulseaudio的alsa声卡加载流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pulseaudio的alsa声卡加载流程

PulseAudio 的 ALSA 模块(主要是 module-udev-detect + module-alsa-card)决定加载哪些 card 是有一套清晰的机制的,并且 完全由系统的 ALSA 声卡信息 + udev 规则决定,不取决于 asound.conf 或 plughw/hw 设置。

PulseAudio 加载 ALSA 声卡(Card)的核心流程

由 udev 探测可用的 ALSA 硬件卡

PulseAudio 在启动时会加载:

module-udev-detect

这个模块会监视:

/dev/snd/controlC*

只要某个 ALSA 卡在系统中出现了 control 节点,例如:

/dev/snd/controlC0 /dev/snd/controlC1

PulseAudio 就认定它是一个可用的硬件 sound card。

对每一个 /dev/snd/controlC,PulseAudio 自动加载 module-alsa-card*

监测到 card 后,PulseAudio 会为其创建一个卡对象(card object),并自动加载:

module-alsa-card

即:

发现 controlC0 → 加载 card0 → 加载 sinks/sources
发现 controlC1 → 加载 card1 → 同理
这一步不依赖用户配置。

PulseAudio 根据卡支持的 “Profiles” 决定创建哪些 sink/source

每个 ALSA card 的 UCM(Use Case Manager)或 fallback profile 定义了可用的 Profiles。例如:

analog-stereo analog-surround-5.1 hdmi-stereo off

PulseAudio 会扫描以下目录:

/usr/share/pulseaudio/alsa-mixer/profile-sets/

使用里面的 profile 配置文件,确定:

这个 ALSA card 应该创建哪些 sink(输出)
这个 ALSA card 应该创建哪些 source(输入)

UCM 配置存在时优先使用 UCM

如果声卡有:

/usr/share/alsa/ucm/<card name>/

PulseAudio 会优先使用 UCM 定义的:

PlaybackPCM
CapturePCM
Jack 切换逻辑
Devices/Modifiers
这是为什么 Jetson 或某些嵌入式平台会出现:

alsa_output.platform-sound.analog-stereo

这样的 sink 名称。

总结

PulseAudio 的 ALSA 模块决定加载哪些卡,核心依赖以下三点:

  1. /dev/snd/controlC* 是否存在(由内核 + udev 决定)

  2. 是否能加载 module-udev-detect(PulseAudio 自动处理)

  3. 是否能为该卡加载 module-alsa-card(PulseAudio 自动处理)

而不是由以下决定:

不是 asound.conf
不是 plughw/hw 设置
不是 aplay -L 的显示顺序
真正决定加载的只有 硬件卡是否被内核注册 + udev 是否报告给 PulseAudio。

我们要注意alsa的配置文件在pulseaudio默认是不产生效果的。

可以通过下面的命令查看所有pulseaudio已经加载的声卡。

pactl list cards short
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 9:49:16

视频字幕制作革命:5个理由让你选择VideoSrt自动生成工具

视频字幕制作革命&#xff1a;5个理由让你选择VideoSrt自动生成工具 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 还在为视频字幕制…

作者头像 李华
网站建设 2026/5/4 5:06:10

终极解决方案:一键获取全版本iOS设备调试支持文件

终极解决方案&#xff1a;一键获取全版本iOS设备调试支持文件 【免费下载链接】iOSDeviceSupport All versions of iOS Device Support 项目地址: https://gitcode.com/gh_mirrors/ios/iOSDeviceSupport 还在为Xcode无法识别新设备而烦恼吗&#xff1f;&#x1f914; iO…

作者头像 李华
网站建设 2026/5/3 10:30:52

PostgreSQL到MySQL数据迁移终极指南:pg2mysql完整使用教程

PostgreSQL到MySQL数据迁移终极指南&#xff1a;pg2mysql完整使用教程 【免费下载链接】pg2mysql 项目地址: https://gitcode.com/gh_mirrors/pg2/pg2mysql 还在为PostgreSQL到MySQL的数据迁移而烦恼吗&#xff1f;数据类型不兼容、字段长度限制、数据丢失风险...这些问…

作者头像 李华
网站建设 2026/5/2 1:20:14

在iPhone上轻松操控Android手机:Scrcpy-iOS跨设备控制完全指南

在iPhone上轻松操控Android手机&#xff1a;Scrcpy-iOS跨设备控制完全指南 【免费下载链接】scrcpy-ios Scrcpy-iOS.app is a remote control tool for Android Phones based on [https://github.com/Genymobile/scrcpy]. 项目地址: https://gitcode.com/gh_mirrors/sc/scrcp…

作者头像 李华
网站建设 2026/4/23 13:17:41

高效实用的系统配置部署指南:从零开始掌握技术部署

高效实用的系统配置部署指南&#xff1a;从零开始掌握技术部署 【免费下载链接】synology-baiduNetdisk-package 项目地址: https://gitcode.com/gh_mirrors/sy/synology-baiduNetdisk-package 想要快速掌握系统配置和技术部署的核心要领吗&#xff1f;本指南将带你从基…

作者头像 李华
网站建设 2026/5/2 4:43:09

惠普OMEN游戏本终极性能解锁神器:OmenSuperHub完整使用指南

还在为官方OMEN Gaming Hub的臃肿体积和频繁系统通知而烦恼吗&#xff1f;今天为大家介绍一款革命性的惠普游戏本性能优化工具——OmenSuperHub。这款纯净硬件控制神器让你完全掌控设备性能&#xff0c;享受无干扰的游戏体验。 【免费下载链接】OmenSuperHub 项目地址: http…

作者头像 李华