Bootsound: Debian GNU/Linux

2 minuto(s) de lectura

Debian

Esta entrada es un tributo a la que mi entender, es la obra maestra de Ridley Scott: Alien (1979).

Al comienzo de la película, la computadora de la nave espacial Nostromo se inicia en una ráfaga de parpadeos y ruido.

Vamos a recrear ese ambiente en nuestro servidor, añadiendo el fragmento de audio a la secuencia de arranque de nuestro sistema.

Para configurarlo sobre nuestra base Debian seguimos este mini-tutorial.

Creamos la carpeta de trabajo y entramos en ella:

sudo mkdir -p /opt/bootsound && \
cd /opt && \
sudo chown $USER:$USER -R bootsound && \
cd /opt/bootsound

Actualizamos repositorios e instalamos las dependencias necesarias:

sudo apt-get update && \
sudo apt-get -y install ffmpeg \
youtube-dl
```bash

Forzamos la actualización de **Youtube-DL** para evitar conflictos:

```bash
sudo wget -O /usr/bin/youtube-dl \
http://yt-dl.org/downloads/latest/youtube-dl && \
sudo chmod a+rx /usr/bin/youtube-dl && \
sudo wget -O /usr/local/bin/youtube-dl \
http://yt-dl.org/downloads/latest/youtube-dl && \
sudo chmod a+rx /usr/local/bin/youtube-dl

A partir de este momento podremos actualizar Youtube-DL de esta forma:

sudo youtube-dl -U

Vamos a descargar el audio del video de la secuencia:

youtube-dl --extract-audio \
--audio-format wav \
--audio-quality 0 \
--restrict-filenames \
https://youtu.be/2ywWFvjE-yU

Renombramos el fichero:

mv \
'Nostromo_boot_sequence_+_Interface_2037_mother_-_Alien_computer_sounds_glitches-2ywWFvjE-yU.wav' \
audio.wav

Copiamos los primeros 25s del audio para adaptar el clip:

ffmpeg -i audio.wav \
-ss 00:00:01 -to 00:00:25 \
-c copy \
nostromo.wav && \
rm audio.wav

Identificamos la tarjeta de sonido:

cat /proc/asound/cards

Adjunto ejemplo de mi tarjeta:

pi@overclock:/opt/bootsound$ cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf240000 irq 138

Descubrimos el identificador de la tarjeta de sonido para el sistema y lo apuntamos:

systemctl list-units | \
awk '/sound-card0/{print $1}'

Adjunto ejemplo de mi identificador:

pi@overclock:/opt/bootsound$ systemctl list-units | \
> awk '/sound-card0/{print $1}'
sys-devices-pci0000:00-0000:00:1f.3-sound-card0.device

Creamos script de ejecución:

nano bootsound.sh

Añadimos el siguiente contenido:

#!/bin/bash
amixer -c 0 sset Master unmute
amixer -c 0 sset Master playback 100%
/usr/bin/aplay -D plughw:0,0 /opt/bootsound/nostromo.wav

Guardamos el contenido Ctrl+O , salimos del editor Ctrl+X, le damos permisos de ejecución y creamos un enlace simbolico:

chmod +x bootsound.sh && \
sudo ln -s \
/opt/bootsound/bootsound.sh \
/usr/local/bin/bootsound

Creamos el servicio de arranque que ejecutara el script que hemos creado:

sudo nano /etc/systemd/system/bootsound.service

Añadimos el siguiente contenido, cambiando en caso de ser necesario el identificador de la tarjeta de sonido:

[Unit]
Description=Boot Sound
Requires=sys-devices-pci0000:00-0000:00:1f.3-sound-card0.device
After=sys-devices-pci0000:00-0000:00:1f.3-sound-card0.device

[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/local/bin/bootsound

[Install]
WantedBy=default.target

Guardamos el contenido Ctrl+O , salimos del editor Ctrl+X, y activamos el servicio al inicio del sistema:

sudo systemctl enable bootsound.service

Y listo!