# No Audio Output

## Spargeltarzan

Hello Community,

a while ago I used vfio-pci for vga-passthrough, for this it was necessary to blacklist snd_hda_intel driver for audio. My longterm goal is to activate snd_hda_intel only for the onboard sound card and not for my graphics card to use the graphics card for passthrough, but currently I cannot get my audio working on my host anymore. (it is whitelisted again) As you can see snd_hda_intel is active. What might be the issue?  :Sad: 

```

lspci -k

00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)

   Subsystem: ASUSTeK Computer Inc. 4th Gen Core Processor DRAM Controller

   Kernel driver in use: hsw_uncore

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)

   Kernel driver in use: pcieport

00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)

   Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller

   Kernel driver in use: i915

00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)

   Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller

   Kernel driver in use: snd_hda_intel

   Kernel modules: snd_hda_intel

00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)

   Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB xHCI

   Kernel driver in use: xhci_hcd

   Kernel modules: xhci_pci

00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)

   Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family MEI Controller

   Kernel driver in use: mei_me

   Kernel modules: mei_me

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 05)

   Subsystem: ASUSTeK Computer Inc. Ethernet Connection I217-V

   Kernel driver in use: e1000e

00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)

   Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB EHCI

   Kernel driver in use: ehci-pci

00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)

   Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset High Definition Audio Controller

   Kernel driver in use: snd_hda_intel

   Kernel modules: snd_hda_intel

00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)

   Kernel driver in use: pcieport

00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d5)

   Kernel driver in use: pcieport

00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d5)

   Kernel driver in use: pcieport

00:1c.5 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #6 (rev d5)

   Kernel driver in use: pcieport

00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)

   Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB EHCI

   Kernel driver in use: ehci-pci

00:1f.0 ISA bridge: Intel Corporation Z87 Express LPC Controller (rev 05)

   Subsystem: ASUSTeK Computer Inc. Z87 Express LPC Controller

   Kernel driver in use: lpc_ich

   Kernel modules: lpc_ich

00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)

   Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]

   Kernel driver in use: ahci

00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)

   Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family SMBus Controller

   Kernel driver in use: i801_smbus

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X]

   Subsystem: Tul Corporation / PowerColor Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X]

   Kernel driver in use: vfio-pci

   Kernel modules: radeon

01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti HDMI Audio [Radeon HD 7870 XT / 7950/7970]

   Subsystem: Tul Corporation / PowerColor Tahiti HDMI Audio [Radeon HD 7870 XT / 7950/7970]

   Kernel driver in use: snd_hda_intel

   Kernel modules: snd_hda_intel

03:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)

   Subsystem: ASUSTeK Computer Inc. AR9462 Wireless Network Adapter

   Kernel driver in use: ath9k

   Kernel modules: ath9k

04:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller (rev 11)

   Subsystem: Marvell Technology Group Ltd. 88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller

   Kernel driver in use: ahci

05:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 01)

   Subsystem: ASUSTeK Computer Inc. ASM1062 Serial ATA Controller

   Kernel driver in use: ahci

```

----------

## krinn

You have 3 cards using snd_hda_intel, this make the following problems:

1 depending on the order, default card may not be the one using your speakers

2 to not use the video card audio for the graphic only, you have to blacklist it.

You could re-order cards in order to achieve goal #1

And blacklist all cards except one in use to achieve goal #2 (this will also met goal #1, if only one card is in use, and it is the one with the speaker, then all is good).

You can see an example here about re-ordering your cards: https://wiki.gentoo.org/wiki/ALSA#Laptops_with_HDMI_audio_output

You will also see there's a options snd cards_limit=2, which if you guess good, would be forcing it to 1 to achieve goal #2

----------

## Spargeltarzan

Thanks for fast reply!

My sound cards are 

