PC speaker (Русский) - ArchWiki

Jump to content

# PC speaker (Русский)

4 languages

- English
- Español
- 日本語
- 中文（简体）

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи PC speaker. Дата последней синхронизации: 18 ноября 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- Модули ядра
- Advanced Linux Sound Architecture (Русский)

Начиная с первых IBM PC, большинство компьютеров имеют встроенный динамик (PC speaker, «пищалка»), который может издавать звуковые сигналы. Этот динамик не способен обеспечить высокое качество звука и лишь используется для обратной связи в виде звуковых сигналов. Некоторые программы, например, веб-браузеры, редакторы и терминалы, могут издавать звуковые сигналы, которые могут как нравиться, так и не нравиться пользователю. Поэтому данная статья описывает, как настроить или даже отключить такие звуковые сигналы.

Для случаев, когда нет звуковой карты или динамиков, и требуется простое аудио оповещение, смотрите раздел #Beep.

## Механизм

Динамик ПК обычно представляет собой физическое устройство, подключаемое к разъёму для передней панели на материнской плате. Некоторые производители плат вообще не комплектуют их динамиком, а у некоторых динамик может быть припаян прямо на плате. На ноутбуках обычно нет такого динамика, а звуковой сигнал выводится на обычные внутренние динамики ноутбука. В некоторых случаях звуковой сигнал подаётся на обычный выход (колонки, наушники) звуковой карты и может оказаться неожиданно громким.

Обычно BIOS при загрузке издаёт один короткий звуковой сигнал во время POST. В более современных моделях материнских плат звуковой сигнал POST отсутствует ради более быстрой загрузки в ОС. BIOS обычно позволяет включить или выключить звуковые сигналы POST, но не позволяет полностью отключить встроенный динамик.

После загрузки Linux и модуля ядра `pcspkr` встроенный динамик может использоваться окружением, вызываться пользователем вручную и в некоторой степени настраиваться. Поскольку он управляется напрямую процессором, а также в силу того, что он предназначен только для воспроизведения звуковых сигналов, его нельзя использовать для воспроизведения аудиофайлов. Но если очень хочется, то можно вместо модуля `pcspkr` попробовать snd-pcsp-dkmsAUR, который реализует примитивный аудиовывод.

## Отключение PC Speaker

Отключение конкретного источника звука, в то время, когда остальные продолжают работать, возможно только в том случае, если мы может определить какая часть окружения сгенерировала конкретный звук. Это позволяет выборочно настраивать звуки. Пожалуйста, размещайте свои примеры настроек и конфигураций, которые могут оказаться полезными для других пользователей.

### Физически

После удаления встроенного динамика система не сможет издавать звуковые сигналы. На некоторых платах можно физически отсоединить динамик от неё. Некоторые производители устанавливают джампер для его отключения.

Важно: Убирать встроенный динамик обычно не рекомендуется, поскольку он полезен при диагностике проблем загрузки: он может выдать специальный звуковой сигнал, значение которого можно узнать в документации платы. Вместо этого лучше отключить звуковые сигналы POST в настройках BIOS и внести модуль ядра в чёрный список, как описано ниже. Если вы всё равно хотите убрать его физически, крайне рекомендуется держать его неподалёку на случай, если он понадобится.

### Глобально

PC speaker может быть отключен выгрузкой модулей ядра `pcspkr` и `snd_pcsp`:

Примечание: Это отключает только PC speaker, а не весь звук в системе.

    # rmmod pcspkr
    # rmmod snd_pcsp

Помещение в чёрный список модулей `pcspkr` и `snd_pcsp` предотвратит их загрузку через udev при загрузке системы. Создайте такой файл:

    /etc/modprobe.d/nobeep.conf

    blacklist pcspkr
    blacklist snd_pcsp

Размещение в чёрном списке в командной строке ядра — ещё один способ добиться похожего эффекта. Просто добавьте `module_blacklist=pcspkr,snd_pcsp` в параметры ядра в настройках вашего загрузчика.

### Терминал

Вы можете добавить эту команду в `/etc/profile` или в отдельный файл вроде `/etc/profile.d/disable-beep.sh`:

    setterm -blength 0

Другой способ - это раскомментировать или добавить строку в `/etc/inputrc` или `~/.inputrc`:

    set bell-style none

#### Less

Для отключения PC speaker при использовании утилиты less, вы можете запустить её с параметром `less -q`, чтобы заглушить PC speaker по достижении конца постраничного вывода, или `less -Q` чтобы отключить повсеместно. Для получения справки, выполните `man -P "less -Q"` или настройте переменные окружения `$MANPAGER` или `$PAGER`.

Также, вы можете добавить следующие строки в ваш .bashrc:

    alias less='less -Q'
    alias man='man -P "less -Q"'

### Xorg

    $ xset -b

Можно добавить эту команду в файл запуска, например `/etc/xprofile`, чтобы сделать её постоянной; смотрите статью xprofile (Русский).

### ALSA

Для большинства звуковых карт PC speaker отображается как канал ALSA, и может называться как PC Speaker, PC Beep, или Beep. Чтобы заглушить динамик, воспользуйтесь alsamixer или amixer.

    $ amixer set 'PC Speaker' 0% mute

Для включения звука обратитесь к странице руководства Advanced Linux Sound Architecture#Unmuting the channels.

Совет: Если вы используете PulseAudio и канал PC speaker не отображается в устройствах ALSA по умолчанию, попробуйте выбрать устройства соответствующей звуковой карты - прокси-контроль PulseAudio может не отображать PC speaker

### GNOME

При использовании GSettings:

    $ gsettings set org.gnome.desktop.wm.preferences audible-bell false

### KDE Plasma

Настроить звуковые сигналы можно через Параметры системы > Специальные возможности > Сигнал.

### Cinnamon

В Cinnamon, похоже, используется звук «падающей капли». Для его отключения измените в gsettings(1):

    $ gsettings set org.cinnamon.desktop.wm.preferences audible-bell false

### GTK

Добавьте следующую строку в `~/.gtkrc-2.0`:

    gtk-error-bell = 0

Добавьте такую же строку в секцию [Settings] файла `$XDG_CONFIG_HOME/gtk-3.0/settings.ini`:

    [Settings]
    gtk-error-bell = 0

Подробно это рассмотрено в Gnome Developer Handbook.

### PulseAudio

В качестве реакции на X11 bell events можно воспроизводить звук через PulseAudio; смотрите PulseAudio (Русский)#Сигналы событий X11.

## Beep

Пользователь может запустить короткий звуковой сигнал, когда он работает в виртуальной консоли; смотрите Wikipedia:Bell character#Usage.

Beep - это улучшенная программа для подачи звукового сигнала посредством PC speaker. Она может оказаться востребована в ситуациях, когда звуковая карта отсутствует или нет доступных динамиков, но требуется простое звуковое уведомление.

### Установка

Установите пакет beep.

Возможно, вам потребуется включить звук канала PC speaker в ALSA.

### Запуск от имени обычного пользователя

Для управления встроенным динамиком `beep` использует `/dev/input/by-path/platform-pcspkr-event-spkr`. Чтобы получить к нему доступ как обычный пользователь (не root), нужно задать соответствующие разрешения. Создайте файл `/etc/udev/rules.d/70-pcspkr-beep.rules` с таким правилом:

    ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", TAG+="uaccess"

Это позволит любому пользователю, работающему в активной в данный момент виртуальной консоли, использовать PC speaker.

Другой вариант — создать новую группу пользователей (например, `beep`) с соответствующим правилом для установки нужных разрешений на файл устройства:

    ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", GROUP="beep", MODE="0620"

Тогда любой пользователь, входящий в группу `beep`, сможет управлять динамиком.

Чтобы принудительно перезагрузить правила и применить новые права без перезагрузки, выполните:

    # udevadm control --reload && rmmod pcspkr && modprobe pcspkr

### Советы и рекомендации

В то время, как большинство пользователей устраивает звуковой сигнал по умолчанию, некоторые, возможно, захотят его слегка изменить. Следующий пример позволит сделать звуковой сигнал выше и короче, и повторит два раза.

    # beep -f 5000 -l 50 -r 2

## Смотрите также

- xset(1), setterm(1), bash(1)
- https://github.com/NaWer/beep и https://github.com/ShaneMcC/beeps — репозитории, в которых собраны bash-скрипты, воспроизводящие различную музыку с помощью beep

Category:

- Sound (Русский)