Una vez generada la ISO y viendo que cumple las funcionalidades básicas empezamos a realizar modificaciones en la misma para personalizarla.
Primero borramos la iso generada:
# cd distro
# rm slitaz-base.iso
Realizamos las modificaciones:
1. Configuración idioma y teclado, arrancará con la configuració por defecto en lugar de preguntar:
# cd jukebox/distro/rootcd/boot/isolinux/
# vi isolinux.cfg
display isolinux.msg
label slitaz
kernel /boot/bzImage
append initrd=/boot/rootfs.gz rw root=/dev/null vga=normal autologin lang=en kmap=es
include common.cfg
2. Añadimos los clientes web:
# cd jukebox/distro/rootfs/var/www/
# tar -xzvf /home/tux/phpmpreloaded-1.1c.tar.gz
# tar -xzvf /home/tux/relaxx-070.tar.gz
3. Añadimos demonios en arranque (mpd lighttpd dropbear):
# cd jukebox/distro/rootfs/etc
# vi rcS.conf
RUN_DAEMONS="dbus hald firewall slim mpd lighttpd dropbear"
Como mpd no tiene un script en init.d debemos añadirlo:
# cd jukebox/distro/rootfs/etc/init.d
# cat mpd
#!/bin/sh
# /etc/init.d/lighttpd: Start, stop and restart web server on SliTaz,
# at boot time or with the command line. Daemons options are configured
# with /etc/daemons.conf
#
. /etc/init.d/rc.functions
. /etc/daemons.conf
NAME=mpd
DESC="music player daemon"
DAEMON=/usr/sbin/mpd
OPTIONS=$MPD_OPTIONS
PIDFILE=/var/run/mpd.pid
KILL_OPTION=--kill
case "$1" in
start)
if [ -f $PIDFILE ] ; then
echo "$NAME already running."
exit 1
fi
echo -n "Starting $DESC: $NAME... "
$DAEMON $OPTIONS
status
;;
stop)
if [ ! -f $PIDFILE ] ; then
echo "$NAME is not running."
exit 1
fi
echo -n "Stopping $DESC: $NAME... "
$DAEMON $KILL_OPTION
rm $PIDFILE
status
;;
restart)
if [ ! -f $PIDFILE ] ; then
echo "$NAME is not running."
exit 1
fi
echo -n "Restarting $DESC: $NAME... "
$DAEMON $KILL_OPTION
rm $PIDFILE
sleep 2
$DAEMON $OPTIONS
status
;;
*)
echo ""
echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
echo ""
exit 1
;;
esac
exit 0
4. Añadimos el usuario tux usamos chroot para ello:
# cd jukebux/distro/rootfs
# chroot .
root@slitaz:/# adduser tux
adduser: /home/tux: File exists
Changing password for tux
New password:
Bad password: too short
Retype password:
Password for tux changed by root
root@slitaz:/# exit
# cd jukebox/rootfs/home/tux
# mkdir .mpd
# mkdir .mpd/playlists
# mkdir music
# cd jukebox/rootfs/home
# chown -R tux:tux tux
Hay que añadir el usuario al grupo audio:
# cd jukebox/rootfs/etc
# vi group
audio:x:20:tux
Regeneramos el rootfs:
# rm jukebox/distro/rootcd/boot
# cd jukebox/distro/rootfs
# find . -print | cpio -o -H newc | gzip -9 > ../rootcd/boot/rootfs.gz
Por último generamos la iso:
# tazlito gen-iso
Mostrando entradas con la etiqueta slitaz linux jukebox mpd. Mostrar todas las entradas
Mostrando entradas con la etiqueta slitaz linux jukebox mpd. Mostrar todas las entradas
martes, diciembre 03, 2013
Linux jukebox 4th round: Web client
Vamos a instalar y configurar el cliente web, los clientes web disponibles para mpd son PHP por lo que precisaremos un servidor con soporte de este lenguaje.
Probamos lighttpd ya que el consumo de memoria y CPU son menores que apache.
Instalamos lighttpd y sus módulos:
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd-modules
root@slitaz:~# tazpkg get-install php
Probamos el cliente phpMpReloaded que incluye varios clientes PHP:
# cd /var/www
# tar -xzvf /home/tux/phpmpreloaded-1.1c.tar.gz
Tambien probamos un cliente ajax relaxx con una interfaz mas depurada:
# cd /var/www
# tar -xzvf /home/tux/relaxx-070.tar.gz
Problemas:
- Los clientes web en local solo conectan cuando esta en play ¿?. Sin embargo, si el cliente web está en otro host funciona correctamente ¿?
- Relaxx no vé ciertos tipos de ficheros (.ogg) ¿?
A pesar de los problemas los añadimos a la distro (distro-packages.list) :
lighttpd-1.4.26
lighttpd-modules-1.4.26
php-5.2.11
Además añadimos soporte para ntfs ya que el disco externo está en ese formato de fs:
ntfsprogs-2.0.0
Añadimos tambien el cliente curses ncmpcpp:
ncmpcpp-0.5
Probamos lighttpd ya que el consumo de memoria y CPU son menores que apache.
Instalamos lighttpd y sus módulos:
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd-modules
root@slitaz:~# tazpkg get-install php
Probamos el cliente phpMpReloaded que incluye varios clientes PHP:
# cd /var/www
# tar -xzvf /home/tux/phpmpreloaded-1.1c.tar.gz
Tambien probamos un cliente ajax relaxx con una interfaz mas depurada:
# cd /var/www
# tar -xzvf /home/tux/relaxx-070.tar.gz
Problemas:
- Los clientes web en local solo conectan cuando esta en play ¿?. Sin embargo, si el cliente web está en otro host funciona correctamente ¿?
- Relaxx no vé ciertos tipos de ficheros (.ogg) ¿?
A pesar de los problemas los añadimos a la distro (distro-packages.list) :
lighttpd-1.4.26
lighttpd-modules-1.4.26
php-5.2.11
Además añadimos soporte para ntfs ya que el disco externo está en ese formato de fs:
ntfsprogs-2.0.0
Añadimos tambien el cliente curses ncmpcpp:
ncmpcpp-0.5
Linux Jukebox 3rd round: Creando ISO SliTaz con mpd
La distribución bajada precisa 160Mb de RAM mínimos, vamos a intentar generar una primera versión básica usaremos la herramienta tazlito:
root@slitaz:~# tazlito list-flavors --recharge
Connecting to mirror.slitaz.org (94.23.60.116:80) - 100% |*************************************************************| 833 --:--:-- ETA List of flavors ================================================================================ Name ISO Rootfs Description ================================================================================ base 6.9M 13.1M Minimal set of packages to boot
core-3in1 31.5M 105.6M SliTaz core system with justx and base alternatives
core 26.0M 86.0M Core system with a full featured desktop.
firefox 29.0M 92.0M Small desktop Mozilla Firefox.
justx 29.0M 97.5M Very small desktop with X only
loram-cdrom-sqfs 30.0M 7.7M SliTaz loram system (/usr on cdrom) loram-cdrom 88.1M 7.5M SliTaz loram system (/usr on cdrom) loram-http 7.0M 7.9M SliTaz loram system (/usr on web)
loram 30.0M 32.2M SliTaz loram system (all in RAM)
xvesa 29.0M 97.5M Core system with a full featured desktop (use tinyX server).
Creamos un arbol para crear la iso:
mkdir jukebox
mkdir jukebox/distro
mkdir jukebox/packages
Y generamos una configuración:
root@slitaz:/home/tux/jukebox# tazlito configure
Configuring : /home/tux/jukebox/tazlito.conf ================================================================================ ISO name : jukebox
Volume name : jkb Packages
repository : /home/tux/jukebox/packages
Distro path : /home/tux/jukebox/distro ================================================================================ Config file is ready to use. You can now extract an ISO or generate a distro.
A continuación bajamos un flavor:
tux@slitaz:~/jukebox$ tazlito get flavor base
Connecting to mirror.slitaz.org (94.23.60.116:80)
base.flavor 100% |*************************************************************| 11562 --:--:-- ETA Cleaning distro... [ OK ]
Extracting flavor base.flavor... Creating distro-packages.list... [ OK ]
Adding rootcd... Updating tazlito.conf... [ OK ]
Hacemos la primera prueba:
tazlito gen-distro
Arranca perfectamente en un entorno virtualizado con 128Mb de RAM, pero no tenemos X ni sonido, tenemos que añadir algunos paquetes adicionales.
Limpiamos la distro:
tazlito clean-distro
Empezamos con el sonido:
Podemos bajar el mpd al directorio packages:
root@slitaz:/home/tux/jukebox/packages# tazpkg get mpd
Mirar sus dependencias e ir bajando todas:
root@slitaz:/home/tux/jukebox/packages# tazpkg depends mpd
Pero es más rápido añadir el paquete mpc a la lista distro-packages.list y al regenerar la distro bajará todos los paquetes necesarios, añadimos algún paquete adicional.
echo alsa-utils-1.0.21 >> distro-packages.list
echo linux-sound-2.6.30.6 >> distro-packages.list
echo mpc-0.19 >> distro-packages.list
tazlito gen-distro
Vamos a probarlo, copiamos un mp3 y arrancamos mpd:
tux@slitaz:~$ mkdir .mpd
tux@slitaz:~$ mkdir .mpd/playlists
tux@slitaz:~$ mkdir .mpd/database
tux@slitaz:~$ mkdir .mpd/log
Descomentamos la linea del puerto:
port "6600"
Y recreamos la BBDD:
tux@slitaz:~$ mpd --create-db
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
Y listo, ya tenemos funcionando nuestro juke con mpd.
Aún faltan algunos pasos para tener algo funcional pero ya pita!.
root@slitaz:~# tazlito list-flavors --recharge
Connecting to mirror.slitaz.org (94.23.60.116:80) - 100% |*************************************************************| 833 --:--:-- ETA List of flavors ================================================================================ Name ISO Rootfs Description ================================================================================ base 6.9M 13.1M Minimal set of packages to boot
core-3in1 31.5M 105.6M SliTaz core system with justx and base alternatives
core 26.0M 86.0M Core system with a full featured desktop.
firefox 29.0M 92.0M Small desktop Mozilla Firefox.
justx 29.0M 97.5M Very small desktop with X only
loram-cdrom-sqfs 30.0M 7.7M SliTaz loram system (/usr on cdrom) loram-cdrom 88.1M 7.5M SliTaz loram system (/usr on cdrom) loram-http 7.0M 7.9M SliTaz loram system (/usr on web)
loram 30.0M 32.2M SliTaz loram system (all in RAM)
xvesa 29.0M 97.5M Core system with a full featured desktop (use tinyX server).
Creamos un arbol para crear la iso:
mkdir jukebox
mkdir jukebox/distro
mkdir jukebox/packages
Y generamos una configuración:
root@slitaz:/home/tux/jukebox# tazlito configure
Configuring : /home/tux/jukebox/tazlito.conf ================================================================================ ISO name : jukebox
Volume name : jkb Packages
repository : /home/tux/jukebox/packages
Distro path : /home/tux/jukebox/distro ================================================================================ Config file is ready to use. You can now extract an ISO or generate a distro.
A continuación bajamos un flavor:
tux@slitaz:~/jukebox$ tazlito get flavor base
Connecting to mirror.slitaz.org (94.23.60.116:80)
base.flavor 100% |*************************************************************| 11562 --:--:-- ETA Cleaning distro... [ OK ]
Extracting flavor base.flavor... Creating distro-packages.list... [ OK ]
Adding rootcd... Updating tazlito.conf... [ OK ]
Hacemos la primera prueba:
tazlito gen-distro
Arranca perfectamente en un entorno virtualizado con 128Mb de RAM, pero no tenemos X ni sonido, tenemos que añadir algunos paquetes adicionales.
Limpiamos la distro:
tazlito clean-distro
Empezamos con el sonido:
Podemos bajar el mpd al directorio packages:
root@slitaz:/home/tux/jukebox/packages# tazpkg get mpd
Mirar sus dependencias e ir bajando todas:
root@slitaz:/home/tux/jukebox/packages# tazpkg depends mpd
Pero es más rápido añadir el paquete mpc a la lista distro-packages.list y al regenerar la distro bajará todos los paquetes necesarios, añadimos algún paquete adicional.
echo alsa-utils-1.0.21 >> distro-packages.list
echo linux-sound-2.6.30.6 >> distro-packages.list
echo mpc-0.19 >> distro-packages.list
tazlito gen-distro
Vamos a probarlo, copiamos un mp3 y arrancamos mpd:
tux@slitaz:~$ mkdir .mpd
tux@slitaz:~$ mkdir .mpd/playlists
tux@slitaz:~$ mkdir .mpd/database
tux@slitaz:~$ mkdir .mpd/log
Descomentamos la linea del puerto:
port "6600"
Y recreamos la BBDD:
tux@slitaz:~$ mpd --create-db
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
Y listo, ya tenemos funcionando nuestro juke con mpd.
Aún faltan algunos pasos para tener algo funcional pero ya pita!.
Linux Jukebox 2nd Round: SliTaz + mpd
Tras el primer intento con éxito de montar el Jukebox con DSL y Xmms, la cosa se nos queda algo corta y queremos ir algo más allá.
Los requisitos nuevos son:
- Gestión a distancia del Jukebox: Usando un movil wifi como mando a distancia.
- Streaming de audio: Para poder crear un canal adicional.
Para esta ampliación probaré con mpd, este daemon no está incluido entre los paquetes de DSL así que para montar algo rápido buscamos una distribución que cubra los requisitos del 1er round, de momento probamos con SliTaz ya que incluye mpd/mpc entre sus paquetes.
SliTaz tiene unos requerimientos de memoria superiores a los requisitos especificados pero de momento vamos a montar una maqueta virtualizada para ver las necesidades finales y si el enfoque es el adecuado intentaremos "adelgazar" la instalación.
Probamos la maqueta en un entorno virtualizado arrancando la ISO y posteriormente la volcamos a disco virtual (256MB), SliTaz trae de serie una interfaz (SliTaz installer) que hace prácticamente todo:
1. Creamos la partición (asignamos todo el disco disponible y la marcamos como vfat).
2. Ejecutamos el instalador y le indicamos la partición, le indicamos que formatee con vfat.
3. Al reiniciar arrancaremos ya desde el disco nuevo, podemos verificar que los cambios son persistentes.
Tras la instalación comenzamos la instalación, primero actualizamos la lista de paquetes de los mirror:
tazpkg recharge
Y buscamos el paquete que nos interesa:
tazpkg list-mirror | grep mpd
Lo instalamos:
tazpkg get-install mpd
tazpkg get-install mpc
Listo, copiamos un disco para probar y tras trastear un poco con los controles de volumen ya pita:
tux@slitaz:~$ mpd
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
tux@slitaz:~$ mpc update
Updating DB (#1) ...
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc listall
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc listall | mpc add
tux@slitaz:~$ mpc playlist
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc play
CoolJerks/1.SoulTeller.mp3
[playing] #1/4 0:00/2:20 (0%)
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc next
CoolJerks/2. ICantTurnYouLoose.mp3
[playing] #2/4 0:01/2:18 (0%)
volume:100% repeat: off random: off single: off consume: off
Ok, parece que esto es lo que queremos, tenemos múltiples clientes ricos y web que nos permitirán gestionar nuestro juke de forma remota.
Los requisitos nuevos son:
- Gestión a distancia del Jukebox: Usando un movil wifi como mando a distancia.
- Streaming de audio: Para poder crear un canal adicional.
Para esta ampliación probaré con mpd, este daemon no está incluido entre los paquetes de DSL así que para montar algo rápido buscamos una distribución que cubra los requisitos del 1er round, de momento probamos con SliTaz ya que incluye mpd/mpc entre sus paquetes.
SliTaz tiene unos requerimientos de memoria superiores a los requisitos especificados pero de momento vamos a montar una maqueta virtualizada para ver las necesidades finales y si el enfoque es el adecuado intentaremos "adelgazar" la instalación.
Probamos la maqueta en un entorno virtualizado arrancando la ISO y posteriormente la volcamos a disco virtual (256MB), SliTaz trae de serie una interfaz (SliTaz installer) que hace prácticamente todo:
1. Creamos la partición (asignamos todo el disco disponible y la marcamos como vfat).
2. Ejecutamos el instalador y le indicamos la partición, le indicamos que formatee con vfat.
3. Al reiniciar arrancaremos ya desde el disco nuevo, podemos verificar que los cambios son persistentes.
Tras la instalación comenzamos la instalación, primero actualizamos la lista de paquetes de los mirror:
tazpkg recharge
Y buscamos el paquete que nos interesa:
tazpkg list-mirror | grep mpd
Lo instalamos:
tazpkg get-install mpd
tazpkg get-install mpc
Listo, copiamos un disco para probar y tras trastear un poco con los controles de volumen ya pita:
tux@slitaz:~$ mpd
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
tux@slitaz:~$ mpc update
Updating DB (#1) ...
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc listall
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc listall | mpc add
tux@slitaz:~$ mpc playlist
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc play
CoolJerks/1.SoulTeller.mp3
[playing] #1/4 0:00/2:20 (0%)
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc next
CoolJerks/2. ICantTurnYouLoose.mp3
[playing] #2/4 0:01/2:18 (0%)
volume:100% repeat: off random: off single: off consume: off
Ok, parece que esto es lo que queremos, tenemos múltiples clientes ricos y web que nos permitirán gestionar nuestro juke de forma remota.
Suscribirse a:
Entradas (Atom)
