news 2026/7/31 14:44:32

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/7/30 21:45:22

无声交流新纪元:用Chaplin解锁视觉语音识别技术

无声交流新纪元&#xff1a;用Chaplin解锁视觉语音识别技术 【免费下载链接】chaplin A real-time silent speech recognition tool. 项目地址: https://gitcode.com/gh_mirrors/chapl/chaplin 在嘈杂的会议室里&#xff0c;你需要在保持安静的同时传达重要信息&#xf…

作者头像 李华
网站建设 2026/7/27 15:29:22

Elasticsearch :集群架构与性能调优实战

文章目录Elasticsearch了解多少&#xff1f;说说你们公司ES的集群架构&#xff0c;索引数据大小&#xff0c;分片有多少&#xff0c;以及一些调优手段&#xff1f;一、ES集群架构&#xff1a;我们的战斗堡垒1.1 集群规模1.2 节点分布二、索引数据大小&#xff1a;我们的大数据仓…

作者头像 李华
网站建设 2026/7/25 17:23:20

RevokeMsgPatcher微信防撤回补丁完整安装与配置指南

RevokeMsgPatcher微信防撤回补丁完整安装与配置指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华
网站建设 2026/7/26 3:19:19

PowerToys中文版终极解决方案:彻底告别Windows效率瓶颈

PowerToys中文版终极解决方案&#xff1a;彻底告别Windows效率瓶颈 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 还在为Windows系统操作繁琐而烦恼&…

作者头像 李华
网站建设 2026/7/29 21:03:37

ServerPackCreator终极指南:告别繁琐的Minecraft服务器部署

ServerPackCreator终极指南&#xff1a;告别繁琐的Minecraft服务器部署 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/ServerPackCreat…

作者头像 李华
网站建设 2026/7/28 17:06:37

从数据混乱到知识清晰:DeepKE如何重塑你的信息处理方式

你是否曾经面对过这样的困境&#xff1f;海量的文档堆积如山&#xff0c;重要的信息散落在各处&#xff0c;想要从中提取有用的知识却无从下手。每天花费数小时在重复的数据标注上&#xff0c;结果却总是差强人意。如果你正在为知识图谱构建而烦恼&#xff0c;那么今天我要分享…

作者头像 李华