User Tools

Site Tools


pipewire

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pipewire [2022/07/12 20:42]
thecy add cursed setup
pipewire [2025/01/13 13:37] (current)
jnms
Line 1: Line 1:
-====== PulseAudio-server ====== +====== Pipewire-server ====== 
-De PulseAudio-server draait op [[hoek]].+De Pipewire-server draait op [[korner]].
  
 ===== Gebruik ===== ===== Gebruik =====
 ==== CLI ==== ==== CLI ====
  
-Het kan zijn dat je eerst ''pacman -Sy pulseaudio-rtp'' moet doen+Het kan zijn dat je eerst ''pacman -Sy pipewire-pulse'' moet doen (of `pacman -Sy pulseaudio-rtp` als je pulseaudio gebruikt)
  
   - ''pactl load-module module-null-sink sink_name=rtp sink_properties=device.description=Korner''   - ''pactl load-module module-null-sink sink_name=rtp sink_properties=device.description=Korner''
-  - ''pactl load-module module-rtp-send source=rtp.monitor destination_ip=10.0.0.8'' +  - ''pactl load-module module-rtp-send source=rtp.monitor'' 
-  - Hierna kan je in ''pavucontrol'' "Korner" selecteren als output om af te spelen naar hoek+  - Hierna kan je in ''pavucontrol'' "korner" selecteren als output om af te spelen naar hoek
  
-Vroeger speelden mensen muziek op de volgende manier, maar gezien dat over TCP gaat ipv UDP, gaf dat vrij veel haperingen wanneer je draadloos verbonden was+Pipewire is leuk indat je ook gewoon de pulseaudio tools de je gewend bent kan gebruiken om met pipewire te spreken (voor sommige dingen moet dit zelfs, omdat ze enkel beschikbaar zijn via de pulseaudio shim).
  
-  - Zorg dat je verbonden bent met het Zeus-netwerk. +Voor mensen die een alias willen: ''alias loadrtp='pactl load-module module-null-sink sink_name=rtp && pactl load-module module-rtp-send source=rtp.monitor''
-  - ''PULSE_SERVER=korner.kelder.local muziek_spelend_programma'+
- +
- +
-==== GUI ==== +
- +
-  Zorg dat er een network discovery daemon zoals Avahi draait. +
-  ''pacman -Sy pulseaudio-zeroconf'' +
-  - Kopieer ''/etc/pulse/default.pa'' naar ''~/.config/pulse/default.pa'' +
-  - Voeg ''load-module module-zeroconf-discover'' toe aan ''~/.config/pulse/default.pa'' +
-  - Herstart Pulseaudio service om nieuwe config te laden. +
-hoek zou nu te kiezen moeten zijn in dropdownmenu's van programma's zoals ''pavucontrol''.+
  
 ===== Troubleshooting ===== ===== Troubleshooting =====
-==== PulseAudio-foutmeldingen, of muziek speelt enkel lokaal ====+==== Pipewire-foutmeldingen, of muziek speelt enkel lokaal ====
   - Kijk dat je zeker met het Zeusnetwerk verbonden bent.   - Kijk dat je zeker met het Zeusnetwerk verbonden bent.
   - Programma's die met snap geïnstalleerd zijn, draaien in een container die de environment reset. Het is niet haalbaar om er de nodige environmentvariabelen in te injecteren. Verwijder de snap-versie van het programma en probeer het op een andere manier te installeren. (Dit zagen we bij mensen die op Debian-derivatives Spotify geïnstalleerd hadden. De Debian-package-versie installeren loste dat op.)   - Programma's die met snap geïnstalleerd zijn, draaien in een container die de environment reset. Het is niet haalbaar om er de nodige environmentvariabelen in te injecteren. Verwijder de snap-versie van het programma en probeer het op een andere manier te installeren. (Dit zagen we bij mensen die op Debian-derivatives Spotify geïnstalleerd hadden. De Debian-package-versie installeren loste dat op.)
  
 ===== Server setup ===== ===== Server setup =====
