diff --git a/meta-yocto/conf/machine/beagleboard.conf b/meta-yocto/conf/machine/beagleboard.conf index 26706911b0..945744bc07 100644 --- a/meta-yocto/conf/machine/beagleboard.conf +++ b/meta-yocto/conf/machine/beagleboard.conf @@ -9,6 +9,9 @@ XSERVER = "xserver-kdrive-fbdev" # Ship all kernel modules by default MACHINE_EXTRA_RRECOMMENDS = " kernel-modules" +# Setup sane default mixer settings +MACHINE_EXTRA_RRECOMMENDS += "beagleboard-audio" + # Allow for MMC booting (required by the NAND-less Beagleboard XM) EXTRA_IMAGEDEPENDS += "u-boot x-load" diff --git a/meta-yocto/recipes-bsp/beagleboard-audio/beagleboard-audio.bb b/meta-yocto/recipes-bsp/beagleboard-audio/beagleboard-audio.bb new file mode 100644 index 0000000000..b0c2cd708b --- /dev/null +++ b/meta-yocto/recipes-bsp/beagleboard-audio/beagleboard-audio.bb @@ -0,0 +1,30 @@ +SUMMARY = "Provide a basic init script to enable audio" +DESCRIPTION = "Set the volume and unmute the Front mixer setting during boot." +SECTION = "base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58" + +PR = "r4" + +inherit update-rc.d + +RDEPENDS = "alsa-utils-amixer" + +SRC_URI = "file://beagleboard-audio" + +INITSCRIPT_NAME = "beagleboard-audio" +INITSCRIPT_PARAMS = "defaults 90" + +do_install() { + install -d ${D}${sysconfdir} \ + ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/beagleboard-audio ${D}${sysconfdir}/init.d + cat ${WORKDIR}/${INITSCRIPT_NAME} | \ + sed -e 's,/etc,${sysconfdir},g' \ + -e 's,/usr/sbin,${sbindir},g' \ + -e 's,/var,${localstatedir},g' \ + -e 's,/usr/bin,${bindir},g' \ + -e 's,/usr,${prefix},g' > ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME} + chmod 755 ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME} +} + diff --git a/meta-yocto/recipes-bsp/beagleboard-audio/beagleboard-audio/beagleboard-audio b/meta-yocto/recipes-bsp/beagleboard-audio/beagleboard-audio/beagleboard-audio new file mode 100644 index 0000000000..ed2bd50f8b --- /dev/null +++ b/meta-yocto/recipes-bsp/beagleboard-audio/beagleboard-audio/beagleboard-audio @@ -0,0 +1,44 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: beagleboard mixer setup +# Required-Start: $syslog +# Required-Stop: $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Initialize the beagleboard audio mixer +# Description: Unmute FRONT and set volume to ~70%. +### END INIT INFO + +# Author: Darren Hart +# Based on /etc/init.d/skeleton + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Audio mixer settings" +NAME=beagleboard-audio +AMIXER=`which amixer` +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if amixer is not installed +[ -x "$AMIXER" ] || exit 0 + +do_start() { + # Enable the Headset (Audio Out) + $AMIXER sset "Headset" 2 > /dev/null + $AMIXER sset "HeadsetL Mixer AudioL1" on > /dev/null + $AMIXER sset "HeadsetR Mixer AudioR1" on > /dev/null +} + +case "$1" in +start) + echo "$NAME: setting default mixer settings." + do_start + ;; +stop) + ;; +*) + echo "Usage: $SCRIPTNAME {start|stop}" >&2 + exit 3 + ;; +esac + +exit 0