Hacer que la computadora emita un pitido de forma remota en el altavoz incorporado

28

¿Cómo puedo hacer remotamente (SSH) hacer que mi computadora emita un pitido de Linux (altavoz incorporado, ya que no hay externos)? Tengo ubuntu 9.04 y puedo instalar paquetes adicionales si es necesario. Esto sería bueno para encontrar una determinada casilla si tiene más de una parada y olvidó qué IP es qué casilla.

wsd
fuente
11
Espero que su pregunta no sea realmente esta caricatura en el trabajo: xkcd.com/530
Telemachus
1
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 esta pregunta es más antigua que cualquiera de esas.
wsd
@wsd No implicaba duplicados y el consenso actual es cerrar por "calidad": meta.stackexchange.com/questions/147643/… Dado que la "calidad" no es medible, solo voy por votos positivos. ;-) Probablemente se trata de qué pregunta golpeó las mejores palabras clave de Google novato en el título.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 gracias por la aclaración :)
wsd

Respuestas:

23

Tratar:

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

Es posible que primero tenga que cargar el módulo del kernel para el altavoz incorporado (por ejemplo, si el módulo fue incluido en la lista negra de la carga automática):

sudo modprobe pcspkr
John T
fuente
Esto funcionó mientras que el comando de pitido no. Acabo de configurar esto para que se ejecute en una máquina de compañeros de trabajo. porque yo en seq 1 10000; do echo -e '\ a'> / dev / console; dormir 1; hecho
Nick Stinemates
No hizo un sonido.
Nick Stinemates
Esto funciona bien en CentOS / RHEL, no pude encontrar ningún paquete de pitidos.
plasmid87
@NickStinemates Asegúrate de tener un altavoz para PC en tu placa base
dykeag
¡Esta es la solución más fácil! Además, lo siento por aceptar solo 9 años de retraso.
wsd
14

primero:

modprobe pcspkr

luego soluciones del tema, como

ssh user@host
beep
maizy
fuente
(En cuanto a modprobe: ¿ ver cómo hacer que suene el pitido? Para algunos detalles.)
Arjan
Necesitabasudo modprobe pcskr
IanVaughan
6

Desde la página de manual de sonido en mi máquina Ubuntu:

IOCTL WACKINESS

Algunos usuarios encontrarán una situación en la que el pitido muere con una queja de ioctl (). La razón de esto, como Peter Tirsek fue lo suficientemente amable como para señalarme, proviene de cómo el núcleo maneja el intento de pitido de tocar (para los no programadores: ioctl es una especie de función general que te permite tocar cosas que no tiene otro mecanismo de punteo predefinido) el tty, que es cómo suena. La historia corta es que el núcleo verifica que:

  • eres el superusuario

  • eres dueño del tty actual

Lo que esto significa es que la raíz siempre puede hacer que suene la señal sonora (¡que yo sepa!), Y que cualquier usuario local puede hacerla funcionar, PERO un usuario remoto no root no puede usar la señal sonora en su estado natural.

Esta podría ser la razón por la que el pitido se niega a funcionar de forma remota. Puede verificar si esta es la causa raíz invocando ssh con la opción -t , que fuerza la asignación de pseudo-tty.

Una solución menos deseable sería crear una secuencia de comandos de envoltura que ejecute un pitido y otorgar permisos de raíz a esta secuencia de comandos . Si la ejecución de este script sobre ssh produce un pitido, sabrá que el problema es la falta de un terminal de control.

nagul
fuente
3

Sólo tipo

ssh user@remote-machine
beep

Probado en Ubuntu Desktop 8.x, esto emitirá un pitido en el servidor remoto, incluso si no hay una sesión local activa en ese servidor (por lo tanto: incluso si la pantalla de inicio de sesión de GNOME se muestra en el monitor conectado al servidor).

Mira esto

man beep

para más detalles. En Debian / Ubuntu, el paquete de pitidos debe instalarse y los altavoces no deben silenciarse.

Kim
fuente
Me pregunto por qué escribiste "los altavoces no deben silenciarse" . Mi caja de escritorio de Ubuntu no tiene controladores de sonido instalados, y de hecho, ambas beepy echotodas las opciones usan mi altavoz incorporado. Aunque man beepdice claramente "sonar el altavoz de la PC de muchas maneras" , no he verificado qué sucede si uno tiene los controladores de sonido instalados.
Arjan
Al menos en mi PC puedo silenciar los altavoces con gnome-volume-control. Y como no puedo soportar el pitido, generalmente lo hago.
Kim
Entonces, beep¿no usa el altavoz incorporado en su sistema? ¿O el control de volumen (que está desactivado en mi caja de Ubuntu) también controla el altavoz incorporado? Puede ser divertido ver si las echosoluciones se comportan de manera diferente.
Arjan
gnome-volume-control se puede usar para controlar el altavoz incorporado por separado. ¿Qué quieres decir con discapacitados? ¿Qué sucede cuando ejecuta gnome-volume-control desde una línea de comando?
Kim
Lo siento, acabo de borrar esa instalación 10.8. Deshabilitado como en: no hay controladores de sonido instalados y, por lo tanto, una señal de stop en la parte superior del icono de sonido en el menú GNOME.
Arjan
3

Puedes usar:

ssh user @ máquina remota
sudo sh -c "echo -e '\ a'> / dev / tty1"


Tenga en cuenta que lo siguiente no funcionaría. Falla incluso antes de solicitar la sudocontraseña porque el bashshell ( ) está haciendo la redirección, y ese shell todavía se ejecuta como el usuario normal, no como root:

ssh user @ máquina remota
sudo echo -e '\ a'> / dev / tty1
-bash: / dev / tty1: permiso denegado
ls -la / dev / tty1
crw ------- 1 raíz raíz 4, 1 2009-09-28 16:33 / dev / tty1
Thomas
fuente
3

Este comando hará el truco:

modprobe pcspkr; echo -e "\a" > /dev/console;
Sayajin
fuente
0

Ejecute un comando remoto en la máquina remota:

rsh hostname / usr / bin / echo '\ a'
o
ssh user @ remotehost / usr / bin / echo '\ a'

harrymc
fuente
¿No se necesitaría la redirección a algún terminal remoto como sugirió Thomas, para que el servidor remoto emita un pitido, en lugar del cliente SSH local?
Arjan
También se puede hacer: echo "\ a"> 'tty'.
harrymc
echo -e "\a" > /dev/ttyseguramente emitiría un pitido en el cliente SSH, no en el altavoz incorporado en el servidor :-) tty0, tty1y consoleparece funcionar, como se muestra en otras respuestas.
Arjan
0

O simplemente puede ejecutar lo siguiente una vez:

chmod o + x `que pitido`

Esto permitirá que todos los usuarios utilicen el ejecutable del pitido, que probablemente sea lo suficientemente seguro en la mayoría de los casos.

Arjan
fuente