```

cat /proc/asound/cards 

 0 [HDMI_1         ]: HDA-Intel - HDA Intel HDMI

                      HDA Intel HDMI at 0xf7c34000 irq 35

 1 [PCH            ]: HDA-Intel - HDA Intel PCH

                      HDA Intel PCH at 0xf7c30000 irq 33

 2 [HDMI           ]: HDA-Intel - HDA ATI HDMI

                      HDA ATI HDMI at 0xf7b60000 irq 34

```

According to the wiki I have set

```
  File: /etc/modprobe.d/alsa.conf 

# Set this to the correct number of cards.

options snd cards_limit=1

options snd-hda-intel id=HDMI index=0

```

Gnome-settings still show 2 cards and still snd_hda_intel are active as drivers shown with lspci -k.

No sound output possible. Any further ideas?  :Smile: 

ADD: In alsamixer my HDA Intel HDMI shows for every channel (4 S/PDIF) a green 00. I use displayport to connect my onboard card with my monitor.

I compiled my kernel options as a module since I needed to blacklist snd_hda_intel formerly.

```

lsmod | grep '^snd' | column -t

snd_hda_codec_realtek  81920   1   

snd_hda_codec_generic  77824   1   snd_hda_codec_realtek

snd_hda_codec_hdmi     57344   2   

snd_hda_intel          36864   12  

snd_hda_codec          126976  4   snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek

snd_hwdep              16384   1   snd_hda_codec

snd_hda_core           73728   5   snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek

snd_pcm                98304   4   snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_hdmi

snd_timer              32768   1   snd_pcm

snd                    77824   32  snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek,snd_pcm

```

----------

## Spargeltarzan

If someone has a clue I will be very grateful - some months already without sound...

ADD: Recompiled my sound modules as *, doesn't fix the issue as thought...

ADD: Gnome realises 2 outputs cards, both no sound

----------

## NeddySeagoon

Spargeltarzan,

What does /proc/asound/devices show?

What does 

```
grep DYNAMIC_MI /usr/src/linux/.config
```

show?

```
CONFIG_SND_DYNAMIC_MINORS=y
```

is important with some devices and lots of sound cards.

My video card has five HDMI outputs, which won't fit in /dev/snd without CONFIG_SND_DYNAMIC_MINORS=y.

----------

## Spargeltarzan

Thanks for help  :Smile: 

 *NeddySeagoon wrote:*   

> 
> 
> What does /proc/asound/devices show?
> 
> 

 

```

cat /proc/asound/devices

  1:        : sequencer

  2: [ 2]   : control

  3: [ 2- 3]: digital audio playback

  4: [ 2- 7]: digital audio playback

  5: [ 2- 8]: digital audio playback

  6: [ 2- 9]: digital audio playback

  7: [ 2-10]: digital audio playback

  8: [ 2-11]: digital audio playback

  9: [ 2- 0]: hardware dependent

 10: [ 0]   : control

 11: [ 0- 3]: digital audio playback

 12: [ 0- 7]: digital audio playback

 13: [ 0- 8]: digital audio playback

 14: [ 0- 9]: digital audio playback

 15: [ 0- 0]: hardware dependent

 16: [ 1]   : control

 17: [ 1- 0]: digital audio playback

 18: [ 1- 0]: digital audio capture

 19: [ 1- 1]: digital audio playback

 20: [ 1- 2]: digital audio capture

 21: [ 1- 0]: hardware dependent

 33:        : timer

```

 *NeddySeagoon wrote:*   

> 
> 
> What does 
> 
> ```
> ...

 

```

grep DYNAMIC_MI /usr/src/linux/.config

CONFIG_SND_DYNAMIC_MINORS=y

# CONFIG_USB_DYNAMIC_MINORS is not set

```

 *NeddySeagoon wrote:*   

> 
> 
> My video card has five HDMI outputs, which won't fit in /dev/snd without CONFIG_SND_DYNAMIC_MINORS=y.

 

I have set my max number of sound cards to 32.

"grep SND /usr/src/linux/.config":

https://paste.pound-python.org/show/nPsyizLWiXs0AjnJw1oI/

----------

## NeddySeagoon

Spargeltarzan,

You have three sound cards there. Sound card 1 is your real analogue sound card as its the only one with  digital audio capture, that means an input. 

If you play a 48kHz sample rate source with say 

```
mplayer -ao alsa:device=hw=1.0 /path/to/dvd/
```

it should work.

You will need to unmute Master, PCM and Front using

```
alsamixer -c 1
```

.

Also set  Master, PCM and Front sliders to about 70%

Beware CDs and their rips use a 44.1kHz sample rate and are not suitable for this test.

If pulseaudio gets in the way, rip it out meanwhile, I've never used it so can't help with it.

Once it works, we can reorder your sound cards.

You may need to remove 

```
options snd cards_limit=1 

options snd-hda-intel id=HDMI index=0 
```

as that only allows the use of sound card 0.

For testing lets have all three sound cards working, then we can address them by their device numbers.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> 
> 
> You have three sound cards there. Sound card 1 is your real analogue sound card as its the only one with  digital audio capture, that means an input. 
> 
> If you play a 48kHz sample rate source with say 
> ...

 

I successfully played a .mp3 file on my analogues sound card! Any idea, why Gnome doesn't realize my speaker?

 *NeddySeagoon wrote:*   

> 
> 
> Once it works, we can reorder your sound cards.
> 
> You may need to remove 
> ...

 

I have already removed those two options previously. What could we do next?

----------

## NeddySeagoon

Spargeltarzan,

That proves that it works. That's the first step.  I suspect that GNOME is trying to use sound card 0.

It will work but you can't hear it. :)

Now we need to know a little more about how you made your kernel and initrd, if you have one.

You need to pass the index option to snd-hda-intel when the module loads.

The enable option may be useful too.

If snd-hda-intel is built in, you pass options on the kernel command line.

If snd-hda-intel is in the initrd, you need to pass options there - tricky.

If snd-hda-intel is a module and not in the initrd then /etc/modprobe.d/alsa.conf  should work.

The problem with it being in the initrd is that you need /etc/modprobe.d/alsa.conf in the intrd too.

Can you 

```
modprobe -r snd-hda-intel
```

you will need to modprobe -r all modules that use it too.

Look in lsmod.

If that works, eventually, 

```
modprobe snd-hda-intel index=1,0,2
```

will swap cards 0 and 1 and leave 2 alone.

You may be able to blacklist it, then load it manually with 

```
modprobe snd-hda-intel index=1,0,2
```

just for testing.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> 
> 
> If snd-hda-intel is a module and not in the initrd then /etc/modprobe.d/alsa.conf  should work.
> 
> 

 

I do not use an initrd (only intel-microcode) and I recompiled sound options in the kernel again as a module (https://paste.pound-python.org/show/eY7fqIkwaShsI8WuUwoW/

) to work with it easier.

 *NeddySeagoon wrote:*   

> 
> 
> Can you 
> 
> ```
> ...

 

Unfortunately no. Also when I try to modprobe -r what it uses, it fails. However, I passed it through in alsa.conf and restarted my computer:

```

options snd-hda-intel index=1,0,2

```

 *NeddySeagoon wrote:*   

> 
> 
> If that works, eventually, 
> 
> ```
> ...

 

```

modprobe --show-depends snd-hda-intel

insmod /lib/modules/4.14.51-gentoo/kernel/sound/core/snd.ko 

insmod /lib/modules/4.14.51-gentoo/kernel/sound/core/snd-timer.ko 

insmod /lib/modules/4.14.51-gentoo/kernel/sound/core/snd-pcm.ko 

insmod /lib/modules/4.14.51-gentoo/kernel/sound/hda/snd-hda-core.ko 

insmod /lib/modules/4.14.51-gentoo/kernel/sound/core/snd-hwdep.ko 

