diff options
author | Vladimir Barinov <vladimir.barinov@cogentembedded.com> | 2017-09-14 09:21:52 +0300 |
---|---|---|
committer | Vladimir Barinov <vladimir.barinov@cogentembedded.com> | 2017-09-14 09:21:52 +0300 |
commit | 289fbd4f83543451323d6ce275fad1b5a85b61f1 (patch) | |
tree | 02310521c3426cad6b9c9f7321a26509d47044c4 /meta-rcar-gen3-adas/recipes-multimedia/pulseaudio |
Initial commit for ADAS boards support in 2.23.0
Diffstat (limited to 'meta-rcar-gen3-adas/recipes-multimedia/pulseaudio')
9 files changed, 502 insertions, 0 deletions
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/client.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/client.conf new file mode 100644 index 0000000..a17325b --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/client.conf @@ -0,0 +1,36 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. + +## Configuration file for PulseAudio clients. See pulse-client.conf(5) for +## more information. Default values are commented out. Use either ; or # for +## commenting. + +; default-sink = +; default-source = +; default-server = +; default-dbus-server = + +; autospawn = yes +; allow-autospawn-for-root = no +; daemon-binary = /usr/bin/pulseaudio +; extra-arguments = --log-target=syslog + +; cookie-file = + +; enable-shm = yes +; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB + +; auto-connect-localhost = no +; auto-connect-display = no diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/daemon.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/daemon.conf new file mode 100644 index 0000000..5d42a9e --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/daemon.conf @@ -0,0 +1,87 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for +## more information. Default values are commented out. Use either ; or # for +## commenting. + +; daemonize = no +; fail = yes +; allow-module-loading = yes +; allow-exit = yes +; use-pid-file = yes +; system-instance = no +; local-server-type = user +; enable-shm = yes +; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB +; lock-memory = no +; cpu-limit = no + +; high-priority = yes +; nice-level = -11 + +; realtime-scheduling = yes +; realtime-priority = 5 + +; exit-idle-time = 20 +; scache-idle-time = 20 + +; dl-search-path = (depends on architecture) + +; load-default-script-file = yes +; default-script-file = /etc/pulse/default.pa + +log-target = null +; log-level = notice +; log-meta = no +; log-time = no +; log-backtrace = 0 + +; resample-method = speex-float-1 +; enable-remixing = yes +; enable-lfe-remixing = no + +; flat-volumes = yes + +; rlimit-fsize = -1 +; rlimit-data = -1 +; rlimit-stack = -1 +; rlimit-core = -1 +; rlimit-as = -1 +; rlimit-rss = -1 +; rlimit-nproc = -1 +; rlimit-nofile = 256 +; rlimit-memlock = -1 +; rlimit-locks = -1 +; rlimit-sigpending = -1 +; rlimit-msgqueue = -1 +; rlimit-nice = 31 +; rlimit-rtprio = 9 +; rlimit-rttime = 1000000 + +; default-sample-format = s16le +default-sample-rate = 48000 +; alternate-sample-rate = 48000 +; default-sample-channels = 2 +; default-channel-map = front-left,front-right + +; default-fragments = 4 +; default-fragment-size-msec = 25 + +; enable-deferred-volume = yes +; deferred-volume-safety-margin-usec = 8000 +; deferred-volume-extra-delay-usec = 0 diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/default.pa b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/default.pa new file mode 100644 index 0000000..8f1570f --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/default.pa @@ -0,0 +1,149 @@ +#!/usr/bin/pulseaudio -nF +# +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. + +# This startup script is used only if PulseAudio is started per-user +# (i.e. not in system mode) + +.nofail + +### Load something into the sample cache +#load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/bell.oga +#load-sample-lazy pulse-hotplug /usr/share/sounds/freedesktop/stereo/device-added.oga +#load-sample-lazy pulse-coldplug /usr/share/sounds/freedesktop/stereo/device-added.oga +#load-sample-lazy pulse-access /usr/share/sounds/freedesktop/stereo/message.oga + +.fail + +### Automatically restore the volume of streams and devices +load-module module-device-restore +load-module module-stream-restore +load-module module-card-restore + +### Automatically augment property information from .desktop files +### stored in /usr/share/application +load-module module-augment-properties + +### Should be after module-*-restore but before module-*-detect +load-module module-switch-on-port-available + +### Load audio drivers statically +### (it's probably better to not load these drivers manually, but instead +### use module-udev-detect -- see below -- for doing this automatically) +#load-module module-alsa-sink +#load-module module-alsa-source device=hw:0,0 +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input +#load-module module-null-sink +#load-module module-pipe-sink + +### Automatically load driver modules depending on the hardware available +.ifexists module-udev-detect.so +load-module module-udev-detect +.else +### Use the static hardware detection module (for systems that lack udev support) +load-module module-detect +.endif + +### Automatically connect sink and source if JACK server is present +.ifexists module-jackdbus-detect.so +.nofail +load-module module-jackdbus-detect channels=2 +.fail +.endif + +### Automatically load driver modules for Bluetooth hardware +.ifexists module-bluetooth-policy.so +load-module module-bluetooth-policy +.endif + +.ifexists module-bluetooth-discover.so +load-module module-bluetooth-discover +.endif + +### Load several protocols +.ifexists module-esound-protocol-unix.so +load-module module-esound-protocol-unix +.endif +load-module module-native-protocol-unix + +### Network access (may be configured with paprefs, so leave this commented +### here if you plan to use paprefs) +#load-module module-esound-protocol-tcp +#load-module module-native-protocol-tcp +#load-module module-zeroconf-publish + +### Load the RTP receiver module (also configured via paprefs, see above) +#load-module module-rtp-recv + +### Load the RTP sender module (also configured via paprefs, see above) +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" +#load-module module-rtp-send source=rtp.monitor + +### Load additional modules from GConf settings. This can be configured with the paprefs tool. +### Please keep in mind that the modules configured by paprefs might conflict with manually +### loaded modules. +.ifexists module-gconf.so +.nofail +load-module module-gconf +.fail +.endif + +### Automatically restore the default sink/source when changed by the user +### during runtime +### NOTE: This should be loaded as early as possible so that subsequent modules +### that look up the default sink/source get the right value +load-module module-default-device-restore + +### Automatically move streams to the default sink if the sink they are +### connected to dies, similar for sources +load-module module-rescue-streams + +### Make sure we always have a sink around, even if it is a null sink. +load-module module-always-sink + +### Honour intended role device property +load-module module-intended-roles + +### Automatically suspend sinks/sources that become idle for too long +load-module module-suspend-on-idle + +### If autoexit on idle is enabled we want to make sure we only quit +### when no local session needs us anymore. +.ifexists module-console-kit.so +load-module module-console-kit +.endif +.ifexists module-systemd-login.so +load-module module-systemd-login +.endif + +### Enable positioned event sounds +load-module module-position-event-sounds + +### Cork music/video streams when a phone stream is active +load-module module-role-cork + +### Modules to allow autoloading of filters (such as echo cancellation) +### on demand. module-filter-heuristics tries to determine what filters +### make sense, and module-filter-apply does the heavy-lifting of +### loading modules and rerouting streams. +load-module module-filter-heuristics +load-module module-filter-apply + + +### Make some devices default +#set-default-sink output +#set-default-source input diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/hifi b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/hifi new file mode 100644 index 0000000..b249767 --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/hifi @@ -0,0 +1,50 @@ +# Use case Configuration for Renesas H3 board + +SectionVerb { + EnableSequence [ + exec "echo Setting defaults for ak4613" + cdev "hw:0" + cset "name='DVC Out Playback Volume' 30%" + cset "name='DVC In Capture Volume' 10%" + ] + DisableSequence [ + ] +} + + +SectionDevice."Headphone".0 { + Value { + JackName "Headphone Jack" + PlaybackChannels 2 + PlaybackPCM "hw:0" + } + + EnableSequence [ + cdev "hw:0" + cset "name='DVC Out Playback Volume' 30%" + ] + DisableSequence [ + cdev "hw:0" + cset "name='DVC Out Playback Volume' 0%" + ] +} + +SectionDevice."Mic".0 { + Value { + JackName "Mic Jack" + CaptureChannels 2 + CapturePCM "hw:0" + } + + EnableSequence [ + cdev "hw:0" + cset "name='DVC In Capture Volume' 10%" + ] + + DisableSequence [ + cdev "hw:0" + cset "name='DVC In Capture Volume' 0%" + ] +} + + diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio-bluetooth.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio-bluetooth.conf new file mode 100644 index 0000000..925b9b1 --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio-bluetooth.conf @@ -0,0 +1,7 @@ +<busconfig> + + <policy user="pulse"> + <allow send_destination="org.bluez"/> + </policy> + +</busconfig> diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio.init b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio.init new file mode 100755 index 0000000..4f0a03f --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio.init @@ -0,0 +1,48 @@ +#!/bin/sh +# +### BEGIN INIT INFO +# Provides: pulseaudio-server +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +### END INIT INFO + +killproc() { + pid=`/bin/pidof $1` + [ "$pid" != "" ] && kill $pid +} + +read CMDLINE < /proc/cmdline +for x in $CMDLINE; do + case $x in + pulseaudio=false) + echo "pulseaudio disabled" + exit 0; + ;; + esac +done + +case "$1" in + start) + echo "Starting pulseaudio" + start-stop-daemon -S -x pulseaudio -- -D --system --disallow-exit + ;; + + stop) + echo "Stopping pulseaudio" + start-stop-daemon -K -x pulseaudio + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + *) + echo "usage: $0 { start | stop | restart }" + ;; +esac + +exit 0 diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/rsnddai0ak4613h.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/rsnddai0ak4613h.conf new file mode 100644 index 0000000..1c084de --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/rsnddai0ak4613h.conf @@ -0,0 +1,9 @@ +# Use case Configuration for Renesas H3 board + +Comment "Renesas H3 board ak4613 audio card" + +SectionUseCase."HiFi" { + File "hifi" + Comment "Default" +} + diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/system.pa b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/system.pa new file mode 100644 index 0000000..eef66fc --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/system.pa @@ -0,0 +1,77 @@ +#!/usr/bin/pulseaudio -nF +# +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +# This startup script is used only if PulseAudio is started in system +# mode. + +## use static load order to prevent pulseaudio to auto probe MOST devices +## MOST drivers does not like how pulse probing it and crashes system +## PCM3168A card (Kingfisher only) +load-module module-alsa-sink sink_name=pcm3168a_output device=hw:pcm3168a format=s24-32le channels=8 rate=48000 channel_map=surround-71 +load-module module-alsa-source source_name=pcm3168a_input device=hw:pcm3168a format=s24-32le channels=8 rate=48000 channel_map=surround-71 +## Onboard sound (All R-Car 3 boards) +## use ALSA card plugin to run UCM and initial controls setup +load-module module-alsa-card device_id=ak4613 rate=48000 use_ucm=1 tsched=yes sink_name=ak4613_output source_name=ak4613_input +## Radio input (Kingfisher only) +load-module module-alsa-source source_name=radio device=hw:radio channels=2 rate=48000 +## WL18xx PCM interface (Kingfisher only) +load-module module-alsa-card device_id=wl18xx rate=8000 sink_name=bt_output source_name=bt_input + +### Load several protocols +.ifexists module-esound-protocol-unix.so +load-module module-esound-protocol-unix +.endif +load-module module-native-protocol-unix auth-anonymous=1 + +### Automatically restore the volume of streams and devices +load-module module-stream-restore +load-module module-device-restore + +### Automatically restore the default sink/source when changed by the user +### during runtime +### NOTE: This should be loaded as early as possible so that subsequent modules +### that look up the default sink/source get the right value +load-module module-default-device-restore + +### Automatically move streams to the default sink if the sink they are +### connected to dies, similar for sources +load-module module-rescue-streams + +### Make sure we always have a sink around, even if it is a null sink. +load-module module-always-sink + +### Automatically suspend sinks/sources that become idle for too long +# load-module module-suspend-on-idle + +### Enable positioned event sounds +# load-module module-position-event-sounds + +### Automatically load driver modules for Bluetooth hardware +.ifexists module-bluetooth-policy.so +load-module module-bluetooth-policy +.endif + +.ifexists module-bluetooth-discover.so +load-module module-bluetooth-discover +.endif + +set-default-sink ak4613_output +set-default-source ak4613_input +# For Kingfisher board set default source and sink to multichannel soundcard +set-default-sink pcm3168a_output +set-default-source pcm3168a_input diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/pulseaudio_8.0.bbappend b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/pulseaudio_8.0.bbappend new file mode 100644 index 0000000..705c781 --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/pulseaudio_8.0.bbappend @@ -0,0 +1,39 @@ +FILESEXTRAPATHS_append := "${THISDIR}/files:" + +PR="r2" + +SRC_URI_append_rcar-gen3 = " \ + file://pulseaudio.init \ + file://rsnddai0ak4613h.conf \ + file://hifi \ + file://system.pa \ + file://daemon.conf \ + file://pulseaudio-bluetooth.conf \ +" + +inherit update-rc.d + +INITSCRIPT_NAME = "pulseaudio" +INITSCRIPT_PARAMS = "defaults 30" + +do_install_append_rcar-gen3() { + install -d ${D}/etc/init.d + install -d ${D}/etc/pulse + install -d ${D}/usr/share/alsa/ucm/rsnddai0ak4613h/ + + install -m 0755 ${WORKDIR}/pulseaudio.init ${D}/etc/init.d/pulseaudio + + install -m 0644 ${WORKDIR}/system.pa ${D}/etc/pulse/system.pa + install -m 0644 ${WORKDIR}/daemon.conf ${D}/etc/pulse/daemon.conf + + install -m 0644 ${WORKDIR}/rsnddai0ak4613h.conf ${D}${datadir}/alsa/ucm/rsnddai0ak4613h/rsnddai0ak4613h.conf + install -m 0644 ${WORKDIR}/hifi ${D}${datadir}/alsa/ucm/rsnddai0ak4613h/hifi + + install -d ${D}/${sysconfdir}/dbus-1/system.d + install -m 644 ${WORKDIR}/pulseaudio-bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d/ +} + +FILES_${PN}-server += " \ + ${datadir}/alsa/ucm \ + ${datadir}/dbus-1/ \ +" |