Дистанційно зробіть звуковий сигнал комп’ютера на вбудованому динаміку


28

Як я можу віддалено (SSH) зробити мій звуковий комп'ютер Linux (вбудований динамік, оскільки немає зовнішніх)? У мене є ubuntu 9.04 і при необхідності можу встановити додаткові пакети. Це було б добре для того, щоб знайти певний ящик, якщо у вас більше одного, що стоїть навколо, і ви забули, який саме IP - це який ящик.


11
Я сподіваюся, що ваше питання насправді не є цим мультфільмом на роботі: xkcd.com/530
Telemachus


1
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 це питання є старшим за будь-яке з них.
wsd

@wsd Я не мав на увазі дубліката, і поточний консенсус - це закриття на "якість": meta.stackexchange.com/questions/147643/… Оскільки "якість" не піддається вимірюванню, я просто проходжу додаткові оцінки. ;-) Ймовірно, зводиться до того, яке питання потрапило у кращі новачкові ключові слова Google.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 дякую за роз’яснення :)
wsd

Відповіді:


23

Спробуйте:

sudo sh -c "echo -e '\a' > /dev/console"

Можливо, вам доведеться спочатку завантажити модуль ядра для вбудованого динаміка (наприклад, якщо модуль був у чорному списку від автоматичного завантаження):

sudo modprobe pcspkr

Це працювало, поки команда звукового сигналу не виконувала. Я просто встановив це для роботи на машині колег. за я в seq 1 10000; do echo -e '\ a'> / dev / console; сон 1; зроблено
Нік Stinemates

Не видав звуку.
Нік Stinemates

Це добре працює на CentOS / RHEL, я не зміг знайти жодного звукового сигналу.
plazmid87

@NickStinemates Переконайтесь, що у вас на материнській платі є динамік ПК
dykeag

Це найпростіше рішення! Також вибачте за те, що затримали лише 9 років.
wsd


6

Із сторінки чоловікового сигналу на моїй машині Ubuntu:

МОКТЛЬКА СТІЛЬНІСТЬ

Деякі користувачі стикаються з ситуацією, коли звуковий сигнал помирає зі скаргою на ioctl (). Причина цього, оскільки Пітер Тірсек був досить приємний, щоб вказати на мене, випливає з того, як ядро ​​обробляє спробу сигналу звукового сигналу (для непрограмістів: ioctl - це якась функція загального лову, яка дозволяє тикати на речі, які не мають жодного іншого заздалегідь встановленого механізму тикання) tty, як це звучить. Коротка історія полягає в тому, що ядро ​​перевіряє, що:

  • ти суперпользователь

  • ви володієте поточним tty

Це означає, що root завжди може робити звуковий сигнал (наскільки мені відомо!), І що будь-який місцевий користувач може зробити звуковий сигнал, АЛЕ віддалений користувач, який не має кореня, не може використовувати звуковий сигнал у природному стані.

Це може бути причиною того, що звуковий сигнал відмовляється працювати віддалено. Ви можете перевірити, чи є це першопричиною, посилаючись на ssh за допомогою параметра -t , яка змушує виділити псевдо-tty.

Менш бажаним рішенням буде створення скрипту для обгортки, який виконує звуковий сигнал, та надання цього кореневого дозволу для сценарію . Якщо виконання цього сценарію над ssh належним чином видає звуковий сигнал, ви знаєте, що проблема полягає у відсутності контрольного терміналу.


3

Просто введіть

ssh user@remote-machine
beep

Випробуваний на Ubuntu Desktop 8.x, цей сигнал подаватиме звуковий сигнал на віддаленому сервері, навіть якщо на цьому сервері не активний локальний сеанс (таким чином: навіть якщо екран входу в GNOME відображається на моніторі, підключеному до сервера).

Погляньте

man beep

для отримання детальної інформації. У Debian / Ubuntu пакет звукових сигналів повинен бути встановлений, а динаміки не повинні вимикатись.


Цікаво, чому ви написали "динаміки не повинні вимкнути звук" . У моєму вікні Ubuntu Desktop не встановлено звукових драйверів, і справді в обох beepта інших echoваріантах використовується мій вбудований динамік. Хоча man beepчітко зазначено "звуковий сигнал ПК-динаміка будь-якою кількістю способів" , я не перевірив, що станеться, якщо на одному встановлені звукові драйвери.
Ар'ян

Принаймні, на моєму ПК я можу вимкнути динаміки за допомогою гнома-регулювання гучності. А оскільки я не витримую звукового сигналу, зазвичай це роблю.
Кім,

Отже, тоді beepне використовується вбудований динамік у вашій системі? Або регулювання гучності (яке вимкнено в моєму вікні Ubuntu) також керує вбудованим динаміком? Можливо, буде цікаво подивитися, чи echoрішення поводяться інакше, ніж.
Ар’ян

gnome-volume-control може використовуватися для управління вбудованим динаміком окремо. Що ви маєте на увазі під інвалідом? Що відбувається, коли ви запускаєте gnome-volume-control з командного рядка?
Кім,

Вибачте, щойно знищили 10,8 встановлення. Вимкнено як у: не встановлено жодних драйверів звуку, а отже, стоп-знак у верхній частині значка звуку в меню GNOME.
Ар'ян

3

Ви можете використовувати:

ssh user @ remote-machine
sudo sh -c "echo -e '\ a'> / dev / tty1"


Зауважте, що наступне не працює. Він не вдається навіть перед запрошенням sudoпароля, оскільки bashоболонка ( ) виконує перенаправлення, і ця оболонка все ще працює як звичайний користувач, а не як root:

ssh user @ remote-machine
sudo echo -e '\ a'> / dev / tty1
-bash: / dev / tty1: Дозвіл відхилено
ls -la / dev / tty1
crw ------- 1 корінь кореня 4, 1 2009-09-28 16:33 / dev / tty1


0

Запустіть віддалену команду на віддаленій машині:

rsh ім'я хоста / usr / bin / echo '\ a'
або
ssh user @ remotehost / usr / bin / echo '\ a'


Хіба не потрібно перенаправлення на якийсь віддалений термінал, як запропонував Томас, щоб отримати віддалений сервер на сигнал, а не на локальний клієнт SSH?
Ар'ян

Можна також зробити: echo "\ a"> 'tty ".
harrymc

echo -e "\a" > /dev/ttyбезумовно, звуковий сигнал для клієнта SSH, а не на вбудованому динаміку на сервері :-) tty0, tty1і, consoleздається, працює, як показано в інших відповідях.
Ар'ян

0

Або ви можете просто запустити наступне один раз:

chmod o + x `який звуковий сигнал`

Це дозволить усім користувачам використовувати виконуваний звуковий сигнал, що, мабуть, є досить безпечним у більшості випадків.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.