Archive:Intel Linux Modifications for HD Audio: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Jjd-uk
No edit summary
>Jjd-uk
Line 17: Line 17:
'''1. Easy -''' Blacklist the SPDIF so only HDMI is available for audio, this also has the advantage of surviving system upgrades.
'''1. Easy -''' Blacklist the SPDIF so only HDMI is available for audio, this also has the advantage of surviving system upgrades.


'''2. Difficult -''' If both SPDIF & HDMI are required to be active then editing then '''HDA-Intel.conf''' is required so there is no conflict in the device settings.
'''2. Difficult -''' If both SPDIF & HDMI are required to be active then editing then '''HDA-Intel.conf''' is required so there is no conflict in the device settings, however this might have to be reapplied after a system upgrade.
<br>
<br>
===Easy - Blacklisting SPDIF - Fix (WIP)===
===Easy - Blacklisting SPDIF - Fix (WIP)===

Revision as of 11:18, 8 February 2013

< AudioEngine < HOW-TO: Configure audio

Kernel

HD Audio on Intel SandyBridge & IvyBridge systems require a patch from Intel to be included within the kernel, Linux 3.7 and higher include this patch as standard.

For more on this patch refer to Intel HDMI HBR patches for HD Audio

Intel Systems with HDMI only

If the Intel system only has an HDMI out then only a patched Linux 3.7 or higher kernel is required to get HDMI audio working.

Intel Systems with both SPDIF & HDMI

Systems which have a Intel GPU feeding a HDMI out but also have a motherboard SPDIF out also require a patched Linux 3.7 or higher kernel, however further system modification is also required to get sound on the HDMI out. In these circumstances both SPDIF & HDMI share certain system file settings which cause a conflict resulting in the HDMI sound being blocked, to fix this there are two options available:

1. Easy - Blacklist the SPDIF so only HDMI is available for audio, this also has the advantage of surviving system upgrades.

2. Difficult - If both SPDIF & HDMI are required to be active then editing then HDA-Intel.conf is required so there is no conflict in the device settings, however this might have to be reapplied after a system upgrade.

Easy - Blacklisting SPDIF - Fix (WIP)

aplay -L | grep -i iec958

If you find S/PDIF on the same card as your intel hdmi rmmod the module that drives your S/PDIF.

Difficult - HDA-Intel.conf - Fix

WARNING: Only carry this out if you 100% know what you are doing as a wrong step can totally break audio.

This fix requires modification to:

/usr/share/alsa/cards/HDA-Intel.conf

Open the HDA-Intel.conf file with a editor and look for entries containing:

"CTLINDEX="

The numerical value after the = sign need to be increased by 1 so for example "CTLINDEX=1" becomes "CTLINDEX=2"

Example of original /usr/share/alsa/cards/HDA-Intel.conf file

@@ -211,7 +211,7 @@ HDA-Intel.pcm.hdmi.0 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=3,"
"CTLINDEX=0,"

"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -234,7 +234,7 @@ HDA-Intel.pcm.hdmi.1 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=7,"
"CTLINDEX=1,"

"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -257,7 +257,7 @@ HDA-Intel.pcm.hdmi.2 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=8,"
"CTLINDEX=2,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -280,7 +280,7 @@ HDA-Intel.pcm.hdmi.3 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=9,"
"CTLINDEX=3,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","

Becomes

@@ -211,7 +211,7 @@ HDA-Intel.pcm.hdmi.0 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=3,"
"CTLINDEX=1,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -234,7 +234,7 @@ HDA-Intel.pcm.hdmi.1 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=7,"
"CTLINDEX=2,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -257,7 +257,7 @@ HDA-Intel.pcm.hdmi.2 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=8,"
"CTLINDEX=3,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -280,7 +280,7 @@ HDA-Intel.pcm.hdmi.3 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=9,"
"CTLINDEX=4,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","