我在 Intel DG965RY 上运行 Ubuntu 10.10。我的前置音频端口在 Ubuntu 中不起作用,后置音频端口起作用。之前我使用 Ubuntu 10.04 时,它从未工作过,但这次我要再试一次。
我的编解码器是SigmaTel STAC9227
我的 ALSA 信息是这里。
实用细节:
!!ALSA Version
!!------------
Driver version: 1.0.23
Library version: 1.0.23
Utilities version: 1.0.23
!!Loaded ALSA modules
!!-------------------
snd_hda_intel
snd_hda_intel
我知道我必须更改模块的模型才能使前置音频插孔工作,但我在 ALSA 配置文件 - /etc/modprobe.d/alsa-base.conf 中找不到与模型相关的行(我能够在 Ubuntu 10.04 中到达这一点,可能有些东西已经发生了变化)。
我下一步该怎么做?
编辑: 模块详细信息:
Module snd-hda-intel
--------------------
Module for 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
[Multiple options for each card instance]
model - force the model name
position_fix - Fix DMA pointer (0 = auto, 1 = use LPIB, 2 = POSBUF)
probe_mask - Bitmask to probe codecs (default = -1, meaning all slots)
When the bit 8 (0x100) is set, the lower 8 bits are used
as the "fixed" codec slots; i.e. the driver probes the
slots regardless what hardware reports back
probe_only - Only probing and no codec initialization (default=off);
Useful to check the initial codec status for debugging
bdl_pos_adj - Specifies the DMA IRQ timing delay in samples.
Passing -1 will make the driver to choose the appropriate
value based on the controller chip.
patch - Specifies the early "patch" files to modify the HD-audio
setup before initializing the codecs. This option is
available only when CONFIG_SND_HDA_PATCH_LOADER=y is set.
See HD-Audio.txt for details.
beep_mode - Selects the beep registration mode (0=off, 1=on, 2=
dynamic registration via mute switch on/off); the default
value is set via CONFIG_SND_HDA_INPUT_BEEP_MODE kconfig.
[Single (global) options]
single_cmd - Use single immediate commands to communicate with
codecs (for debugging only)
enable_msi - Enable Message Signaled Interrupt (MSI) (default = off)
power_save - Automatic power-saving timeout (in second, 0 =
disable)
power_save_controller - Reset HD-audio controller in power-saving mode
(default = on)
This module supports multiple cards and autoprobe.
See Documentation/sound/alsa/HD-Audio.txt for more details about
HD-audio driver.
Each codec may have a model table for different configurations.
If your machine isn't listed there, the default (usually minimal)
configuration is set up. You can pass "model=<name>" option to
specify a certain model in such a case. There are different
models depending on the codec chip. The list of available models
is found in HD-Audio-Models.txt
The model name "genric" is treated as a special case. When this
model is given, the driver uses the generic codec parser without
"codec-patch". It's sometimes good for testing and debugging.
If the default configuration doesn't work and one of the above
matches with your device, report it together with alsa-info.sh
output (with --no-upload option) to kernel bugzilla or alsa-devel
ML (see the section "Links and Addresses").
power_save and power_save_controller options are for power-saving
mode. See powersave.txt for details.
Note 2: If you get click noises on output, try the module option
position_fix=1 or 2. position_fix=1 will use the SD_LPIB
register value without FIFO size correction as the current
DMA pointer. position_fix=2 will make the driver to use
the position buffer instead of reading SD_LPIB register.
(Usually SD_LPIB register is more accurate than the
position buffer.)
NB: If you get many "azx_get_response timeout" messages at
loading, it's likely a problem of interrupts (e.g. ACPI irq
routing). Try to boot with options like "pci=noacpi". Also, you
can try "single_cmd=1" module option. This will switch the
communication method between HDA controller and codecs to the
single immediate commands instead of CORB/RIRB. Basically, the
single command mode is provided only for BIOS, and you won't get
unsolicited events, too. But, at least, this works independently
from the irq. Remember this is a last resort, and should be
avoided as much as possible...
MORE NOTES ON "azx_get_response timeout" PROBLEMS:
On some hardwares, you may need to add a proper probe_mask option
to avoid the "azx_get_response timeout" problem above, instead.
This occurs when the access to non-existing or non-working codec slot
(likely a modem one) causes a stall of the communication via HD-audio
bus. You can see which codec slots are probed by enabling
CONFIG_SND_DEBUG_VERBOSE, or simply from the file name of the codec
proc files. Then limit the slots to probe by probe_mask option.
For example, probe_mask=1 means to probe only the first slot, and
probe_mask=4 means only the third slot.
The power-management is supported.
我的编解码器可能的型号:
STAC9227/9228/9229/927x
=======================
ref Reference board
ref-no-jd Reference board without HP/Mic jack detection
3stack D965 3stack
5stack D965 5stack + SPDIF
5stack-no-fp D965 5stack without front panel
dell-3stack Dell Dimension E520
dell-bios Fixes with Dell BIOS setup
volknob Fixes with volume-knob widget 0x24
auto BIOS setup (default)
不幸的是,我不知道该如何运用它们。
更新:
我尝试了列出的所有适用于我的编解码器的型号,但仍然无法使其工作。
options snd-hda-intel model=ref
options snd-hda-intel model=ref-no-jd
options snd-hda-intel model=3stack
options snd-hda-intel model=5stack
options snd-hda-intel model=5stack-no-fp
options snd-hda-intel model=dell-3stack
options snd-hda-intel model=dell-bios
options snd-hda-intel model=volknob
options snd-hda-intel model=auto
我把它们放在配置文件的末尾,一个接一个地尝试了一遍
sudo gedit /etc/modprobe.d/alsa-base.conf
每次更改后我都会强制重新加载 alsa
sudo alsa force-reload
答案1
我遇到了完全相同的问题,使用的是完全相同的 SigmaTel STAC9227(尽管我的主板是 DQ965GF)。我设法让其中一个前置音频端口工作 - 麦克风。在我应用“3stack”选项后,它开始工作。但您需要更改“声音首选项”>“输入”>“连接器”中的设置,应设置为“麦克风 2”。但正如您所说的,我无法使前置音频输出与任何选项配合使用。我想我们必须深入研究解决方案 :(