Underc0de

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: ANTRAX en Junio 23, 2014, 08:33:14 AM

Título: Comando beep, sacandole partido al pcspeaker
Publicado por: ANTRAX en Junio 23, 2014, 08:33:14 AM
(http://www.linuxhispano.net/wp-content/uploads/2014/04/pc_speaker1.png)

El comando beep es un pitido que hace lo que se espera, que suene.

Con beep sonará el altavoz interno del PC.

Beep permite controlar el tono, la duración y repeticiones. Se puede ejecutar directamente en la línea de comandos, pero su trabajo consiste en "vivir" dentro de scripts de shell / perl. Dicho de otro modo, podemos insertar beep en nuestros scripts para hacerlos mas interactivos o como aviso sonoro de un evento. Esto hace que el monitoreo del sistema sea mucho más informativo.

Se controla fácilmente a través de las opciones de línea de comandos. Como norma, el comando viene por defecto en Debian y demás distribuciones, aunque el módulo está en la lista negra.

Vamos primero a ver si tenemos instalado beep en la maquina (emitirá el característico sonido):

Código (bash) [Seleccionar]
$ beep

Si nos devuelve que no lo tenemos instalado, lo instalamos con:

Código (bash) [Seleccionar]
$ sudo apt-get install beep

Volvemos a introducir el comando en el terminal, si no suena el característico pitido, lo tendremos que sacar de lista negra con el comando modprobe pcspkr:

Código (bash) [Seleccionar]
$ sudo modprobe pcspkr

Comprobamos:

Código (bash) [Seleccionar]
$ beep

Esto hace que tengamos el sonido, pero si queremos dejarlo fijo (como esta en la lista negra, al rebotar la maquina no se emitirá el sonido), tenemos que editar en modo root el fichero que se encuentra en /etc/modprobe.d/blacklist.conf   o en mi caso también en  /etc/modprobe.d/alsa-base-blacklist.conf.

Buscamos y descomentamos la linea 'blacklist pcspkr' o 'blacklist snd-pcsp', y ya lo tenemos preparado.
Por defecto, sólo root puede ejecutar el comando beep, pero otros usuarios pueden estar autorizados cambiando los permisos del comando:

Código (bash) [Seleccionar]
# chmod 4755 /usr/bin/beep

La parte 755 significa que hay lectura / escritura / permisos de ejecución para el propietario (root), y de sólo lectura / permisos de ejecución para todos los demás.

Dando un vistazo al man de beep se ven las frequencias de sonido:

(http://www.linuxhispano.net/wp-content/uploads/2014/04/man_beep.gif)

A partir de aquí podemos utilizarlo para incluirlo en shell scripts o directamente desde la terminal con un poco de originalidad:

Código (bash) [Seleccionar]
$  beep -f 1000 -n -f 1500 -n -f 600 -n -f 500 -n -f 100 -r 2 -l 10 -n -f 50 -r 2 -l 200 -n -f 40 -r 2 -l 300 -n -f 60 -r 3 -n -f 50 -r 3

Código (bash) [Seleccionar]
$ beep -f 261; sleep 0.20; beep -f 277; sleep 0.20; beep -f 293; sleep 0.20; beep -f 311; sleep 0.20; beep -f 329; sleep 0.20; beep -f 349; sleep 0.20; beep -f 369; sleep 0.20; beep -f 392; sleep 0.20; beep -f 415; sleep 0.20; beep -f 440; sleep 0.20;  beep -f 466; sleep 0.20; beep -f 493;

Mas ejemplos:

- Star Wars Marcha Imperial   http://pastebin.com/RCeWpaUw

- Superdetective en Hollywood   http://pastebin.com/19zuN8tY

- Daft Punk aerodynamics       http://pastebin.com/Z6R3PHH0

Fuente: linuxhispano.net
Título: Re:Comando beep, sacandole partido al pcspeaker
Publicado por: CrazyKade en Junio 25, 2014, 09:38:50 AM
Ajajajaja me encantó este post! Muy original.
Muchas gracias ANTRAX!

CrazyKade