insmod /lib/modules/4.14.51-gentoo/kernel/sound/pci/hda/snd-hda-codec.ko 

insmod /lib/modules/4.14.51-gentoo/kernel/sound/pci/hda/snd-hda-intel.ko index=1,0,2 

```

snd-hda-intel is loaded with index=1,0,2. My devices look like:

```

cat /proc/asound/devices

  2: [ 2]   : control

  3: [ 2- 3]: digital audio playback

  4: [ 2- 7]: digital audio playback

  5: [ 2- 8]: digital audio playback

  6: [ 2- 9]: digital audio playback

  7: [ 2-10]: digital audio playback

  8: [ 2-11]: digital audio playback

  9: [ 2- 0]: hardware dependent

 10: [ 1]   : control

 11: [ 1- 3]: digital audio playback

 12: [ 1- 7]: digital audio playback

 13: [ 1- 8]: digital audio playback

 14: [ 1- 9]: digital audio playback

 15: [ 1- 0]: hardware dependent

 16: [ 0]   : control

 17: [ 0- 0]: digital audio playback

 18: [ 0- 0]: digital audio capture

 19: [ 0- 1]: digital audio playback

 20: [ 0- 2]: digital audio capture

 21: [ 0- 0]: hardware dependent

 33:        : timer

```

I am not sure how to read this output correctly, but it doesn't look like the swap worked? I cannot see any difference elsewhere in my system too

----------

## NeddySeagoon

Spargeltarzan,

Maybe I misread/understood /proc/asound/devices.

Cards 0 and 1 were swapped but that's not what's needed.

The original order was 2, 0, 1.

Its now 2, 1, 0. but card 2 is the default.  Sorry about that.

We need them ordered 0,1,2 from the top down.

index=0,1,2 is probably better.

----------

## Spargeltarzan

Yes that changed 0 to be the first and with index=0,2,1 we have order 0,1,2.

```

cat /proc/asound/devices

  2: [ 0]   : control

  3: [ 0- 3]: digital audio playback

  4: [ 0- 7]: digital audio playback

  5: [ 0- 8]: digital audio playback

  6: [ 0- 9]: digital audio playback

  7: [ 1]   : control

  8: [ 1- 3]: digital audio playback

  9: [ 0- 0]: hardware dependent

 10: [ 1- 7]: digital audio playback

 11: [ 1- 8]: digital audio playback

 12: [ 1- 9]: digital audio playback

 13: [ 1-10]: digital audio playback

 14: [ 1-11]: digital audio playback

 15: [ 1- 0]: hardware dependent

 16: [ 2]   : control

 17: [ 2- 0]: digital audio playback

 18: [ 2- 0]: digital audio capture

 19: [ 2- 1]: digital audio playback

 20: [ 2- 2]: digital audio capture

 21: [ 2- 0]: hardware dependent

 33:        : timer

```

Why do we actually need to reorder cards in alsa? Normally GNOME shows all the cards including analogous and I can decide where to play graphically.

Also with this order, no sound is working

----------

## NeddySeagoon

Spargeltarzan,

You need the sound card at card 2 to be at card 0.

I'm making a meal of this, sorry. 

That sounds like index=2,1,0

You read /proc/asound/devices as follows.

```
  3: [ 0- 3]: digital audio playback
```

```
  3: 
```

device minor number in /dev/snd

```
 [ 0- 3]:
```

 card number and function on the card.

```
digital audio playback
```

text description of the device.

Card 0 is the default sound card. Many prograrmes will only use the default.

We need thet card that currently has 

```
18: [ 2- 0]: digital audio capture 
```

to be at card 0, thats card 2 just now,

hence index=2 ...  Put sound card 2 first.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> Spargeltarzan,
> 
> You need the sound card at card 2 to be at card 0.
> 
> 

 

I guess we had this already once in my post above; however, with index=2,1,0 it didn't went to position 0, but with index=1,0,2 my last sound card with the capture device moves to 0.

```

