Find the answer to your Linux question:
Results 1 to 8 of 8
It's an exciting day. I have a Gateway M-Series laptop with this bloody Intel sound card using the SigmaTel STAC9205 codec, and I have never until now been able to ...
  1. #1
    Linux Guru reed9's Avatar
    Join Date
    Feb 2009
    Location
    Boston, MA
    Posts
    4,651

    Take that SigmaTel STAC9205!

    It's an exciting day. I have a Gateway M-Series laptop with this bloody Intel sound card using the SigmaTel STAC9205 codec, and I have never until now been able to get sound from headphones working with ALSA. Plug in headphones and everything muted. It would work using OSS4, though the external speakers wouldn't mute (though I could turn them down myself and keep the headphones), but not ALSA.

    It had been a while since I checked up on it, and today I was googling around when bam, there it was. As of ALSA 1.0.20, a new option was added.

    Stuck this in /etc/modprobe.d/modprobe.conf
    Code:
    options snd-hda-intel model=eapd probe_mask=1 position_fix=1
    and there you go. Sound out of my damned headphones.

    I now have no piece of hardware that doesn't work swimmingly with linux.

  2. #2
    Linux Guru waterhead's Avatar
    Join Date
    Jul 2004
    Location
    Franklin, Wisconsin
    Posts
    4,577
    It's good to know that options can be added to the sound module. I ran modinfo on the snd-hda-intel module, and here are all of the options:
    Code:
    parm:           power_save:Automatic power-saving timeout (in second, 0 = disable). (int)
    parm:           index:Index value for Intel HD audio interface. (array of int)
    parm:           id:ID string for Intel HD audio interface. (array of charp)
    parm:           enable:Enable Intel HD audio interface. (array of bool)
    parm:           model:Use the given board model. (array of charp)
    parm:           position_fix:Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF). (array of int)
    parm:           bdl_pos_adj:BDL position adjustment offset. (array of int)
    parm:           probe_mask:Bitmask to probe codecs (default = -1). (array of int)
    parm:           single_cmd:Use single command to communicate with codecs (for debugging only). (bool)
    parm:           enable_msi:Enable Message Signaled Interrupt (MSI) (int)
    parm:           power_save_controller:Reset controller in power save mode. (bool)
    It doesn't give any actual option choices, so I wonder how to find them. Some are somewhat obvious, but others?
    Paul

    Please do not send Private Messages to me with requests for help. I will not reply.

  3. #3
    Linux Guru waterhead's Avatar
    Join Date
    Jul 2004
    Location
    Franklin, Wisconsin
    Posts
    4,577
    In my kernel source there is this document:

    /Documentation/sound/alsa/ALSA-Configuration.txt

    It has quite a bit of info in it. Here is the section for the snd-hda-intel module (sorry for the big post):

    Code:
      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)
        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.
        
        [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 timtout (in second, 0 =
    		disable)
        power_save_controller - Reset HD-audio controller in power-saving mode
    		(default = on)
    
        This module supports multiple cards and autoprobe.
        
        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.
    
    	  Model name	Description
    	  ----------    -----------
    	ALC880
    	  3stack	3-jack in back and a headphone out
    	  3stack-digout	3-jack in back, a HP out and a SPDIF out
    	  5stack	5-jack in back, 2-jack in front
    	  5stack-digout	5-jack in back, 2-jack in front, a SPDIF out
    	  6stack	6-jack in back, 2-jack in front
    	  6stack-digout	6-jack with a SPDIF out
    	  w810		3-jack
    	  z71v		3-jack (HP shared SPDIF)
    	  asus		3-jack (ASUS Mobo)
    	  asus-w1v	ASUS W1V
    	  asus-dig	ASUS with SPDIF out
    	  asus-dig2	ASUS with SPDIF out (using GPIO2)
    	  uniwill	3-jack
    	  fujitsu	Fujitsu Laptops (Pi1536)
    	  F1734		2-jack
    	  lg		LG laptop (m1 express dual)
    	  lg-lw		LG LW20/LW25 laptop
    	  tcl		TCL S700
    	  clevo		Clevo laptops (m520G, m665n)
    	  medion	Medion Rim 2150
    	  test		for testing/debugging purpose, almost all controls can be
    			adjusted.  Appearing only when compiled with
    			$CONFIG_SND_DEBUG=y
    	  auto		auto-config reading BIOS (default)
    
    	ALC260
    	  hp		HP machines
    	  hp-3013	HP machines (3013-variant)
    	  hp-dc7600	HP DC7600
    	  fujitsu	Fujitsu S7020
    	  acer		Acer TravelMate
    	  will		Will laptops (PB V7900)
    	  replacer	Replacer 672V
    	  basic		fixed pin assignment (old default model)
    	  test		for testing/debugging purpose, almost all controls can
    			adjusted.  Appearing only when compiled with
    			$CONFIG_SND_DEBUG=y
    	  auto		auto-config reading BIOS (default)
    
    	ALC262
    	  fujitsu	Fujitsu Laptop
    	  hp-bpc	HP xw4400/6400/8400/9400 laptops
    	  hp-bpc-d7000	HP BPC D7000
    	  hp-tc-t5735	HP Thin Client T5735
    	  hp-rp5700	HP RP5700
    	  benq		Benq ED8
    	  benq-t31	Benq T31
    	  hippo		Hippo (ATI) with jack detection, Sony UX-90s
    	  hippo_1	Hippo (Benq) with jack detection
    	  sony-assamd	Sony ASSAMD
    	  toshiba-s06	Toshiba S06
    	  toshiba-rx1	Toshiba RX1
    	  ultra		Samsung Q1 Ultra Vista model
    	  lenovo-3000	Lenovo 3000 y410
    	  nec		NEC Versa S9100
    	  basic		fixed pin assignment w/o SPDIF
    	  auto		auto-config reading BIOS (default)
    
    	ALC267/268
    	  quanta-il1	Quanta IL1 mini-notebook
    	  3stack	3-stack model
    	  toshiba	Toshiba A205
    	  acer		Acer laptops
    	  acer-aspire	Acer Aspire One
    	  dell		Dell OEM laptops (Vostro 1200)
    	  zepto		Zepto laptops
    	  test		for testing/debugging purpose, almost all controls can
    			adjusted.  Appearing only when compiled with
    			$CONFIG_SND_DEBUG=y
    	  auto		auto-config reading BIOS (default)
    
    	ALC269
    	  basic		Basic preset
    	  quanta	Quanta FL1
    	  eeepc-p703	ASUS Eeepc P703 P900A
    	  eeepc-p901	ASUS Eeepc P901 S101
    
    	ALC662/663
    	  3stack-dig	3-stack (2-channel) with SPDIF
    	  3stack-6ch	 3-stack (6-channel)
    	  3stack-6ch-dig 3-stack (6-channel) with SPDIF
    	  6stack-dig	 6-stack with SPDIF
    	  lenovo-101e	 Lenovo laptop
    	  eeepc-p701	ASUS Eeepc P701
    	  eeepc-ep20	ASUS Eeepc EP20
    	  ecs		ECS/Foxconn mobo
    	  m51va		ASUS M51VA
    	  g71v		ASUS G71V
    	  h13		ASUS H13
    	  g50v		ASUS G50V
    	  asus-mode1	ASUS
    	  asus-mode2	ASUS
    	  asus-mode3	ASUS
    	  asus-mode4	ASUS
    	  asus-mode5	ASUS
    	  asus-mode6	ASUS
    	  auto		auto-config reading BIOS (default)
    
    	ALC882/885
    	  3stack-dig	3-jack with SPDIF I/O
    	  6stack-dig	6-jack digital with SPDIF I/O
    	  arima		Arima W820Di1
    	  targa		Targa T8, MSI-1049 T8
    	  asus-a7j	ASUS A7J
    	  asus-a7m	ASUS A7M
    	  macpro	MacPro support
    	  mbp3		Macbook Pro rev3
    	  imac24	iMac 24'' with jack detection
    	  w2jc		ASUS W2JC
    	  auto		auto-config reading BIOS (default)
    
    	ALC883/888
    	  3stack-dig	3-jack with SPDIF I/O
    	  6stack-dig	6-jack digital with SPDIF I/O
    	  3stack-6ch    3-jack 6-channel
    	  3stack-6ch-dig 3-jack 6-channel with SPDIF I/O
    	  6stack-dig-demo  6-jack digital for Intel demo board
    	  acer		Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)
    	  acer-aspire	Acer Aspire 9810
    	  medion	Medion Laptops
    	  medion-md2	Medion MD2
    	  targa-dig	Targa/MSI
    	  targa-2ch-dig	Targs/MSI with 2-channel
    	  laptop-eapd   3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)
    	  lenovo-101e	Lenovo 101E
    	  lenovo-nb0763	Lenovo NB0763
    	  lenovo-ms7195-dig Lenovo MS7195
    	  lenovo-sky	Lenovo Sky
    	  haier-w66	Haier W66
    	  3stack-hp	HP machines with 3stack (Lucknow, Samba boards)
    	  6stack-dell	Dell machines with 6stack (Inspiron 530)
    	  mitac		Mitac 8252D
    	  clevo-m720	Clevo M720 laptop series
    	  fujitsu-pi2515 Fujitsu AMILO Pi2515
    	  3stack-6ch-intel Intel DG33* boards
    	  auto		auto-config reading BIOS (default)
    
    	ALC861/660
    	  3stack	3-jack
    	  3stack-dig	3-jack with SPDIF I/O
    	  6stack-dig	6-jack with SPDIF I/O
    	  3stack-660	3-jack (for ALC660)
    	  uniwill-m31	Uniwill M31 laptop
    	  toshiba	Toshiba laptop support
    	  asus		Asus laptop support
    	  asus-laptop	ASUS F2/F3 laptops
    	  auto		auto-config reading BIOS (default)
    
    	ALC861VD/660VD
    	  3stack	3-jack
    	  3stack-dig	3-jack with SPDIF OUT
    	  6stack-dig	6-jack with SPDIF OUT
    	  3stack-660	3-jack (for ALC660VD)
    	  3stack-660-digout 3-jack with SPDIF OUT (for ALC660VD)
    	  lenovo	Lenovo 3000 C200
    	  dallas	Dallas laptops
    	  hp		HP TX1000
    	  asus-v1s	ASUS V1Sn
    	  auto		auto-config reading BIOS (default)
    
    	CMI9880
    	  minimal	3-jack in back
    	  min_fp	3-jack in back, 2-jack in front
    	  full		6-jack in back, 2-jack in front
    	  full_dig	6-jack in back, 2-jack in front, SPDIF I/O
    	  allout	5-jack in back, 2-jack in front, SPDIF out
    	  auto		auto-config reading BIOS (default)
    
    	AD1882 / AD1882A
    	  3stack	3-stack mode (default)
    	  6stack	6-stack mode
    
    	AD1884A / AD1883 / AD1984A / AD1984B
    	  desktop	3-stack desktop (default)
    	  laptop	laptop with HP jack sensing
    	  mobile	mobile devices with HP jack sensing
    	  thinkpad	Lenovo Thinkpad X300
    
    	AD1884
    	  N/A
    
    	AD1981
    	  basic		3-jack (default)
    	  hp		HP nx6320
    	  thinkpad	Lenovo Thinkpad T60/X60/Z60
    	  toshiba	Toshiba U205
    
    	AD1983
    	  N/A
    
    	AD1984
    	  basic		default configuration
    	  thinkpad	Lenovo Thinkpad T61/X61
    	  dell		Dell T3400
    
    	AD1986A
    	  6stack	6-jack, separate surrounds (default)
    	  3stack	3-stack, shared surrounds
    	  laptop	2-channel only (FSC V2060, Samsung M50)
    	  laptop-eapd	2-channel with EAPD (ASUS A6J)
    	  laptop-automute 2-channel with EAPD and HP-automute (Lenovo N100)
    	  ultra		2-channel with EAPD (Samsung Ultra tablet PC)
    	  samsung	2-channel with EAPD (Samsung R65)
    
    	AD1988/AD1988B/AD1989A/AD1989B
    	  6stack	6-jack
    	  6stack-dig	ditto with SPDIF
    	  3stack	3-jack
    	  3stack-dig	ditto with SPDIF
    	  laptop	3-jack with hp-jack automute
    	  laptop-dig	ditto with SPDIF
    	  auto		auto-config reading BIOS (default)
    	
    	Conexant 5045
    	  laptop-hpsense    Laptop with HP sense (old model laptop)
    	  laptop-micsense   Laptop with Mic sense (old model fujitsu)
    	  laptop-hpmicsense Laptop with HP and Mic senses
    	  benq		Benq R55E
    	  test		for testing/debugging purpose, almost all controls
    			can be adjusted.  Appearing only when compiled with
    			$CONFIG_SND_DEBUG=y
    
    	Conexant 5047
    	  laptop	Basic Laptop config 
    	  laptop-hp	Laptop config for some HP models (subdevice 30A5)
    	  laptop-eapd	Laptop config with EAPD support
    	  test		for testing/debugging purpose, almost all controls
    			can be adjusted.  Appearing only when compiled with
    			$CONFIG_SND_DEBUG=y
    
    	Conexant 5051
    	  laptop	Basic Laptop config (default)
    	  hp		HP Spartan laptop
    
    	STAC9200
    	  ref		Reference board
    	  dell-d21	Dell (unknown)
    	  dell-d22	Dell (unknown)
    	  dell-d23	Dell (unknown)
    	  dell-m21	Dell Inspiron 630m, Dell Inspiron 640m
    	  dell-m22	Dell Latitude D620, Dell Latitude D820
    	  dell-m23	Dell XPS M1710, Dell Precision M90
    	  dell-m24	Dell Latitude 120L
    	  dell-m25	Dell Inspiron E1505n
    	  dell-m26	Dell Inspiron 1501
    	  dell-m27	Dell Inspiron E1705/9400
    	  gateway	Gateway laptops with EAPD control
    	  panasonic	Panasonic CF-74
    
    	STAC9205/9254
    	  ref		Reference board
    	  dell-m42	Dell (unknown)
    	  dell-m43	Dell Precision
    	  dell-m44	Dell Inspiron
    
    	STAC9220/9221
    	  ref		Reference board
    	  3stack	D945 3stack
    	  5stack	D945 5stack + SPDIF
    	  intel-mac-v1	Intel Mac Type 1
    	  intel-mac-v2	Intel Mac Type 2
    	  intel-mac-v3	Intel Mac Type 3
    	  intel-mac-v4	Intel Mac Type 4
    	  intel-mac-v5	Intel Mac Type 5
    	  intel-mac-auto Intel Mac (detect type according to subsystem id)
    	  macmini	Intel Mac Mini (equivalent with type 3)
    	  macbook	Intel Mac Book (eq. type 5)
    	  macbook-pro-v1 Intel Mac Book Pro 1st generation (eq. type 3)
    	  macbook-pro	Intel Mac Book Pro 2nd generation (eq. type 3)
    	  imac-intel	Intel iMac (eq. type 2)
    	  imac-intel-20	Intel iMac (newer version) (eq. type 3)
    	  dell-d81	Dell (unknown)
    	  dell-d82	Dell (unknown)
    	  dell-m81	Dell (unknown)
    	  dell-m82	Dell XPS M1210
    
    	STAC9202/9250/9251
    	  ref		Reference board, base config
    	  m2-2		Some Gateway MX series laptops
    	  m6		Some Gateway NX series laptops
    	  pa6		Gateway NX860 series
    
    	STAC9227/9228/9229/927x
    	  ref		Reference board
    	  ref-no-jd	Reference board without HP/Mic jack detection
    	  3stack	D965 3stack
    	  5stack	D965 5stack + SPDIF
    	  dell-3stack	Dell Dimension E520
    	  dell-bios	Fixes with Dell BIOS setup
    
    	STAC92HD71B*
    	  ref		Reference board
    	  dell-m4-1	Dell desktops
    	  dell-m4-2	Dell desktops
    	  dell-m4-3	Dell desktops
    
    	STAC92HD73*
    	  ref		Reference board
    	  no-jd		BIOS setup but without jack-detection
    	  dell-m6-amic	Dell desktops/laptops with analog mics
    	  dell-m6-dmic	Dell desktops/laptops with digital mics
    	  dell-m6	Dell desktops/laptops with both type of mics
    
    	STAC9872
    	  vaio		Setup for VAIO FE550G/SZ110
    	  vaio-ar Setup for VAIO AR
    
        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 the PCI
        subsystem ID (output of "lspci -nv") to ALSA BTS 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.
    I never should have read your post, reed9! Now you got me going on this, And I don't even have that sound card!

    EDIT: I must correct myself. My Eee PC is showing this module loading:

    snd_hda_intel
    Paul

    Please do not send Private Messages to me with requests for help. I will not reply.

  4. #4
    Linux Guru reed9's Avatar
    Join Date
    Feb 2009
    Location
    Boston, MA
    Posts
    4,651
    It doesn't give any actual option choices, so I wonder how to find them. Some are somewhat obvious, but others?
    What I did was find out which "codec" the sound card uses. Which initially I did as so
    Code:
    cat /proc/asound/card0/codec#0 | less
    until I found this easier to read method
    Code:
    head -n 1 /proc/asound/card0/codec*
    Then check it against the kernel documentation.
    Linux Kernel Documentation :: sound : alsa : HD-Audio-Models.txt

    Searched for STAC9205, and find the module options.

    Some of the other options are described in this bit.Linux Kernel Documentation :: sound : alsa : ALSA-Configuration.txt

    But I didn't pour through that. I found a blog post somewhere regarding a gateway t-series laptop, and I thought I'd try it with my m-series.

  5. #5
    Linux Guru waterhead's Avatar
    Join Date
    Jul 2004
    Location
    Franklin, Wisconsin
    Posts
    4,577
    OK, one more thing that troubled me.

    Your choice of model=eapd isn't listed in the documentation that I have, but laptop-eapd is. Since you have the latest version, that must be the reason, so the latest documentation on supported cards in found here:

    git.alsa-project.org Git - alsa-kernel.git/blob - Documentation/sound/alsa/HD-Audio-Models.txt

    The eapd option has been added back in, as you already know.
    Paul

    Please do not send Private Messages to me with requests for help. I will not reply.

  6. #6
    Linux Guru reed9's Avatar
    Join Date
    Feb 2009
    Location
    Boston, MA
    Posts
    4,651
    EDIT: I must correct myself. My Eee PC is showing this module loading:

    snd_hda_intel
    snd_hda_intel is fairly generic as it turns out. You have to find the codec as I mentioned above to get at the goods.

  7. #7
    Linux Guru reed9's Avatar
    Join Date
    Feb 2009
    Location
    Boston, MA
    Posts
    4,651
    Your choice of model=eapd isn't listed in the documentation that I have
    Yeah, that was part of my problem. For months I've been looking and it looks like this options was only added recently. Fortunately Arch is bleeding edge.

  8. #8
    Linux Guru waterhead's Avatar
    Join Date
    Jul 2004
    Location
    Franklin, Wisconsin
    Posts
    4,577
    I am not having sound problems, but I also don't use headphones. This is the codec that my Eee Pc 900 uses.

    Codec: Realtek ALC662 rev1

    It may come in handy some day, thanks.
    Paul

    Please do not send Private Messages to me with requests for help. I will not reply.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •