高级 Linux 音频架构 - 驱动程序配置指南¶
内核配置¶
要启用 ALSA 支持,您至少需要使用主声卡支持 (CONFIG_SOUND
) 构建内核。由于 ALSA 可以模拟 OSS,因此您无需选择任何 OSS 模块。
如果您想使用 ALSA 运行 OSS 应用程序,请启用“OSS API 模拟”(CONFIG_SND_OSSEMUL
) 以及 OSS 混音器和 PCM 支持。
如果您想支持 SB Live! 等卡上的 WaveTable 功能,则需要启用“音序器支持”(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/module/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
以 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
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¶
此模块支持多个卡、自动探测和 PnP。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
基于 Avance Logic ALS100/ALS120 ISA 芯片的声卡的模块。
模块 snd-als300¶
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
Avance Logic ALS300 和 ALS300+ 的模块
模块 snd-als4000¶
- 基于 Avance Logic ALS4000 PCI 芯片的声卡的模块。
joystick_port
此模块支持多个卡、自动探测和 PnP。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
传统游戏杆支持的端口 #; 0 = 禁用(默认),1 = 自动检测
模块 snd-asihpi¶
- AudioScience ASI 声卡的模块
enable_hpi_hwdep
为 AudioScience 声卡启用 HPI hwdep
此模块支持多个卡。 驱动程序需要在内核上支持固件加载程序。
模块 snd-atiixp¶
- ATI IXP 150/200/250/400 AC97 控制器的模块。
ac97_clock
- Analog Devices AD1889 芯片的模块。
AC’97 时钟(默认值 = 48000)
- AC’97 workaround for strange hardware; See AC97 Quirk Option section below.
ac97_codec
- Workaround to specify which AC’97 codec instead of probing. If this works for you file a bug with your lspci -vn output. (-2 = Force probing, -1 = Default behavior, 0-2 = Use the specified codec.)
spdif_aclink
通过 AC 链接传输 S/PDIF(默认值 = 1)
此模块支持一张卡和自动探测。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
ATI IXP 有两种不同的方法来控制 SPDIF 输出。 一种是通过 AC 链接,另一种是通过“直接”SPDIF 输出。 该实现取决于主板,您需要通过 spdif_aclink 模块选项选择正确的实现。
模块 snd-atiixp-modem¶
通过 AC 链接传输 S/PDIF(默认值 = 1)
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、硬件 EQ、mpu401、游戏端口。 A3D 和波表支持仍在开发中。 开发和逆向工程工作正在 https://savannah.nongnu.org/projects/openvortex/ 上进行协调。 SPDIF 输出具有 AC97 编解码器输出的副本,除非您使用 spdif
pcm 设备,该设备允许原始数据直通。 硬件 EQ 硬件和 SPDIF 仅存在于 Vortex2 和 Advantage 中。
注意:某些 ALSA 混音器应用程序无法正确处理 SPDIF 采样率控制。 如果您在此方面遇到问题,请尝试其他符合 ALSA 标准的混音器(alsamixer 有效)。
模块 snd-azt1605¶
- port
基于 Aztech AZT1605 芯片组的 Aztech Sound Galaxy 声卡的模块。
- port
BASE 的端口 # (0x220,0x240,0x260,0x280)
- AD1848 芯片的端口 #
wss_port
- AD1848 芯片的 IRQ #
WSS 的端口 # (0x530,0x604,0xe80,0xf40)
- 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 中存储的值(对于具有 EEPROM 且其“CONFIG MODE”跳线设置为“EEPROM SETTING”的卡)匹配。 可以从上面枚举的选项中自由选择其他值。
如果指定了 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
。
- port
基于 Aztech AZT1605 芯片组的 Aztech Sound Galaxy 声卡的模块。
- port
BASE 的端口 # (0x220,0x240,0x260,0x280)
- AD1848 芯片的端口 #
wss_port
- AD1848 芯片的 IRQ #
WSS 的端口 # (0x530,0x604,0xe80,0xf40)
- WSS 的 IRQ # (7,9,10,11)
dma1
- WSS 回放的 DMA # (0,1,3)
dma2
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
无论您选择哪个 IRQ 和 DMA 通道,请务必在 BIOS 中为传统 ISA 保留它们。
- 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 中存储的值(对于具有 EEPROM 且其“CONFIG MODE”跳线设置为“EEPROM SETTING”的卡)匹配。 可以从上面枚举的选项中自由选择其他值。
模块 snd-azt2316¶
基于 Aztech AZT2316 芯片组的 Aztech Sound Galaxy 声卡的模块。
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
MPU-401 UART 的 IRQ # (5,7,9,10),-1 = 已禁用(默认)
模块 snd-aw2¶
Audiowerk2 声卡的模块
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-azt2320¶
基于 Aztech System AZT2320 ISA 芯片(仅限 PnP)的声卡的模块。
- 此模块支持多个卡、PnP 和自动探测。
模块 snd-azt3328¶
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
基于 Aztech AZF3328 PCI 芯片的声卡的模块。
joystick
- 启用游戏杆(默认关闭)
模块 snd-bt87x¶
- 基于 Bt87x 芯片的视频卡的模块。
digital_rate
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
ATI IXP 150/200/250 AC97 调制解调器控制器的模块。
覆盖默认数字速率 (Hz)
load_all
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
即使卡型号未知,也加载驱动程序
模块 snd-ca0106¶
- Creative Audigy LS 和 SB Live 24 位模块
模块 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 #
- WSS 回放的 DMA # (0,1,3)
此模块支持多个卡和自动探测。
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
模块 snd-cmipci¶
- C-Media CMI8338/8738/8768/8770 PCI 声卡的模块。
midi_port
- 基于 Avance Logic ALS4000 PCI 芯片的声卡的模块。
MIDI 接口的端口地址(仅限 8338):0x300,0x310,0x320,0x330 = 传统端口,1 = 集成 PCI 端口(8738 上的默认值),0 = 禁用
fm_port
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
OPL-3 FM 合成器的端口地址(仅限 8x38):0x388 = 传统端口,1 = 集成 PCI 端口(8738 上的默认值),0 = 禁用
soft_ac3
- port
原始 SPDIF 数据包的软件转换(仅限型号 033)(默认值 = 1)
- WSS 回放的 DMA # (0,1,3)
joystick_port
- AD1848 芯片的端口 #
游戏杆端口地址(0 = 禁用,1 = 自动检测)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
此模块支持自动探测和多个卡。
- AD1848 芯片的 IRQ #
模块 snd-cs4231¶
- WSS 的 IRQ # (7,9,10,11)
基于 CS4231 ISA 芯片的声卡的模块。
port
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
CS4231 芯片的端口 #
MPU-401 芯片的端口 #(可选),-1 = 禁用
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
irq
- CS4231 芯片的 IRQ #
mpu_irq
- WSS 回放的 DMA # (0,1,3)
MPU-401 UART 的 IRQ #
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
dma1
- AD1848 芯片的端口 #
CS4231 芯片的第一个 DMA #
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
dma2
- AD1848 芯片的 IRQ #
CS4231 芯片的第二个 DMA #
- WSS 的 IRQ # (7,9,10,11)
此模块支持多个卡。 此模块不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-cs4236¶
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
基于 CS4232/CS4232A、CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 ISA 芯片的声卡的模块。
port
CS4236 芯片的端口 #(PnP 设置 - 0x534)
- cport
辅助编解码器 ID (0 = 禁用, 默认)
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 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 Champion Series
Creative Sound Blaster X-Fi Titanium Fatal1ty Professional Series
Creative Sound Blaster X-Fi Titanium Professional Audio
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 组成。 默认值为零,表示不覆盖。
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-darla20¶
用于 Echoaudio Darla20 的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-darla24¶
用于 Echoaudio Darla24 的模块
为 AudioScience 声卡启用 HPI hwdep
模块 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) 的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-emu10k1¶
用于基于 EMU10K1/EMU10k2 的 PCI 声卡的模块。
Sound Blaster Live!
Sound Blaster PCI 512
Sound Blaster 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
启用 IR
(可选)MPU401 I/O 端口
输入和输出配置 [extin/extout] * Creative 声卡无数字输出 [0x0003/0x1f03] * Creative 声卡带数字输出 [0x0003/0x1f0f] * Creative 声卡带数字 CD 输入 [0x000f/0x1f0f] * Creative 声卡无数字输出 + LiveDrive [0x3fc3/0x1fc3] * Creative 声卡带数字输出 + LiveDrive [0x3fc3/0x1fcf] * Creative 声卡带数字 CD 输入 + LiveDrive [0x3fcf/0x1fcf] * Creative 声卡无数字输出 + Digital I/O 2 [0x0fc3/0x1f0f] * Creative 声卡带数字输出 + Digital I/O 2 [0x0fc3/0x1f0f] * Creative 声卡带数字 CD 输入 + Digital I/O 2 [0x0fcf/0x1f0f] * Creative 声卡 5.1/带数字输出 + LiveDrive [0x3fc3/0x1fff] * Creative 声卡 5.1 (c) 2003 [0x3fc3/0x7cff] * Creative 声卡所有输入和输出 [0x3fff/0x7fff]
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-emu10k1x¶
用于 Creative Emu10k1X (SB Live Dell OEM 版本) 的模块
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-ens1370¶
用于 Ensoniq AudioPCI ES1370 PCI 声卡的模块。
SoundBlaster PCI 64
SoundBlaster PCI 128
- 此模块支持多个卡、PnP 和自动探测。
模块 snd-azt3328¶
(可选)MPU401 I/O 端口
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-ens1371¶
用于 Ensoniq AudioPCI ES1371 PCI 声卡的模块。
SoundBlaster PCI 64
SoundBlaster PCI 128
SoundBlaster Vibra PCI
- 基于 Avance Logic ALS4000 PCI 芯片的声卡的模块。
操纵杆的端口 # (0x200,0x208,0x210,0x218), 0 = 禁用 (默认), 1 = 自动检测
(可选)MPU401 I/O 端口
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-es1688¶
用于 ESS AudioDrive ES-1688 和 ES-688 声卡的模块。
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
- WSS 回放的 DMA # (0,1,3)
MPU-401 端口的端口 # (0x300,0x310,0x320,0x330), -1 = 禁用 (默认)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 端口的 IRQ # (5,7,9,10)
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
OPL3 的端口 # (可选;与默认端口共享)
如果 isapnp=0
,则以下附加选项可用
- port
ES-1688 芯片的端口 # (0x220,0x240,0x260)
- AD1848 芯片的端口 #
ES-1688 芯片的 IRQ # (5,7,9,10)
- dma8
ES-1688 芯片的 DMA # (0,1,3)
此模块支持多个声卡和自动探测 (不带 MPU-401 端口) 以及带 ES968 芯片的 PnP。
模块 snd-es18xx¶
用于 ESS AudioDrive ES-18xx 声卡的模块。
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
ES-18xx 芯片的端口 # (0x220,0x240,0x260)
- WSS 回放的 DMA # (0,1,3)
MPU-401 端口的端口 # (0x300,0x310,0x320,0x330), -1 = 禁用 (默认)
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
FM 的端口 # (可选,未使用)
- AD1848 芯片的端口 #
ES-18xx 芯片的 IRQ # (5,7,9,10)
- AD1848 芯片的 IRQ #
ES-18xx 芯片的第一个 DMA # (0,1,3)
- WSS 的 IRQ # (7,9,10,11)
ES-18xx 芯片的第一个 DMA # (0,1,3)
此模块支持多个声卡、ISA PnP 和自动探测 (如果未使用本机 ISA PnP 例程,则不带 MPU-401 端口)。当 dma2
与 dma1
相等时,驱动程序以半双工模式工作。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-es1938¶
用于基于 ESS Solo-1 (ES1938,ES1946) 芯片的声卡的模块。
(可选)MPU401 I/O 端口
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 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 = 自动 (默认))
- 此模块支持多个卡、PnP 和自动探测。
启用操纵杆 (默认关闭)
(可选)MPU401 I/O 端口
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 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)
(可选)MPU401 I/O 端口
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-gina20¶
用于 Echoaudio Gina20 的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-gina24¶
用于 Echoaudio Gina24 的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-gusclassic¶
用于 Gravis UltraSound Classic 声卡的模块。
- port
GF1 芯片的端口 # (0x220,0x230,0x240,0x250,0x260)
- AD1848 芯片的端口 #
GF1 芯片的 IRQ # (3,5,9,11,12,15)
- AD1848 芯片的 IRQ #
GF1 芯片的 DMA # (1,3,5,6,7)
- WSS 的 IRQ # (7,9,10,11)
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 声音数
(可选)MPU401 I/O 端口
模块 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)
- WSS 回放的 DMA # (0,1,3)
MPU-401 端口的端口 # (0x300,0x310,0x320,0x330), -1 = 禁用
- AD1848 芯片的端口 #
ES-1688 芯片的 IRQ # (5,7,9,10)
- gf1_irq
GF1 芯片的 IRQ # (3,5,9,11,12,15)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 端口的 IRQ # (5,7,9,10)
- dma8
ES-1688 芯片的 DMA # (0,1,3)
- AD1848 芯片的 IRQ #
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)
- AD1848 芯片的端口 #
GF1 芯片的 IRQ # (3,5,9,11,12,15)
- AD1848 芯片的 IRQ #
GF1 芯片的 DMA # (1,3,5,6,7)
- WSS 的 IRQ # (7,9,10,11)
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 声音数
(可选)MPU401 I/O 端口
模块 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-audio 设置的早期“补丁”文件。仅当设置了
CONFIG_SND_HDA_PATCH_LOADER=y
时,此选项才可用。有关详细信息,请参见关于 HD-Audio 驱动的更多说明。- beep_mode
选择提示音注册模式 (0=关闭, 1=开启);默认值通过
CONFIG_SND_HDA_INPUT_BEEP_MODE
kconfig 设置。
[单个 (全局) 选项]
- single_cmd
使用单个即时命令与编解码器通信 (仅用于调试)
- enable_msi
启用消息信号中断 (MSI) (默认 = 关闭)
- power_save
自动省电超时 (以秒为单位, 0 = 禁用)
- power_save_controller
在省电模式下重置 HD-audio 控制器 (默认 = 开启)
- pm_blacklist
启用/禁用电源管理拒绝列表 (默认 = 查找 PM 拒绝列表, 0 = 跳过 PM 拒绝列表, 1 = 强制关闭运行时 PM)
- align_buffer_size
强制将缓冲区/周期大小四舍五入到 128 字节的倍数。这在内存访问方面效率更高,但 HDA 规范不需要,并阻止用户指定准确的周期/缓冲区大小。(默认=开启)
- snoop
启用/禁用监听 (默认 = 开启)
(可选)MPU401 I/O 端口
有关 HD-audio 驱动程序的更多详细信息,请参见 关于 HD-Audio 驱动的更多说明。
每个编解码器可能都有一个用于不同配置的型号表。如果您的机器未在其中列出,则会设置默认 (通常是最小) 配置。您可以传递 model=<name>
选项以在这种情况下指定特定型号。根据编解码器芯片的不同,有不同的型号。可在 HD-Audio 编解码器专用型号中找到可用型号的列表。
型号名称 generic
被视为一种特殊情况。当给出此型号时,驱动程序使用通用编解码器分析器,而不使用“编解码器补丁”。有时对于测试和调试很有用。
型号选项也可用于别名到另一个 PCI 或编解码器 SSID。当它以 model=XXXX:YYYY
的形式传递时,其中 XXXX 和 YYYY 分别是以十六进制数字表示的子厂商和子设备 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 音频接口的模块
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
注意:当设置了 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
(可选)MPU401 I/O 端口
注意:支持的板卡通过读取 EEPROM 或 PCI SSID(如果 EEPROM 不可用)来检测。如果驱动程序配置不正确,或者您想尝试其他类型进行测试,您可以通过传递 model
模块选项来覆盖模型。
模块 snd-indigo¶
Echoaudio Indigo的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-indigodj¶
Echoaudio Indigo DJ 的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-indigoio¶
Echoaudio Indigo IO 的模块
为 AudioScience 声卡启用 HPI hwdep
模块 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
- ATI IXP 150/200/250/400 AC97 控制器的模块。
AC’97 编解码器时钟基准(0 = 自动检测)
- Analog Devices AD1889 芯片的模块。
AC’97 时钟(默认值 = 48000)
- buggy_irq
启用对某些主板上错误中断的解决方法(在 nForce 芯片上默认为 yes,否则为 off)
- buggy_semaphore
启用对具有错误信号量的硬件的解决方法(例如,在某些 ASUS 笔记本电脑上)(默认为 off)
- Workaround to specify which AC’97 codec instead of probing. If this works for you file a bug with your lspci -vn output. (-2 = Force probing, -1 = Default behavior, 0-2 = Use the specified codec.)
使用 AC-link 上的 S/PDIF 而不是控制器芯片的直接连接(0 = 关闭,1 = 开启,-1 = 默认)
支持 SPDIF I/O; 默认值:已禁用
注意:最新的驱动程序支持芯片时钟的自动检测。 如果您仍然遇到播放速度过快的问题,请通过模块选项 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
- ATI IXP 150/200/250/400 AC97 控制器的模块。
AC’97 编解码器时钟基准(0 = 自动检测)
通过 AC 链接传输 S/PDIF(默认值 = 1)
ATI IXP 150/200/250 AC97 调制解调器控制器的模块。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-interwave¶
用于 Gravis UltraSound PnP、Dynasonic 3-D/Pro、STB Sound Rage 32 和其他基于 AMD InterWave (tm) 芯片的声卡的模块。
- 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 个音色
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
InterWave 芯片的端口号 (0x210,0x220,0x230,0x240,0x250,0x260)
- AD1848 芯片的端口 #
InterWave 芯片的 IRQ 号 (3,5,9,11,12,15)
- AD1848 芯片的 IRQ #
InterWave 芯片的 DMA 号 (0,1,3,5,6,7)
- WSS 的 IRQ # (7,9,10,11)
InterWave 芯片的 DMA 号 (0,1,3,5,6,7,-1=禁用)
此模块支持多声卡、自动检测和 ISA PnP。
模块 snd-interwave-stb¶
用于 UltraSound 32-Pro(康柏使用的 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 个音色
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
InterWave 芯片的端口号 (0x210,0x220,0x230,0x240,0x250,0x260)
- port_tc
TEA6330T 芯片的音调控制 (i2c 总线) 端口号 (0x350,0x360,0x370,0x380)
- AD1848 芯片的端口 #
InterWave 芯片的 IRQ 号 (3,5,9,11,12,15)
- AD1848 芯片的 IRQ #
InterWave 芯片的 DMA 号 (0,1,3,5,6,7)
- WSS 的 IRQ # (7,9,10,11)
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)
- AD1848 芯片的端口 #
SB DSP 芯片的 IRQ 号 (3,5,7,9,10,15)
- dma8
SB DSP 芯片的 DMA 号 (1,3)
- dma16
SB DSP 芯片的 DMA 号 (5,7)
- WSS 回放的 DMA # (0,1,3)
MPU-401 端口号 (0x300,0x310,0x320,0x330)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 irq 号 (2,3,5,7)
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-korg1212¶
用于 Korg 1212 IO PCI 声卡的模块
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-layla20¶
Echoaudio Layla20的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-layla24¶
Echoaudio Layla24的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-lola¶
用于 Digigram Lola PCI-e 板卡的模块
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-lx6464es¶
用于 Digigram LX6464ES 板卡的模块
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-maestro3¶
用于 Allegro/Maestro3 芯片的模块
- external_amp
启用外部放大器(默认启用)
- amp_gpio
外部放大器的 GPIO 引脚编号(0-15)或 -1 表示默认引脚(allegro 为 8,其他为 1)
此模块支持自动检测和多个芯片。
注意:放大器的绑定取决于硬件。 如果即使所有通道都未静音也没有声音,请尝试通过 amp_gpio 选项指定其他 gpio 连接。 例如,松下笔记本电脑可能需要 amp_gpio=0x0d
选项。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-mia¶
Echoaudio Mia的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-miro¶
用于 Miro 声卡的模块:miroSOUND PCM 1 pro、miroSOUND PCM 12、miroSOUND PCM 20 Radio。
- port
端口号 (0x530,0x604,0xe80,0xf40)
- AD1848 芯片的端口 #
IRQ 号 (5,7,9,10,11)
- AD1848 芯片的 IRQ #
第一个 dma 号 (0,1,3)
- WSS 的 IRQ # (7,9,10,11)
第二个 dma 号 (0,1)
- WSS 回放的 DMA # (0,1,3)
MPU-401 端口号 (0x300,0x310,0x320,0x330)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 irq 号 (5,7,9,10)
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
FM 端口号 (0x388)
- wss
启用 WSS 模式
- ide
启用板载 ide 支持
模块 snd-mixart¶
用于 Digigram miXart8 声卡的模块。
此模块支持多个声卡。注意:一个 miXart8 板卡将表示为 4 个 alsa 声卡。 有关详细信息,请参见 用于 Digigram miXart8 和 miXart8AES/EBU 声卡的 Alsa 驱动程序。
当驱动程序编译为模块并且支持热插拔固件时,固件数据将通过热插拔自动加载。 在 alsa-firmware 软件包中安装必要的固件文件。 当没有可用的热插拔 fw 加载器时,您需要通过 alsa-tools 软件包中的 mixartloader 实用程序加载固件。
模块 snd-mona¶
Echoaudio Mona的模块
为 AudioScience 声卡启用 HPI hwdep
模块 snd-mpu401¶
用于 MPU-401 UART 设备的模块。
- port
端口号或 -1(禁用)
- AD1848 芯片的端口 #
IRQ 号或 -1(禁用)
- pnp
PnP 检测 - 0 = 禁用,1 = 启用(默认)
此模块支持多个设备和 PnP。
模块 snd-msnd-classic¶
用于 Turtle Beach MultiSound Classic、Tahiti 或 Monterey 声卡的模块。
- io
msnd-classic 声卡的端口号
- AD1848 芯片的端口 #
msnd-classic 声卡的 IRQ 号
- mem
内存地址 (0xb0000, 0xc8000, 0xd0000, 0xd8000, 0xe0000 或 0xe8000)
- write_ndelay
启用写入 ndelay(默认 = 1)
- calibrate_signal
校准信号(默认 = 0)
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
- digital
存在数字子卡(默认 = 0)
- cfg
配置端口 (0x250, 0x260 或 0x270) 默认 = PnP
- reset
重置所有设备
- mpu_io
MPU401 I/O 端口
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
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 声卡的端口号
- AD1848 芯片的端口 #
pinnalce/fiji 声卡的 IRQ 号
- mem
内存地址 (0xb0000, 0xc8000, 0xd0000, 0xd8000, 0xe0000 或 0xe8000)
- write_ndelay
启用写入 ndelay(默认 = 1)
- calibrate_signal
校准信号(默认 = 0)
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
该驱动程序需要在适当的固件目录中包含固件文件 turtlebeach/pndspini.bin
和 turtlebeach/pndsperm.bin
。
模块 snd-mtpav¶
用于 MOTU MidiTimePiece AV 多端口 MIDI(在并行端口上)的模块。
- port
MTPAV 的 I/O 端口号 (0x378,0x278, 默认=0x378)
- AD1848 芯片的端口 #
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 解决方法
- reset_workaround2
为其他一些笔记本电脑启用扩展的 AC97 RESET 解决方法
支持 SPDIF I/O; 默认值:已禁用
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
注意:在某些笔记本电脑上,无法自动检测到缓冲区地址,或者在初始化期间导致挂起。 在这种情况下,请通过 buffer_top 选项显式指定缓冲区顶部地址。 例如,Sony F250: buffer_top=0x25a800 Sony F270: buffer_top=0x272800 该驱动程序仅支持 ac97 编解码器。 即使未检测到 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 声卡的模块。
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
OPL3-SA 芯片的控制端口号 (0x370)
- sb_port
OPL3-SA 芯片的 SB 端口号 (0x220,0x240)
- port
OPL3-SA 芯片的 WSS 端口号 (0x530,0xe80,0xf40,0x604)
- midi_port
MPU-401 UART 的端口号 (0x300,0x330), -1 = 禁用
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
OPL3-SA 芯片的 FM 端口号 (0x388), -1 = 禁用
- AD1848 芯片的端口 #
OPL3-SA 芯片的 IRQ 号 (5,7,9,10)
- AD1848 芯片的 IRQ #
Yamaha OPL3-SA 芯片的第一个 DMA 号 (0,1,3)
- WSS 的 IRQ # (7,9,10,11)
Yamaha OPL3-SA 芯片的第二个 DMA 号 (0,1,3), -1 = 禁用
此模块支持多个声卡和 ISA PnP。 它不支持自动检测(如果未使用 ISA PnP),因此必须指定所有端口!!!
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-opti92x-ad1848¶
用于基于 OPTi 82c92x 和 Analog Devices AD1848 芯片的声卡的模块。 该模块也适用于 OAK Mozart 声卡。
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
WSS 芯片的端口号 (0x530,0xe80,0xf40,0x604)
- WSS 回放的 DMA # (0,1,3)
MPU-401 UART 的端口号 (0x300,0x310,0x320,0x330)
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
OPL3 设备的端口号 (0x388)
- AD1848 芯片的端口 #
WSS 芯片的 IRQ 号 (5,7,9,10,11)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 UART 的 IRQ 号 (5,7,9,10)
- AD1848 芯片的 IRQ #
WSS 芯片的第一个 DMA 号 (0,1,3)
此模块仅支持一个声卡、自动检测和 PnP。
模块 snd-opti92x-cs4231¶
用于基于 OPTi 82c92x 和 Crystal CS4231 芯片的声卡的模块。
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
WSS 芯片的端口号 (0x530,0xe80,0xf40,0x604)
- WSS 回放的 DMA # (0,1,3)
MPU-401 UART 的端口号 (0x300,0x310,0x320,0x330)
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
OPL3 设备的端口号 (0x388)
- AD1848 芯片的端口 #
WSS 芯片的 IRQ 号 (5,7,9,10,11)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 UART 的 IRQ 号 (5,7,9,10)
- AD1848 芯片的 IRQ #
WSS 芯片的第一个 DMA 号 (0,1,3)
- WSS 的 IRQ # (7,9,10,11)
WSS 芯片的第二个 DMA 号 (0,1,3)
此模块仅支持一个声卡、自动检测和 PnP。
模块 snd-opti93x¶
用于基于 OPTi 82c93x 芯片的声卡的模块。
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
基于 C-Media CMI8330 ISA 芯片的声卡的模块。
- port
WSS 芯片的端口号 (0x530,0xe80,0xf40,0x604)
- WSS 回放的 DMA # (0,1,3)
MPU-401 UART 的端口号 (0x300,0x310,0x320,0x330)
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
OPL3 设备的端口号 (0x388)
- AD1848 芯片的端口 #
WSS 芯片的 IRQ 号 (5,7,9,10,11)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 UART 的 IRQ 号 (5,7,9,10)
- AD1848 芯片的 IRQ #
WSS 芯片的第一个 DMA 号 (0,1,3)
- WSS 的 IRQ # (7,9,10,11)
WSS 芯片的第二个 DMA 号 (0,1,3)
此模块仅支持一个声卡、自动检测和 PnP。
模块 snd-oxygen¶
用于基于 C-Media CMI8786/8787/8788 芯片的声卡的模块
Asound A-8788
Asus 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
fm_port
模块 snd-pcsp¶
用于内部 PC 扬声器的模块。
- nopcm
禁用 PC 扬声器 PCM 声音。 仅保留蜂鸣声。
- nforce_wa
启用 NForce 芯片组解决方法。 预计声音不好。
此模块支持系统蜂鸣声、某种 PCM 回放甚至一些混音器控件。
模块 snd-pcxhr¶
用于 Digigram PCXHR 板卡的模块
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-portman2x4¶
用于 Midiman Portman 2x4 并行端口 MIDI 接口的模块
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-powermac (仅在 ppc 上可用)¶
用于 PowerMac、iMac 和 iBook 板载声卡的模块
- enable_beep
使用 PCM 启用 beep(默认启用)
模块支持自动检测芯片。
注意:驱动程序可能存在字节序问题。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-pxa2xx-ac97 (仅在 arm 上可用)¶
用于 Intel PXA2xx 芯片的 AC97 驱动程序模块
仅适用于 ARM 架构。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-riptide¶
用于 Conexant Riptide 芯片的模块
- 基于 Avance Logic ALS4000 PCI 芯片的声卡的模块。
操纵杆端口 # (默认: 0x200)
- WSS 回放的 DMA # (0,1,3)
MPU401 端口 # (默认: 0x330)
- opl3_port
OPL3 端口 # (默认: 0x388)
此模块支持多个声卡。驱动程序需要在内核上支持固件加载器。您需要将固件文件 riptide.hex
安装到标准固件路径(例如 /lib/firmware)。
模块 snd-rme32¶
用于 RME Digi32、Digi32 Pro 和 Digi32/8 (Sek'd Prodif32、Prodif96 和 Prodif Gold) 声卡的模块。
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-rme96¶
用于 RME Digi96、Digi96/8 和 Digi96/8 PRO/PAD/PST 声卡的模块。
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-rme9652¶
用于 RME Digi9652 (Hammerfall、Hammerfall-Light) 声卡的模块。
- precise_ptr
启用精确指针(不可靠)。(默认 = 0)
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
注意:snd-page-alloc 模块执行了 snd-hammerfall-mem 模块以前的功能。当找到任何 RME9652 声卡时,它会提前分配缓冲区。为了确保缓冲区分配,请在启动序列的早期阶段加载 snd-page-alloc 模块。请参阅 提前缓冲区分配 部分。
模块 snd-sa11xx-uda1341 (仅在 arm 上可用)¶
用于 Compaq iPAQ H3600 声卡上的 Philips UDA1341TS 的模块。
模块仅支持一张声卡。模块没有启用和索引选项。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-sb8¶
用于 8 位 SoundBlaster 声卡的模块:SoundBlaster 1.0、SoundBlaster 2.0、SoundBlaster Pro
- port
SB DSP 芯片的端口 # (0x220,0x240,0x260)
- AD1848 芯片的端口 #
SB DSP 芯片的 IRQ # (5,7,9,10)
- dma8
SB DSP 芯片的 DMA 号 (1,3)
(可选)MPU401 I/O 端口
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 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 = 启用
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
对于 isapnp=0,以下选项可用
- port
SB DSP 4.x 芯片的端口 # (0x220,0x240,0x260)
- WSS 回放的 DMA # (0,1,3)
MPU-401 UART 的端口号 (0x300,0x330), -1 = 禁用
- awe_port
EMU8000 合成器的基址端口 # (0x620,0x640,0x660)(仅限 snd-sbawe 模块)
- AD1848 芯片的端口 #
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)
- AD1848 芯片的端口 #
IRQ 号 (5,7,9,10,11)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 IRQ # (5,7,9,10) ,0 - 无 MPU-401 irq
- dma
DMA # (1,3,0)
- 此模块支持多个卡、PnP 和自动探测。
启用游戏端口 - 0 = 禁用(默认),1 = 启用
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
此卡也称为 Audio Excel DSP 16 或 Zoltrix AV302。
模块 snd-sscape¶
用于 ENSONIQ SoundScape 声卡的模块。
- port
端口 # (PnP 设置)
- port
WSS 端口 # (PnP 设置)
- AD1848 芯片的端口 #
IRQ # (PnP 设置)
- WSS 捕获的 DMA # (0,1),-1 = 已禁用(默认)
MPU-401 IRQ # (PnP 设置)
- dma
DMA # (PnP 设置)
- WSS 的 IRQ # (7,9,10,11)
第二个 DMA # (PnP 设置,-1 禁用)
- 此模块支持多个卡、PnP 和自动探测。
启用游戏端口 - 0 = 禁用(默认),1 = 启用
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
该驱动程序需要在内核上支持固件加载器。
模块 snd-sun-amd7930 (仅在 sparc 上可用)¶
用于在 Sparc 上找到的 AMD7930 声卡芯片的模块。
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-sun-cs4231 (仅在 sparc 上可用)¶
用于在 Sparc 上找到的 CS4231 声卡芯片的模块。
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-sun-dbri (仅在 sparc 上可用)¶
用于在 Sparc 上找到的 DBRI 声卡芯片的模块。
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-wavefront¶
用于 Turtle Beach Maui、Tropez 和 Tropez+ 声卡的模块。
- use_cs4232_midi
使用 CS4232 MPU-401 接口(位于您的计算机内部,无法访问)
- Creative Audigy LS 和 SB Live 24 位模块
模块 snd-cmi8330¶
对于 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 #
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
FM OPL-3 端口 #
- AD1848 芯片的 IRQ #
CS4232 PCM 接口的 DMA1 #。
- WSS 的 IRQ # (7,9,10,11)
CS4232 PCM 接口的 DMA2 #。
以下是 wavefront_synth 功能的选项
- wf_raw
假设我们需要启动操作系统(默认:否);如果是,则在驱动程序加载期间,将忽略板的状态,我们将重置板并加载固件。
- fx_raw
假设 FX 进程需要帮助(默认:是);如果为假,我们将使 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 = 禁用(默认)
(可选)MPU401 I/O 端口
模块 snd-serial-u16550¶
用于 UART16550A 串行 MIDI 端口的模块。
- port
UART16550A 芯片的端口 #
- AD1848 芯片的端口 #
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
- ALi M5451 PCI 芯片的模块。
为 PCM 保留的最大通道(音色)数
- wavetable_size
wavetable 的最大大小,单位为 kB (4-?kb)
(可选)MPU401 I/O 端口
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 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。驱动程序会为此类设备打印一条消息,例如“Found post-registration device assignment: 1234abcd:04”,以便用户可以注意到需要。- quirk_flags
包含各种设备特定解决方法 的位标志。应用于相应的声卡索引。
第 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 位:不要应用隐式反馈同步模式
此模块支持多个设备、自动检测和热插拔。
注意:nrpacks
参数可以通过 sysfs 动态修改。不要将值设置超过 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 主板的模块。
- WSS 回放的 DMA # (0,1,3)
0x300,0x310,0x320,0x330,否则获取 BIOS 设置 [仅限 VIA686A/686B]
- 此模块支持多个卡、PnP 和自动探测。
启用操纵杆(默认关闭)[仅限 VIA686A/686B]
- ATI IXP 150/200/250/400 AC97 控制器的模块。
AC’97 编解码器时钟基数(默认 48000Hz)
- dxs_support
支持 DXS 通道,0 = 自动(默认),1 = 启用,2 = 禁用,3 = 仅限 48k,4 = 无 VRA,5 = 在不同通道上启用任何采样率和不同的采样率 [仅限 VIA8233/C、8235、8237]
- Analog Devices AD1889 芯片的模块。
AC’97 时钟(默认值 = 48000)
支持 SPDIF I/O; 默认值:已禁用
注意:在某些 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 调制解调器的模块
- ATI IXP 150/200/250/400 AC97 控制器的模块。
AC’97 编解码器时钟基数(默认 48000Hz)
通过 AC 链接传输 S/PDIF(默认值 = 1)
ATI IXP 150/200/250 AC97 调制解调器控制器的模块。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-virmidi¶
用于虚拟 rawmidi 设备的模块。此模块创建与相应 ALSA 音序器端口通信的虚拟 rawmidi 设备。
- midi_devs
MIDI 设备 # (1-4, 默认=4)
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
模块 snd-virtuoso¶
用于基于华硕 AV66/AV100/AV200 芯片的声卡的模块,即 Xonar D1、DX、D2、D2X、DS、DSX、Essence ST(Deluxe)、Essence STX(II)、HDAV1.3(Deluxe)和 HDAV1.3 Slim。
fm_port
模块 snd-vx222¶
用于 Digigram VX-Pocket VX222、V222 v2 和 Mic 卡的模块。
- mic
在 V222 Mic 上启用麦克风 (NYI)
- ibl
捕获 IBL 大小。(默认 = 0,最小大小)
AC’97 解决奇怪的硬件问题; 有关详细信息,请参见 intel8x0 模块的描述。
当驱动程序编译为模块并且支持热插拔固件时,固件数据会自动通过热插拔加载。在 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 实用程序加载固件。
关于 capture IBL,请参阅 snd-vx222 模块的描述。
注意:自 ALSA 1.0.10 起,snd-vxp440 驱动程序已合并到 snd-vxpocket 驱动程序中。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 snd-ymfpci¶
用于 Yamaha PCI 芯片(YMF72x、YMF74x & YMF75x)的模块。
- WSS 回放的 DMA # (0,1,3)
0x300,0x330,0x332,0x334, 0(默认禁用), 1 (仅自动检测 YMF744/754)
- MPU-401 UART 的端口 # (0x300,0x330),-1 = 已禁用(默认)
0x388,0x398,0x3a0,0x3a8, 0(默认禁用), 1 (仅自动检测 YMF744/754)
- 基于 Avance Logic ALS4000 PCI 芯片的声卡的模块。
0x201,0x202,0x204,0x205, 0(默认禁用), 1(自动检测)
- rear_switch
启用共享的后置/线路输入切换开关 (bool)
此模块支持自动检测和多个芯片。
此模块支持多个卡。 它不支持自动探测,因此必须指定主端口!!! 其他端口是可选的。
模块 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¶
- erase
擦除有关 OSS 应用程序的所有附加信息
- <app_name> <fragments> <fragment_size> [<options>]
- <app_name>
带(较高优先级)或不带路径的应用程序名称
- <fragments>
片段数,如果自动则为零
- <fragment_size>
片段大小(字节),如果自动则为零
- <options>
可选参数
- disable
应用程序尝试为此通道打开 pcm 设备,但不希望使用它。(导致错误或需要 mmap)它适用于 Quake 等...
- direct
不要使用插件
- block
强制阻塞模式 (rvplayer)
- non-block
强制非阻塞模式
- whole-frag
仅写入完整片段(仅影响播放的优化)
- no-silence
不要提前填充静音以避免咔嗒声
- buggy-ptr
在 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 驱动程序
add VENDOR DEVICE MASK SIZE BUFFERS
VENDOR 和 DEVICE 是 PCI 供应商和设备 ID。 它们采用整数(十六进制需要 0x 前缀)。 MASK 是 PCI DMA 掩码。 如果没有限制,则传递 0。 SIZE 是要分配的每个缓冲区的大小。 您可以传递 k 和 m 后缀,分别表示 KB 和 MB。 最大数量为 16MB。 BUFFERS 是要分配的缓冲区数量。 它必须大于 0。 最大数量为 4。
erase
这将擦除所有未使用的预分配缓冲区。
链接和地址¶
- ALSA 项目主页
- 内核 Bugzilla
- ALSA 开发者邮件列表
- alsa-info.sh 脚本