cat /proc/asound/devices 

  2: [ 1]   : control

  3: [ 1- 3]: digital audio playback

  4: [ 1- 7]: digital audio playback

  5: [ 1- 8]: digital audio playback

  6: [ 1- 9]: digital audio playback

  7: [ 1- 0]: hardware dependent

  8: [ 2]   : control

  9: [ 2- 3]: digital audio playback

 10: [ 2- 7]: digital audio playback

 11: [ 2- 8]: digital audio playback

 12: [ 2- 9]: digital audio playback

 13: [ 2-10]: digital audio playback

 14: [ 2-11]: digital audio playback

 15: [ 2- 0]: hardware dependent

 16: [ 0]   : control

 17: [ 0- 0]: digital audio playback

 18: [ 0- 0]: digital audio capture

 19: [ 0- 1]: digital audio playback

 20: [ 0- 2]: digital audio capture

 21: [ 0- 0]: hardware dependent

 33:        : timer

```

--> looks good I guess:

 17: [ 0- 0]: digital audio playback

 18: [ 0- 0]: digital audio capture

It does not make sound still  :Sad: 

ADD: I tried to play with mplayer on all sound cards without success ....

ADD: I bootet my system on kernel grub options "iommu=off and intel_iommu=off" and now the displayport sound works no matter the order of the sound cards.

-) The sound works only in gnome-settings and firefox. NOT in vlc or other media players.

-) My analogous sound speaker is still not realized by GNOME.

-) As a next step I would like to setup iommu with working sound...

----------

## NeddySeagoon

Spargeltarzan,

```
 16: [ 0]   : control

 17: [ 0- 0]: digital audio playback

 18: [ 0- 0]: digital audio capture

 19: [ 0- 1]: digital audio playback

 20: [ 0- 2]: digital audio capture

 21: [ 0- 0]: hardware dependent 
```

is your analogue sound card.

It has minor numbers 17..21 inclusive.

It needs to be at the top of the list, so you see

```
  2: [ 0]   : control 
```

as the first entry.

The order of the other sound cards doesn't matter, yet.

```
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06) 

00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)

01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti HDMI Audio [Radeon HD 7870 XT / 7950/7970] 
```

Your analogue sound card is card 1 as devices are detected in PCI bus order.

That looks like index=1,0,2, but we tried that.

I feel a dose of trial and error creaping on.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> 
> 
> ```
>  16: [ 0]   : control
> 
> ...

 

et voilà, we have got it on top:

```

cat /proc/asound/devices 

  2: [ 0]   : control

  3: [ 0- 0]: digital audio playback

  4: [ 0- 0]: digital audio capture

  5: [ 0- 1]: digital audio playback

  6: [ 0- 2]: digital audio capture

  7: [ 0- 0]: hardware dependent

  8: [ 1]   : control

  9: [ 1- 3]: digital audio playback

 10: [ 1- 7]: digital audio playback

 11: [ 1- 8]: digital audio playback

 12: [ 1- 9]: digital audio playback

 13: [ 1- 0]: hardware dependent

 14: [ 2]   : control

 15: [ 2- 3]: digital audio playback

 16: [ 2- 7]: digital audio playback

 17: [ 2- 8]: digital audio playback

 18: [ 2- 9]: digital audio playback

 19: [ 2-10]: digital audio playback

 20: [ 2-11]: digital audio playback

 21: [ 2- 0]: hardware dependent

 33:        : timer

```

 *NeddySeagoon wrote:*   

> 
> 
> The order of the other sound cards doesn't matter, yet.
> 
> 

 

Unfortunately my issues persist: [UPDATE]

-) I still cannot play audio from music or videos files on Displayport Audio. Interesting, that it works in firefox, I often read about the issue being opposite. ADD: I somehow managed that files play audio now, maybe something misconfigured in VLC.

--> That would be gorgeous to fix:

-) My analogous sound card with the attached speaker still does not appear in GNOME.

-) Working Sound with iommu enabled??

----------

## NeddySeagoon

Spargeltarzan,

Good.  Analogue sound should work now and all sound should be sent there.

For display port sound it gets harder.

We need to know which which display port you are using.

Is the the inbuilt one or the one on your graphics card?

Actually, we only need to know how to address it.

In alsamixier unmute all the digital outputs on all the sound cards other than the analogue card.

One has 4 outputs, the other has 6.

Run 

```
for i in {3..11}; do speaker-test -c1 -l2 -Dplughw:1,$i; done
```

to test  card 1, the -c1 and 

```
for i in {3..11}; do speaker-test -c2 -l2 -Dplughw:1,$i; done
```

That test runs a speaker test on devices 3..11 inclusive on each card in turn. Some devices are not fitted on your cards, so you will see a harmless error.

For one of your 10 HDMI outputs you should hear the speaker-test.

If not, check your display sound is not muted and the volume is about 50%.

Make a note of the card and device that provides sound.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> Spargeltarzan,
> 
> Run 
> 
> ```
> ...

 

I can hear DisplayPort sound on speaker 1,3. Meanwhile, I can hear audio on firefox and media files with disabled iommu on boot. Also analogous speaker appears in GNOME when I plug it in. 

I have read about sound bugs with iommu, I hope my mainboard is not permanently affected and I can find a solution.

----------

## NeddySeagoon

Spargeltarzan,

```
mplayer -ao alsa:device=hw=1.3 /path/to/dvd/
```

should work too.

I'm not aware of iommu issues with sound. Perhaps dmesg with and without iommu enabled would be useful?

They will need to go to pastebins.

Sound should work by default through the analogue card and via display port for applications that you tell to use the display port audio.

Its not quite that simple. Display port audio needs a 48kHz sample rate.

CDs and most audio only formats use a 44.1kHz sample rate, so to play such a source via display port, it needs to be converted.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> 
> 
> ```
> mplayer -ao alsa:device=hw=1.3 /path/to/dvd/
> ```
> ...

 

It works  :Smile: 

 *NeddySeagoon wrote:*   

> 
> 
> I'm not aware of iommu issues with sound. Perhaps dmesg with and without iommu enabled would be useful?
> 
> They will need to go to pastebins.
> ...

 

without iommu

https://paste.pound-python.org/show/Glz134bMUAcFmha89iFi

with iommu=on and intel_iommu=on

https://paste.pound-python.org/show/AiThL2770ziIpdxU1cFy/

This Launchpad Bug makes me nervous:

https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1428121

My mainboard is not the Z97, but the Z87.

Some

-) nommu_map_single

-) usb 1-1

-) udevd[2270]

-) ath

-) ath9k

errors haunt me for some monthes.

 *NeddySeagoon wrote:*   

> 
> 
> Its not quite that simple. Display port audio needs a 48kHz sample rate.
> 
> CDs and most audio only formats use a 44.1kHz sample rate, so to play such a source via display port, it needs to be converted.

 

Can it be that pulseaudio or other pieces do some hidden converting for me? So far I don't find a source which doesn't play audio.

----------

## NeddySeagoon

Spargeltarzan,

Do you feel lucky ?

There is a patch on the LKML that hasn't made it into 4.17.2 that may or may not fix your problem.

The bug report cites mixed success.

I know its not in 4.17.2 because it applied for me.

```
patching file drivers/iommu/intel-iommu.c

