Звук в Linux

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Звук в Linux

Непрочитанное сообщение Olej » 16 окт 2023, 15:42

Olej писал(а):
15 окт 2023, 22:26
Pulse Audio здесь не запущен ... может после каких-то обновлений:

Код: Выделить всё

olej@galliumos:~$ systemctl --user --no-pager --full status pulseaudio.service
● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
Но это вовсе не означает что PulseAudio у них не запущен!
Он запущен, но не как сервис systemctl --user ... , а как демон PulseAudio.

Код: Выделить всё

olej@galliumos:~$ ps -A | grep pulseaudio
18780 ?        00:00:00 pulseaudio
Возможно, так делалось в более ранних версиях:

Код: Выделить всё

olej@galliumos:~$ uname -r
4.16.18-galliumos
Вот:

Код: Выделить всё

olej@galliumos:~$ grep . /proc/asound/{cards,modules}
/proc/asound/cards: 0 [PCH            ]: HDA-Intel - HDA Intel PCH
/proc/asound/cards:                      HDA Intel PCH at 0xd0714000 irq 91
/proc/asound/cards: 1 [chtmax98090    ]: chtmax98090 - chtmax98090
/proc/asound/cards:                      GOOGLE-Glimmer-1.0-Glimmer
/proc/asound/modules: 0 snd_hda_intel
/proc/asound/modules: 1 snd_soc_sst_cht_bsw_max98090_ti

Код: Выделить всё

olej@R420:~$ pactl info
Строка сервера: /run/user/1000/pulse/native
Версия протокола библиотеки: 35
Версия протокола сервера: 35
Выполняется локально: да
Номер клиента: 19
Размер блока памяти: 65472
Имя пользователя: olej
Имя хоста: R420
Имя сервера: pulseaudio
Версия сервера: 15.99.1
Спецификация отсчётов по умолчанию: s16le 2-канальный 4410
Схема каналов по умолчанию: front-left,front-right
Аудиоприёмник по умолчанию: alsa_output.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo
Источник по умолчанию: alsa_input.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo
Cookie: 5211:1dc3
А вот выполнение воспроизведения именно через PulseAudio:

Код: Выделить всё

olej@galliumos:~$ aplay -D pulse /usr/share/sounds/alsa/Side_Left.wav
Воспроизведение WAVE '/usr/share/sounds/alsa/Side_Left.wav' : Signed 16 bit Little Endian, Частота 48000 Гц, Моно

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Звук в Linux

Непрочитанное сообщение Olej » 16 окт 2023, 19:55

Olej писал(а):
16 окт 2023, 13:09
Настройка звука в Linux - это проблема "ещё та"...
Магия pipewire. Настройка качественного звука в Linux
16 октября 2022,
В настоящее время актуальными системами реализации звука в Linux принято считать:

ALSA — это одна из старейших звуковых подсистем ядра Linux, которая по своей сути является встроенным звуковым драйвером на уровне ядра Linux. Обеспечивает минимальные задержки, но очень капризна при работе c современными беспроводными устройствами и с несколькими звуковыми потоками.
PulseAudio — звуковой сервер/ретранслятор расположенный между ядром системы и физическими устройствами ввода и вывода звука. Позволяет управлять множеством звуковых потоков, изменять их частоту, работать с беспроводными устройствами. В общем, лишён почти всех недостатков ALSA, но прилично искажает изначальный сигнал и имеет весомые задержки.
Pipewire — современная реализация звукового сервера/ретранслятора, что по принципу работы полностью аналогичен PulseAudio. Лишён почти всех недостатков Pulseaudio и имеет обширную совместимость с множеством устройств прямо из коробки.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Звук в Linux

Непрочитанное сообщение Olej » 16 окт 2023, 21:52

Olej писал(а):
16 окт 2023, 19:55
Магия pipewire. Настройка качественного звука в Linux
Интересно то, что у них там происходит в Fedora 38:

Код: Выделить всё

[olej@xenix ~]$ uname -a
Linux xenix.localdomain 6.5.6-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct  6 19:02:35 UTC 2023 x86_64 GNU/Linux

Код: Выделить всё

[olej@xenix ~]$ inxi -Axxx
Audio:
  Device-1: Intel Crystal Well HD Audio vendor: Fujitsu Solutions
    driver: snd_hda_intel v: kernel bus-ID: 00:03.0 chip-ID: 8086:0d0c
    class-ID: 0403
  Device-2: Intel 8 Series/C220 Series High Definition Audio
    vendor: Fujitsu Solutions driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
    chip-ID: 8086:8c20 class-ID: 0403
  Device-3: Logitech 960 Headset driver: hid-generic,snd-usb-audio,usbhid
    type: USB rev: 1.1 speed: 12 Mb/s lanes: 1 bus-ID: 2-6:2 chip-ID: 046d:0a45
    class-ID: 0300
  API: ALSA v: k6.5.6-200.fc38.x86_64 status: kernel-api
  Server-1: PipeWire v: 0.3.82 status: active (process) with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin 4: pw-jack type: plugin
:-o ... т.е. им PulseAudio уже вообще не нужен?

Код: Выделить всё

[olej@xenix ~]$ ps -A | grep pipewire
   1825 ?        00:00:02 pipewire
   1827 ?        00:00:01 pipewire-pulse

[olej@xenix ~]$ ps -A | grep pulseaudio
[olej@xenix ~]$

Код: Выделить всё

[olej@xenix ~]$ dnf list pipewire
Последняя проверка окончания срока действия метаданных: 0:00:17 назад, Пн 16 окт 2023 21:46:53.
Установленные пакеты
pipewire.x86_64                                                         0.3.82-1.fc38                                                          @updates
Имеющиеся пакеты
pipewire.i686                                                           0.3.82-1.fc38                                                          updates 

Код: Выделить всё

[olej@xenix ~]$ dnf list pulseaudio
Последняя проверка окончания срока действия метаданных: 0:00:24 назад, Пн 16 окт 2023 21:46:53.
Имеющиеся пакеты
pulseaudio.x86_64                                                          16.1-4.fc38                                                           fedora
И он (PulseAudio) там у них вообще не установлен :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Звук в Linux

Непрочитанное сообщение Olej » 16 окт 2023, 23:19

Olej писал(а):
16 окт 2023, 21:52
он (PulseAudio) там у них вообще не установлен
А вот чуть более "отстающая" по обновлениям система:

Код: Выделить всё

olej@R420:~$ uname -a
Linux R420 5.15.0-86-generic #96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 21.2
Release:	21.2
Codename:	victoria

Код: Выделить всё

olej@R420:~$ inxi -Axxx
Audio:
  Device-1: JMTek LLC. USB PnP Audio Device type: USB
    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 2-1.8:4 chip-ID: 0c76:1676
    class-ID: 0300 serial: 000000000000
  Sound Server-1: ALSA v: k5.15.0-86-generic running: yes
  Sound Server-2: PulseAudio v: 15.99.1 running: yes
  Sound Server-3: PipeWire v: 0.3.48 running: yes

Код: Выделить всё

olej@R420:~$ ps -A | grep pipewire
   2889 ?        00:00:00 pipewire
   2890 ?        00:00:00 pipewire-media-

Код: Выделить всё

olej@R420:~$ ps -A | grep pulseaudio
   2891 ?        00:32:41 pulseaudio

Код: Выделить всё

olej@R420:~$ aptitude search pipewire | grep ^i
i  gstreamer1.0-pipewire - GStreamer 1.0 plugin for the PipeWire multimedia server
i  libpipewire-0.3-0 - служба для обработки аудио и видео в реальном времени — библиотеки
i  libpipewire-0.3-common - libraries for the PipeWire multimedia server - common files
i  libpipewire-0.3-modules - libraries for the PipeWire multimedia server - modules
i  pipewire - audio and video processing engine multimedia server
i  pipewire-bin - PipeWire multimedia server - programs
i A pipewire-media-session - example session manager for PipeWire

Код: Выделить всё

olej@R420:~$ aptitude search pulseaudio | grep ^i
i  gstreamer1.0-pulseaudio - GStreamer plugin for PulseAudio (transitional package)
i A libkf5pulseaudioqt3 - Pulseaudio bindings library for Qt
i  pulseaudio - звуковой сервер PulseAudio
i  pulseaudio-module-bluetooth - Модуль Bluetooth для звукового сервера PulseAudio
i  pulseaudio-utils - Инструменты командной строки для звукового сервера PulseAudio

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Звук в Linux

Непрочитанное сообщение Olej » 17 окт 2023, 00:38

Olej писал(а):
16 окт 2023, 21:52
им PulseAudio уже вообще не нужен?
Мультимедиа сервер PipeWire
Обновлено 2023-07-11
PipeWire есть новый аудио и видео сервер. В основном для Wayland. Должен заменить другие видео-серверы.
Вот где "собака порылась" :!: :-o : Wayland ... см. Wayland vs X11
Вот почему у меня такая история в Fedora 38:

Код: Выделить всё

[olej@xenix Sound]$ uname -a
Linux xenix.localdomain 6.5.6-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct  6 19:02:35 UTC 2023 x86_64 GNU/Linux
Просто потому что у меня он с DE Cinnamon:

Код: Выделить всё

[olej@xenix Sound]$ ps -A | grep -i cinnamon
   1506 ?        00:00:20 cinnamon-sessio
   1910 ?        00:00:16 cinnamon-launch
   1975 ?        00:09:19 cinnamon
   2052 ?        00:00:15 cinnamon-killer
  26035 ?        00:00:03 cinnamon-screen
А Cinnamon не терпит Wayland :-D

Код: Выделить всё

[olej@xenix Sound]$ ps -A | grep -i xorg
   1478 tty1     00:07:03 Xorg

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Звук в Linux

Непрочитанное сообщение Olej » 17 окт 2023, 00:45

Olej писал(а):
17 окт 2023, 00:38
Вот почему у меня такая история в Fedora 38:
И вот он для запуска средствами systemd --user ...

Код: Выделить всё

[olej@xenix Sound]$ ls -l /usr/lib/systemd/user/pipewire*
-rw-r--r-- 1 root root 1191 окт 13 03:00 /usr/lib/systemd/user/pipewire-pulse.service
-rw-r--r-- 1 root root  172 окт 13 03:00 /usr/lib/systemd/user/pipewire-pulse.socket
-rw-r--r-- 1 root root 1002 окт 13 03:00 /usr/lib/systemd/user/pipewire.service
-rw-r--r-- 1 root root  136 окт 13 03:00 /usr/lib/systemd/user/pipewire.socket

Код: Выделить всё

[olej@xenix Sound]$ ls -l /usr/lib/systemd/user/pipewire*
-rw-r--r-- 1 root root 1191 окт 13 03:00 /usr/lib/systemd/user/pipewire-pulse.service
-rw-r--r-- 1 root root  172 окт 13 03:00 /usr/lib/systemd/user/pipewire-pulse.socket
-rw-r--r-- 1 root root 1002 окт 13 03:00 /usr/lib/systemd/user/pipewire.service
-rw-r--r-- 1 root root  136 окт 13 03:00 /usr/lib/systemd/user/pipewire.socket
Вот они оба и запущены:

Код: Выделить всё

[olej@xenix Sound]$ systemctl --user status pipewire
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Mon 2023-10-16 11:23:03 EEST; 13h ago
TriggeredBy: ● pipewire.socket
   Main PID: 1825 (pipewire)
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─1825 /usr/bin/pipewire

окт 16 11:23:03 xenix.localdomain systemd[1498]: Started pipewire.service - PipeWire Multimedia Service.

Код: Выделить всё

[olej@xenix Sound]$ systemctl --user status pipewire-pulse
● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Mon 2023-10-16 11:23:03 EEST; 13h ago
TriggeredBy: ● pipewire-pulse.socket
   Main PID: 1827 (pipewire-pulse)
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
             └─1827 /usr/bin/pipewire-pulse

окт 16 11:23:03 xenix.localdomain systemd[1498]: Started pipewire-pulse.service - PipeWire PulseAudio.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Звук в Linux

Непрочитанное сообщение Olej » 17 окт 2023, 13:35

Olej писал(а):
17 окт 2023, 00:38
Мультимедиа сервер PipeWire
PipeWire - что это и зачем?
4 сентября 2019 г.
Сегодня хочу немного поговорить о такой штуке, как PipeWire. Проект ещё молодой и активно развивающийся, потому информации в сети не так много. Как вы наверняка знаете, в Linux, для управления звуковыми потоками приложений, применяется звуковой сервер PulseAudio, написанный во второй половине нулевых печально знаменитым Леннартом Поттерингом. Дело в то, что сами по себе звуковые подсистемы Linux, такие как ALSA и почившая OSS, любили монопольно захватывать звуковую карту. Слушаете вы к примеру музыку через Amarok, и захотели включить ролик на ютубе. А там нет звука, потому что в этот момент звуковая карта занята плеером. Позднее конечно эту проблему решили частично, но всё же это было крайне неудобно. Нельзя было например играть в игру и слушать музыку одновременно. Для решения этой проблемы применялись звуковые сервера – для Гнома это был ESD, для KDE – aRTS. PulseAudio же стал стандартом, хотя первое время от него было больше вреда, чем пользы (сильная загрузка процессора, эпичные искажения звука). Плюс он позволяет гонять звук по сети, пользоваться Bluetooth-гарнитурами безо всякого пердолинга и много чего ещё. Но – это лишь звуковой сервер. И с видео он работать не умеет.
К примеру он включён по умолчанию в последних Федорах, а также используется для работы удалённого рабочего стола в GNOME на Wayland. Вим в настоящее время занят доработкой именно звуковой части PipeWire, и скорее всего новый релиз войдёт в состав Fedora 31. PipeWire можно рассматривать как очередной шаг в сторону стандартизации в Linux, и среди дистрибутивов Linux в частности.
Это на 2019 год.

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей