From: Nitin A Kamble <[email protected]> This recipe now targets more BSPs than NUC. Accordingly the script is made generic, so that it can work on multiple platforms.
Signed-off-by: Nitin A Kamble <[email protected]> --- .../initscripts/initscripts/hdmi_port_audio.sh | 28 --------- .../initscripts/set_default_alsa_device.sh | 69 ++++++++++++++++++++++ .../initscripts/initscripts_1.0.bbappend | 6 +- 3 files changed, 72 insertions(+), 31 deletions(-) delete mode 100644 common/recipes-core/initscripts/initscripts/hdmi_port_audio.sh create mode 100644 common/recipes-core/initscripts/initscripts/set_default_alsa_device.sh diff --git a/common/recipes-core/initscripts/initscripts/hdmi_port_audio.sh b/common/recipes-core/initscripts/initscripts/hdmi_port_audio.sh deleted file mode 100644 index 69d8a53..0000000 --- a/common/recipes-core/initscripts/initscripts/hdmi_port_audio.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: -# Required-Start: -# Required-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Configure ALSA audio output to the connected HDMI port -### END INIT INFO - -# -# If both HDMI ports are connected then use HDMI0 for default ALSA audio out.. - -ALSA_CONF_FILE="/etc/asound.conf" - -HDMI0_STATUS_FILE="/sys/class/drm/card0-HDMI-A-1/status" -HDMI1_STATUS_FILE="/sys/class/drm/card0-HDMI-A-2/status" - -HDMI0_ALSA_CONF="hw:0,3" -HDMI1_ALSA_CONF="hw:0,7" - -if [ -f "${HDMI0_STATUS_FILE}" ] && [ "`cat ${HDMI0_STATUS_FILE}`" == "connected" ] -then - sed -i "s/pcm *\"hw:[0-9]*,[0-9]*\"/pcm \"${HDMI0_ALSA_CONF}\"/" ${ALSA_CONF_FILE} -elif [ -f "${HDMI1_STATUS_FILE}" ] && [ "`cat ${HDMI1_STATUS_FILE}`" == "connected" ] -then - sed -i "s/pcm \"hw:[0-9]*,[0-9]*\"/pcm \"${HDMI1_ALSA_CONF}\"/" ${ALSA_CONF_FILE} -fi diff --git a/common/recipes-core/initscripts/initscripts/set_default_alsa_device.sh b/common/recipes-core/initscripts/initscripts/set_default_alsa_device.sh new file mode 100644 index 0000000..9f67d5b --- /dev/null +++ b/common/recipes-core/initscripts/initscripts/set_default_alsa_device.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +param=$@ + +Usage() +{ + echo Usage: $0 [-f] + echo Params: + echo -f : force selecting new audio device in the asound.conf + exit -1 +} + + +echo Display DRM devices: +DRM_devices_list=`ls -1 /sys/class/drm/*/status | sed "s-/status--"` + +for i in $DRM_devices_list +do + echo -n $i: + cat $i/status +done +echo + +echo ALSA Audio devices: +aplay -l +echo + +current_audio_device=`grep "pcm \"hw:" /etc/asound.conf | sed "s/.* \"//" | sed "s/\".*//"` + +available_audio_devices=`aplay -l | egrep "^card" | sed "s/:.*, device /,/" | sed "s/:.*//" | sed "s/^card /hw:/"` + +change_needed=1 +for i in $available_audio_devices +do + if [ $i == $current_audio_device ] + then + change_needed=0 + fi +done + +if [ $change_needed == 1 ] +then + echo Invalid default ALSA sound device was set in asound.conf +fi + +case $param in + -f) + change_needed=1 + ;; + '') + # do nothing + ;; + *) + # Anything else is wrong parameter + Usage + ;; +esac + +if [ $change_needed == 1 ] +then + new_device=`echo $available_audio_devices | sort | head -n 1` + new_device=`aplay -l | egrep "^card" | sed "s/:.*, device /,/" | sed "s/:.*//" | sed "s/^card /hw:/" | sort | head -n 1` + echo Setting $new_device as the default audio device in asound.conf + sed -i "s/pcm \"$current_audio_device\"/pcm \"$new_device\"/" /etc/asound.conf + card=`echo $new_device | sed "s/,.*//" | sed "s/.*hw://"` + sed -i "s/card [0-9]*/card $card/" /etc/asound.conf +else + echo Using the default device $current_audio_device as per existing asound.conf +fi diff --git a/common/recipes-core/initscripts/initscripts_1.0.bbappend b/common/recipes-core/initscripts/initscripts_1.0.bbappend index abc5fe0..90e2cab 100644 --- a/common/recipes-core/initscripts/initscripts_1.0.bbappend +++ b/common/recipes-core/initscripts/initscripts_1.0.bbappend @@ -1,10 +1,10 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI += "file://hdmi_port_audio.sh" +SRC_URI += "file://set_default_alsa_device.sh" PR .= ".1" do_install_append() { - install -m 0755 ${WORKDIR}/hdmi_port_audio.sh ${D}${sysconfdir}/init.d - ln -sf ../init.d/hdmi_port_audio.sh ${D}${sysconfdir}/rcS.d/S66hdmi_port_audio.sh + install -m 0755 ${WORKDIR}/set_default_alsa_device.sh ${D}${sysconfdir}/init.d + ln -sf ../init.d/set_default_alsa_device.sh ${D}${sysconfdir}/rcS.d/S66set_default_alsa_device.sh } -- 1.8.1.4 _______________________________________________ meta-intel mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-intel
