c5917f8109c9b00a25837ae9edf4a47034e08825
Projects/xq/MusicPi.md
| ... | ... | @@ -4,20 +4,76 @@ A music playback device based on a Raspberry Pi 3 |
| 4 | 4 | |
| 5 | 5 | - PulseAudio network sink (Device will just appear as a audio sink in PulseAudio) |
| 6 | 6 | |
| 7 | -## Required Packages |
|
| 7 | +## Setup |
|
| 8 | + |
|
| 9 | +### Install Arch Linux ARM |
|
| 10 | + |
|
| 11 | +[Installation instructions](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3) |
|
| 12 | + |
|
| 13 | + |
|
| 14 | +### Create the required users |
|
| 15 | +``` |
|
| 16 | +useradd --home-dir /var/run/pulse pulse |
|
| 17 | +gpasswd -a pulse audio |
|
| 18 | +``` |
|
| 19 | + |
|
| 20 | +### Install required packages: |
|
| 21 | + |
|
| 22 | +Get `root` with `su` and password `root`, then install a system update and the required packages: |
|
| 8 | 23 | |
| 9 | -required: |
|
| 10 | 24 | ``` |
| 11 | -alsa-firmware |
|
| 12 | -alsa-lib |
|
| 25 | +pacman -Syu alsa-firmware alsa-lib alsa-utils avahi pulseaudio pulseaudio-zeroconf |
|
| 26 | +``` |
|
| 27 | + |
|
| 13 | 28 | alsa-topology-conf |
| 14 | 29 | alsa-ucm-conf |
| 15 | -alsa-utils |
|
| 16 | -avahi |
|
| 17 | -pulseaudio |
|
| 18 | -pulseaudio-zeroconf |
|
| 30 | + |
|
| 31 | +### Adjust config files |
|
| 32 | + |
|
| 33 | +### `/etc/pulse/system.pa` |
|
| 34 | + |
|
| 35 | +Append to the config file: |
|
| 36 | + |
|
| 37 | +```config |
|
| 38 | +# Enable the native pulseaudio protocol, restrict to ip groups |
|
| 39 | +load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.2.0/24;10.0.0.0/23 |
|
| 40 | + |
|
| 41 | +# Publish the audio stream via zeroconf (so other pulseaudio instances can see it) |
|
| 42 | +load-module module-zeroconf-publish |
|
| 43 | + |
|
| 44 | +# Publish the first alsa card as "Stereoanlage" |
|
| 45 | +load-module module-alsa-card device_id=0 sink_name="Stereoanlage" |
|
| 46 | +``` |
|
| 47 | + |
|
| 48 | +### `/etc/systemd/system/pulseaudio.service` |
|
| 49 | + |
|
| 50 | +Create this file: |
|
| 51 | + |
|
| 52 | +```ini |
|
| 53 | +[Unit] |
|
| 54 | +Description=pulseaudio System Service |
|
| 55 | + |
|
| 56 | +[Service] |
|
| 57 | +type=simple |
|
| 58 | +ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disallow-module-loading |
|
| 59 | +Restart=always |
|
| 60 | +RestartSec=5 |
|
| 61 | + |
|
| 62 | +[Install] |
|
| 63 | +WantedBy=multi-user.target |
|
| 19 | 64 | ``` |
| 20 | 65 | |
| 66 | + |
|
| 67 | +## Auxiliary commands |
|
| 68 | + |
|
| 69 | +**dry run:** |
|
| 70 | +``` |
|
| 71 | +/usr/bin/pulseaudio --system --disallow-exit --disallow-module-loading |
|
| 72 | +``` |
|
| 73 | + |
|
| 74 | + |
|
| 75 | +## Packages |
|
| 76 | + |
|
| 21 | 77 | debugging/testing: |
| 22 | 78 | ``` |
| 23 | 79 | pulsemixer |