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