让 SigmaTel STAC9227 前置音频插孔正常工作

让 SigmaTel STAC9227 前置音频插孔正常工作

我在 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”。但正如您所说的,我无法使前置音频输出与任何选项配合使用。我想我们必须深入研究解决方案 :(

相关内容