From ab4e54acfc5fc51d6ba334b699f869721ed4836b Mon Sep 17 00:00:00 2001 From: tiyn Date: Mon, 30 Mar 2026 07:33:21 +0200 Subject: [PATCH 1/4] hardware entries: - changed wi-fi entry in linux folder for a general one - improved linking of hardware entries via sections - added bluez troubleshooting --- wiki/bluetooth.md | 10 +++++----- wiki/hardware_(general).md | 16 +++++++++++++++- wiki/linux/bluez.md | 8 ++++++-- wiki/linux/hardware_(linux).md | 26 ++++++++++++++++++++------ wiki/linux/networkmanager.md | 5 ++++- wiki/linux/wi-fi.md | 27 --------------------------- wiki/linux/wpa_supplicant.md | 6 +++++- wiki/wi-fi.md | 9 +++++++++ 8 files changed, 64 insertions(+), 43 deletions(-) delete mode 100644 wiki/linux/wi-fi.md create mode 100644 wiki/wi-fi.md diff --git a/wiki/bluetooth.md b/wiki/bluetooth.md index 280141a..848bd57 100644 --- a/wiki/bluetooth.md +++ b/wiki/bluetooth.md @@ -1,8 +1,8 @@ # Bluetooth -[Bluetooth](https://www.bluetooth.com/) is a short-range technology for wireless -data transfer. +[Bluetooth](https://www.bluetooth.com/) is a short-range technology for wireless data transfer. +From a [hardware](/wiki/hardware_%28general%29.md) perspective Bluetooth requires a compatible +adapter to work which may be integrated or external. -For [Linux](/wiki/linux.md) based operating systems the -[bluez package](/wiki/linux/bluez.md) is used as the implementation of the -bluetooth standard. +Informations on Bluetooth usage on [Linux](/wiki/linux.md)-based operating systems are described in +the [Bluetooth section of the Linux hardware entry](/wiki/linux/hardware_%28linux%29.md#bluetooth). diff --git a/wiki/hardware_(general).md b/wiki/hardware_(general).md index 57da130..0f32230 100644 --- a/wiki/hardware_(general).md +++ b/wiki/hardware_(general).md @@ -4,7 +4,21 @@ This entry focusses on various hardware components of a general desktop PC or a For [Linux](/wiki/linux.md) Systems see [the corresponding entry](/wiki/linux/hardware_%28linux%29.md). -## Contents of Technic Bag +## Hardware Functionality + +The following subsections address functions that rely on dedicated hardware modules or adapters. + +### Bluetooth + +Configuration and troubleshooting for Bluetooth functionality are described in the +[corresponding Bluetooth entry](/wiki/bluetooth.md). + +### Wi-Fi + +Configuration and troubleshooting for Wi-Fi functionality are described in the +[corresponding Wi-Fi entry](/wiki/wi-fi.md). + +## Technic Bag The following are components that are useful to be included in cable- and technic bags to. For power banks and power supplies it is useful to check for the power delivery standard. diff --git a/wiki/linux/bluez.md b/wiki/linux/bluez.md index ecebf5f..7fbee34 100644 --- a/wiki/linux/bluez.md +++ b/wiki/linux/bluez.md @@ -1,7 +1,7 @@ # BlueZ -[BlueZ](http://www.bluez.org/) is an implementation of the -[Bluetooth](/wiki/bluetooth.md) standard. +[BlueZ](http://www.bluez.org/) is an implementation of the [Bluetooth](/wiki/bluetooth.md) +standard. This entry features the BlueZ package and all software that is based on it. ## Setup @@ -20,6 +20,10 @@ systemctl enable bluetooth.service ## Usage +This section addresses the usage of Bluez. + +### Connecting and Pairing of Devices + The Bluetooth features can be managed by different types of front-ends. - `bluetoothctl` is a command-line interface included in the `bluez-utils` diff --git a/wiki/linux/hardware_(linux).md b/wiki/linux/hardware_(linux).md index 3276150..a4f81b3 100644 --- a/wiki/linux/hardware_(linux).md +++ b/wiki/linux/hardware_(linux).md @@ -5,7 +5,11 @@ laptop. For non-Linux specific or general topics in hardware see the [corresponding entry](/wiki/hardware_%28general%29.md) -## Battery +## Hardware Functionality + +The following subsections address functions that rely on dedicated hardware modules or adapters. + +### Battery The battery of a notebook can be inspected by using the `upower` command. To use it the tool needs to be installed. @@ -40,24 +44,34 @@ For this run the following command. acpi -b ``` -## Power Management +### Bluetooth + +[Bluetooth](/wiki/bluetooth.md) on [Linux](/wiki/linux.md) is generally managed by +[Bluez](/wiki/linux/bluez.md). + +### Wi-Fi + +Wi-Fi functionality on [Linux](/wiki/linux.md) is handled by various tools such as +[WPA Supplicant](/wiki/linux/wpa_supplicant.md) or [NetworkManager](/wiki/linux/networkmanager.md). + +### Power Management Tools, programs and guides to manage the power usage and improve battery life are described in the [power management entry](/wiki/linux/power_management.md). -## (Liquid) Coolers +### (Liquid) Coolers The viewing of temperatures of coolers as well as the selection of RGB-settings can be achieved by using [liquidctl](https://github.com/liquidctl/liquidctl). -## Temperature +### Temperature To check the temperature the command `sensors` can be used which (on most distributions) is a part of the `lm_sensors` package. It will then display all the available temperature sensors available as well as many other sensors like the RPM for fans. -## ThinkPad TrackPoint +### ThinkPad TrackPoint This section is based on a [Reddit comment by zedbraxmen](https://www.reddit.com/r/thinkpad/comments/wjb8qz/configuring_trackpoint_in_wayland/). @@ -75,7 +89,7 @@ ATTR{device/sensitivity}="275", ATTR{device/speed}="215", ``` -## Fingerprint Readers +### Fingerprint Readers Many modern laptops include fingerprint sensors which can be used for authentication on [Linux](/wiki/linux.md). diff --git a/wiki/linux/networkmanager.md b/wiki/linux/networkmanager.md index d221af8..9db6926 100644 --- a/wiki/linux/networkmanager.md +++ b/wiki/linux/networkmanager.md @@ -2,7 +2,7 @@ NetworkManager - short NM - is a program to automatically detect and connect to networks by providing options for various configuration. -It is used to set up [Wi-Fi](/wiki/linux/wi-fi.md). +It is used to set up [Wi-Fi](/wiki/linux/hardware_%28linux%29.md#wi-fi). ## Setup @@ -50,3 +50,6 @@ It will restart the [SystemD](/wiki/linux/systemd.md) service and enable the Wi- systemctl restart NetworkManager nmcli radio wifi on ``` + +If the error still persists afterwards it may be useful to also restart WPA Supplicant as explained +[in the corresponding section of its entry](/wiki/linux/wpa_supplicant.md#restarting-wpa-supplicant). diff --git a/wiki/linux/wi-fi.md b/wiki/linux/wi-fi.md deleted file mode 100644 index c487e29..0000000 --- a/wiki/linux/wi-fi.md +++ /dev/null @@ -1,27 +0,0 @@ -# Wi-Fi - -Wi-Fi is a type of wireless network protocol that is used for local area networks. -On [Linux-based systems](/wiki/linux.md) there are different programs that handle the Wi-Fi -connection. - -- [WPA Supplicant](/wiki/linux/wpa_supplicant.md) is used for WPA2 and WPA3 connections among - others. -- [NetworkManager](/wiki/linux/networkmanager.md) is used for various network connections. - -## Usage - -Tipps for usage can be found under the corresponding entries. - -## Troubleshooting - -Tipps for troubleshooting can be found under the corresponding entries, but the ones that use -multiple programs to fix are listed here. - -### Restart WPA Supplicant and Reenable the Wi-Fi device - -A simple fix for many problems is a restart of [WPA Supplicant](/wiki/linux/wpa_supplicant.md) -aswell as reenabling the Wi-Fi device using [NetworkManager](/wiki/linux/networkmanager.md). -This can be done by first restarting WPA Supplicant as explained in the -[corresponding section](/wiki/linux/wpa_supplicant.md#restarting-wpa-supplicant) and then -reenabling the Wi-Fi device as explained in the -[section of NetworkManagers entry](/wiki/linux/networkmanager.md#restarting-and-reenabling-wi-fi). diff --git a/wiki/linux/wpa_supplicant.md b/wiki/linux/wpa_supplicant.md index 58a56af..d6d18c4 100644 --- a/wiki/linux/wpa_supplicant.md +++ b/wiki/linux/wpa_supplicant.md @@ -3,7 +3,7 @@ `wpa_supplicant` is a free implementation of an IEEE 802.11i supplicant. It is especially interesting due to its WPA2 and WPA3 capabilities in contrast to other networking software. -It is used to set up [Wi-Fi](/wiki/linux/wi-fi.md). +It is used to set up [Wi-Fi](/wiki/linux/hardware_%28linux%29.md#wi-fi). ## Usage @@ -32,3 +32,7 @@ Most of the problems regarding WPA Supplicant can be fixed by restarting the ```sh systemctl restart wpa_supplicant ``` + +Afterwards - if the error still persists - it may be useful to reenable the Wi-Fi device as +explained in the +[section of the NetworkManager entry](/wiki/linux/networkmanager.md#restarting-and-reenabling-wi-fi). diff --git a/wiki/wi-fi.md b/wiki/wi-fi.md new file mode 100644 index 0000000..04078e7 --- /dev/null +++ b/wiki/wi-fi.md @@ -0,0 +1,9 @@ +# Wi-Fi (General) + +Wi-Fi is a wireless networking technology used for wireless local area networks also called WLAN. +It allows devices to communicate over radio frequencies without physical cables. +It needs a module or adapter and therefore relies on dedicated +[hardware](/wiki/hardware_%28general%29.md). + +Informations on Wi-Fi usage on [Linux](/wiki/linux.md)-based operating systems are described in +the [Wi-Fi section of the Linux hardware entry](/wiki/linux/hardware_%28linux%29.md#wi-fi). From 336b070c06dd52eaa3e20a21e0a92e8e1507f587 Mon Sep 17 00:00:00 2001 From: tiyn Date: Mon, 30 Mar 2026 07:33:21 +0200 Subject: [PATCH 2/4] hardware entries: - changed wi-fi entry in linux folder for a general one - improved linking of hardware entries via sections - added bluez troubleshooting --- wiki/bluetooth.md | 10 +++---- wiki/hardware_(general).md | 16 ++++++++++- wiki/linux/bluez.md | 49 ++++++++++++++++++++++++++++++++-- wiki/linux/hardware_(linux).md | 26 +++++++++++++----- wiki/linux/networkmanager.md | 5 +++- wiki/linux/systemd.md | 8 +++--- wiki/linux/wi-fi.md | 27 ------------------- wiki/linux/wpa_supplicant.md | 6 ++++- wiki/wi-fi.md | 9 +++++++ 9 files changed, 109 insertions(+), 47 deletions(-) delete mode 100644 wiki/linux/wi-fi.md create mode 100644 wiki/wi-fi.md diff --git a/wiki/bluetooth.md b/wiki/bluetooth.md index 280141a..848bd57 100644 --- a/wiki/bluetooth.md +++ b/wiki/bluetooth.md @@ -1,8 +1,8 @@ # Bluetooth -[Bluetooth](https://www.bluetooth.com/) is a short-range technology for wireless -data transfer. +[Bluetooth](https://www.bluetooth.com/) is a short-range technology for wireless data transfer. +From a [hardware](/wiki/hardware_%28general%29.md) perspective Bluetooth requires a compatible +adapter to work which may be integrated or external. -For [Linux](/wiki/linux.md) based operating systems the -[bluez package](/wiki/linux/bluez.md) is used as the implementation of the -bluetooth standard. +Informations on Bluetooth usage on [Linux](/wiki/linux.md)-based operating systems are described in +the [Bluetooth section of the Linux hardware entry](/wiki/linux/hardware_%28linux%29.md#bluetooth). diff --git a/wiki/hardware_(general).md b/wiki/hardware_(general).md index 57da130..0f32230 100644 --- a/wiki/hardware_(general).md +++ b/wiki/hardware_(general).md @@ -4,7 +4,21 @@ This entry focusses on various hardware components of a general desktop PC or a For [Linux](/wiki/linux.md) Systems see [the corresponding entry](/wiki/linux/hardware_%28linux%29.md). -## Contents of Technic Bag +## Hardware Functionality + +The following subsections address functions that rely on dedicated hardware modules or adapters. + +### Bluetooth + +Configuration and troubleshooting for Bluetooth functionality are described in the +[corresponding Bluetooth entry](/wiki/bluetooth.md). + +### Wi-Fi + +Configuration and troubleshooting for Wi-Fi functionality are described in the +[corresponding Wi-Fi entry](/wiki/wi-fi.md). + +## Technic Bag The following are components that are useful to be included in cable- and technic bags to. For power banks and power supplies it is useful to check for the power delivery standard. diff --git a/wiki/linux/bluez.md b/wiki/linux/bluez.md index ecebf5f..55e9ca7 100644 --- a/wiki/linux/bluez.md +++ b/wiki/linux/bluez.md @@ -1,7 +1,7 @@ # BlueZ -[BlueZ](http://www.bluez.org/) is an implementation of the -[Bluetooth](/wiki/bluetooth.md) standard. +[BlueZ](http://www.bluez.org/) is an implementation of the [Bluetooth](/wiki/bluetooth.md) +standard. This entry features the BlueZ package and all software that is based on it. ## Setup @@ -20,6 +20,10 @@ systemctl enable bluetooth.service ## Usage +This section addresses the usage of Bluez. + +### Connecting and Pairing of Devices + The Bluetooth features can be managed by different types of front-ends. - `bluetoothctl` is a command-line interface included in the `bluez-utils` @@ -31,3 +35,44 @@ The Bluetooth features can be managed by different types of front-ends. Using `bluetuith` the [Bluetooth](/wiki/bluetooth.md) can be turned on (or off) by pressing `o`, devices can be searched for by pressing `s`, a selected device can be paired by pressing `p` and finally connected by pressing `c` before `bluetuith` can be left with `Q`. + +## Troubleshooting + +This section will focus on errors and the fixing of errors of Bluez. + +### `bluetuith: no adapter found` or `bluetoothctl: No default controller available` + +When this error occurs the adapter is not recognized by the software. +This can be confirmed using the following command and looking for the bluetooth adapter. + +```sh +lsusb +``` + +If it is indeed not found it may be blocked by `rfkill`. +To check this run the following command. + +```sh +rfkill +``` + +This command will display something similar to the following. + +```txt +0: hci0: Bluetooth + Soft blocked: no + Hard blocked: no +``` + +If the command displays `Soft blocked: yes` or `Hard blocked: yes` beneath the Bluetooth device it +has to be unblocked to use it. +For this run the following command where `` is the name of the Bluetooth adapter +(in this case it would be `hci0`). + +```sh +rfkill unblock +``` + +Afterwards the adapter will probably be recognized again but a restart of service +`bluetooth.service` eventually has to be restarted as described in the +[systemd entry](/wiki/linux/systemd.md#startstopenabledisable-a-service-and-retrieve-its-logs). diff --git a/wiki/linux/hardware_(linux).md b/wiki/linux/hardware_(linux).md index 3276150..a4f81b3 100644 --- a/wiki/linux/hardware_(linux).md +++ b/wiki/linux/hardware_(linux).md @@ -5,7 +5,11 @@ laptop. For non-Linux specific or general topics in hardware see the [corresponding entry](/wiki/hardware_%28general%29.md) -## Battery +## Hardware Functionality + +The following subsections address functions that rely on dedicated hardware modules or adapters. + +### Battery The battery of a notebook can be inspected by using the `upower` command. To use it the tool needs to be installed. @@ -40,24 +44,34 @@ For this run the following command. acpi -b ``` -## Power Management +### Bluetooth + +[Bluetooth](/wiki/bluetooth.md) on [Linux](/wiki/linux.md) is generally managed by +[Bluez](/wiki/linux/bluez.md). + +### Wi-Fi + +Wi-Fi functionality on [Linux](/wiki/linux.md) is handled by various tools such as +[WPA Supplicant](/wiki/linux/wpa_supplicant.md) or [NetworkManager](/wiki/linux/networkmanager.md). + +### Power Management Tools, programs and guides to manage the power usage and improve battery life are described in the [power management entry](/wiki/linux/power_management.md). -## (Liquid) Coolers +### (Liquid) Coolers The viewing of temperatures of coolers as well as the selection of RGB-settings can be achieved by using [liquidctl](https://github.com/liquidctl/liquidctl). -## Temperature +### Temperature To check the temperature the command `sensors` can be used which (on most distributions) is a part of the `lm_sensors` package. It will then display all the available temperature sensors available as well as many other sensors like the RPM for fans. -## ThinkPad TrackPoint +### ThinkPad TrackPoint This section is based on a [Reddit comment by zedbraxmen](https://www.reddit.com/r/thinkpad/comments/wjb8qz/configuring_trackpoint_in_wayland/). @@ -75,7 +89,7 @@ ATTR{device/sensitivity}="275", ATTR{device/speed}="215", ``` -## Fingerprint Readers +### Fingerprint Readers Many modern laptops include fingerprint sensors which can be used for authentication on [Linux](/wiki/linux.md). diff --git a/wiki/linux/networkmanager.md b/wiki/linux/networkmanager.md index d221af8..9db6926 100644 --- a/wiki/linux/networkmanager.md +++ b/wiki/linux/networkmanager.md @@ -2,7 +2,7 @@ NetworkManager - short NM - is a program to automatically detect and connect to networks by providing options for various configuration. -It is used to set up [Wi-Fi](/wiki/linux/wi-fi.md). +It is used to set up [Wi-Fi](/wiki/linux/hardware_%28linux%29.md#wi-fi). ## Setup @@ -50,3 +50,6 @@ It will restart the [SystemD](/wiki/linux/systemd.md) service and enable the Wi- systemctl restart NetworkManager nmcli radio wifi on ``` + +If the error still persists afterwards it may be useful to also restart WPA Supplicant as explained +[in the corresponding section of its entry](/wiki/linux/wpa_supplicant.md#restarting-wpa-supplicant). diff --git a/wiki/linux/systemd.md b/wiki/linux/systemd.md index ae544f6..edbece5 100644 --- a/wiki/linux/systemd.md +++ b/wiki/linux/systemd.md @@ -52,7 +52,7 @@ To start the service after boot it has to be enabled. This works accordingly with the keyword `enable`. The `disable` keyword stops the service from starting automatically. -Logs of the last start of the service can be found by running `systemctl status `. +Logs of the last start of the service can be found by running `systemctl status `. ### Retrieving the SystemD Logs @@ -72,7 +72,7 @@ This time will be used to determine the time that is taken from suspend to hiber suspend-to-hibernate is called. The following line will set this to 10 minutes. -```txt +```txt HibernateDelaySec=10min ``` @@ -102,7 +102,7 @@ ignore. As [machetie writes on Reddit](https://www.reddit.com/r/framework/comments/185035i/how_to_use_the_laptop_with_lid_closed_linux/) the following settings need to be set. -```txt +```txt HandleLidSwitch=ignore HandleLidSwitchExternalPower=ignore HandleLidSwitchDocked=ignore @@ -125,6 +125,6 @@ This error signals problems with the trusted platform module. This however usually can be fixed easily by masking the service and is done like the following command shows. -```sh +```sh systemctl mark dev-tpmrm0.device ``` diff --git a/wiki/linux/wi-fi.md b/wiki/linux/wi-fi.md deleted file mode 100644 index c487e29..0000000 --- a/wiki/linux/wi-fi.md +++ /dev/null @@ -1,27 +0,0 @@ -# Wi-Fi - -Wi-Fi is a type of wireless network protocol that is used for local area networks. -On [Linux-based systems](/wiki/linux.md) there are different programs that handle the Wi-Fi -connection. - -- [WPA Supplicant](/wiki/linux/wpa_supplicant.md) is used for WPA2 and WPA3 connections among - others. -- [NetworkManager](/wiki/linux/networkmanager.md) is used for various network connections. - -## Usage - -Tipps for usage can be found under the corresponding entries. - -## Troubleshooting - -Tipps for troubleshooting can be found under the corresponding entries, but the ones that use -multiple programs to fix are listed here. - -### Restart WPA Supplicant and Reenable the Wi-Fi device - -A simple fix for many problems is a restart of [WPA Supplicant](/wiki/linux/wpa_supplicant.md) -aswell as reenabling the Wi-Fi device using [NetworkManager](/wiki/linux/networkmanager.md). -This can be done by first restarting WPA Supplicant as explained in the -[corresponding section](/wiki/linux/wpa_supplicant.md#restarting-wpa-supplicant) and then -reenabling the Wi-Fi device as explained in the -[section of NetworkManagers entry](/wiki/linux/networkmanager.md#restarting-and-reenabling-wi-fi). diff --git a/wiki/linux/wpa_supplicant.md b/wiki/linux/wpa_supplicant.md index 58a56af..d6d18c4 100644 --- a/wiki/linux/wpa_supplicant.md +++ b/wiki/linux/wpa_supplicant.md @@ -3,7 +3,7 @@ `wpa_supplicant` is a free implementation of an IEEE 802.11i supplicant. It is especially interesting due to its WPA2 and WPA3 capabilities in contrast to other networking software. -It is used to set up [Wi-Fi](/wiki/linux/wi-fi.md). +It is used to set up [Wi-Fi](/wiki/linux/hardware_%28linux%29.md#wi-fi). ## Usage @@ -32,3 +32,7 @@ Most of the problems regarding WPA Supplicant can be fixed by restarting the ```sh systemctl restart wpa_supplicant ``` + +Afterwards - if the error still persists - it may be useful to reenable the Wi-Fi device as +explained in the +[section of the NetworkManager entry](/wiki/linux/networkmanager.md#restarting-and-reenabling-wi-fi). diff --git a/wiki/wi-fi.md b/wiki/wi-fi.md new file mode 100644 index 0000000..04078e7 --- /dev/null +++ b/wiki/wi-fi.md @@ -0,0 +1,9 @@ +# Wi-Fi (General) + +Wi-Fi is a wireless networking technology used for wireless local area networks also called WLAN. +It allows devices to communicate over radio frequencies without physical cables. +It needs a module or adapter and therefore relies on dedicated +[hardware](/wiki/hardware_%28general%29.md). + +Informations on Wi-Fi usage on [Linux](/wiki/linux.md)-based operating systems are described in +the [Wi-Fi section of the Linux hardware entry](/wiki/linux/hardware_%28linux%29.md#wi-fi). From 7ad6d6c35d5adf81938b26a22a948779dfc51bf9 Mon Sep 17 00:00:00 2001 From: tiyn Date: Tue, 31 Mar 2026 05:54:09 +0200 Subject: [PATCH 3/4] Pipewire: added troubleshooting Added a section on problems that occur for loopback devices in combination with EasyEffects default configuration. --- wiki/linux/easyeffects.md | 9 ++++++++ wiki/linux/pipewire.md | 45 +++++++++++++++++++++++++++------------ 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/wiki/linux/easyeffects.md b/wiki/linux/easyeffects.md index b8c922d..fe3e0d4 100644 --- a/wiki/linux/easyeffects.md +++ b/wiki/linux/easyeffects.md @@ -35,6 +35,15 @@ It is then displayed in the list below from where it can be loaded or deleted. Presets are saved in the directory `~/.config/easyeffects/input` and `~/.config/easyeffects/output`. +### Process All Input and Output Streams + +By default, EasyEffects processes all input and output streams. +This includes [loopback devices](/wiki/linux/pipewire.md#virtual-devices) with which it may lead to +some problems - for example +[problems with virtual devices](/wiki/linux/pipewire.md#problems-with-input-an-output-of-loopback-devices). +It can be disabled and re-enabled in the `Preferences` under `Audio` by deselecting or selecting the +switches for `Process all output streams` and `Process all input streams`. + #### Recommended Presets The following is a list of presets that have been tested and only need slight configuration to diff --git a/wiki/linux/pipewire.md b/wiki/linux/pipewire.md index 1259e06..15e1711 100644 --- a/wiki/linux/pipewire.md +++ b/wiki/linux/pipewire.md @@ -18,14 +18,14 @@ Make sure to restart to be sure everything is running correctly. Pipewire has a few config files. The needed folder structure can be created by the following command for a global setup. -```sh -sudo mkdir -p /etc/pipewire/ && sudo mkdir -p /etc/wireplumber/wireplumber.conf.d/ && sudo cp /usr/share/pipewire/*.conf /etc/pipewire/ && sudo cp /usr/share/wireplumber/wireplumber.conf.d/* /etc/wireplumber/wireplumber.conf.d/ +```sh +sudo mkdir -p /etc/pipewire/ && sudo mkdir -p /etc/wireplumber/wireplumber.conf.d/ && sudo cp /usr/share/pipewire/*.conf /etc/pipewire/ && sudo cp /usr/share/wireplumber/wireplumber.conf.d/* /etc/wireplumber/wireplumber.conf.d/ ``` It can also be done locally for the user with the following, alternative setup. -```sh -mkdir -p ~/.config/pipewire/ && mkdir -p ~/.config/wireplumber/wireplumber.conf.d/ && cp /usr/share/pipewire/*.conf ~/.config/pipewire/ && cp /usr/share/wireplumber/wireplumber.conf.d/* ~/.config/wireplumber/wireplumber.conf.d/ +```sh +mkdir -p ~/.config/pipewire/ && mkdir -p ~/.config/wireplumber/wireplumber.conf.d/ && cp /usr/share/pipewire/*.conf ~/.config/pipewire/ && cp /usr/share/wireplumber/wireplumber.conf.d/* ~/.config/wireplumber/wireplumber.conf.d/ ``` ## Usage @@ -91,6 +91,12 @@ pw-loopback -C This section focusses on the temporary and permanent creation and removal of virtual devices like virtual sinks and sources aswell as coupled nodes like loopbacks. +Please note that problems may occur if [EasyEffects](/wiki/linux/easyeffects.md) is used in +combination with virtual devices. +This mostly is based upon standard configuration. +Most importantly stream devices may have problems as explained in the +[corresponding section](#problems-with-input-an-output-of-loopback-devices). + #### Creating a Null Device This section will focus on the creation of a dummy device. @@ -140,7 +146,7 @@ pactl load-module module-null-sink media.class=Audio/Sink sink_name=null-sink-0 This will return an id that can be used to remove the sink with the following command. -```sh +```sh pactl unload-module ``` @@ -207,7 +213,7 @@ and [the official website](https://docs.pipewire.org/page_module_loopback.html). An application loopback can be created permanently by creating a `.conf` file inside the `~/.config/pipewire/pipewire.conf.d` directory with the following lines. -```txt +```txt context.modules = [{ name = libpipewire-module-loopback args = { @@ -239,6 +245,17 @@ running applications which will loopback the sound to the selected output device This section will focus on errors and the fixing of errors of Pipewire. +### Problems with Input an Output of Loopback Devices + +If the input and output of devices of the types `Stream/Output/Audio` and `Stream/Input/Audio` +automatically switches back to [EasyEffects](/wiki/linux/easyeffects.md) then EasyEffects is not +configured correctly to use with such devices. +This also can lead to problems with using [loopback](#loopback-input) and other +[virtual devices](#virtual-devices). +It can easily be fixed by not processing inputs and outputs automatically. +This is described in depth +[the corresponding section of the EasyEffects entry](/wiki/linux/easyeffects.md#process-all-input-and-output-streams). + ### Fix Crackling Crackling can occur in various situations. @@ -250,12 +267,12 @@ In `alsa-vm.conf` the `suspend_timeout_seconds` have to be set to `0` like the f show. This also shows the general structure but only the line starting with `session` is to be added. -```txt +```txt monitor.alsa.rules = [ - { - actions = { - update-props = { + { + actions = { + update-props = { session.suspend-timeout-seconds = 0 } ] @@ -264,13 +281,13 @@ monitor.alsa.rules = [ Another possibility for crackling to occur is when the allowed rates are mismatched. In `pipewire.conf` locate the following line. -```txt +```txt #default.clock.allowed-rates = [ 48000 ] ``` Change this line to look like the following. -```txt +```txt default.clock.allowed-rates = [ 44100 48000 ] ``` @@ -283,7 +300,7 @@ api.alsa.headroom = 2048 Change it to look like the following line. -```txt +```txt api.alsa.headroom = 0 ``` @@ -298,7 +315,7 @@ api.alsa.period-size = 1024 Change it to look like the following line. -```txt +```txt api.alsa.period-size = 256 ``` From 19897681266b8765c7e700cf264db9a021381cbe Mon Sep 17 00:00:00 2001 From: tiyn Date: Tue, 31 Mar 2026 08:34:48 +0200 Subject: [PATCH 4/4] Pipewire: added a guide on virtual microphone --- wiki/linux/pipewire.md | 79 +++++++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 16 deletions(-) diff --git a/wiki/linux/pipewire.md b/wiki/linux/pipewire.md index 15e1711..251f7ef 100644 --- a/wiki/linux/pipewire.md +++ b/wiki/linux/pipewire.md @@ -97,11 +97,11 @@ This mostly is based upon standard configuration. Most importantly stream devices may have problems as explained in the [corresponding section](#problems-with-input-an-output-of-loopback-devices). -#### Creating a Null Device +#### Creating a Virtual Sinks -This section will focus on the creation of a dummy device. +This section will focus on the creation of a virtual sink. That is a virtual device that can be selected as output but is not used by default. -This can be useful to record applications as their sound can cleanly be passed to the dummy device +This can be useful to record applications as their sound can cleanly be passed to the virtual sink which will eliminate other applications sounds. If the goal is to record and listen to an application at the same time navigate to [the application loopback section](#creating-an-application-loopback) @@ -109,7 +109,7 @@ If the goal is to record and listen to an application at the same time navigate The source for this section of the entry is derived by [Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#single-nodes). -A dummy device, or null sink, can be created permanently by creating a `.conf` file inside the +A virtual sink can be created permanently by creating a `.conf` file inside the `~/.config/pipewire/pipewire.conf.d` directory with the following lines. @@ -118,8 +118,8 @@ context.objects = [ { factory = adapter args = { factory.name = support.null-audio-sink - node.name = "null-sink-0" - node.description = "Null Sink 0" + node.name = "virtual-sink-0" + node.description = "Virtual Sink 0" media.class = Audio/Sink audio.position = [ FL FR ] monitor.channel-volumes = true @@ -138,13 +138,15 @@ Multiple devices can be created by creating different files in the directory. If the null sink is only needed temporarily (until the next restart) the following line can be used to create it. -Use different `sink_name`s to create multiple dummy devices. +To create multiple virtual sinks different values for the name of the sink have to be used. +In the following example `` is a placeholder for the name of the sink. ```sh -pactl load-module module-null-sink media.class=Audio/Sink sink_name=null-sink-0 channel_map=stereo +pactl load-module module-null-sink media.class=Audio/Sink sink_name= channel_map=stereo ``` -This will return an id that can be used to remove the sink with the following command. +This will return an ID that can be used to remove the sink with the following command. +`` is the placeholder for the ID. ```sh pactl unload-module @@ -172,12 +174,12 @@ context.modules = [ capture.props = { media.class = "Stream/Input/Audio" node.name = "device-loopback-1-recording" - node.description = "Device-Loopback 1 Recording" + node.description = "Device Loopback 1 Recording" } playback.props = { media.class = "Stream/Output/Audio" node.name = "device-loopback-1-playback" - node.description = "Device-Loopback 1 Playback" + node.description = "Device Loopback 1 Playback" } audio.volume = 0.5 audio.mute = true @@ -192,7 +194,7 @@ The part called `Device-Loopback 1 Recording` in the example config can be found tab. There the device to loopback can be selected. The second part called `Device-Loopback 1 Playback` is available under the `Playback` tab and -allows to switch the selection of the output device. +allows switching the selection of the output device. #### Creating an Application Loopback @@ -201,7 +203,7 @@ In this section an application loopback is defined as a loopback that takes an a This can be useful to record applications as their sound can cleanly be passed to the sink sink of the applicatino loopback which will eliminate other applications sounds. If the goal is to record and not listen to the application at the same time navigate to -[the null device section](#creating-a-null-device). +[the null device section](#creating-a-virtual-sinks). Alternatively the null device can also be selected as a output device for the playback part of the application loopback which makes it easily and seemlessly possible to switch between listening in and not listening without changing the device that is recorded by the capturing program. @@ -221,12 +223,12 @@ context.modules = [{ capture.props = { media.class = "Audio/Sink" node.name = "application-loopback-1-sink" - node.description = "Application-Loopback 1 Sink" + node.description = "Application Loopback 1 Sink" } playback.props = { media.class = "Stream/Output/Audio" node.name = "application-loopback-1-playback" - node.description = "Application-Loopback 1 Playback" + node.description = "Application Loopback 1 Playback" } } }] @@ -237,10 +239,55 @@ mixer like [pavucontrol](#volume-control). The part called `Application-Loopback 1 Sink` in the example config can be found in the `Output Devices` tab. The second part called `Application-Loopback 1 Playback` is available under the `Playback` tab and -allows to switch the selection of the output device. +allows switching the selection of the output device. Also in the `Playback` tab `Application-Loopback 1 Sink` can be selected as an output for currently running applications which will loopback the sound to the selected output device. +#### Creating Virtual Sources + +This section will focus on the creation of a virtual source. +That is a virtual device that can be selected as input but is not used by default. +This can be useful to pass sound to a program that only accepts microphones by default. +If different sources have to be bundled first an application loopback can be used. +A guide on the creation of it is in +[the application loopback section](#creating-an-application-loopback). + +A virtual source can be created permanently by creating a `.conf` file inside the +`~/.config/pipewire/pipewire.conf.d` directory with the following lines. + + +```txt +context.modules = [ + { + name = libpipewire-module-loopback + args = { + audio.position = [ FL FR ] + + capture.props = { + media.class = "Stream/Input/Audio" + node.name = "virtual-source-1-recording" + node.description = "Virtual Source 1 Recording" + } + + playback.props = { + media.class = "Audio/Source" + node.name = "virtual-source-1-source" + node.description = "Virtual Source 1 Source" + } + } + } +] +``` + +Multiple devices can be created by creating different files in the directory. + +The created virtual source is made up by two parts that can be found in different places inside a +mixer like [pavucontrol](#volume-control). +The part called `Virtual Source 1 Source` in the example config can be found in the `Input Devices` +tab. +The second part called `Virtual Source 1 Recording` is available under the `Recording` tab and +allows switching the selection of the output or input to feed into the virtual microphone. + ## Troubleshooting This section will focus on errors and the fixing of errors of Pipewire.