Quantcast
Channel: Squeezebox : Community : Forums
Viewing all articles
Browse latest Browse all 6235

pCP7 and HDMI Audio

$
0
0
Lets move this over here.

RPi has made a lot of changes in HDMI Audio. Its really hard to trackdown without hardware to play with. Note the kms driver will only currently work on the 32bit kernels.

There are two modes now
Audio Provided by Firmware: This will show as CARD=b1 in alsa
config.txt cont
Code:

dtparam=audio=on
audio_pwm_mode=2
hdmi_drive=2
hdmi_force_hotplug=1
hdmi_force_edid_audio=1

Audio Provided by kms driver: This will show as CARD=vc4hdmi in alsa
This requires you to load the graphics kernel modules. There is some commentary that edid information must be correct with the kms driver.
Code:

pcp-load -wi graphics-KERNEL.tcz
Then your config.txt would look like
Code:

dtparam=audio=off
dtoverlay=vc4-kms-v3d  (or vc4-kms-v3d-pi4 if you have a pi4)
hdmi_drive=2
hdmi_force_hotplug=1
hdmi_force_edid_audio=1

This also requires a custom alsa configuration.
Code:

sudo rm -f /usr/local/share/alsa/cards/vc4-hdmi.conf
Now create a new file /usr/local/share/alsa/cards/vc4-hdmi.conf with the contents.
Code:

# Configuration for the VC4-HDMI sound card using software IEC958
# subframe conversion

<confdir:pcm/hdmi.conf>
vc4-hdmi.pcm.hdmi.0 {
        @args [ CARD AES0 AES1 AES2 AES3 ]
        @args.CARD {
                type string
        }
        @args.AES0 {
                type integer
        }
        @args.AES1 {
                type integer
        }
        @args.AES2 {
                type integer
        }
        @args.AES3 {
                type integer
        }
        type iec958
        slave {
                format IEC958_SUBFRAME_LE
                pcm {
                        type hooks
                        slave.pcm {
                                type hw
                                card $CARD
                                device 0
                        }
                        hooks.0 {
                                type ctl_elems
                                hook_args [
                                {
                                        name "IEC958 Playback Default"
                                        optional true
                                        lock true
                                        preserve true
                                        value [ $AES0 $AES1 $AES2 $AES3 ]
                                }
                                ]
                        }
                }
        }
        status [ $AES0 $AES1 $AES2 $AES3 ]
}

# default with plug
vc4-hdmi.pcm.default {
        @args [ CARD ]
        @args.CARD {
                type string
        }
        type plug
        slave.pcm {
                type softvol
                slave.pcm {
                        @func concat
                        strings [ "hdmi:" $CARD ]
                }
                control {
                        name "PCM Playback Volume"
                        card $CARD
                }
        }
}

Then make sure to add to your backup. Edit /opt/.filetool.lst and add to the end of the file.
usr/local/share/alsa/cards/vc4-hdmi.conf

backup and then reboot.

Viewing all articles
Browse latest Browse all 6235

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>