高级 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.sbdrums.sb 补丁,这些补丁也由 sbiload 提供

sbiload -p 64:0 std.sb drums.sb

如果您使用此驱动程序来驱动 OPL3,则可以使用 std.o3drums.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 = 禁用(默认)

此模块支持多个卡。它不支持自动探测:必须指定 portwss_portirqdma1。其他值是可选的。

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 = 禁用(默认)

此模块支持多个卡。它不支持自动探测:必须指定 portwss_portirqdma1。其他值是可选的。

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 端口)。当 dma2dma1 相等时,驱动程序将以半双工方式工作。

支持电源管理。

模块 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_savepower_save_controller 选项用于省电模式。有关详细信息,请参阅 powersave.rst。

注 2:如果您在输出时听到咔哒声,请尝试模块选项 position_fix=12position_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.binturtlebeach/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.binturtlebeach/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 设备具有 cp 后缀,分别表示方向、捕获和回放。

请注意,上面的设备映射可能会通过 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。

  • 擦除

这将擦除所有未使用的预分配缓冲区。