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 |