ubuntu 에서 pulseaudio network audio server 구축하기 (for multiroom)
참조 : https://manurevah.com/blah/en/p/PulseAudio-Sound-over-the-network
다 해보니 다른건 필요 없고 1, 2, 6, 8 만 하면 될것 같다.
나는 인터넷 뒤져서 삽질 하느라 이것저것 다 해봄. 다른건 필요 없어보이지만 그래도 기록으로 남김.
일단 5번까지는 서버에다 하면 됨.
난 우분투 데탑에 함.
1. 필요한것 설치
$ sudo apt install pulseaudio pulseaudio-module-zeroconf avahi
2. pulseaudio system.pa 설정에 두줄 추가
$ sudo vi /etc/pulse/system.pa
맨아래다가
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/60 auth-anonymous=1
load-module module-zeroconf-publish
두줄 추가
default.pa 에 했는데 여기다 쓰면 volume 에 연결이 안된다고 ... 행 걸림.
3. 이거는 하라고 해서 했는데 아마 안해도 동작 했을것 같다.
$ vi /etc/systemd/user/pulseaudio.service
아래 내용 쓰고 저장
[Unit]
After=sound.target network.target avahi-daemon.service
Requires=sound.target
Wants=avahi-daemon.service
Description=PulseAudio Sound System
[Service]
Type=dbus
BusName=org.pulseaudio.Server
BusName=org.PulseAudio1
ExecStart=/usr/bin/pulseaudio -vv
ExecStop=/usr/bin/pulseaudio --kill
Restart=always
[Install]
WantedBy=default.target
4. audio group 에 추가. 무슨 오디오 그룹에 권한을 넣어야 한다고 하는데....
$ useradd -m -G audio media -s /bin/bash
5. selinux 때문에 권한 추가하는건데 이건 따라해봤는데 마지막에서 안됨
$ vi pulseaudio_user.te
내용은 아래것 쓰고
module pulseaudio_user 1.0;
require {
type proc_net_t;
type avahi_t;
type pulseaudio_t;
class dbus send_msg;
class file read;
}
#============= avahi_t ==============
allow avahi_t pulseaudio_t:dbus send_msg;
#============= pulseaudio_t ==============
allow pulseaudio_t avahi_t:dbus send_msg;
allow pulseaudio_t proc_net_t:file read;
여기까지 쓰고 저장
$ checkmodule -M -m -o pulseaudio_user.mod pulseaudio_user.te
$ semodule_package -o pulseaudio_user.pp -m pulseaudio_user.mod
$ semodule -i pulseaudio_user.pp <<= 나는 여기서 안됨.
해보니까 1, 2번만 하면 될것 같고
중요한건 다음.
6. 서버랑 클라에 둘다 이걸 깔아줌.
난 클라를 라즈베리파이 b+ 로 사용함.
$ sudo apt-get install paprefs
7. 클라(나의 경우 라즈베리파이) /etc/pulse/default.pa 에다가
아래내용을 추가하고 저장
load-module module-tunnel-sink-new server=<서버ip> sink_name=Remote channels=2 rate=44100
load-module module-tunnel-sink-new server=192.168.0.43 sink_name=Remote channels=2 rate=44100
그런데 나같은경우 7번도 안해도 된다.
8. 이게 중요
Alt+F2 눌러서 paprefs 실행하고
서버랑 클라에
Network Access 에
Make discoverable PulseAudio network sound devices available locally 체크하고
클라에
Network Server 에
Enable network access to local sound device
Allow other machines on the LAN to discover local sound devices
Don't require authentication
체크해준다.
하다가 잘 안되면 이것저것 다 체크해본다.
난 그냥 서버랑 클라에 다 체크해버림.
이렇게하고 둘다 리붓하면 라즈베리가 서버에 붙을때 우분투 데탑 볼륨 조절기에 나옴
잘 되면 우분투 데탑에서 플레이 걸고 출력을 라즈베리파이로 지정하면 라즈베리파이에서 소리가 출력됨.
약간 apple에 airplay랑 비슷하다.
해봤는데 좀 끊김. wired 로 했는데 끊기다니. 뭔가 좀 문제가 있어보임.
멀티룸 구성하려면 그냥 gstreamer 로 하는게 좋을것 같음.
'Linux' 카테고리의 다른 글
linux 에서 yeelight 껐다 켰다 하기. (0) | 2020.06.10 |
---|---|
ubuntu bluetooth (0) | 2019.09.18 |
Fuchsia build 해보기 (0) | 2019.07.01 |