# snd-hda-intel, headphone only sound SOLVED!!!!

## phoe

Got my new laptop last week - an LG S1 Express Dual.  

Lots of problems with drivers - installation without network drivers, etc.  The downside of getting a new shiny toy.

Most vexing and concerning has been audio, as I couldnt get it started.  Modules would install on start, appear ok, but no noise.  Moved to external alsa-driver package rather than kernel, and managed to get audio out of the headphones only...  :Sad: 

Audio card is:

Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

Im assuming you are using the alsa-driver package rather than in-kernel support, although you could probably do the same thing as in here...

SO, solved this by :

1)downloading a copy of the alsa-driver-1.0.11.tar.bz2 - it might be sitting in /usr/portage/distfiles, otherwise running emerge -f alsa-driver will get it for you to the aforementioned location.

2)moved this file to somewhere to work - extract with tar xjf alsa-driver-1.0.11.tar.bz2

3)cd into alsa-driver-1.0.11/alsa-kernel/pci/hda

4)Tracked down some information on my card - by first doing an lspci : my card looked like

00:1b.0 Class 0403: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

5) then i did a lspci -nv and used that starting number on the previous line to track down:

00:1b.0 0403: 8086:27d8 (rev 02)

        Subsystem: 1854:0067

        Flags: bus master, fast devsel, latency 0, IRQ 22

        Memory at d8500000 (64-bit, non-prefetchable) [size=16K]

        Capabilities: [50] Power Management version 2

        Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-

        Capabilities: [70] Express Unknown type IRQ 0

        Capabilities: [100] Virtual Channel

        Capabilities: [130] Unknown (5)

from here, we are interested in the Subsystem numbers.

6) since this card is actually a realtek, we now open up the patch_realtek.c in the alsa-driver-1.0.11/alsa-kernel/pci/hda directory.

Lo and behold, there is code in here for the LG M1 laptop!!!  Reasoning that its pretty darn similar, I tracked down the lookup table, looks something like : 

    { .modelname = "lg", .config = ALC880_LG },

        { .pci_subvendor = 0x1854, .pci_subdevice = 0x003b, .config = ALC880_LG },

and just copied a new line in like this:

       /*this is the card on my S1*/

        { .pci_subvendor = 0x1854, .pci_subdevice = 0x0067, .config = ALC880_LG },

youll notice the subvendor and subdevice numbers correspond to the subsystem number in #5 - thats where they came from.  Conceivably if you have a similar but newer card from some other variant, this whole approach might work.

6)back to earth, save the file, cd ../../../

then run make

7) once its done, ran a cp pci/hda/*.ko /lib/modules/your-kernel/alsa-driver/

where your-kernel is the name of your kernel, ie 2.6.16 or whatever.

8)now, do an /etc/init.d/alsasound restart, open up alsamixer and unmute anything you can, raise up the volume and viola!

hopefully, this will help someone else out too, as it took me a little while to sort out.  I have emailed the suse.de developer about this tiny fix but I suspect it might be a little before this gets fixed, so perhaps this can help other people with a similar problem.  Cheers,

----------

## jivher

after modified my alsa-driver  as you suggested my microphone input works perfect.

many many thanks; I spent 3 days to solve this problem; my card is 

localhost ~ # lspci -nv

00:02.0 0300: 8086:2592 (rev 03)

        Subsystem: 1028:01c9

        Flags: bus master, fast devsel, latency 0, IRQ 16

        Memory at dff00000 (32-bit, non-prefetchable) [size=512K]

        I/O ports at eff8 [size=8]

        Memory at c0000000 (32-bit, prefetchable) [size=256M]

        Memory at dfec0000 (32-bit, non-prefetchable) [size=256K]

        Capabilities: [d0] Power Management version 2

cheers,

Mihai

----------

## firsttry

Finally had time to work on the ALSA issue again, after a LONG time!

phoe:

Just tried your suggestion, i.e. ran emerge -f alsa-driver, then ran lspci:

```

00:1b.0 Class 0403: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 04)
```

Which gave me 001:b.0. lspci -nv gave

```

        00:1b.0 0403: 8086:2668 (rev 04)

        Subsystem: 1043:1173

        Flags: bus master, fast devsel, latency 0, IRQ 11

        Memory at febf8000 (64-bit, non-prefetchable) [size=16K]

        Capabilities: [50] Power Management version 2

        Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-

        Capabilities: [70] Express Unknown type IRQ 0

        Capabilities: [100] Virtual Channel

        Capabilities: [130] Unknown (5)
```

After extracting the alsa-driver file (ver 1.0.11), I edited the ./alsa-kernel/pci/hda/patch_realtek.c (just wondering, how did you work out that it's a realtek card?), adding the line

```
{ .pci_subvendor = 0x1043, .pci_subdevice = 0x1173, .config = ALC880_ASUS },
```

at the end of the section beginning with

```
{ .modelname = "asus", .config = ALC880_ASUS },
```

I then went back to the root alsa-driver directory and ran ./configure, followed by make (had to remove any ALSA support from the kernel to get ./configure to work).

Made the alsa-driver directory under /lib/modules/2.6.16.16 (I'm using the vanilla sources), copied the *.ko files from pci/hda/ and ran /etc/init.d/alsasound restart... which worked fine, though I'm still stuck with the same problem - still no sound coming out of my line-out!

Actually just searched for my subsystem (1173), and realised that it was already included in the same subsection, so it was to no avail. Oh well, thanks for your help anyway, I'll have to try something else.

----------

## silverfish27

You can get the same results in a (much) easier way!! I mean for the LG P1 laptop (what a wonderfull machine)

You just have to write this in /etc/modules.d/alsa

```
options snd-hda-intel model=lg position_fix=1
```

then it will look like:

```
# ALSA portion

alias char-major-116 snd

# OSS/Free portion

alias char-major-14 soundcore

##

## IMPORTANT:

## You need to customise this section for your specific sound card(s)

## and then run `update-modules' command.

## Read alsa-driver's INSTALL file in /usr/share/doc for more info.

##

##  ALSA portion

alias snd-card-0 snd_hda_intel

##  OSS/Free portion

alias sound-slot-0 snd-card-0

# OSS/Free portion - card #1

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

# Set this to the correct number of cards.

options snd cards_limit=1

# fix scrappy sound and set lg model

options snd-hda-intel model=lg position_fix=1

```

Then run as root:

```

spectra ~ # modules-update

spectra ~ # /etc/init.d/alsasound restart

```

And if you havent done it before:

```

spectra ~ # rc-update add alsasound default

```

Then run alsamixer as normal user to unmute your sound card  :Wink: 

```

dangar@spectra ~ $ alsamixer

```

Note that I am using =media-sound/alsa-driver-1.0.11 (not the drivers included in the kernel)

And remember to add "oss" USE to /etc/make.conf to have /dev/mixer and this oss stuff...

----------

## otakuj462

Hi all, could someone please tell me how you know what modelname and config one is supposed to choose? I'm using a Dell Inspiron 1300, with a Sigmatel9200 card, but I don't see Dell listed anywhere like with Asus and LG. Any suggestions? 

Thanks.

-Jake

----------

## phoe

interesting you point this out - I had communicated with the developer as well, and he had suggested that just putting model=lg would work.  However, didnt work on my LG S1, and i played with various position_fix values until i got complicated as I outlined above.  Interestingly enough, I noticed he added detection values for the S1 that I passed along in the last update to the alsa-drivers, so Im happy  :Smile: 

----------