Hunk #1 succeeded at 4974 (offset 698 lines).
```

If the patch was already there I would have got a reversed patch error.

You have a 4.14.51-gentoo kernel. It may be worth trying a more recent kernel first, in case its fixed another way.

Yes, its possible that you get sample rate conversion without asking for it.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> Spargeltarzan,
> 
> Do you feel lucky ?
> 
> 

 

Yes, mostly because I am able to hear something again and secondly because there is hope for my iommu setup.

 *NeddySeagoon wrote:*   

> 
> 
> There is a patch on the LKML that hasn't made it into 4.17.2 that may or may not fix your problem.
> 
> The bug report cites mixed success.
> ...

 

I would prefer to test the patch on kernel 4.14.51 because my system has got a ZFS storage which is only compatible with kernel <= 4.16. Kernel 4.16 is marked EOL already. If the patch doesn't work I could experiment a kernel 4.17 on temporary unavailable ZFS storage.

Would you give me a hint how to apply this patch on iommu?  This Patching Wiki deals only with patching ebuilds and I guess I need another approach to patch kernel iommu.

----------

## NeddySeagoon

Spargeltarzan,

The gentoo-sources-4.14.51.ebuild says at the top

```
EAPI="6"
```

 so it will apply user patches correctly presented in /etc/portage/patches/

Your wiki page tells how to do that.

The file itself must contain at least 

```
--- a/drivers/iommu/intel-iommu.c

+++ b/drivers/iommu/intel-iommu.c

@@ -4276,7 +4276,7 @@ static int intel_iommu_attach_device(struct iommu_domain *domain,

              __func__, addr_width, dmar_domain->max_addr);

       return -EFAULT;

    }

-   dmar_domain->gaw = addr_width;

+   dmar_domain->gaw = min(addr_width, dmar_domain->gaw);

 

    /*

     * Knock out extra levels of page tables if necessary

```

but patch is quite happy to work with whole emails, as long as they are plain text.

When you emerge the kernel, the patch will be applied, then you rebuild your kernel in the normal way.

That's the official Gentoo way. You should learn it as its really the only way for every package except the kernel.

As emerging the kernel does not build the kernel, you can apply the patch manually.

```
cd /usr/src/linux
```

or wherever your kernel source tree is.

```
nano intel-iommu.patch
```

to create a new file.

Paste the above patch into it.

```
patch <  intel-iommu.patch
```

to feed the patch to the patch command.

Patch will fail because it can't find the file to patch.

At the question, answer 

```
drivers/iommu/intel-iommu.c
```

and you should get a similar result to the one I posted.

Don't emerge your kernel again, the patch will be removed. Just do the rebuild and reinstall.

You could use 

```
patch -pX
```

 instead.  Read 

```
man patch
```

The failure is because we are working in a lower level directory than the patch was prepared from.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> 
> 
> That's the official Gentoo way. You should learn it as its really the only way for every package except the kernel.
> 
> 

 

Many thanks, your explanations encourage and to know how to apply patches correctly helps me also currently in my work on some gcc 8 emerge bugs  where devs asked me to apply patches.

 *NeddySeagoon wrote:*   

> 
> 
> As emerging the kernel does not build the kernel, you can apply the patch manually.
> 
> ```
> ...

 

Unfortunately for me it does not, 1 hunk FAILED:

```

desktop /usr/src/linux # patch <  intel-iommu.patch

can't find file to patch at input line 3

Perhaps you should have used the -p or --strip option?

The text leading up to this was:

--------------------------

|--- a/drivers/iommu/intel-iommu.c

|+++ b/drivers/iommu/intel-iommu.c

--------------------------

File to patch: drivers/iommu/intel-iommu.c

patching file drivers/iommu/intel-iommu.c

Hunk #1 FAILED at 4276.

1 out of 1 hunk FAILED -- saving rejects to file drivers/iommu/intel-iommu.c.rej

```

Is my kernel too old?

----------

## NeddySeagoon

Spargeltarzan,

The patch is even older. 

The 

```
Hunk #1 FAILED at 4276.
```

means that the context was located but the line the patch tried to change has already been changed to something else.

I was surprised that it applied to 4.17.2 an the patch was so old.

----------

## Spargeltarzan

 *NeddySeagoon wrote:*   

> 
> 
> The 
> 
> ```
> ...

 

So I will try it with kernel 4.17 again, hopefully ZFS will be ready for it soon too.

----------

