PulseAudio on OpenWRT with MPD and other Stuff: Difference between revisions
mNo edit summary |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 26: | Line 26: | ||
Dependencies include some basic ALSA (Advanced Linux Sound Architecture) stuff, but a couple of more items are nice to have for several reason, including testing, so; | Dependencies include some basic ALSA (Advanced Linux Sound Architecture) stuff, but a couple of more items are nice to have for several reason, including testing, so; | ||
opkg install alsa-utils alsa-ucm-conf mpd-full mpd-avahi-service mpc lib<ins>mpd</ins>client | opkg install ffmpeg-full ffprobe alsa-utils alsa-ucm-conf mpd-full mpd-avahi-service mpc lib<ins>mpd</ins>client | ||
...and maybe opkg install madplay mpg123 (they don't install any services, so they're just there if you need them) | ...and maybe opkg install madplay mpg123 (they don't install any services, so they're just there if you need them) | ||
Line 35: | Line 35: | ||
...but first: opkg install python3 (don't worry that the OpenWRT version of Python 3 is lower than the required version of PulseMixer, as it seems to work fine) | ...but first: opkg install python3 (don't worry that the OpenWRT version of Python 3 is lower than the required version of PulseMixer, as it seems to work fine) | ||
==== MPD Notes ==== | |||
* Make sure to install ffmpeg-full, using opkg install ffmpeg-full EXPLICITLY, otherwise ffmpeg-mini will be installed (which miraculously does NOT include support for the simplest format there is, .WAV Files) | |||
* ffprobe is a useful tool to install | |||
* Modify the /etc/init.d/mpd File to run as root:root (just do it, saves a lot of trouble later) | |||
====The Errors==== | ====The Errors==== | ||
Line 42: | Line 48: | ||
chmod: /dev/mixer: No such file or directory | chmod: /dev/mixer: No such file or directory | ||
chmod: /dev/dsp: No such file or directory | chmod: /dev/dsp: No such file or directory | ||
</syntaxhighlight>Will this fix it (spoiler alert, NO, so like Frankie said "don't do it")?: opkg install gst1-mod-dv<ins>dsp</ins>u gst1-mod-audiomixer (a bunch of dependencies would be installed too). We'll get to the fix later, let's focus on the "Show Stopper" | </syntaxhighlight>Will this fix it (spoiler alert, NO, so like Frankie said "don't do it")?: opkg install gst1-mod-dv<ins>dsp</ins>u gst1-mod-audiomixer (a bunch of dependencies would be installed too). We'll get to the fix later, let's focus on the "Show Stopper". Just kidding, fix is below; | ||
*...just make sure the Audio Device is plugged in. | |||
=====The "Show Stopper" for PulseAudio===== | =====The "Show Stopper" for PulseAudio===== | ||
Line 61: | Line 69: | ||
There's a bunch of stuff about Cookies (one of PulseAudio's security methods), anonymous authentication, etc., but this is the simplest and works without changing PulseAudio's default configuration. | There's a bunch of stuff about Cookies (one of PulseAudio's security methods), anonymous authentication, etc., but this is the simplest and works without changing PulseAudio's default configuration. | ||
=== Surround Sound === | ===Surround Sound=== | ||
First thing to do is this, enable or put this item in the /etc/pulse/default.conf file: <code>default-sample-channels = 6</code> | First thing to do is this, enable or put this item in the /etc/pulse/default.conf file: <code>default-sample-channels = 6</code> | ||
Line 85: | Line 93: | ||
====FIRST! (or rather the next thing to do)==== | ====FIRST! (or rather the next thing to do)==== | ||
REMEMBER: PulseAudio has to be properly configured and running for Bluetooth (bluetoothctl) to work! and because OpenWRT doesn't include of the Bluez Tools (nope, not Blues Clues), make sure PulseAudio has the Bluetooth Modules loaded up and ready to go (IE, the AVAHI version of PulseAudio)! | |||
See: [[PulseAudio on OpenWRT with MPD and other Stuff#Installation of Software]] | |||
AND make sure the /etc/pulse/system.pa loads the Bluetooth Module | |||
====Crap that Does NOT work==== | ====Crap that Does NOT work==== | ||
Line 105: | Line 115: | ||
*...and just as a note, stopping and starting pulseaudio has the net effect of re-reading the /etc/asound.conf file. | *...and just as a note, stopping and starting pulseaudio has the net effect of re-reading the /etc/asound.conf file. | ||
*...and pkill -9 pulseaudio (works great if the process is 'stuck', and don't forget okpg install procps-ng-pkill) | *...and pkill -9 pulseaudio (works great if the process is 'stuck', and don't forget okpg install procps-ng-pkill) | ||
/usr/share/pulseaudio/alsa-mixer/paths/<span> </span>: Path to ALSAMIXER settings (yup, PulseAudio is in the path!) | |||
/proc/asound/card0/usbmixer<span> </span>: possible location where ALSAMIXER gets names for different controls | |||
alsactl<span> </span>: Good for testing basic sound device settings (Top Tip: By default, for whatever reason, the "state" (AKA stored configuration) Directory (/var/lib/alsa) does not exist, so create it. | alsactl<span> </span>: Good for testing basic sound device settings (Top Tip: By default, for whatever reason, the "state" (AKA stored configuration) Directory (/var/lib/alsa) does not exist, so create it. | ||
Line 123: | Line 137: | ||
alsamixer: shows a text GUI of controls | alsamixer: shows a text GUI of controls | ||
cat /sys/kernel/debug/usb/devices<span> </span>: shows details about various USB Devices | |||
aplay -l<span> </span>: shows list of sound devices | aplay -l<span> </span>: shows list of sound devices | ||
Line 233: | Line 249: | ||
====amixer-webui==== | ====amixer-webui==== | ||
opkg install git git-http python3 python3-pip (assumes ALSA is installed already) | opkg install git git-http libmbedtls python3 python3-pip (assumes ALSA is installed already) (substitute python2 for older versions of OpenWRT) | ||
pip3 install flask | pip3 install flask | ||
Line 283: | Line 299: | ||
Done. | Done. | ||
...and what channels are available from a device, well, use this command: amixer -c 0 scontents | |||
Below is the output for a 7.1 surround USB Audio Device;<syntaxhighlight lang="text"> | |||
Simple mixer control 'PCM',0 | |||
Capabilities: pvolume pswitch pswitch-joined | |||
Playback channels: Front Left - Front Right - Rear Left - Rear Right - Front Center - Woofer - Side Left - Side Right | |||
Limits: Playback 0 - 87 | |||
Mono: | |||
Front Left: Playback 37 [43%] [-37.50dB] [on] | |||
Front Right: Playback 37 [43%] [-37.50dB] [on] | |||
Rear Left: Playback 60 [69%] [-20.25dB] [on] | |||
Rear Right: Playback 60 [69%] [-20.25dB] [on] | |||
Front Center: Playback 60 [69%] [-20.25dB] [on] | |||
Woofer: Playback 60 [69%] [-20.25dB] [on] | |||
Side Left: Playback 60 [69%] [-20.25dB] [on] | |||
Side Right: Playback 60 [69%] [-20.25dB] [on] | |||
Simple mixer control 'PCM',1 | |||
Capabilities: pvolume pswitch pswitch-joined | |||
Playback channels: Front Left - Front Right | |||
Limits: Playback 0 - 87 | |||
Mono: | |||
Front Left: Playback 4 [5%] [-62.25dB] [on] | |||
Front Right: Playback 4 [5%] [-62.25dB] [on] | |||
Simple mixer control 'Line',0 | |||
Capabilities: cvolume cswitch cswitch-joined | |||
Capture channels: Front Left - Front Right | |||
Limits: Capture 0 - 56 | |||
Front Left: Capture 16 [29%] [0.00dB] [on] | |||
Front Right: Capture 16 [29%] [0.00dB] [on] | |||
Simple mixer control 'Mic',0 | |||
Capabilities: cvolume cswitch cswitch-joined | |||
Capture channels: Front Left - Front Right | |||
Limits: Capture 0 - 56 | |||
Front Left: Capture 16 [29%] [0.00dB] [on] | |||
Front Right: Capture 16 [29%] [0.00dB] [on] | |||
root@PandoraWRT:/MP3# | |||
</syntaxhighlight> | |||