# Help needed: No sound from speakers or headphones...

## cheuschober

Hi. I"ve been fiddling with this for over a month now to no success. Any and all help would be appreciated.

As it stands I have basic sound support enabled in the kernel with a modular alsa driver. Before anyone offers, yes, I have attempted the in-kernel driver. It does not work either.

Anyway, alsa loads with only one error (involving the modem -- something I'm not terribly concerned with these days). I get a full set of mixer bars in alsamixer and can play with mutes and volume levels. But there is zero sound produced on either the speakers or over the headphones.

relevant information as follows. thanks for the help.

```
$ cat /proc/asound/version

Advanced Linux Sound Architecture Driver Version 1.0.14rc2.

Compiled on Jan 17 2007 for kernel 2.6.19-suspend2-r1.
```

```
$ cat /proc/asound/cards

 0 [NVidia         ]: HDA-Intel - HDA NVidia

                      HDA NVidia at 0xb0000000 irq 20
```

```
$ alsamixer

Card: HDA NVidia

Chip: SigmaTel STAC9200

View: [Playback] Capture  All

Item: Master [dB gain=-4.50, -4.50]
```

```
$ dmesg | grep ALSA

ALSA /var/tmp/portage/media-sound/alsa-driver-1.0.14_rc2/work/alsa-driver-1.0.14rc2/pci/hda/../../alsa-kernel/pci/hda/patch_si3054.c:245: si3054: cannot initialize. EXT MID = 0000
```

```
$ cat /usr/src/linux/.config | grep SOUND

CONFIG_SOUND=y

# CONFIG_SOUND_PRIME is not set

# CONFIG_SND is not set
```

```
$ lsmod | grep snd

snd_pcm_oss            47904  0 

snd_mixer_oss          17600  1 snd_pcm_oss

snd_seq_oss            36992  0 

snd_seq_device          7696  1 snd_seq_oss

snd_seq_midi_event      7872  1 snd_seq_oss

snd_seq                57312  4 snd_seq_oss,snd_seq_midi_event

snd_hda_intel          19360  1 

snd_hda_codec         258752  1 snd_hda_intel

snd_pcm                84620  3 snd_pcm_oss,snd_hda_intel,snd_hda_codec

snd_timer              22024  2 snd_seq,snd_pcm

snd                    61352  11 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq_device,snd_seq,snd_hda_intel,snd_hda_codec,snd_pcm,snd_timer

snd_page_alloc          9488  2 snd_hda_intel,snd_pcm
```

```
$ lspci | grep Audio

00:10.1 Audio device: nVidia Corporation MCP51 High Definition Audio (rev a2)
```

```
$ cat /etc/modules.d/alsa

alias char-major-116 snd

alias char-major-14 soundcore

alias snd-card-0 snd-hda-intel

alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss

alias sound-service-0-1 snd-seq-oss

alias sound-service-0-3 snd-pcm-oss

alias sound-service-0-8 snd-seq-oss

alias sound-service-0-12 snd-pcm-oss

alias /dev/mixer snd-mixer-oss

alias /dev/dsp snd-pcm-oss

alias /dev/midi snd-seq-oss

options snd-hda-intel model=ref

options snd cards_limit=1
```

```
cat /proc/asound/card0/codec*

Codec: SigmaTel STAC9200

Address: 0

Vendor Id: 0x83847690

Subsystem Id: 0x161f205e

Revision Id: 0x102201

Default PCM:

    rates [0x7e0]: 44100 48000 88200 96000 176400 192000

    bits [0xe]: 16 20 24

    formats [0x1]: PCM

Default Amp-In caps: N/A

Default Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1

Node 0x02 [Audio Output] wcaps 0xd0401: Stereo

  Power: 0x0

Node 0x03 [Audio Input] wcaps 0x1d0541: Stereo

  Power: 0x0

  Connection: 1

     0x0a

Node 0x04 [Audio Input] wcaps 0x140311: Stereo Digital

  PCM:

    rates [0x160]: 44100 48000 96000

    bits [0xe]: 16 20 24

    formats [0x5]: PCM AC3

  Connection: 1

     0x08

Node 0x05 [Audio Output] wcaps 0x40211: Stereo Digital

  PCM:

    rates [0x1e0]: 44100 48000 88200 96000

    bits [0xe]: 16 20 24

    formats [0x5]: PCM AC3

Node 0x06 [Vendor Defined Widget] wcaps 0xf30201: Stereo Digital

Node 0x07 [Audio Selector] wcaps 0x300901: Stereo

  Connection: 3

     0x02* 0x08 0x0a

Node 0x08 [Pin Complex] wcaps 0x430681: Stereo Digital

  Pincap 0x0810024: IN EAPD Detect

  Pin Default 0x400000fe: [N/A] Line Out at Ext N/A

    Conn = Unknown, Color = Unknown

  Pin-ctls: 0x00:

  Power: 0x0

Node 0x09 [Pin Complex] wcaps 0x400301: Stereo Digital

  Pincap 0x0810: OUT

  Pin Default 0x00451330: [Jack] SPDIF Out at Ext N/A

    Conn = Optical, Color = Black

  Pin-ctls: 0x40: OUT

  Connection: 2

     0x05* 0x0a

Node 0x0a [Audio Selector] wcaps 0x30090d: Stereo Amp-Out

  Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1

  Amp-Out vals:  [0x8b 0x8b]

  Connection: 1

     0x0c

Node 0x0b [Audio Selector] wcaps 0x300105: Stereo Amp-Out

  Amp-Out caps: N/A

  Amp-Out vals:  [0x1c 0x1c]

  Connection: 1

     0x07

Node 0x0c [Audio Selector] wcaps 0x30010d: Stereo Amp-Out

  Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0

  Amp-Out vals:  [0x03 0x03]

  Connection: 5

     0x10* 0x0f 0x0e 0x0d 0x12

Node 0x0d [Pin Complex] wcaps 0x400181: Stereo

  Pincap 0x083f: IN OUT HP Detect

  Pin Default 0x400100f0: [N/A] Line Out at Ext N/A

    Conn = 1/8, Color = Unknown

  Pin-ctls: 0x00:

  Connection: 1

     0x0b

Node 0x0e [Pin Complex] wcaps 0x400181: Stereo

  Pincap 0x083f: IN OUT HP Detect

  Pin Default 0x90110010: [Fixed] Speaker at Int N/A

    Conn = 1/8, Color = Unknown

  Pin-ctls: 0x40: OUT

  Connection: 1

     0x0b

Node 0x0f [Pin Complex] wcaps 0x400181: Stereo

  Pincap 0x0837: IN OUT Detect

  Pin Default 0x400100f1: [N/A] Line Out at Ext N/A

    Conn = 1/8, Color = Unknown

  Pin-ctls: 0x20: IN

  Connection: 1

     0x0b

Node 0x10 [Pin Complex] wcaps 0x400181: Stereo

  Pincap 0x081737: IN OUT Detect

  Pin Default 0x02a1902e: [Jack] Mic at Ext Front

    Conn = 1/8, Color = Pink

  Pin-ctls: 0x24: IN

  Connection: 1

     0x0b

Node 0x11 [Pin Complex] wcaps 0x400104: Mono Amp-Out

  Amp-Out caps: N/A

  Amp-Out vals:  [0x00]

  Pincap 0x0810: OUT

  Pin Default 0x500000f2: [N/A] Line Out at Int N/A

    Conn = Unknown, Color = Unknown

  Pin-ctls: 0x00:

  Connection: 1

     0x13

Node 0x12 [Pin Complex] wcaps 0x400001: Stereo

  Pincap 0x0820: IN

  Pin Default 0x900000f3: [Fixed] Line Out at Int N/A

    Conn = Unknown, Color = Unknown

  Pin-ctls: 0x00:

Node 0x13 [Audio Mixer] wcaps 0x200100: Mono

  Connection: 1

     0x07

Node 0x14 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out

  Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1

  Amp-Out vals:  [0x00]

Codec: Generic 11c1 Si3054

Address: 1

Vendor Id: 0x11c11040

Subsystem Id: 0x11c10001

Revision Id: 0x100200
```

----------

## mirojira

 *cheuschober wrote:*   

> 
> 
> Anyway, alsa loads with only one error 

 

Could you send error message? Did you try

```
cat /dev/urandom > /dev/dsp
```

or

```
speaker-test
```

?

----------

## cheuschober

Error message is as above in $ dmesg.

$ cat /dev/urandom > /dev/dsp

yeilds nothing but speaker-test (which I didn't even know existed) yeilds nothing either.

As I stated, I'm not familiar with speaker-test. Is it reliant upon alsa properly detecting my output points (speakers) or is this now a hardware detection issue independent of ALSA?

----------

## mirojira

Sorry I did not see dmesg at first. Did you ran alsaconf ? Can you see the same error message with 

```
/etc/init.d/alsasound restart
```

?

Speaker-test is part of alsa-utils and it  is tone generator for ALSA.

----------

## cheuschober

 *mirojira wrote:*   

> Sorry I did not see dmesg at first. Did you ran alsaconf ? Can you see the same error message with 
> 
> ```
> /etc/init.d/alsasound restart
> ```
> ...

 

Yes to alsaconf and yes to init.d restart. The piece that can't be initialized is the modem (googling has told me that much). Now, I'm not sure if the problem bleeds out from there to affect audio production but if it's just the modem I don't have a huge use / concern for it.

Thanks for taking interest mirojira.

----------

## cheuschober

update: I wrote a dirty bash script to try all the models available for intel-hda (see below).

no sound was produced throughout the whole affair. any ideas where I should go from here?

```
#!/bin/bash

# alsatest-ihda.sh

# useful variables

MODELS_PATH="${0%/*}/ihda-models.dat"

OPTION_IHDA="options snd-hda-intel model="

ALSACONF_PATH="/etc/modules.d/alsa"

BKUP_PATH="/var/tmp/alsatest-ihda-models.alsa.bkup"

TMP_ALSACONF_PATH="/var/tmp/tmp.alsatest-ihda-models"

# our update / test commands

# four channels are used for (hopeful) completeness

function test_alsaconf {

  modules-update

  /etc/init.d/alsasound restart

  speaker-test -c4 -l2

}

# first we save our existing configuration in case of crash of failure

if [ -f $BKUP_PATH ]

then

  echo "alsatest: Backup already exists at ${BKUP_PATH}!"

  echo "alsatest: Skipping backup..."

else

  echo "alsatest: Backing up your existing alsaconf to ${BKUP_PATH}..."

  cp $ALSACONF_PATH $BKUP_PATH

fi

# the guts of it

exec < $MODELS_PATH  # reads in our models from file

while read line  # loops

  do

    MODEL=$line  # reads current model in

    echo "alsatest: Changing ALSA snd-hda-intel model to: ${MODEL}"

    sed "/${OPTION_IHDA}*/c${OPTION_IHDA}${MODEL}" $ALSACONF_PATH >> $TMP_ALSACONF_PATH  # replaces options line in alsa conf

    mv $TMP_ALSACONF_PATH $ALSACONF_PATH  

    echo "alsatest: Restarting ALSA and testing new model..."

    test_alsaconf  # runs the update and test

  done

if [ -f $BKUP_PATH ]

then

  echo "alsatest: Restoring the model to original before alsatest-ihda-models.sh..."

  mv $BKUP_PATH $ALSACONF_PATH

  modules-update

  /etc/init.d/alsasound restart

else

  echo "alsatest: Oh no! You've lost your backup!"

  echo "alsatest: For now you're stuck with what you've got."

fi

echo "alsatest: Script finished."
```

<ihda-models.dat>

```
3stack

3stack-6ch

3stack-6ch-dig

3stack-dig

3stack-digout

5stack

5stack-digout

6stack

6stack-dig

6stack-digout

6stack-dig-demo

acer

allout

arima

asus

asus-dig

asus-dig2

asus-w1v

auto

basic

benq

clevo

fujitsu

full

full_dig

hp

hp-3013

hp-bpc

laptop

laptop-dig

laptop-eapd

lg

lg-lw

minimal

ref

tcl

thinkpad

uniwill

uniwill-m31

vaio

vaio-ar

w810

z71v

F1734
```

----------

## mirojira

Your  *Quote:*   

> dirty bash script

 works on my box without any problems. From the error message above I can see that you have alsa-driver-1.0.14_rc2 installed. Last stable version in the portage is 1.0.14_rc1. Maybe you could try to downgrade. And maybe you could check what is wrong with patch_si3054.c which you can see in the error message aswell. I found this pach in kernel sources directories:

```
localhost # locate patch_si3054.c

/usr/src/linux-2.6.17-gentoo-r8/sound/pci/hda/patch_si3054.c

/usr/src/linux-2.6.18-gentoo-r6/sound/pci/hda/patch_si3054.c

/LFS/usr/src/linux-2.6.16.27/sound/pci/hda/patch_si3054.c
```

----------

## whig

Has the no sound problem been with you from the start of having your PC? Or eg, did it stop working recently? Does sound work in other distros or Windows? I would boot a knoppix cd and see if it has sound. If so, figure out which kernel modules are loaded and do the same on your gentoo install. If sound is "configured" but just not coming out, check the audio cable is plugged into the right socket at the back of the pc.

----------

## cheuschober

I'll take a look at it... though late last night I attracted the attention of an alsa dev who started pushing some custom scripts on me. They haven't worked for sound yet but suddenly new mixer bars have shown up in alsamixer so I think it's a step in the right direction.

Feel free to use the dirty script if you want but the dev actually reminded me that sometimes alsa volume states are reset (remuted) and so they need to be set. If you want to continue using it, I'd suggest the following.

```

BKUP_PATH="/var/tmp/alsatest-ihda-models.alsa.bkup"

TMP_ALSACONF_PATH="/var/tmp/tmp.alsatest-ihda-models"

++CTLS_REGEX="[Mm](aster|ASTER)|[Pp][Cc][Mm]|[Oo][Uu][Tt]|[Ll][Ff][Ee]"

++

++# unmutes and sets volume for all controls

++function amixer_ctls {

++IFS=$'\n'  # changes the bash Internal Field Separator to only accept /n-ewline

++for AMIXCTL in $(amixer scontrols | egrep $CTLS_REGEX | sed 's/Simple mixer control //')

++  do

++    amixer -c 0 sset $AMIXCTL 95% unmute

++  done

++}

++

++# reloads alsa, sets volume

++function reload_alsa {

++  modules-update

++  /etc/init.d/alsasound restart

++  amixer_ctls

++}

--# our update / test commands

--# four channels are used for (hopeful) completeness

++# reloads alsa, sets volume, and runs speaker-test

function test_alsaconf {

--  modules-update

--  /etc/init.d/alsasound restart

++  reload_alsa

  speaker-test -c4 -l2 

  echo "alsatest: Restoring the model to original before alsatest-ihda-models.sh..."

  mv $BKUP_PATH $ALSACONF_PATH

--  modules-update

--  /etc/init.d/alsasound restart

++  reload_alsa
```

----------

## cheuschober

 *whig wrote:*   

> Has the no sound problem been with you from the start of having your PC? Or eg, did it stop working recently? Does sound work in other distros or Windows? I would boot a knoppix cd and see if it has sound. If so, figure out which kernel modules are loaded and do the same on your gentoo install. If sound is "configured" but just not coming out, check the audio cable is plugged into the right socket at the back of the pc.

 

There has never been sound on any linux distribution tried. (redhat, suse, ubuntu, debian, knoppix, and gentoo) Sound did work in windows. It's a laptop so the only possible 'cables' are the line-in and headphone jack. I'm certain the correct module is intel-hda however that particular driver allows for several different pin/nodule layouts (covered in the 'model' options). After speaking with a dev it has been suggested that my machine, the first they've seen of its kind (I'm fairly certain I'm the only person using gentoo on one), doesn't have a standard layout so we're trying to construct a new layout. (See the /proc...codec)

----------

## Viaken

 *cheuschober wrote:*   

> After speaking with a dev it has been suggested that my machine, the first they've seen of its kind (I'm fairly certain I'm the only person using gentoo on one), doesn't have a standard layout so we're trying to construct a new layout. (See the /proc...codec)

 

I am using Gentoo on a very similar machine, if not the same type. Gateway MX3410 here. Anyway, did you get anywhere on this?

----------

## f3lix85

im not sure if this would apply to the chipset that you have but i am also using the hda-intel drivers and to get it working i had to add

```
acpi=ht
```

at the end of the kernel command in grub.conf and it works perfectly after.

----------

