{"id":730,"date":"2021-08-29T19:18:53","date_gmt":"2021-08-29T17:18:53","guid":{"rendered":"https:\/\/itso.dk\/?p=730"},"modified":"2021-08-30T01:54:48","modified_gmt":"2021-08-29T23:54:48","slug":"pipewire-on-ubuntu-20-04-fedora-34","status":"publish","type":"post","link":"https:\/\/blog.itso.dk\/?p=730","title":{"rendered":"PipeWire on Ubuntu, PopOS, ElementaryOS 6"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">What is is PipeWire, and what can it do for me?<\/h2>\n\n\n\n<p>PipeWire is a new multimedia framework that aims for a better audio\/video management in Linux. This can be compared to how audio\/video devices and multimedia files and devices is handled in MacOS, as this just works, and is stable.<\/p>\n\n\n\n<p>So what can it do for me?<br>Currently I have focused on the audio server. In essence it will supplement and replace other audio platforms like JACK, OSS, ALSA and Pulseaudio,  which up until now has been handling all audio on Linux. It also handles Bluetooth audio so much better than previous solutions. <\/p>\n\n\n\n<p>For me it allowed proper usage of my Apple Airpods, which now automatic switch to the correct Bluetooth profile, when my microphone is needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Control check before any changes<\/h2>\n\n\n\n<p>Running the command: &#8220;pactl info&#8221;, note the <strong>Server Name:<\/strong>, this shows we run pure pulseaudio server.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">itso.dk@pop-os:~$ pactl info\nServer String: \/run\/user\/1000\/pulse\/native\nLibrary Protocol Version: 33\nServer Protocol Version: 33\nIs Local: yes\nClient Index: 8\nTile Size: 65472\nUser Name: itso.dk\nHost Name: pop-os\n<strong>Server Name: pulseaudio<\/strong>\nServer Version: 13.99.1\nDefault Sample Specification: s16le 2ch 44100Hz\nDefault Channel Map: front-left,front-right\nDefault Sink: alsa_output.pci-0000_00_1b.0.analog-stereo\nDefault Source: alsa_input.pci-0000_00_1b.0.analog-stereo\nCookie: b11c:734d<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Fedora 34<\/h2>\n\n\n\n<p> Fedora 34 and up will be using PipeWire as default.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ubuntu 18.04 &#8211; 21.10 &amp; PopOS 20.04<\/h2>\n\n\n\n<p>Can be installed with the guide below, and requires to add a PPA Repo (3. party software repository)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo add-apt-repository ppa:pipewire-debian\/pipewire-upstream -y\nsudo apt update\nsudo apt upgrade -y\nsudo apt install pipewire gstreamer1.0-pipewire pipewire-pulse libspa-0.2-bluetooth libspa-0.2-jack -y\n# For each user that wants to run Pipewire run this.\nsystemctl --user mask pulseaudio\nsystemctl --user --now disable pulseaudio.service pulseaudio.socket\nsystemctl --user --now enable pipewire-media-session.service\nsystemctl reboot<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">PopOS 21.04<\/h2>\n\n\n\n<p>A little issue occurs, as there is a conflict with versioning from installed packages. However this can be fixed by running &#8220;sudo apt &#8211;fix-broken install -y&#8221; <\/p>\n\n\n\n<p>BE AWARE, I have not tested, PopOS 21.04 in daily usage when running Pipewire, with fixed packages, use at own risc.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo add-apt-repository ppa:pipewire-debian\/pipewire-upstream -y\nsudo apt update\nsudo apt upgrade -y\nsudo apt --fix-broken install -y\nsudo apt install pipewire gstreamer1.0-pipewire pipewire-pulse libspa-0.2-bluetooth libspa-0.2-jack -y\n# For each user that wants to run Pipewire run this.\nsystemctl --user mask pulseaudio\nsystemctl --user --now disable pulseaudio.service pulseaudio.socket\nsystemctl --user --now enable pipewire-media-session.service\nsystemctl reboot<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">ElementaryOS 6 &#8211; Odin<\/h2>\n\n\n\n<p>As ElementaryOS 6 is based on Ubuntu 20.04 Focal Fossa, but missing the add-apt-repository, we can add the signature key, and repository manually.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596\nsudo su -c 'echo \"deb http:\/\/ppa.launchpad.net\/pipewire-debian\/pipewire-upstream\/ubuntu focal main\" > \/etc\/apt\/sources.list.d\/pipewire-debian-ubuntu-pipewire-upstream-focal.list'\nsudo apt update\nsudo apt upgrade -y\nsudo apt install pipewire gstreamer1.0-pipewire pipewire-pulse libspa-0.2-bluetooth libspa-0.2-jack -y\n# For each user that wants to run Pipewire run this.\nsystemctl --user mask pulseaudio\nsystemctl --user --now disable pulseaudio.service pulseaudio.socket\nsystemctl --user --now enable pipewire-media-session.service\nsystemctl reboot\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">And finally to check if PipeWire is running<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">pactl info<\/pre>\n\n\n\n<p>If you got something simular to this, you should be golden:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">itso.dk@pop-os:~$ pactl info\nServer String: \/run\/user\/1000\/pulse\/native\nLibrary Protocol Version: 33\nServer Protocol Version: 35\nIs Local: yes\nClient Index: 49\nTile Size: 65472\nUser Name: itso.dk\nHost Name: pop-os\n<strong>Server Name: PulseAudio (on PipeWire 0.3.34)<\/strong>\nServer Version: 15.0.0\nDefault Sample Specification: float32le 2ch 48000Hz\nDefault Channel Map: front-left,front-right\nDefault Sink: alsa_output.pci-0000_00_1b.0.analog-stereo\nDefault Source: alsa_input.pci-0000_00_1b.0.analog-stereo\nCookie: 4ab2:c52e<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Switch back to Pulseaudio<\/h2>\n\n\n\n<p>This will not remove PipeWire packages, but only disable the services.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl --user unmask pulseaudio <br>systemctl --user --now disable pipewire-media-session.service<br>systemctl --user --now enable pulseaudio.service pulseaudio.socket<br>systemctl reboot<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>What is is PipeWire, and what can it do for me? PipeWire is a new multimedia framework that aims for a better audio\/video management in Linux. This can be compared to how audio\/video devices and multimedia files and devices is handled in MacOS, as this just works, and is stable. So what can it do &#8230;<\/p>\n<p><a href=\"https:\/\/blog.itso.dk\/?p=730\" class=\"more-link\">Continue reading &lsquo;PipeWire on Ubuntu, PopOS, ElementaryOS 6&rsquo; &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":764,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[41,40,58,59,52],"class_list":["post-730","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux-tip","tag-fedora","tag-linux","tag-pipewire","tag-popos","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/blog.itso.dk\/index.php?rest_route=\/wp\/v2\/posts\/730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.itso.dk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.itso.dk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.itso.dk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.itso.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=730"}],"version-history":[{"count":32,"href":"https:\/\/blog.itso.dk\/index.php?rest_route=\/wp\/v2\/posts\/730\/revisions"}],"predecessor-version":[{"id":769,"href":"https:\/\/blog.itso.dk\/index.php?rest_route=\/wp\/v2\/posts\/730\/revisions\/769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.itso.dk\/index.php?rest_route=\/wp\/v2\/media\/764"}],"wp:attachment":[{"href":"https:\/\/blog.itso.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.itso.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.itso.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}