-daemon.conf wordt altijd uitgevoerd door de pulseaudio daemon, client.conf door clients die met de daemon willen verbinden, default.pa door user instanties van de daemon en system.pa door system instanties van de daemon 
-==== Configureer PulseAudio ==== 
-  - Installeer PulseAudio: ''pacman -Sy pulseaudio pulseaudio-alsa'' 
-  - ''/etc/pulse/client.conf'' 
-    - Stel ''default-sink'' en ''default-source'' in. 
-    - Zet ''autospawn'' op ''yes''. 
-  - ''/etc/pulse/daemon.conf'' 
-    - Zet ''system-instance'' op ''yes''. 
-  - ''/etc/pulse/system.pa'' 
-    - Stuur line in door naar line out. Voeg ''load-module module-loopback source="alsa_input.pci-0000_00_1b.0.analog-stereo" sink="alsa_output.pci-0000_00_1b.0.analog-stereo"'' toe. WAARSCHUWING: Zet het volume van de Line In op "onversterkt" (op hoek is dat rond de 10%), anders gaan de boxen instantaan kapot als er iets van geluid binnenkomt. 
-    
-==== Start PulseAudio daemon on boot === 
-  - Creëer pulse user en groep en voeg toe aan audio-groep. 
-    - ''groupadd --system pulse'' 
-    - ''useradd --system -g pulse -G audio --home-dir /var/run/pulse pulse'' 
-  - Geef pulse user toegang tot D-Bus. Zie [[#/etc/dbus-1/system.d/pulseaudio.conf]]. 
-  - Creëer systemd service file. Zie [[#/etc/systemd/system/pulseaudio.service]]. 
-  - ''systemctl --system start pulseaudio'' 
-  - ''systemctl --system enable pulseaudio'' 
-==== /etc/systemd/system/pulseaudio.service ==== 
-  [Unit] 
-  Description=Sound Service 
-  After=sound.target 
-   
-  [Service] 
-  Type=notify 
-  PrivateTmp=true 
-  ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disallow-module-loading 
-  Restart=on-failure 
-   
-  [Install] 
-  WantedBy=multi-user.target 
-==== /etc/dbus-1/system.d/pulseaudio.conf ==== 
-  <!DOCTYPE busconfig PUBLIC 
-    "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" 
-    "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> 
-  <busconfig> 
-      <policy user="pulse"> 
-          <allow own="org.pulseaudio.Server"/> 
-          <allow send_destination="org.pulseaudio.Server"/> 
-          <allow receive_sender="org.pulseaudio.Server"/> 
-      </policy> 
-  </busconfig> 
-==== Network access enablen ==== 
-Voeg ''load-module module-native-protocol-tcp auth-anonymous=true'' toe aan ''/etc/pulse/system.pa''. Eventueel kan er een IP-whitelist als optie worden meegegeven: ''auth-ip-acl=10.1.2.42,10.1.2.50''. 
-==== Network publishing enablen ==== 
-Installeer Zeroconf modules voor Pulseaudio en draai Avahi. 
-  - ''systemctl --system enable avahi-daemon'' 
-  - ''pacman -Sy pulseaudio-zeroconf'' 
-  - Voeg ''load-module module-zeroconf-publish'' toe aan ''/etc/pulse/system.pa'' 
-==== Nuttige commando's ==== 
-  * amixer 
-  * pacmd list-cards 
-  * pacmd list-sources 
-  * pacmd list-sinks 
-  * pactl load-module ... 
- 
-===== Cursed setup ===== 
-Onze nieuwe kelder host draait een cursed setup met custom pulseaudio fork en for some unknow reason FreeBSD. 
- 
-==== Pulseaudio ==== 
- 
-Voor het opstarten van deze cursed setup moet de standaard pulseaudio server van de FreeBSD niet draaien. Normaal is deze disabled door `doas service pulse disable`. Als voor de een of de andere reden de server toch draait, kill die gewoon met ''doas pkill -9 pulseaudio''. 
-Zorg ervoor dat er modules aanwezig zijn in ''/usr/ports/audio/pulseaudio/work/pulseaudio-14.2/src/.libs'' en ''/usr/ports/audio/pulseaudio/work/pulseaudio-14.2/src/.libs/.libs'' (vraag aan @redfast wrrm het zo moet zijn). Hierna kan je de pulseaudio fork opstarten in een tmux sessie: 
- 
-  tmux new-session -s pulseaudio 
-  /usr/ports/audio/pulseaudio/work/pulseaudio-14.2/src/pulseaudio -v --system --disallow-exit 
- 
- 
-Detach van de sessie en done! 
- 
-==== Shairplay ==== 
- 
-Shairplay is al installed op korner. Om te reconstrueren, gewoon de volgende stappen: 
- 
- 
-  git clone https://github.com/juhovh/shairplay.git 
-  doas pkg install avahi-libdns libao libao-dev 
-  cd shairplay 
-  doas make configure 
-  doas make install 
- 
-Hierna zorg je ervoor dat je in de directory zit waar er een `airport.key` file aanwezig is (meestal in de `shairplay` folder). 
-De server kan je starten met het volgende: 
  
-  tmux new-session -s shairplay +  - Pipewire draait altijd als een user daemon, dus zet ''loginctl enable-linger <user>'' aan. 
-  /usr/local/bin/shairplay -o 5001 -a Zoundzystem+  - Kopieer ''pipewire.conf'' en ''pipewire-pulse.conf'' van ''/usr/share/pipewire'' naar ''.config/pipewire''
 +  Zet in ''pipewire-pulse.conf'' in de ''pulse.cmd'' lijst het element ''{ cmd = "load-module" args = "module-rtp-recv sink=alsa_output.pci-0000_06_00.0.analog-stereo" }'' waar je de sink vervangt door de sink die je vindt via ''pactl list sinks''
 +  - ''systemctl --user restart pipewire-pulse'' 
 +  Shit zou nu moeten werken.
  
pipewire.1657658540.txt.gz · Last modified: 2022/07/12 20:42 by thecy

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki