StartupSound.prefpane: jugando con fuego

Seguramente alguno de vosotros sienta vergüenza a la hora de encender la laptop Mac en un entorno concurrido y silencioso, como por ejemplo una biblioteca. Y es que el sonidito de arranque puede llegar a ser crispante, sobre todo en las máquinas antiguas.

Pues bien, circula por ahí un programa llamado StartupSound.prefpane que permite limitar el volúmen del personal efecto sonoro. O incluso eliminar su reproducción del todo, evitando así miríadas de miradas asesinas en aulas universitarias, velatorios y salas de estudio. Yo hasta ahora lo que hacía era apretar el botoncito de “mute” antes de apagar mi PowerBook, o simplemente llevarlo siempre encendido. Pero StartupSound parece una buena idea, ¿no?

Pues no.

Lo primero que me viene a la mente es la localización del sonidito de marras: ¿dónde estás, si suenas sólo unos instantes después de haber encendido el ordenador? Respuesta: en los primeros modelos, la simplicidad del “piiiiii” facilitaba su inclusión en memoria ROM. Pero, como habréis visto en el vídeo de YouTube, la cosa ha ido mejorando y la polifonía moderna requiere más espacio y por ende más memoria. Así que en los macs nuevos es en la PRAM (me explico: la PRAM es como la ROM, solo que basada en memoria flash y alimentada por una batería) donde la gende de Apple ha decidido empaquetar la fanfarria de inicio. Claros clarines y cortejo incluídos.

¿Pero cómo demonios podemos acceder a una parte tan esotérica desde un simple programa? Porque StartupSound.prefpane lo hace, ¿no? Bien cierto que lo hace. Buceando un poquito en el paquete instalable, descubro un archivo de arranque:


#!/bin/sh

##
# Set Startup Sound Volume
##

. /etc/rc.common

ARCANA_STARTUP_SOUND_RESOURCES_DIR=\
/Library/StartupItems/ArcanaStartupSound/Resources
ARCANA_STARTUP_SOUND_LOG_FILE=\
/private/var/log/ArcanaStartupSound.log
ARCANA_STARTUP_SOUND_LOG_FILE_NEXT=\
/private/var/log/ArcanaStartupSound_next.log

StartService ()
{
if [ -f ${ARCANA_STARTUP_SOUND_LOG_FILE_NEXT} ]; then
/bin/mv -f ${ARCANA_STARTUP_SOUND_LOG_FILE_NEXT} ${ARCANA_STARTUP_SOUND_LOG_FILE}
fi
cd ${ARCANA_STARTUP_SOUND_RESOURCES_DIR}
{
echo $(date '+%b %e %H:%M:%S') Loading ArcanaPRAM.kext...
./bootbeep -l ArcanaPRAM.kext
} >${ARCANA_STARTUP_SOUND_LOG_FILE_NEXT} 2>&1
cd ${OLDPWD}
}

StopService ()
{
cd ${ARCANA_STARTUP_SOUND_RESOURCES_DIR}
{
echo $(date '+%b %e %H:%M:%S') Setting Startup Sound Volume...
./bootbeep -p
echo $(date '+%b %e %H:%M:%S') Unloading ArcanaPRAM.kext...
./bootbeep -u ArcanaPRAM.kext
} >>${ARCANA_STARTUP_SOUND_LOG_FILE_NEXT} 2>&1
cd ${OLDPWD}
}

RestartService ()
{
return 0
}

RunService "$1"

Que ni más ni menos que llama al comando bootbeep, incluído a su vez en el propio paquete. Según leemos, este comando carga en memoria una extensión de kernel llamada “ArcanaPRAM.kext”, que tiene su chicha en un archivo llamado “ArcanaPRAM” – examinando los símbolos con 0xED, descubro algo que me hace no querer instalar esta pieza de software, que además se encuentra en fase de BETA: se hace uso de “writeXPRAM()”, que es la forma que se usa en un kernel mach/BSD para escribir en la PRAM. El Horror. El Horror. No quiero que nadie aparte de Apple juegue con mi PRAM, que ya bastantes problemas he tenido. Además, la aplicación de marras no es open-source, así que no puedo ver exactamente qué diablos se escribe en una parte tan sensible de mi Mac.

Pregunta: ¿no habría sido más facil abrir un terminal y teclear

echo "osascript -e \"set volume 0\"" | sudo tee -a /etc/rc.shutdown.local
echo "osascript -e \"set volume 4\"" | sudo tee -a /etc/rc.local

? Esto me funciona a las mil maravillas tanto si reinicio, como si enciendo el ordenador. Se puede controlar incluso el volúmen de la fanfarria en /etc/rc.shutdown.local, sabiendo que para AppleScript el máximo volúmen es “8″ y silencio es “0″ (doh!).

Moraleja: KISS (Keep It Simple, Stupid)

Etiquetas: , , ,

  1. HoloJorge’s avatar

    Reproduciendo el video del post he encontrado este otro. Mucho más animal que el anterior, creo que también es más divertido. Situación Típica: llegas a la biblioteca de la facultad, y alguien enciende lo que por la música parece ser un pc con … ¿windows 95?

    Escandalizado, y un poquito picado también, decides mostrarle las maravillas de tu mac. Que vean tu manzana brillar, vamos. Entonces enciendes el Mac y recuerdas que no pulsaste el mute al apagarlo, ¡ups!

    http://www.youtube.com/watch?v=IHxYKGgWDAo

  2. Brian’s avatar

    Gracias!
    I saw your post on a download site for startupsound.prefpane, which I had come close to installing several times during the past year. Your fix is exactly what I was looking for.
    Me gusta mucho!

  3. MrSolo’s avatar

    Hey Brian,

    Thanks for the comment! I’m glad you found my tip helpful :-)

    //Mr.S

  4. Scott’s avatar

    Mr Solo,

    Thanks for the tip on quieting the startup sound. Your solution is much simpler and works like a charm. I wish I knew Spanish so I could read your blog for other tips.

    Keep up the good work!

For spam filtering purposes, please copy the number 8104 to the field below: