PC-speaker в Linux, или как сделать beep из консоли встроенным динамиком ПК

Еще со времен DOS можно было свистеть, гудеть и пикать встроенным динамиком компьютера, и даже симфонии играть. Сейчас это особо не нужно, ибо везде звуковые карты, динамики и прочая мультимедия. Но иногда PC-speaker нужная и полезная вещь, способная сигнализировать о чем либо, например, о разрыве соединения с Интернетом на домашнем сервере, к которому не подключен монитор, или о том, что торрент докачался. Да и вообще, способов, как можно применить спикер — множество. Даже симфонии можно играть.

Включение динамика

Зачастую, PC-speaker в линуксе отключен, точнее, не загружен модуль ядра, который им управляет. Обычно это модуль pcspkr, хотя, в некоторых источниках написано, что может быть и другой модуль snd-pcsp. У меня оказался первый.
Проверить, загружен ли соответствующий модуль ядра можно командами
lsmod |grep pcspkr и lsmod |grep snd-pcsp соответственно.
Если команда ничего не выдала, то модуль не загружен.
Если выдала что-то похожее, значит, модуль загружен:

>lsmod |grep pcspkr
pcspkr                  1448  0

Если модуль не загружен, нужно попробовать его загрузить:

modprobe pcspkr
или
modprobe snd-pcsp

Если команда не выдала ошибки, модуль загружен. Можно проверить с помощью команды lsmod. Если случилась ошибка, то печально. Модуль, скорее всего, придется собирать. Ну, или не так печально, а даже наоборот — модуль встроен в ядро, и PC-speaker по умолчанию включен. Попробуйте простой beep.

Простой beep

Для простого beep достаточно отправить на консоль символ с кодом 007, ASCII-символ BEL

echo -ne '\007'

Способ может не сработать из SSH-терминала, либо из терминала X. Терминал SSH «булькнет» не на удаленном компьютере, а на локальном, а X-server может перенаправить beep на колонки, вместо PC-speaker’a

Утилита beep

Простые звуки и даже целые мелодии можно играть на спикере утилитой beep.
На рабочей машине она уже была в комплекте ОС, на Ubuntu ее можно установить командой apt-get install beep, а в Slackware она ставится через Sbopkg
Проект имеется на Github, можно собрать и из исходников

Примеры вызова:

beep

Без параметров издаст стандартный beep

beep -f 500 -l 1000

Выдаст звук частотой 500 Гц, продолжительностью 1 секунду (1000 миллисекунд)

Пример скрипта, играющего тему Die Gedanken Sind Frei из ролика в начале заметки.

Ссылки

Больше мелодий и ссылок на готовые скрипты Копия
How do I make my pc speaker beep. Еще больше про то, как можно пискнуть спикером.

3 Responses to PC-speaker в Linux, или как сделать beep из консоли встроенным динамиком ПК

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *