高级 Linux 音频架构 - 驱动程序配置指南¶
内核配置¶
要启用 ALSA 支持,您至少需要使用主声卡支持 (CONFIG_SOUND
) 构建内核。 由于 ALSA 可以模拟 OSS,因此您无需选择任何 OSS 模块。
如果要使用 ALSA 运行 OSS 应用程序,请启用 “OSS API 仿真” (CONFIG_SND_OSSEMUL
) 以及 OSS 混音器和 PCM 支持。
如果想支持 SB Live! 等声卡上的波表功能,则需要启用 “音序器支持” (CONFIG_SND_SEQUENCER
)。
为了使 ALSA 调试消息更加详细,请启用 “详细 printk” 和 “调试” 选项。 要检查内存泄漏,请同时启用 “调试内存”。 “调试检测” 将添加对声卡检测的检查。
请注意,所有 ALSA ISA 驱动程序都支持 Linux isapnp API(如果声卡支持 ISA PnP)。 您不需要使用 isapnptools 配置声卡。
模块参数¶
用户可以使用选项加载模块。 如果模块支持多个声卡,并且您有多个相同类型的声卡,则可以为该选项指定多个值,并以逗号分隔。
模块 snd¶
核心 ALSA 模块。所有 ALSA 声卡驱动程序都使用它。它采用以下具有全局影响的选项。
- major
声音驱动程序的主设备号;默认值:116
- cards_limit
自动加载的声卡索引限制 (1-8);默认值:1;对于自动加载多个声卡,请将此选项与 snd-card-X 别名一起指定。
- slots
为给定的驱动程序保留槽索引;此选项采用多个字符串。有关详细信息,请参见 模块自动加载支持 部分。
- debug
指定调试消息级别; (0 = 禁用调试输出,1 = 普通调试消息,2 = 详细调试消息); 此选项仅在
CONFIG_SND_DEBUG=y
时出现。此选项可以通过 sysfs /sys/modules/snd/parameters/debug 文件动态更改。
模块 snd-pcm-oss¶
PCM OSS 仿真模块。此模块采用更改设备映射的选项。
- dsp_map
分配给第一个 OSS 设备的 PCM 设备号映射;默认值:0
- adsp_map
分配给第二个 OSS 设备的 PCM 设备号映射;默认值:1
- nonblock_open
不要阻止打开繁忙的 PCM 设备;默认值:1
例如,当 dsp_map=2
时,/dev/dsp 将映射到 #0 声卡的 PCM #2。 同样,当 adsp_map=0
时,/dev/adsp 将映射到 #0 声卡的 PCM #0。 要更改第二个或以后的声卡,请使用逗号指定选项,例如 dsp_map=0,1
。
nonblock_open
选项用于更改 PCM 关于打开设备的行为。 当此选项为非零时,打开繁忙的 OSS PCM 设备不会被阻止,而是立即返回 EAGAIN (就像 O_NONBLOCK 标志一样)。
模块 snd-rawmidi¶
此模块采用更改设备映射的选项,类似于 snd-pcm-oss 模块的选项。
- midi_map
分配给第一个 OSS 设备的 MIDI 设备号映射;默认值:0
- amidi_map
分配给第二个 OSS 设备的 MIDI 设备号映射;默认值:1
模块 snd-soc-core¶
soc 核心模块。 所有 ALSA 声卡驱动程序都使用它。 它采用以下具有全局影响的选项。
- prealloc_buffer_size_kbytes
以千字节为单位指定预分配的缓冲区大小 (默认值: 512)。
顶级声卡模块的通用参数¶
每个顶级声卡模块都采用以下选项。
- index
声卡的索引 (槽位 #);值:0 到 31 或负数;如果为非负数,则分配该索引号;如果为负数,则解释为允许的索引的位掩码;分配第一个允许的空闲索引;默认值:-1
- id
声卡 ID (标识符或名称);最多可包含 15 个字符;默认值:声卡类型;将在此名称下在 /proc/asound/ 下创建一个目录,其中包含有关声卡的信息;此 ID 可用于代替索引号来标识声卡
- enable
启用声卡;默认值:启用,适用于 PCI 和 ISA PnP 声卡
这些选项用于指定实例的顺序,或者控制是否启用/禁用与同一驱动程序绑定的多个设备中的每个设备。 例如,许多机器具有两个 HD-audio 控制器(一个用于 HDMI/DP 音频,另一个用于板载模拟)。 在大多数情况下,第二个是主要使用的,并且人们希望将其指定为第一个出现的声卡。 他们可以通过指定 “index=1,0” 模块参数来实现,这将交换分配槽。
如今,借助支持动态配置的 PulseAudio 和 PipeWire 等声音后端,它用处不大,但这在过去对静态配置有所帮助。
模块 snd-adlib¶
AdLib FM 声卡的模块。
- port
OPL 芯片的端口号
此模块支持多个声卡。 它不支持自动探测,因此必须指定端口。 对于实际的 AdLib FM 声卡,它将为 0x388。 请注意,此声卡没有 PCM 支持,也没有混音器;只有 FM 合成。
确保您有 alsa-tools 包中的 sbiload
,并且在加载模块后,通过 sbiload -l
找出分配的 ALSA 音序器端口号。
示例输出
Port Client name Port name
64:0 OPL2 FM synth OPL2 FM Port
加载 std.sb
和 drums.sb
补丁,这些补丁也由 sbiload
提供
sbiload -p 64:0 std.sb drums.sb
如果您使用此驱动程序来驱动 OPL3,则可以使用 std.o3
和 drums.o3
。 要使声卡发出声音,请使用 alsa-utils 中的 aplaymidi
aplaymidi -p 64:0 foo.mid
模块 snd-ad1816a¶
基于 Analog Devices AD1816A/AD1815 ISA 芯片的声卡的模块。
- clockfreq
AD1816A 芯片的时钟频率(默认值 = 0, 33000Hz)
此模块支持多个声卡、自动探测和 PnP。
模块 snd-ad1848¶
基于 AD1848/AD1847/CS4248 ISA 芯片的声卡的模块。
- port
AD1848 芯片的端口号
- irq
AD1848 芯片的 IRQ 号
- dma1
AD1848 芯片的 DMA 号 (0,1,3)
此模块支持多个声卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
支持电源管理。
模块 snd-ad1889¶
Analog Devices AD1889 芯片的模块。
- ac97_quirk
针对奇怪硬件的 AC’97 变通方法; 有关详细信息,请参阅 intel8x0 模块的说明。
此模块支持多个声卡。
模块 snd-ali5451¶
ALi M5451 PCI 芯片的模块。
- pcm_channels
为 PCM 分配的硬件通道数
- spdif
支持 SPDIF I/O;默认值:禁用
此模块支持一个芯片和自动探测。
支持电源管理。
模块 snd-als100¶
基于 Avance Logic ALS100/ALS120 ISA 芯片的声卡的模块。
此模块支持多个声卡、自动探测和 PnP。
支持电源管理。
模块 snd-als300¶
Avance Logic ALS300 和 ALS300+ 的模块
此模块支持多个声卡。
支持电源管理。
模块 snd-als4000¶
基于 Avance Logic ALS4000 PCI 芯片的声卡的模块。
- joystick_port
传统操纵杆支持的端口号;0 = 禁用 (默认值),1 = 自动检测
此模块支持多个声卡、自动探测和 PnP。
支持电源管理。
模块 snd-asihpi¶
用于 AudioScience ASI 声卡的模块
- enable_hpi_hwdep
为 AudioScience 声卡启用 HPI hwdep
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-atiixp¶
用于 ATI IXP 150/200/250/400 AC97 控制器的模块。
- ac97_clock
AC’97 时钟(默认值 = 48000)
- ac97_quirk
针对奇怪硬件的 AC’97 变通方法; 有关详细信息,请参阅下面的 AC97 变通选项 部分。
- ac97_codec
用于指定哪个 AC’97 编解码器的变通方法,而不是探测。 如果这适用于您,请使用您的
lspci -vn
输出提交错误。 (-2 = 强制探测, -1 = 默认行为, 0-2 = 使用指定的编解码器。)- spdif_aclink
通过 AC 链路传输 S/PDIF (默认值 = 1)
此模块支持一个声卡和自动探测。
ATI IXP 有两种不同的方法来控制 SPDIF 输出。 一种是通过 AC 链路,另一种是通过 “直接” SPDIF 输出。 该实现取决于主板,您需要通过 spdif_aclink 模块选项选择正确的实现。
支持电源管理。
模块 snd-atiixp-modem¶
用于 ATI IXP 150/200/250 AC97 调制解调器控制器的模块。
此模块支持一个声卡和自动探测。
注意:此模块的默认索引值为 -2,即排除第一个插槽。
支持电源管理。
模块 snd-au8810、snd-au8820、snd-au8830¶
用于 Aureal Vortex、Vortex2 和 Advantage 设备的模块。
- pcifix
控制 PCI 解决方法;0 = 禁用所有解决方法,1 = 强制 Aureal 卡的 PCI 延迟为 0xff,2 = 强制扩展 PCI#2 内部主控以高效处理 VIA KT133 AGP 桥上的虚拟请求,3 = 强制两个设置,255 = 自动检测所需设置(默认)
此模块支持所有 ADB PCM 通道、ac97 混音器、SPDIF、硬件均衡器、mpu401、游戏端口。A3D 和波表支持仍在开发中。开发和逆向工程工作正在 https://savannah.nongnu.org/projects/openvortex/ 进行协调。SPDIF 输出具有 AC97 编解码器输出的副本,除非您使用 spdif
pcm 设备,它允许原始数据直通。硬件均衡器硬件和 SPDIF 仅在 Vortex2 和 Advantage 中存在。
注意:某些 ALSA 混音器应用程序无法正确处理 SPDIF 采样率控制。如果您在此方面遇到问题,请尝试其他 ALSA 兼容的混音器(alsamixer 有效)。
模块 snd-azt1605¶
用于基于 Aztech AZT1605 芯片组的 Aztech Sound Galaxy 声卡的模块。
- port
用于 BASE 的端口号 (0x220,0x240,0x260,0x280)
- wss_port
用于 WSS 的端口号 (0x530,0x604,0xe80,0xf40)
- irq
用于 WSS 的 IRQ 号 (7,9,10,11)
- dma1
用于 WSS 回放的 DMA 号 (0,1,3)
- dma2
用于 WSS 捕获的 DMA 号 (0,1), -1 = 禁用(默认)
- mpu_port
用于 MPU-401 UART 的端口号 (0x300,0x330), -1 = 禁用(默认)
- mpu_irq
用于 MPU-401 UART 的 IRQ 号 (3,5,7,9), -1 = 禁用(默认)
- fm_port
用于 OPL3 的端口号 (0x388), -1 = 禁用(默认)
此模块支持多个卡。它不支持自动探测:必须指定 port
、wss_port
、irq
和 dma1
。其他值是可选的。
port
需要匹配卡上的 BASE ADDRESS 跳线 (0x220 或 0x240),或者对于具有 EEPROM 并且其“CONFIG MODE”跳线设置为“EEPROM SETTING”的卡,则匹配卡 EEPROM 中存储的值。其他值可以从上面枚举的选项中自由选择。
如果指定 dma2
并且与 dma1
不同,则卡将以全双工模式运行。当 dma1=3
时,只有 dma2=0
有效,并且是启用捕获的唯一方法,因为只有通道 0 和 1 可用于捕获。
通用设置为 port=0x220 wss_port=0x530 irq=10 dma1=1 dma2=0 mpu_port=0x330 mpu_irq=9 fm_port=0x388
。
无论您选择哪个 IRQ 和 DMA 通道,请务必在 BIOS 中为旧 ISA 保留它们。
模块 snd-azt2316¶
用于基于 Aztech AZT2316 芯片组的 Aztech Sound Galaxy 声卡的模块。
- port
用于 BASE 的端口号 (0x220,0x240,0x260,0x280)
- wss_port
用于 WSS 的端口号 (0x530,0x604,0xe80,0xf40)
- irq
用于 WSS 的 IRQ 号 (7,9,10,11)
- dma1
用于 WSS 回放的 DMA 号 (0,1,3)
- dma2
用于 WSS 捕获的 DMA 号 (0,1), -1 = 禁用(默认)
- mpu_port
用于 MPU-401 UART 的端口号 (0x300,0x330), -1 = 禁用(默认)
- mpu_irq
用于 MPU-401 UART 的 IRQ 号 (5,7,9,10), -1 = 禁用(默认)
- fm_port
用于 OPL3 的端口号 (0x388), -1 = 禁用(默认)
此模块支持多个卡。它不支持自动探测:必须指定 port
、wss_port
、irq
和 dma1
。其他值是可选的。
port
需要匹配卡上的 BASE ADDRESS 跳线 (0x220 或 0x240),或者对于具有 EEPROM 并且其“CONFIG MODE”跳线设置为“EEPROM SETTING”的卡,则匹配卡 EEPROM 中存储的值。其他值可以从上面枚举的选项中自由选择。
如果指定 dma2
并且与 dma1
不同,则卡将以全双工模式运行。当 dma1=3
时,只有 dma2=0
有效,并且是启用捕获的唯一方法,因为只有通道 0 和 1 可用于捕获。
通用设置为 port=0x220 wss_port=0x530 irq=10 dma1=1 dma2=0 mpu_port=0x330 mpu_irq=9 fm_port=0x388
。
无论您选择哪个 IRQ 和 DMA 通道,请务必在 BIOS 中为旧 ISA 保留它们。
模块 snd-aw2¶
用于 Audiowerk2 声卡的模块
此模块支持多个声卡。
模块 snd-azt2320¶
用于基于 Aztech System AZT2320 ISA 芯片(仅限 PnP)的声卡的模块。
此模块支持多个卡、PnP 和自动探测。
支持电源管理。
模块 snd-azt3328¶
用于基于 Aztech AZF3328 PCI 芯片的声卡的模块。
- joystick
启用操纵杆(默认关闭)
此模块支持多个声卡。
模块 snd-bt87x¶
用于基于 Bt87x 芯片的视频卡的模块。
- digital_rate
覆盖默认数字速率 (Hz)
- load_all
即使卡的型号未知也加载驱动程序
此模块支持多个声卡。
注意:此模块的默认索引值为 -2,即排除第一个插槽。
模块 snd-ca0106¶
用于 Creative Audigy LS 和 SB Live 24bit 的模块
此模块支持多个声卡。
模块 snd-cmi8330¶
用于基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- wssport
用于 CMI8330 芯片 (WSS) 的端口号
- wssirq
用于 CMI8330 芯片 (WSS) 的 IRQ 号
- wssdma
用于 CMI8330 芯片 (WSS) 的第一个 DMA 号
- sbport
用于 CMI8330 芯片 (SB16) 的端口号
- sbirq
用于 CMI8330 芯片 (SB16) 的 IRQ 号
- sbdma8
用于 CMI8330 芯片 (SB16) 的 8 位 DMA 号
- sbdma16
用于 CMI8330 芯片 (SB16) 的 16 位 DMA 号
- fmport
(可选)OPL3 I/O 端口
- mpuport
(可选)MPU401 I/O 端口
- mpuirq
(可选)MPU401 irq 号
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-cmipci¶
用于 C-Media CMI8338/8738/8768/8770 PCI 声卡的模块。
- mpu_port
MIDI 接口的端口地址(仅限 8338):0x300、0x310、0x320、0x330 = 旧式端口,1 = 集成 PCI 端口(8738 上的默认设置),0 = 禁用
- fm_port
OPL-3 FM 合成器的端口地址(仅限 8x38):0x388 = 旧式端口,1 = 集成 PCI 端口(8738 上的默认设置),0 = 禁用
- soft_ac3
原始 SPDIF 数据包的软件转换(仅限型号 033)(默认 = 1)
- joystick_port
操纵杆端口地址(0 = 禁用,1 = 自动检测)
此模块支持自动探测和多个卡。
支持电源管理。
模块 snd-cs4231¶
用于基于 CS4231 ISA 芯片的声卡的模块。
- port
用于 CS4231 芯片的端口号
- mpu_port
用于 MPU-401 UART 的端口号(可选),-1 = 禁用
- irq
用于 CS4231 芯片的 IRQ 号
- mpu_irq
用于 MPU-401 UART 的 IRQ 号
- dma1
用于 CS4231 芯片的第一个 DMA 号
- dma2
用于 CS4231 芯片的第二个 DMA 号
此模块支持多个卡。此模块不支持自动探测,因此必须指定主端口!!!其他端口是可选的。
支持电源管理。
模块 snd-cs4236¶
用于基于 CS4232/CS4232A、CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 ISA 芯片的声卡的模块。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
用于 CS4236 芯片的端口号(PnP 设置 - 0x534)
- cport
用于 CS4236 芯片的控制端口号(PnP 设置 - 0x120,0x210,0xf00)
- mpu_port
用于 MPU-401 UART 的端口号(PnP 设置 - 0x300),-1 = 禁用
- fm_port
用于 CS4236 芯片的 FM 端口号(PnP 设置 - 0x388),-1 = 禁用
- irq
用于 CS4236 芯片的 IRQ 号 (5,7,9,11,12,15)
- mpu_irq
用于 MPU-401 UART 的 IRQ 号 (9,11,12,15)
- dma1
用于 CS4236 芯片的第一个 DMA 号 (0,1,3)
- dma2
用于 CS4236 芯片的第二个 DMA 号 (0,1,3),-1 = 禁用
此模块支持多个卡。此模块不支持自动探测(如果未使用 ISA PnP),因此必须指定主端口和控制端口!!!其他端口是可选的。
支持电源管理。
此模块被别名为 snd-cs4232,因为它也提供了旧的 snd-cs4232 功能。
模块 snd-cs4281¶
用于 Cirrus Logic CS4281 声卡的模块。
- dual_codec
辅助编解码器 ID (0 = 禁用,默认)
此模块支持多个声卡。
支持电源管理。
模块 snd-cs46xx¶
用于基于 CS4610/CS4612/CS4614/CS4615/CS4622/CS4624/CS4630/CS4280 PCI 芯片的 PCI 声卡的模块。
- external_amp
强制启用外部放大器。
- thinkpad
强制启用 Thinkpad 的 CLKRUN 控制。
- mmap_valid
支持 OSS mmap 模式(默认 = 0)。
此模块支持多个卡和自动探测。通常,外部放大器和 CLKRUN 控制是从 PCI 子供应商/设备 ID 自动检测的。如果它们不起作用,请显式给出上述选项。
支持电源管理。
模块 snd-cs5530¶
用于 Cyrix/NatSemi Geode 5530 芯片的模块。
模块 snd-cs5535audio¶
用于多功能 CS5535 配套 PCI 设备的模块
支持电源管理。
模块 snd-ctxfi¶
用于 Creative Sound Blaster X-Fi 板(20k1 / 20k2 芯片)的模块
Creative Sound Blaster X-Fi Titanium Fatal1ty 冠军系列
Creative Sound Blaster X-Fi Titanium Fatal1ty 专业系列
Creative Sound Blaster X-Fi Titanium 专业音频
Creative Sound Blaster X-Fi Titanium
Creative Sound Blaster X-Fi Elite Pro
Creative Sound Blaster X-Fi Platinum
Creative Sound Blaster X-Fi Fatal1ty
Creative Sound Blaster X-Fi XtremeGamer
Creative Sound Blaster X-Fi XtremeMusic
- reference_rate
参考采样率,44100 或 48000(默认)
- multiple
参考采样率的倍数,1 或 2(默认)
- subsystem
覆盖用于探测的 PCI SSID;该值由 SSVID << 16 | SSDID 组成。默认值为零,表示不覆盖。
此模块支持多个声卡。
模块 snd-darla20¶
用于 Echoaudio Darla20 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-darla24¶
用于 Echoaudio Darla24 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-dt019x¶
用于 Diamond Technologies DT-019X / Avance Logic ALS-007(仅限 PnP)的模块
此模块支持多个卡。仅在支持 ISA PnP 时启用此模块。
支持电源管理。
模块 snd-dummy¶
用于虚拟声卡的模块。这个“卡”不进行任何输出或输入,但您可以将此模块用于任何需要声卡的应用程序(如 RealPlayer)。
- pcm_devs
分配给每个卡的 PCM 设备数量(默认 = 1,最多 4 个)
- pcm_substreams
每个 PCM 分配的 PCM 子流数量(默认值 = 8,最大 128)
- hrtimer
使用 hrtimer (=1, 默认值) 或系统定时器 (=0)
- fake_buffer
模拟缓冲区分配(默认值 = 1)
当创建多个 PCM 设备时,snd-dummy 会为每个 PCM 设备提供不同的行为:* 0 = 交错,支持 mmap * 1 = 非交错,支持 mmap * 2 = 交错,不支持 mmap * 3 = 非交错,不支持 mmap
默认情况下,snd-dummy 驱动程序不会分配真实的缓冲区,而是忽略读取/写入操作,或者将单个虚拟页面 mmap 到所有缓冲区页面,以节省资源。如果你的应用程序需要读取/写入的缓冲区数据保持一致,请传递 fake_buffer=0 选项。
支持电源管理。
模块 snd-echo3g¶
用于 Echoaudio 3G 声卡 (Gina3G/Layla3G) 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-emu10k1¶
用于基于 EMU10K1/EMU10k2 的 PCI 声卡的模块。
创新声霸卡 Live!
创新声霸卡 PCI 512
创新声霸卡 Audigy
E-MU APS(部分支持)
E-MU DAS
- extin
FX8010 可用外部输入的位图(见下文)
- extout
FX8010 可用外部输出的位图(见下文)
- seq_ports
分配的音序器端口(默认 4 个)
- max_synth_voices
波表使用的最大复音数(默认 64)
- max_buffer_size
指定波表/pcm 缓冲区的最大大小,单位为 MB。默认值为 128。
- enable_ir
启用红外
此模块支持多个卡和自动探测。
输入和输出配置 [extin/extout] * 无数字输出的创新卡 [0x0003/0x1f03] * 带数字输出的创新卡 [0x0003/0x1f0f] * 带数字 CD 输入的创新卡 [0x000f/0x1f0f] * 无数字输出 + LiveDrive 的创新卡 [0x3fc3/0x1fc3] * 带数字输出 + LiveDrive 的创新卡 [0x3fc3/0x1fcf] * 带数字 CD 输入 + LiveDrive 的创新卡 [0x3fcf/0x1fcf] * 无数字输出 + 数字 I/O 2 的创新卡 [0x0fc3/0x1f0f] * 带数字输出 + 数字 I/O 2 的创新卡 [0x0fc3/0x1f0f] * 带数字 CD 输入 + 数字 I/O 2 的创新卡 [0x0fcf/0x1f0f] * 5.1/带数字输出 + LiveDrive 的创新卡 [0x3fc3/0x1fff] * 5.1 创新卡 (c) 2003 [0x3fc3/0x7cff] * 创新卡所有输入和输出 [0x3fff/0x7fff]
支持电源管理。
模块 snd-emu10k1x¶
用于创新 Emu10k1X(SB Live Dell OEM 版本)的模块
此模块支持多个声卡。
模块 snd-ens1370¶
用于 Ensoniq AudioPCI ES1370 PCI 声卡的模块。
声霸卡 PCI 64
声霸卡 PCI 128
- joystick
启用操纵杆(默认关闭)
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-ens1371¶
用于 Ensoniq AudioPCI ES1371 PCI 声卡的模块。
声霸卡 PCI 64
声霸卡 PCI 128
声霸卡 Vibra PCI
- joystick_port
操纵杆的端口号 (0x200,0x208,0x210,0x218),0 = 禁用(默认),1 = 自动检测
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-es1688¶
用于 ESS AudioDrive ES-1688 和 ES-688 声卡的模块。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
- mpu_port
MPU-401 端口的端口号 (0x300,0x310,0x320,0x330),-1 = 禁用(默认)
- mpu_irq
MPU-401 端口的 IRQ 号 (5,7,9,10)
- fm_port
OPL3 的端口号(可选;与默认端口共享)
使用 isapnp=0
时,可以使用以下附加选项
- port
ES-1688 芯片的端口号 (0x220,0x240,0x260)
- irq
ES-1688 芯片的 IRQ 号 (5,7,9,10)
- dma8
ES-1688 芯片的 DMA 号 (0,1,3)
此模块支持多个声卡和自动探测(不带 MPU-401 端口)以及带 ES968 芯片的 PnP。
模块 snd-es18xx¶
用于 ESS AudioDrive ES-18xx 声卡的模块。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
ES-18xx 芯片的端口号 (0x220,0x240,0x260)
- mpu_port
MPU-401 端口的端口号 (0x300,0x310,0x320,0x330),-1 = 禁用(默认)
- fm_port
FM 的端口号(可选,未使用)
- irq
ES-18xx 芯片的 IRQ 号 (5,7,9,10)
- dma1
ES-18xx 芯片的第一个 DMA 号 (0,1,3)
- dma2
ES-18xx 芯片的第一个 DMA 号 (0,1,3)
此模块支持多个声卡、ISA PnP 和自动探测(如果未使用本机 ISA PnP 例程,则不带 MPU-401 端口)。当 dma2
与 dma1
相等时,驱动程序将以半双工方式工作。
支持电源管理。
模块 snd-es1938¶
用于基于 ESS Solo-1 (ES1938,ES1946) 芯片的声卡的模块。
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-es1968¶
用于基于 ESS Maestro-1/2/2E (ES1968/ES1978) 芯片的声卡的模块。
- total_bufsize
总缓冲区大小,单位为 kB (1-4096kB)
- pcm_substreams_p
播放通道 (1-8, 默认=2)
- pcm_substreams_c
捕获通道 (1-8, 默认=0)
- clock
时钟 (0 = 自动检测)
- use_pm
支持电源管理 (0 = 关闭, 1 = 打开, 2 = 自动 (默认))
- enable_mpu
启用 MPU401 (0 = 关闭, 1 = 打开, 2 = 自动 (默认))
- joystick
启用操纵杆(默认关闭)
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-fm801¶
用于基于 ForteMedia FM801 的 PCI 声卡的模块。
- tea575x_tuner
启用 TEA575x 调谐器;1 = MediaForte 256-PCS,2 = MediaForte 256-PCPR,3 = MediaForte 64-PCR 高 16 位是视频(无线电)设备号 + 1;示例:0x10002 (MediaForte 256-PCPR, 设备 1)
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-gina20¶
用于 Echoaudio Gina20 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-gina24¶
用于 Echoaudio Gina24 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-gusclassic¶
用于 Gravis UltraSound Classic 声卡的模块。
- port
GF1 芯片的端口号 (0x220,0x230,0x240,0x250,0x260)
- irq
GF1 芯片的 IRQ 号 (3,5,9,11,12,15)
- dma1
GF1 芯片的 DMA 号 (1,3,5,6,7)
- dma2
GF1 芯片的 DMA 号 (1,3,5,6,7,-1=禁用)
- joystick_dac
0 到 31,(0.59V-4.52V 或 0.389V-2.98V)
- voices
GF1 复音限制 (14-32)
- pcm_voices
保留的 PCM 复音
此模块支持多个卡和自动探测。
模块 snd-gusextreme¶
用于 Gravis UltraSound Extreme (Synergy ViperMax) 声卡的模块。
- port
ES-1688 芯片的端口号 (0x220,0x230,0x240,0x250,0x260)
- gf1_port
GF1 芯片的端口号 (0x210,0x220,0x230,0x240,0x250,0x260,0x270)
- mpu_port
MPU-401 端口的端口号 (0x300,0x310,0x320,0x330), -1 = 禁用
- irq
ES-1688 芯片的 IRQ 号 (5,7,9,10)
- gf1_irq
GF1 芯片的 IRQ 号 (3,5,9,11,12,15)
- mpu_irq
MPU-401 端口的 IRQ 号 (5,7,9,10)
- dma8
ES-1688 芯片的 DMA 号 (0,1,3)
- dma1
GF1 芯片的 DMA 号 (1,3,5,6,7)
- joystick_dac
0 到 31,(0.59V-4.52V 或 0.389V-2.98V)
- voices
GF1 复音限制 (14-32)
- pcm_voices
保留的 PCM 复音
此模块支持多个声卡和自动探测(不带 MPU-401 端口)。
模块 snd-gusmax¶
用于 Gravis UltraSound MAX 声卡的模块。
- port
GF1 芯片的端口号 (0x220,0x230,0x240,0x250,0x260)
- irq
GF1 芯片的 IRQ 号 (3,5,9,11,12,15)
- dma1
GF1 芯片的 DMA 号 (1,3,5,6,7)
- dma2
GF1 芯片的 DMA 号 (1,3,5,6,7,-1=禁用)
- joystick_dac
0 到 31,(0.59V-4.52V 或 0.389V-2.98V)
- voices
GF1 复音限制 (14-32)
- pcm_voices
保留的 PCM 复音
此模块支持多个卡和自动探测。
模块 snd-hda-intel¶
用于 Intel HD Audio (ICH6, ICH6M, ESB2, ICH7, ICH8, ICH9, ICH10, PCH, SCH)、ATI SB450、SB600、R600、RS600、RS690、RS780、RV610、RV620、RV630、RV635、RV670、RV770、VIA VT8251/VT8237A、SIS966、ULI M5461 的模块
[每个声卡实例的多个选项]
- model
强制使用模型名称
- position_fix
修复 DMA 指针;-1 = 系统默认:为每个控制器硬件选择合适的指针,0 = 自动:当 POSBUF 不工作时回退到 LPIB,1 = 使用 LPIB,2 = POSBUF:使用位置缓冲区,3 = VIACOMBO:针对捕获的 VIA 特定的解决方法,4 = COMBO:播放使用 LPIB,捕获流使用自动,5 = SKL+:应用最近 Intel 芯片上可用的延迟计算,6 = FIFO:使用固定的 FIFO 大小校正位置,适用于最近的 AMD 芯片
- probe_mask
探测编解码器的位掩码(默认值 = -1,表示所有插槽);当设置了第 8 位 (0x100) 时,较低的 8 位用作“固定”编解码器插槽;即,无论硬件报告什么,驱动程序都会探测这些插槽
- probe_only
仅探测,不进行编解码器初始化(默认值=关闭);有助于检查初始编解码器状态以进行调试
- bdl_pos_adj
以采样为单位指定 DMA IRQ 定时延迟。传递 -1 将使驱动程序根据控制器芯片选择适当的值。
- patch
指定在初始化编解码器之前修改 HD 音频设置的早期“补丁”文件。此选项仅在设置了
CONFIG_SND_HDA_PATCH_LOADER=y
时可用。有关详细信息,请参阅 HD 音频驱动程序的更多说明。- beep_mode
选择蜂鸣注册模式(0=关闭,1=打开);默认值通过
CONFIG_SND_HDA_INPUT_BEEP_MODE
kconfig 设置。
[单个(全局)选项]
- single_cmd
使用单个立即命令与编解码器通信(仅用于调试)
- enable_msi
启用消息信号中断 (MSI)(默认值 = 关闭)
- power_save
自动省电超时(以秒为单位,0 = 禁用)
- power_save_controller
在省电模式下重置 HD 音频控制器(默认值 = 打开)
- pm_blacklist
启用/禁用电源管理拒绝列表(默认值 = 查找 PM 拒绝列表,0 = 跳过 PM 拒绝列表,1 = 强制关闭运行时 PM)
- align_buffer_size
强制将缓冲区/周期大小舍入为 128 字节的倍数。这在内存访问方面更有效,但 HDA 规范并不要求这样做,并且会阻止用户指定精确的周期/缓冲区大小。(默认值 = 打开)
- snoop
启用/禁用窥探(默认值 = 打开)
此模块支持多个卡和自动探测。
有关 HD 音频驱动程序的更多详细信息,请参阅 HD 音频驱动程序的更多说明。
每个编解码器可能都有一个用于不同配置的模型表。如果您的机器未在其中列出,则会设置默认(通常是最小)配置。您可以传递 model=<name>
选项来指定这种情况下的特定模型。根据编解码器芯片的不同,有不同的模型。可在 HD 音频编解码器特定模型 中找到可用模型的列表。
模型名称 generic
被视为特殊情况。当给出此模型时,驱动程序将使用通用编解码器解析器,而无需“编解码器补丁”。这有时对于测试和调试很有用。
模型选项还可以用于别名到另一个 PCI 或编解码器 SSID。当它以 model=XXXX:YYYY
的形式传递时,其中 XXXX 和 YYYY 分别是十六进制数字的子供应商 ID 和子设备 ID,驱动程序将把该 SSID 作为怪癖表的参考。
如果默认配置不起作用,并且上述其中一个与您的设备匹配,请将它与 alsa-info.sh 输出(使用 --no-upload
选项)一起报告给内核 bugzilla 或 alsa-devel ML(请参阅链接和地址部分)。
power_save
和 power_save_controller
选项用于省电模式。有关详细信息,请参阅 powersave.rst。
注 2:如果您在输出时听到咔哒声,请尝试模块选项 position_fix=1
或 2
。position_fix=1
将使用 SD_LPIB 寄存器值,而无需 FIFO 大小校正作为当前 DMA 指针。position_fix=2
将使驱动程序使用位置缓冲区而不是读取 SD_LPIB 寄存器。(通常,SD_LPIB 寄存器比位置缓冲区更准确。)
position_fix=3
专门用于 VIA 设备。捕获流的位置会从 LPIB 和 POSBUF 值中进行检查。position_fix=4
是一种组合模式,将 LPIB 用于播放,将 POSBUF 用于捕获。
注意:如果在加载时收到许多 azx_get_response timeout
消息,则很可能是中断问题(例如 ACPI irq 路由)。尝试使用类似 pci=noacpi
的选项启动。此外,您可以尝试 single_cmd=1
模块选项。这将把 HDA 控制器和编解码器之间的通信方法切换为单次即时命令,而不是 CORB/RIRB。基本上,单次命令模式仅适用于 BIOS,您也不会收到未经请求的事件。但是,至少,它可以独立于 irq 工作。请记住,这是最后的手段,应尽可能避免使用...
关于 azx_get_response timeout
问题的更多说明:在某些硬件上,您可能需要添加适当的 probe_mask 选项来避免上述 azx_get_response timeout
问题。当访问不存在或无法工作的编解码器插槽(可能是调制解调器插槽)导致通过 HD-audio 总线的通信停顿时,就会发生这种情况。您可以通过启用 CONFIG_SND_DEBUG_VERBOSE
来查看探测了哪些编解码器插槽,或者直接从编解码器 proc 文件的文件名中查看。然后通过 probe_mask 选项限制要探测的插槽。例如,probe_mask=1
表示仅探测第一个插槽,而 probe_mask=4
表示仅探测第三个插槽。
支持电源管理。
模块 snd-hdsp¶
用于 RME Hammerfall DSP 音频接口的模块
此模块支持多个声卡。
注意:当设置 CONFIG_FW_LOADER
时,固件数据可以通过热插拔自动加载。否则,您需要通过 alsa-tools 包中包含的 hdsploader 实用程序加载固件。固件数据位于 alsa-firmware 包中。
注意:snd-page-alloc 模块执行以前 snd-hammerfall-mem 模块所做的工作。当找到任何 HDSP 卡时,它会预先分配缓冲区。为了确保缓冲区分配,请在引导序列的早期阶段加载 snd-page-alloc 模块。请参阅早期缓冲区分配部分。
模块 snd-hdspm¶
用于 RME HDSP MADI 板的模块。
- precise_ptr
启用精确指针,或禁用。
- line_outs_monitor
默认情况下将播放流发送到模拟输出。
- enable_monitor
默认情况下在通道 63/64 上启用模拟输出。
有关详细信息,请参阅 hdspm.rst。
模块 snd-ice1712¶
用于基于 Envy24 (ICE1712) 的 PCI 声卡的模块。
MidiMan M Audio Delta 1010
MidiMan M Audio Delta 1010LT
MidiMan M Audio Delta DiO 2496
MidiMan M Audio Delta 66
MidiMan M Audio Delta 44
MidiMan M Audio Delta 410
MidiMan M Audio Audiophile 2496
TerraTec EWS 88MT
TerraTec EWS 88D
TerraTec EWX 24/96
TerraTec DMX 6Fire
TerraTec Phase 88
Hoontech SoundTrack DSP 24
Hoontech SoundTrack DSP 24 Value
Hoontech SoundTrack DSP 24 Media 7.1
Event Electronics, EZ8
Digigram VX442
Lionstracs, Mediastaton
Terrasoniq TS 88
- model
使用给定的主板模型,以下之一:delta1010、dio2496、delta66、delta44、audiophile、delta410、delta1010lt、vx442、ewx2496、ews88mt、ews88mt_new、ews88d、dmx6fire、dsp24、dsp24_value、dsp24_71、ez8、phase88、mediastation
- omni
为 MidiMan M-Audio Delta44/66 提供 Omni I/O 支持
- cs8427_timeout
以毫秒分辨率重置 CS8427 芯片(S/PDIF 收发器)的超时时间,默认值为 500(0.5 秒)
此模块支持多个卡和自动探测。注意:并非所有基于 Envy24 的卡都使用消费级部分(例如在 MidiMan Delta 系列中)。
注意:支持的板通过读取 EEPROM 或 PCI SSID(如果 EEPROM 不可用)来检测。如果驱动程序配置不正确或者您想尝试其他类型进行测试,您可以通过传递 model
模块选项来覆盖模型。
模块 snd-ice1724¶
用于基于 Envy24HT (VT/ICE1724)、Envy24PT (VT1720) 的 PCI 声卡的模块。
MidiMan M Audio Revolution 5.1
MidiMan M Audio Revolution 7.1
MidiMan M Audio Audiophile 192
AMP Ltd AUDIO2000
TerraTec Aureon 5.1 Sky
TerraTec Aureon 7.1 Space
TerraTec Aureon 7.1 Universe
TerraTec Phase 22
TerraTec Phase 28
AudioTrak Prodigy 7.1
AudioTrak Prodigy 7.1 LT
AudioTrak Prodigy 7.1 XT
AudioTrak Prodigy 7.1 HIFI
AudioTrak Prodigy 7.1 HD2
AudioTrak Prodigy 192
Pontis MS300
Albatron K8X800 Pro II
Chaintech ZNF3-150
Chaintech ZNF3-250
Chaintech 9CJS
Chaintech AV-710
Shuttle SN25P
Onkyo SE-90PCI
Onkyo SE-200PCI
ESI Juli@
ESI Maya44
Hercules Fortissimo IV
EGO-SYS WaveTerminal 192M
- model
使用给定的主板模型,以下之一:revo51、revo71、amp2000、prodigy71、prodigy71lt、prodigy71xt、prodigy71hifi、prodigyhd2、prodigy192、juli、aureon51、aureon71、universe、ap192、k8x800、phase22、phase28、ms300、av710、se200pci、se90pci、fortissimo4、sn25p、WT192M、maya44
此模块支持多个卡和自动探测。
注意:支持的板通过读取 EEPROM 或 PCI SSID(如果 EEPROM 不可用)来检测。如果驱动程序配置不正确或者您想尝试其他类型进行测试,您可以通过传递 model
模块选项来覆盖模型。
模块 snd-indigo¶
用于 Echoaudio Indigo 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-indigodj¶
用于 Echoaudio Indigo DJ 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-indigoio¶
用于 Echoaudio Indigo IO 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-intel8x0¶
用于 Intel 和兼容厂商的 AC'97 主板的模块。
Intel i810/810E、i815、i820、i830、i84x、MX440 ICH5、ICH6、ICH7、6300ESB、ESB2
SiS 7012 (SiS 735)
NVidia NForce、NForce2、NForce3、MCP04、CK804 CK8、CK8S、MCP501
AMD AMD768、AMD8111
ALi m5455
- ac97_clock
AC'97 编解码器时钟基准(0 = 自动检测)
- ac97_quirk
针对奇怪硬件的 AC’97 变通方法; 有关详细信息,请参阅下面的 AC97 变通选项 部分。
- buggy_irq
启用一些主板上存在错误的 interrupts 的解决方法(默认情况下,在 nForce 芯片上为是,否则为关闭)
- buggy_semaphore
为具有错误的信号量的硬件启用解决方法(例如,在某些 ASUS 笔记本电脑上)(默认关闭)
- spdif_aclink
使用 AC-link 上的 S/PDIF,而不是直接从控制器芯片连接(0 = 关闭,1 = 开启,-1 = 默认)
此模块支持一个芯片和自动探测。
注意:最新的驱动程序支持芯片时钟的自动检测。如果您仍然遇到播放速度过快的情况,请通过模块选项 ac97_clock=41194
明确指定时钟。
此驱动程序不支持操纵杆/MIDI 端口。如果您的主板具有这些设备,请分别使用 ns558 或 snd-mpu401 模块。
支持电源管理。
模块 snd-intel8x0m¶
用于 Intel ICH (i8x0) 芯片组 MC97 调制解调器的模块。
Intel i810/810E、i815、i820、i830、i84x、MX440 ICH5、ICH6、ICH7
SiS 7013 (SiS 735)
NVidia NForce、NForce2、NForce2s、NForce3
AMD AMD8111
ALi m5455
- ac97_clock
AC'97 编解码器时钟基准(0 = 自动检测)
此模块支持一个声卡和自动探测。
注意:此模块的默认索引值为 -2,即排除第一个插槽。
支持电源管理。
模块 snd-interwave¶
用于基于 AMD InterWave (tm) 芯片的 Gravis UltraSound PnP、Dynasonic 3-D/Pro、STB Sound Rage 32 和其他声卡的模块。
- joystick_dac
0 到 31,(0.59V-4.52V 或 0.389V-2.98V)
- midi
1 = 启用 MIDI UART,0 = 禁用 MIDI UART(默认)
- pcm_voices
为合成器保留的 PCM 声音(默认值 2)
- effect
1 = 启用 InterWave 效果(默认值 0);需要 8 个声音
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
InterWave 芯片的端口号 (0x210,0x220,0x230,0x240,0x250,0x260)
- irq
InterWave 芯片的 IRQ 号 (3,5,9,11,12,15)
- dma1
InterWave 芯片的 DMA 号 (0,1,3,5,6,7)
- dma2
InterWave 芯片的 DMA 号 (0,1,3,5,6,7,-1=禁用)
此模块支持多个卡、自动探测和 ISA PnP。
模块 snd-interwave-stb¶
用于 UltraSound 32-Pro(Compaq 使用的 STB 声卡)和其他基于 AMD InterWave (tm) 芯片的声卡的模块,带有用于扩展控制低音、高音和主音量的 TEA6330T 电路。
- joystick_dac
0 到 31,(0.59V-4.52V 或 0.389V-2.98V)
- midi
1 = 启用 MIDI UART,0 = 禁用 MIDI UART(默认)
- pcm_voices
为合成器保留的 PCM 声音(默认值 2)
- effect
1 = 启用 InterWave 效果(默认值 0);需要 8 个声音
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
InterWave 芯片的端口号 (0x210,0x220,0x230,0x240,0x250,0x260)
- port_tc
用于 TEA6330T 芯片的音调控制(i2c 总线)端口号 (0x350,0x360,0x370,0x380)
- irq
InterWave 芯片的 IRQ 号 (3,5,9,11,12,15)
- dma1
InterWave 芯片的 DMA 号 (0,1,3,5,6,7)
- dma2
InterWave 芯片的 DMA 号 (0,1,3,5,6,7,-1=禁用)
此模块支持多个卡、自动探测和 ISA PnP。
模块 snd-jazz16¶
用于 Media Vision Jazz16 芯片组的模块。该芯片组由 3 个芯片组成:MVD1216 + MVA416 + MVA514。
- port
SB DSP 芯片的端口号 (0x210,0x220,0x230,0x240,0x250,0x260)
- irq
SB DSP 芯片的 IRQ 号 (3,5,7,9,10,15)
- dma8
SB DSP 芯片的 DMA 号 (1,3)
- dma16
SB DSP 芯片的 DMA 号 (5,7)
- mpu_port
MPU-401 端口号 (0x300,0x310,0x320,0x330)
- mpu_irq
MPU-401 irq 号 (2,3,5,7)
此模块支持多个声卡。
模块 snd-korg1212¶
用于 Korg 1212 IO PCI 卡的模块
此模块支持多个声卡。
模块 snd-layla20¶
用于 Echoaudio Layla20 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-layla24¶
用于 Echoaudio Layla24 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-lola¶
用于 Digigram Lola PCI-e 板的模块
此模块支持多个声卡。
模块 snd-lx6464es¶
用于 Digigram LX6464ES 板的模块
此模块支持多个声卡。
模块 snd-maestro3¶
用于 Allegro/Maestro3 芯片的模块
- external_amp
启用外部放大器(默认启用)
- amp_gpio
外部放大器的 GPIO 引脚号 (0-15) 或 -1 表示默认引脚(allegro 为 8,其他为 1)
此模块支持自动探测和多个芯片。
注意:放大器的绑定取决于硬件。即使所有通道都取消静音,但没有声音,请尝试通过 amp_gpio 选项指定其他 gpio 连接。例如,Panasonic 笔记本电脑可能需要 amp_gpio=0x0d
选项。
支持电源管理。
模块 snd-mia¶
用于 Echoaudio Mia 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-miro¶
Miro 声卡的模块:miroSOUND PCM 1 pro,miroSOUND PCM 12,miroSOUND PCM 20 Radio。
- port
端口号(0x530,0x604,0xe80,0xf40)
- irq
IRQ 号(5,7,9,10,11)
- dma1
第一个 DMA 号(0,1,3)
- dma2
第二个 DMA 号(0,1)
- mpu_port
MPU-401 端口号 (0x300,0x310,0x320,0x330)
- mpu_irq
MPU-401 IRQ 号(5,7,9,10)
- fm_port
FM 端口号(0x388)
- wss
启用 WSS 模式
- ide
启用板载 IDE 支持
模块 snd-mixart¶
Digigram miXart8 声卡的模块。
此模块支持多个声卡。注意:一个 miXart8 板将被表示为 4 个 alsa 声卡。有关详细信息,请参阅 Digigram miXart8 和 miXart8AES/EBU 声卡的 Alsa 驱动程序。
当驱动程序编译为模块并且支持热插拔固件时,固件数据将通过热插拔自动加载。在 alsa-firmware 包中安装必要的固件文件。如果没有可用的热插拔固件加载器,则需要通过 alsa-tools 包中的 mixartloader 实用程序加载固件。
模块 snd-mona¶
Echoaudio Mona 的模块
此模块支持多个声卡。 该驱动程序需要在内核上支持固件加载程序。
模块 snd-mpu401¶
MPU-401 UART 设备的模块。
- port
端口号或 -1(禁用)
- irq
IRQ 号或 -1(禁用)
- pnp
PnP 检测 - 0 = 禁用,1 = 启用(默认)
此模块支持多个设备和 PnP。
模块 snd-msnd-classic¶
Turtle Beach MultiSound Classic、Tahiti 或 Monterey 声卡的模块。
- io
msnd-classic 声卡的端口号
- irq
msnd-classic 声卡的 IRQ 号
- mem
内存地址(0xb0000、0xc8000、0xd0000、0xd8000、0xe0000 或 0xe8000)
- write_ndelay
启用写入延迟(默认 = 1)
- calibrate_signal
校准信号(默认 = 0)
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
- digital
存在数字子板(默认 = 0)
- cfg
配置端口(0x250、0x260 或 0x270)默认 = PnP
- reset
重置所有设备
- mpu_io
MPU401 I/O 端口
- mpu_irq
MPU401 irq#
- ide_io0
IDE 端口 #0
- ide_io1
IDE 端口 #1
- ide_irq
IDE irq#
- joystick_io
操纵杆 I/O 端口
驱动程序需要固件文件 turtlebeach/msndinit.bin
和 turtlebeach/msndperm.bin
位于正确的固件目录中。
有关此驱动程序的重要信息,请参阅 Documentation/sound/cards/multisound.sh。请注意,它已停止使用,但 Voyetra Turtle Beach 知识库条目仍可在 https://www.turtlebeach.com 获取。
模块 snd-msnd-pinnacle¶
Turtle Beach MultiSound Pinnacle/Fiji 声卡的模块。
- io
pinnacle/fiji 声卡的端口号
- irq
pinnalce/fiji 声卡的 IRQ 号
- mem
内存地址(0xb0000、0xc8000、0xd0000、0xd8000、0xe0000 或 0xe8000)
- write_ndelay
启用写入延迟(默认 = 1)
- calibrate_signal
校准信号(默认 = 0)
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
驱动程序需要固件文件 turtlebeach/pndspini.bin
和 turtlebeach/pndsperm.bin
位于正确的固件目录中。
模块 snd-mtpav¶
用于 MOTU MidiTimePiece AV 多端口 MIDI(在并行端口上)的模块。
- port
MTPAV 的 I/O 端口号(0x378,0x278,默认=0x378)
- irq
MTPAV 的 IRQ 号(7,5,默认=7)
- hwports
支持的硬件端口数量,默认=8。
模块仅支持 1 个声卡。此模块没有启用选项。
模块 snd-mts64¶
用于 Ego Systems (ESI) Miditerminal 4140 的模块
此模块支持多个设备。需要 parport (CONFIG_PARPORT
)。
模块 snd-nm256¶
用于 NeoMagic NM256AV/ZX 芯片的模块
- playback_bufsize
最大播放帧大小(以 KB 为单位)(4-128KB)
- capture_bufsize
最大捕获帧大小(以 KB 为单位)(4-128KB)
- force_ac97
0 或 1(默认禁用)
- buffer_top
指定缓冲区顶部地址
- use_cache
0 或 1(默认禁用)
- vaio_hack
别名 buffer_top=0x25a800
- reset_workaround
为某些笔记本电脑启用 AC97 重置解决方法
- reset_workaround2
为其他一些笔记本电脑启用扩展的 AC97 重置解决方法
此模块支持一个芯片和自动探测。
支持电源管理。
注意:在某些笔记本电脑上,无法自动检测缓冲区地址,或者在初始化期间导致挂起。在这种情况下,请通过 buffer_top 选项显式指定缓冲区顶部地址。例如,Sony F250: buffer_top=0x25a800 Sony F270: buffer_top=0x272800 驱动程序仅支持 ac97 编解码器。即使未检测到 ac97,也可以强制初始化/使用它。在这种情况下,请使用 force_ac97=1
选项 - 但 不 保证它是否有效!
注意:NM256 芯片可以在内部与非 AC97 编解码器链接。此驱动程序仅支持 AC97 编解码器,并且不适用于具有其他(很可能是 CS423x 或 OPL3SAx)芯片的计算机,即使该设备在 lspci 中被检测到。在这种情况下,请尝试其他驱动程序,例如 snd-cs4232 或 snd-opl3sa2。有些具有 ISA-PnP,而有些没有 ISA PnP。在没有 ISA PnP 的情况下,您需要指定 isapnp=0
和正确的硬件参数。
注意:某些笔记本电脑需要针对 AC97 RESET 的解决方法。对于已知的硬件(如 Dell Latitude LS 和 Sony PCG-F305),此解决方法会自动启用。对于其他出现硬冻结的笔记本电脑,您可以尝试 reset_workaround=1
选项。
注意:Dell Latitude CSx 笔记本电脑在 AC97 RESET 方面存在另一个问题。在这些笔记本电脑上,reset_workaround2 选项默认启用。如果之前的 reset_workaround 选项没有帮助,则值得尝试此选项。
注意:此驱动程序真的很糟糕。它是从 OSS 驱动程序移植而来的,这是黑魔法逆向工程的结果。如果在 X 服务器 之后 加载驱动程序,如上所述,则编解码器检测将失败。您可能可以强制加载模块,但这可能会导致挂起。因此,如果您遇到此类问题,请确保在 X 之前 加载此模块。
模块 snd-opl3sa2¶
用于 Yamaha OPL3-SA2/SA3 声卡的模块。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
OPL3-SA 芯片的控制端口号(0x370)
- sb_port
OPL3-SA 芯片的 SB 端口号(0x220,0x240)
- wss_port
OPL3-SA 芯片的 WSS 端口号(0x530,0xe80,0xf40,0x604)
- midi_port
MPU-401 UART 的端口号(0x300,0x330),-1 = 禁用
- fm_port
OPL3-SA 芯片的 FM 端口号(0x388),-1 = 禁用
- irq
OPL3-SA 芯片的 IRQ 号(5,7,9,10)
- dma1
Yamaha OPL3-SA 芯片的第一个 DMA 号(0,1,3)
- dma2
Yamaha OPL3-SA 芯片的第二个 DMA 号(0,1,3),-1 = 禁用
此模块支持多个声卡和 ISA PnP。它不支持自动探测(如果未使用 ISA PnP),因此必须指定所有端口!!!
支持电源管理。
模块 snd-opti92x-ad1848¶
用于基于 OPTi 82c92x 和 Analog Devices AD1848 芯片的声卡的模块。此模块也适用于 OAK Mozart 声卡。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
WSS 芯片的端口号(0x530,0xe80,0xf40,0x604)
- mpu_port
MPU-401 UART 的端口号(0x300,0x310,0x320,0x330)
- fm_port
OPL3 设备的端口号(0x388)
- irq
WSS 芯片的 IRQ 号(5,7,9,10,11)
- mpu_irq
MPU-401 UART 的 IRQ 号(5,7,9,10)
- dma1
WSS 芯片的第一个 DMA 号(0,1,3)
此模块仅支持一个声卡、自动探测和 PnP。
模块 snd-opti92x-cs4231¶
用于基于 OPTi 82c92x 和 Crystal CS4231 芯片的声卡的模块。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
WSS 芯片的端口号(0x530,0xe80,0xf40,0x604)
- mpu_port
MPU-401 UART 的端口号(0x300,0x310,0x320,0x330)
- fm_port
OPL3 设备的端口号(0x388)
- irq
WSS 芯片的 IRQ 号(5,7,9,10,11)
- mpu_irq
MPU-401 UART 的 IRQ 号(5,7,9,10)
- dma1
WSS 芯片的第一个 DMA 号(0,1,3)
- dma2
WSS 芯片的第二个 DMA 号(0,1,3)
此模块仅支持一个声卡、自动探测和 PnP。
模块 snd-opti93x¶
用于基于 OPTi 82c93x 芯片的声卡的模块。
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0
时,可以使用以下选项
- port
WSS 芯片的端口号(0x530,0xe80,0xf40,0x604)
- mpu_port
MPU-401 UART 的端口号(0x300,0x310,0x320,0x330)
- fm_port
OPL3 设备的端口号(0x388)
- irq
WSS 芯片的 IRQ 号(5,7,9,10,11)
- mpu_irq
MPU-401 UART 的 IRQ 号(5,7,9,10)
- dma1
WSS 芯片的第一个 DMA 号(0,1,3)
- dma2
WSS 芯片的第二个 DMA 号(0,1,3)
此模块仅支持一个声卡、自动探测和 PnP。
模块 snd-oxygen¶
用于基于 C-Media CMI8786/8787/8788 芯片的声卡的模块
Asound A-8788
华硕 Xonar DG/DGX
AuzenTech X-Meridian
AuzenTech X-Meridian 2G
Bgears b-Enspirer
Club3D Theatron DTS
HT-Omega Claro (plus)
HT-Omega Claro halo (XT)
Kuroutoshikou CMI8787-HG2PCI
Razer Barracuda AC-1
Sondigo Inferno
TempoTec HiFier Fantasia
TempoTec HiFier Serenade
此模块支持自动探测和多个卡。
模块 snd-pcsp¶
用于内部 PC 扬声器的模块。
- nopcm
禁用 PC 扬声器 PCM 声音。仅保留蜂鸣声。
- nforce_wa
启用 NForce 芯片组解决方法。预期声音不好。
此模块支持系统蜂鸣声、某种 PCM 回放,甚至一些混音器控件。
模块 snd-pcxhr¶
Digigram PCXHR 板的模块
此模块支持多个声卡。
模块 snd-portman2x4¶
用于 Midiman Portman 2x4 并行端口 MIDI 接口的模块
此模块支持多个声卡。
模块 snd-powermac(仅限 ppc)¶
用于 PowerMac、iMac 和 iBook 板载声卡的模块
- enable_beep
使用 PCM 启用蜂鸣声(默认启用)
模块支持自动探测芯片。
注意:驱动程序在字节序方面可能存在问题。
支持电源管理。
模块 snd-pxa2xx-ac97(仅限 arm)¶
用于 Intel PXA2xx 芯片的 AC97 驱动程序的模块
仅适用于 ARM 架构。
支持电源管理。
模块 snd-riptide¶
用于 Conexant Riptide 芯片的模块
- joystick_port
操纵杆端口号(默认:0x200)
- mpu_port
MPU401 端口号(默认:0x330)
- opl3_port
OPL3 端口号(默认:0x388)
此模块支持多个声卡。驱动程序需要在内核上支持固件加载器。您需要将固件文件 riptide.hex
安装到标准固件路径(例如 /lib/firmware)。
模块 snd-rme32¶
用于 RME Digi32、Digi32 Pro 和 Digi32/8(Sek’d Prodif32、Prodif96 和 Prodif Gold)声卡的模块。
此模块支持多个声卡。
模块 snd-rme96¶
用于 RME Digi96、Digi96/8 和 Digi96/8 PRO/PAD/PST 声卡的模块。
此模块支持多个声卡。
模块 snd-rme9652¶
用于 RME Digi9652(Hammerfall、Hammerfall-Light)声卡的模块。
- precise_ptr
启用精确指针(无法可靠工作)。(默认 = 0)
此模块支持多个声卡。
注意:snd-page-alloc 模块执行以前 snd-hammerfall-mem 模块所做的工作。当发现任何 RME9652 卡时,它会提前分配缓冲区。为了确保缓冲区分配,请在启动序列的早期阶段加载 snd-page-alloc 模块。请参阅早期缓冲区分配部分。
模块 snd-sa11xx-uda1341(仅在 arm 上)¶
用于 Compaq iPAQ H3600 声卡上的 Philips UDA1341TS 的模块。
该模块仅支持一张卡。该模块没有 enable 和 index 选项。
支持电源管理。
模块 snd-sb8¶
用于 8 位 SoundBlaster 声卡的模块:SoundBlaster 1.0、SoundBlaster 2.0、SoundBlaster Pro
- port
SB DSP 芯片的端口号(0x220、0x240、0x260)
- irq
SB DSP 芯片的 IRQ 号(5、7、9、10)
- dma8
SB DSP 芯片的 DMA 号 (1,3)
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-sb16 和 snd-sbawe¶
用于 16 位 SoundBlaster 声卡的模块:SoundBlaster 16 (PnP)、SoundBlaster AWE 32 (PnP)、SoundBlaster AWE 64 PnP
- mic_agc
麦克风自动增益控制 - 0 = 禁用,1 = 启用(默认)
- csp
ASP/CSP 芯片支持 - 0 = 禁用(默认),1 = 启用
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0 时,可以使用以下选项
- port
SB DSP 4.x 芯片的端口号(0x220、0x240、0x260)
- mpu_port
MPU-401 UART 的端口号(0x300,0x330),-1 = 禁用
- awe_port
EMU8000 合成器的基本端口号(0x620、0x640、0x660)(仅限 snd-sbawe 模块)
- irq
SB DSP 4.x 芯片的 IRQ 号(5、7、9、10)
- dma8
SB DSP 4.x 芯片的 8 位 DMA 号(0、1、3)
- dma16
SB DSP 4.x 芯片的 16 位 DMA 号(5、6、7)
此模块支持多个卡、自动探测和 ISA PnP。
注意:要在 16 位半双工模式下使用 Vibra16X 卡,必须使用 dma16 = -1 模块参数禁用 16 位 DMA。此外,所有 Sound Blaster 16 类型卡都可以通过禁用其 16 位 DMA 通道,在 8 位 DMA 通道上以 16 位半双工模式运行。
支持电源管理。
模块 snd-sc6000¶
用于 Gallant SC-6000 声卡和后续型号的模块:SC-6600 和 SC-7000。
- port
端口号(0x220 或 0x240)
- mss_port
MSS 端口号(0x530 或 0xe80)
- irq
IRQ 号(5,7,9,10,11)
- mpu_irq
MPU-401 IRQ 号(5、7、9、10),0 - 没有 MPU-401 IRQ
- dma
DMA 号(1、3、0)
- joystick
启用游戏端口 - 0 = 禁用(默认),1 = 启用
此模块支持多个声卡。
此卡也称为 Audio Excel DSP 16 或 Zoltrix AV302。
模块 snd-sscape¶
用于 ENSONIQ SoundScape 卡的模块。
- port
端口号(PnP 设置)
- wss_port
WSS 端口号(PnP 设置)
- irq
IRQ 号(PnP 设置)
- mpu_irq
MPU-401 IRQ 号(PnP 设置)
- dma
DMA 号(PnP 设置)
- dma2
第二个 DMA 号(PnP 设置,-1 表示禁用)
- joystick
启用游戏端口 - 0 = 禁用(默认),1 = 启用
此模块支持多个声卡。
驱动程序需要内核上的固件加载程序支持。
模块 snd-sun-amd7930(仅在 sparc 上)¶
用于 Sparc 上发现的 AMD7930 声音芯片的模块。
此模块支持多个声卡。
模块 snd-sun-cs4231(仅在 sparc 上)¶
用于 Sparc 上发现的 CS4231 声音芯片的模块。
此模块支持多个声卡。
模块 snd-sun-dbri(仅在 sparc 上)¶
用于 Sparc 上发现的 DBRI 声音芯片的模块。
此模块支持多个声卡。
模块 snd-wavefront¶
用于 Turtle Beach Maui、Tropez 和 Tropez+ 声卡的模块。
- use_cs4232_midi
使用 CS4232 MPU-401 接口(不可访问地位于您的计算机内部)
- isapnp
ISA PnP 检测 - 0 = 禁用,1 = 启用(默认)
当 isapnp=0 时,可以使用以下选项
- cs4232_pcm_port
CS4232 PCM 接口的端口号。
- cs4232_pcm_irq
CS4232 PCM 接口的 IRQ 号(5、7、9、11、12、15)。
- cs4232_mpu_port
CS4232 MPU-401 接口的端口号。
- cs4232_mpu_irq
CS4232 MPU-401 接口的 IRQ 号(9、11、12、15)。
- ics2115_port
ICS2115 的端口号
- ics2115_irq
ICS2115 的 IRQ 号
- fm_port
FM OPL-3 端口号
- dma1
CS4232 PCM 接口的 DMA1 号。
- dma2
CS4232 PCM 接口的 DMA2 号。
以下是 wavefront_synth 功能的选项
- wf_raw
假设我们需要启动操作系统(默认:否);如果是,则在驱动程序加载期间,会忽略主板的状态,我们会重置主板并仍然加载固件。
- fx_raw
假设 FX 进程需要帮助(默认:是);如果为 false,我们将使 FX 处理器处于驱动程序加载时的任何状态。默认设置是下载微程序和相关系数,以将其设置为“默认”操作,无论这意味着什么。
- debug_default
用于卡初始化的调试参数
- wait_usecs
不休眠的等待时间,微秒(默认:150);这个神奇的数字似乎根据我有限的实验提供了相当好的吞吐量。如果您想尝试一下并找到更好的值,请随意。请记住,我们的想法是获得一个数字,使我们尽可能多地忙于等待 WaveFront 命令,而又不会出现一个数字太大而占用整个 CPU 的情况。具体来说,使用这个数字,在大约 134,000 次状态等待中,只有大约 250 次会导致睡眠。
- sleep_interval
等待回复时的睡眠时间(默认:100)
- sleep_tries
等待期间尝试休眠的次数(默认:50)
- ospath
已处理的 ICS2115 OS 固件的路径名(默认:wavefront.os);ISC2115 OS 固件的路径名。在最新版本中,它通过固件加载程序框架处理,因此必须安装在正确的路径中,通常是 /lib/firmware。
- reset_time
等待重置生效的时间(默认:2)
- ramcheck_time
等待 RAM 测试的秒数(默认:20)
- osrun_time
等待 ICS2115 OS 的秒数(默认:10)
该模块支持多张卡和 ISA PnP。
注意:固件文件 wavefront.os
在早期版本中位于 /etc。现在它通过固件加载程序加载,并且必须位于正确的固件路径中,例如 /lib/firmware。如果在升级内核后收到有关固件下载的错误,请适当复制(或符号链接)该文件。
模块 snd-sonicvibes¶
用于 S3 SonicVibes PCI 声卡的模块。* PINE Schubert 32 PCI
- reverb
启用混响 - 1 = 启用,0 = 禁用(默认);声卡必须具有板载 SRAM 才能实现此功能。
- mge
麦克风增益启用 - 1 = 启用,0 = 禁用(默认)
此模块支持多个卡和自动探测。
模块 snd-serial-u16550¶
用于 UART16550A 串行 MIDI 端口的模块。
- port
UART16550A 芯片的端口号
- irq
UART16550A 芯片的 IRQ 号,-1 = 轮询模式
- speed
波特率(9600、19200、38400、57600、115200),38400 = 默认值
- base
波特率的分频器基数(57600、115200、230400、460800),115200 = 默认值
- outs
串行端口中的 MIDI 端口数 (1-4),1 = 默认值
- adaptor
- 适配器类型。
0 = Soundcanvas,1 = MS-124T,2 = MS-124W S/A,3 = MS-124W M/B,4 = 通用
该模块支持多张卡。该模块不支持自动探测,因此必须指定主端口!!!其他选项是可选的。
模块 snd-trident¶
用于 Trident 4DWave DX/NX 声卡的模块。* Best Union Miss Melody 4DWave PCI * HIS 4DWave PCI * Warpspeed ONSpeed 4DWave PCI * AzTech PCI 64-Q3D * Addonics SV 750 * CHIC True Sound 4Dwave * Shark Predator4D-PCI * Jaton SonicWave 4D * SiS SI7018 PCI Audio * Hoontech SoundTrack Digital 4DWave NX
- pcm_channels
为 PCM 保留的最大通道(声音)
- wavetable_size
最大波表大小(以 kB 为单位)(4-?kb)
此模块支持多个卡和自动探测。
支持电源管理。
模块 snd-ua101¶
用于 Edirol UA-101/UA-1000 音频/MIDI 接口的模块。
该模块支持多个设备、自动探测和热插拔。
模块 snd-usb-audio¶
用于 USB 音频和 USB MIDI 设备的模块。
- vid
设备的供应商 ID(可选)
- pid
设备的产品 ID(可选)
- nrpacks
每个 URB 的最大数据包数(默认值:8)
- device_setup
特定于设备的魔术数字(可选);影响取决于设备。默认值:0x0000
- ignore_ctl_error
忽略任何关于混音器接口的 USB 控制器(默认:否)
- autoclock
为 UAC2 设备启用自动时钟选择(默认:是)
- quirk_alias
Quirk 别名列表,传递类似
0123abcd:5678beef
的字符串,它将设备 5678:beef 的现有 quirk 应用于新设备 0123:abcd。- implicit_fb
应用通用的隐式反馈同步模式。当设置此选项并且播放流同步模式为 ASYNC 时,驱动程序会尝试将相邻的 ASYNC 捕获流绑定为隐式反馈源。这等效于 quirk_flags 位 17。
- use_vmalloc
使用 vmalloc() 分配 PCM 缓冲区(默认:是)。对于具有非相干内存的架构(如 ARM 或 MIPS),mmap 访问可能会产生与 vmalloc 缓冲区不一致的结果。如果在这些架构上使用 mmap,请关闭此选项,以便分配和使用 DMA 相干缓冲区。
- delayed_register
对于在多个 USB 接口中定义了多个流的设备,需要此选项。驱动程序可能会多次调用注册(每个接口一次),这可能会导致设备枚举不足。此选项接收字符串数组,您可以传递像
0123abcd:4
这样的 ID:INTERFACE,以便对给定的设备执行延迟注册。在此示例中,当探测到 USB 设备 0123:abcd 时,驱动程序会等待注册,直到探测到 USB 接口 4。驱动程序会为此类设备打印一条消息,例如“发现后注册设备分配:1234abcd:04”,以便用户可以注意到需要。- quirk_flags
包含各种特定于设备的工作arounds的位标志。应用于相应的卡索引。
位 0:跳过读取设备的采样率
位 1:创建媒体控制器 API 条目
位 2:允许在传输时对音频子槽进行对齐
位 3:向传输添加长度说明符
位 4:在实现反馈模式下首次启动播放流
位 5:跳过时钟选择器设置
位 6:忽略来自时钟源搜索的错误
位 7:指示基于 ITF-USB DSD 的 DAC
位 8:在每个控制消息处理中添加 20 毫秒的延迟
位 9:在每个控制消息处理中添加 1-2 毫秒的延迟
位 10:在每个控制消息处理中添加 5-6 毫秒的延迟
位 11:在每个接口设置中添加 50 毫秒的延迟
位 12:在探测时执行采样率验证
位 13:禁用运行时 PM 自动挂起
位 14:忽略混音器访问的错误
位 15:支持通用 DSD 原始 U32_BE 格式
位 16:像 UAC1 一样首先设置接口
位 17:应用通用的隐式反馈同步模式
位 18:不应用隐式反馈同步模式
该模块支持多个设备、自动探测和热插拔。
注意:可以通过 sysfs 动态修改 nrpacks
参数。不要将该值超过 20。通过 sysfs 进行更改没有健全性检查。
注意:当您在访问混音器元素时出现错误(如 URB 错误 -22)时,ignore_ctl_error=1
可能会有所帮助。这发生在某些有错误的 USB 设备或控制器上。此解决方法也对应于 quirk_flags
位 14。
注意:quirk_alias
选项仅用于测试/开发。如果您想获得适当的支持,请联系上游,以便在驱动程序代码中静态添加匹配的 quirk。quirk_flags
也是如此。如果已知某个设备需要特定的解决方法,请向上游报告。
模块 snd-usb-caiaq¶
用于 caiaq UB 音频接口的模块,
Native Instruments RigKontrol2
Native Instruments Kore Controller
Native Instruments Audio Kontrol 1
Native Instruments Audio 8 DJ
该模块支持多个设备、自动探测和热插拔。
模块 snd-usb-usx2y¶
用于 Tascam USB US-122、US-224 和 US-428 设备的模块。
该模块支持多个设备、自动探测和热插拔。
注意:您需要通过 alsa-tools 和 alsa-firmware 软件包中包含的 usx2yloader
实用程序加载固件。
模块 snd-via82xx¶
用于基于 VIA 82C686A/686B、8233、8233A、8233C、8235、8237(南桥)的 AC’97 主板的模块。
- mpu_port
0x300、0x310、0x320、0x330,否则获取 BIOS 设置 [仅限 VIA686A/686B]
- joystick
启用游戏杆(默认关闭)[仅限 VIA686A/686B]
- ac97_clock
AC’97 编解码器时钟基准(默认 48000Hz)
- dxs_support
支持 DXS 通道,0 = 自动(默认),1 = 启用,2 = 禁用,3 = 仅限 48k,4 = 无 VRA,5 = 在不同通道上启用任何采样率和不同的采样率 [仅限 VIA8233/C、8235、8237]
- ac97_quirk
针对奇怪硬件的 AC’97 变通方法; 有关详细信息,请参阅下面的 AC97 变通选项 部分。
此模块支持一个芯片和自动探测。
注意:在某些 SMP 主板(如 MSI 694D)上,中断可能无法正确生成。在这种情况下,请尝试将 BIOS 上的 SMP(或 MPS)版本设置为 1.1,而不是默认值 1.4。然后,中断号将分配在 15 以下。您也可以升级您的 BIOS。
注意:VIA8233/5/7(不是 VIA8233A)可以支持 DXS(直音)通道作为第一个 PCM。在这些通道上,可以同时播放多达 4 个流,并且控制器可以执行采样率转换,每个通道具有单独的速率。作为默认设置 (dxs_support = 0
),选择 48k 固定速率,已知设备除外,因为由于 BIOS 的错误,输出通常有噪音,除非某些主板上的 48k。请尝试一次 dxs_support=5
,如果它在其他采样率下(例如 mp3 播放的 44.1kHz)工作,请告知我们 PCI 子系统供应商/设备 ID(lspci -nv
的输出)。如果 dxs_support=5
不起作用,请尝试 dxs_support=4
;如果它也不起作用,请尝试 dxs_support=1。(dxs_support=1 通常用于旧主板。正确实现的主板应使用 4 或 5 工作。)如果仍然不起作用并且默认设置正常,则 dxs_support=3
是正确的选择。如果默认设置根本不起作用,请尝试 dxs_support=2
以禁用 DXS 通道。在任何情况下,请告知我们结果和子系统供应商/设备 ID。请参阅下面的 链接和地址。
注意:对于 VIA823x 上的 MPU401,请另外使用 snd-mpu401 驱动程序。mpu_port 选项仅适用于 VIA686 芯片。
支持电源管理。
模块 snd-via82xx-modem¶
用于 VIA82xx AC97 调制解调器的模块
- ac97_clock
AC’97 编解码器时钟基准(默认 48000Hz)
此模块支持一个声卡和自动探测。
注意:此模块的默认索引值为 -2,即排除第一个插槽。
支持电源管理。
模块 snd-virmidi¶
用于虚拟 rawmidi 设备的模块。此模块创建与相应的 ALSA 音序器端口通信的虚拟 rawmidi 设备。
- midi_devs
MIDI 设备数量(1-4,默认=4)
此模块支持多个声卡。
模块 snd-virtuoso¶
用于基于华硕 AV66/AV100/AV200 芯片的声卡的模块,即 Xonar D1、DX、D2、D2X、DS、DSX、Essence ST(Deluxe)、Essence STX(II)、HDAV1.3(Deluxe)和 HDAV1.3 Slim。
此模块支持自动探测和多个卡。
模块 snd-vx222¶
用于 Digigram VX-Pocket VX222、V222 v2 和麦克风卡的模块。
- mic
在 V222 Mic 上启用麦克风 (NYI)
- ibl
捕获 IBL 大小。(默认 = 0,最小大小)
此模块支持多个声卡。
当驱动程序作为模块编译并且支持热插拔固件时,固件数据将通过热插拔自动加载。在 alsa-firmware 软件包中安装必要的固件文件。当没有热插拔固件加载器可用时,您需要通过 alsa-tools 软件包中的 vxloader 实用程序加载固件。要自动调用 vxloader,请将以下内容添加到 /etc/modprobe.d/alsa.conf
install snd-vx222 /sbin/modprobe --first-time -i snd-vx222\
&& /usr/bin/vxloader
(对于 2.2/2.4 内核,请将 post-install /usr/bin/vxloader
添加到 /etc/modules.conf。)IBL 大小定义了 PCM 的中断周期。较小的大小提供较小的延迟,但也导致更多的 CPU 消耗。该大小通常与 126 对齐。作为默认值 (=0),选择最小的大小。可能的 IBL 值可以在 /proc/asound/cardX/vx-status proc 文件中找到。
支持电源管理。
模块 snd-vxpocket¶
用于 Digigram VX-Pocket VX2 和 440 PCMCIA 卡的模块。
- ibl
捕获 IBL 大小。(默认 = 0,最小大小)
此模块支持多个卡。只有当内核支持 PCMCIA 时才会编译该模块。
对于较旧的 2.6.x 内核,要通过卡管理器激活驱动程序,您需要设置 /etc/pcmcia/vxpocket.conf。请参阅 sound/pcmcia/vx/vxpocket.c。2.6.13 或更高版本的内核不再需要配置文件。
当驱动程序作为模块编译并且支持热插拔固件时,固件数据将通过热插拔自动加载。在 alsa-firmware 软件包中安装必要的固件文件。当没有热插拔固件加载器可用时,您需要通过 alsa-tools 软件包中的 vxloader 实用程序加载固件。
有关捕获 IBL,请参阅 snd-vx222 模块的描述。
注意:自 ALSA 1.0.10 起,snd-vxp440 驱动程序已合并到 snd-vxpocket 驱动程序中。
支持电源管理。
模块 snd-ymfpci¶
用于 Yamaha PCI 芯片(YMF72x、YMF74x 和 YMF75x)的模块。
- mpu_port
0x300、0x330、0x332、0x334、0(禁用)默认,1(仅限 YMF744/754 自动检测)
- fm_port
0x388、0x398、0x3a0、0x3a8、0(禁用)默认,1(仅限 YMF744/754 自动检测)
- joystick_port
0x201、0x202、0x204、0x205、0(禁用)默认,1(自动检测)
- rear_switch
启用共享后/线路输入开关(布尔值)
此模块支持自动探测和多个芯片。
支持电源管理。
模块 snd-pdaudiocf¶
用于 Sound Core PDAudioCF 声卡的模块。
支持电源管理。
AC97 修正选项¶
ac97_quirk 选项用于在板载 AC’97 控制器的驱动程序(如 snd-intel8x0)上启用/覆盖特定设备的解决方法。某些硬件在主控和耳机或环绕声之间交换了输出引脚(这要归功于 AC’97 规范从一个版本到另一个版本的混淆 :-))
驱动程序提供了对已知有问题设备的自动检测,但某些设备可能未知或检测错误。在这种情况下,请使用此选项传递正确的值。
接受以下字符串
- default
不要覆盖默认设置
- none
禁用修正
- hp_only
将主控和耳机控件绑定为单个控件
- swap_hp
交换耳机和主控控件
- swap_surround
交换主控和环绕声控件
- ad_sharing
对于 AD1985,打开 OMS 位并使用耳机
- alc_jack
对于 ALC65x,打开插孔感应模式
- inv_eapd
反转的 EAPD 实现
- mute_led
绑定 EAPD 位以打开/关闭静音 LED
为了向后兼容,也接受相应的整数值 -1, 0, ...。
例如,如果 Master
音量控制对您的设备没有影响,但只有 Headphone
有,请传递 ac97_quirk=hp_only 模块选项。
配置非 ISAPNP 卡¶
当内核配置为支持 ISA-PnP 时,支持 isapnp 卡的模块将具有模块选项 isapnp
。如果设置此选项,则仅会探测 ISA-PnP 设备。要探测非 ISA-PnP 卡,您必须传递 isapnp=0
选项以及正确的 i/o 和 irq 配置。
当内核配置为不支持 ISA-PnP 时,isapnp 选项将不会内置。
模块自动加载支持¶
可以通过定义模块别名按需自动加载 ALSA 驱动程序。字符串 snd-card-%1
是为 ALSA 本机设备请求的,其中 %i
是从零到七的声卡编号。
要自动加载用于 OSS 服务的 ALSA 驱动程序,请定义字符串 sound-slot-%i
,其中 %i
表示 OSS 的插槽号,它对应于 ALSA 的卡索引。通常,将其定义为相同的卡模块。
下面是一个单张 emu10k1 卡的示例配置
----- /etc/modprobe.d/alsa.conf
alias snd-card-0 snd-emu10k1
alias sound-slot-0 snd-emu10k1
----- /etc/modprobe.d/alsa.conf
可自动加载的声卡数量取决于 snd 模块的模块选项 cards_limit
。默认情况下,它设置为 1。要启用自动加载多个卡,请在该选项中指定声卡的数量。
当有多个卡可用时,最好也通过模块选项为每个卡指定索引号,以便保持卡的顺序一致。
以下是两张声卡的示例配置
----- /etc/modprobe.d/alsa.conf
# ALSA portion
options snd cards_limit=2
alias snd-card-0 snd-interwave
alias snd-card-1 snd-ens1371
options snd-interwave index=0
options snd-ens1371 index=1
# OSS/Free portion
alias sound-slot-0 snd-interwave
alias sound-slot-1 snd-ens1371
----- /etc/modprobe.d/alsa.conf
在此示例中,interwave 卡始终作为第一张卡(索引 0)加载,而 ens1371 作为第二张卡(索引 1)加载。
固定插槽分配的另一种(新的)方法是使用 snd 模块的 slots
选项。在上面的示例中,请指定如下内容
options snd slots=snd-interwave,snd-ens1371
然后,第一个插槽 (#0) 保留给 snd-interwave 驱动程序,第二个插槽 (#1) 保留给 snd-ens1371。如果使用 slots 选项,则可以省略每个驱动程序中的 index 选项(尽管只要它们不冲突,您仍然可以同时使用它们)。
slots 选项对于避免可能的热插拔和由此产生的插槽冲突尤其有用。例如,在上面的示例中,前两个插槽已保留。如果在 snd-interwave 或 snd-ens1371 之前加载任何其他驱动程序(例如 snd-usb-audio),则会将其分配给第三个或更晚的插槽。
当模块名称以“!”给出时,该插槽将分配给除该名称之外的任何模块。例如,slots=!snd-pcsp
将为除 snd-pcsp 之外的任何模块保留第一个插槽。
ALSA PCM 设备到 OSS 设备映射¶
/dev/snd/pcmC0D0[c|p] -> /dev/audio0 (/dev/audio) -> minor 4
/dev/snd/pcmC0D0[c|p] -> /dev/dsp0 (/dev/dsp) -> minor 3
/dev/snd/pcmC0D1[c|p] -> /dev/adsp0 (/dev/adsp) -> minor 12
/dev/snd/pcmC1D0[c|p] -> /dev/audio1 -> minor 4+16 = 20
/dev/snd/pcmC1D0[c|p] -> /dev/dsp1 -> minor 3+16 = 19
/dev/snd/pcmC1D1[c|p] -> /dev/adsp1 -> minor 12+16 = 28
/dev/snd/pcmC2D0[c|p] -> /dev/audio2 -> minor 4+32 = 36
/dev/snd/pcmC2D0[c|p] -> /dev/dsp2 -> minor 3+32 = 39
/dev/snd/pcmC2D1[c|p] -> /dev/adsp2 -> minor 12+32 = 44
来自 /dev/snd/pcmC{X}D{Y}[c|p]
表达式的第一个数字表示声卡编号,第二个数字表示设备编号。ALSA 设备具有 c
或 p
后缀,分别表示方向、捕获和回放。
请注意,上面的设备映射可能会通过 snd-pcm-oss 模块的模块选项而发生变化。
Proc 接口 (/proc/asound)¶
/proc/asound/card#/pcm#[cp]/oss¶
- 擦除
擦除所有关于OSS应用程序的附加信息
- <app_name> <片段数> <片段大小> [<选项>]
- <app_name>
应用程序的名称,带(较高优先级)或不带路径
- <片段数>
片段的数量,如果自动则为零
- <片段大小>
片段的大小(以字节为单位),如果自动则为零
- <选项>
可选参数
- 禁用
应用程序尝试为该通道打开一个pcm设备,但不想使用它。(可能导致错误或需要mmap)它适用于Quake等...
- 直接
不使用插件
- 阻塞
强制使用阻塞模式(rvplayer)
- 非阻塞
强制使用非阻塞模式
- 完整片段
仅写入完整片段(仅影响播放的优化)
- 无静音
不预先填充静音以避免咔嗒声
- 有错误的指针
在GETOPTR ioctl中返回空白块,而不是填充的块
示例
echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss
echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss
echo "rvplayer 0 0 block" > /proc/asound/card0/pcm0p/oss
早期缓冲区分配¶
一些驱动程序(例如hdsp)需要大的连续缓冲区,并且由于内存碎片,有时在实际加载驱动程序模块时找到这样的空间为时已晚。 您可以通过加载snd-page-alloc模块并将命令写入其proc文件来预先分配PCM缓冲区,例如,在早期引导阶段(如/etc/init.d/*.local
脚本中)。
读取proc文件/proc/drivers/snd-page-alloc显示当前页面分配的使用情况。 在写入时,您可以将以下命令发送到snd-page-alloc驱动程序
添加 供应商 设备 掩码 大小 缓冲区
供应商和设备是PCI供应商和设备ID。 它们采用整数(十六进制需要0x前缀)。 掩码是PCI DMA掩码。 如果没有限制,则传递0。大小是要分配的每个缓冲区的大小。 您可以传递k和m后缀表示KB和MB。 最大数量是16MB。 缓冲区是要分配的缓冲区数。 它必须大于0。 最大数量是4。
擦除
这将擦除所有未使用的预分配缓冲区。
链接和地址¶
- ALSA 项目主页
- 内核Bugzilla
- ALSA 开发者邮件列表
- alsa-info.sh 脚本