## Comandos para preparar tarjeta Karaoke con UltraStar Deluxe y Raspbian Stretch Desktop ##
1. ## Lo primero darle a update, para que descargue la ultima versión de raspi-config, configuramos SSH, cambiamos idioma y todo los parametros de localizacion, etc... ##
2. ## Actualizar firmware y kernel de Raspberry. ##
3. ## Ejecutar estos comandos para desintalar lo que no empleemos, libreoffice y demás. ahorramos como 1Gb de espacio. ##
Código: Seleccionar todo
sudo apt-get remove minecraft-pi wolfram-engine nodered bluej greenfoot libreoffice-writer libreoffice-calc libreoffice-base libreoffice-impress libreoffice-draw libreoffice-math libreoffice
sudo apt-get autoremove
sudo apt-get autoclean
4. ## Actualizamos paquetes. ##
Código: Seleccionar todo
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
5. OPCIONAL ## Aplicaciones para terminal de recomendada instalación, SAMBA, montaje para guardar canciones en USB. ##
Código: Seleccionar todo
sudo apt-get install usbmount
sudo apt-get install autofs
sudo apt-get install samba
sudo apt-get install samba-common-bin
## Con esto ya tenemos nuestra Raspberry lista para empezar a compilar la instalacion de USDX. ##
6. ## Ahora crearemos un script con la instalación. ##
7. ## y pegamos todo este contenido dentro del script !! Gracias al compi CapNida de fororaspberry.es!!. ##
Código: Seleccionar todo
########################VARIABLES###############################
export ROJO="\033[1;31m"
export AZUL="\033[1;36m"
export VERDE="\033[1;32m"
export NEGRO="\033[0m"
INSTALAR_FFMPEG=s
INSTALAR_FREEPASCAL=s
MENU=100
################################################################
rm -Rf /tmp/*
while [ $MENU != 0 ]
do
clear
echo -e "${ROJO}------------------------${NEGRO}"
echo -e "${ROJO} MENU INSTALACION ${NEGRO}"
echo -e "${ROJO}------------------------${NEGRO}"
echo -e "${AZUL}1) Instalar dependencias${NEGRO}"
echo -e "${AZUL}2) Instalar ffmpeg${NEGRO}"
echo -e "${AZUL}3) Instalar freepasacal${NEGRO}"
echo -e "${AZUL}4) Instalar ultrastar${NEGRO}"
echo -e "${AZUL}5) Crear acceso directo en el escritorio${NEGRO}"
echo -e "${AZUL}0) Salir${NEGRO}"
echo -e "${ROJO}Escoge una opcion:${NEGRO}"
read OPCION
case $OPCION in
1)
echo -e "${AZUL}--------------------${NEGRO}"
echo -e "${AZUL}Actualizando sistema${NEGRO}"
echo -e "${AZUL}--------------------${NEGRO}"
sudo apt-get -y update
echo -e "${AZUL}----------------------${NEGRO}"
echo -e "${AZUL}Instalando dependencia${NEGRO}"
echo -e "${AZUL}----------------------${NEGRO}"
sudo apt-get -y install automake
sudo apt-get -y install libpng12-0
sudo apt-get -y install libpng12-dev
sudo apt-get -y install libsdl2-dev
sudo apt-get -y install libsdl2-2.0-0
sudo apt-get -y install libsdl2-gfx-1.0-0
sudo apt-get -y install libsdl2-gfx-dev
sudo apt-get -y install libsdl2-image-2.0-0
sudo apt-get -y install libsdl2-image-dev
sudo apt-get -y install libsdl2-mixer-2.0-0
sudo apt-get -y install libsdl2-mixer-dev
sudo apt-get -y install libsdl2-net-2.0-0
sudo apt-get -y install libsdl2-net-dev
sudo apt-get -y install libsdl2-ttf-2.0-0
sudo apt-get -y install libsdl2-ttf-dev
sudo apt-get -y install portaudio19-dev
sudo apt-get -y install liblua5.1-0
sudo apt-get -y install liblua5.1-0-dev
sudo apt-get -y install libsqlite3-0
sudo apt-get -y install libsqlite3-dev
sudo apt-get -y install git
sudo apt-get -y install fpc
sudo apt-get -y install fpc-source
sudo apt-get -y install fpc-2.6.4
sudo apt-get -y install fpc-source-2.6.4
sudo aptitude install build-essential
;;
2)
ffmpeg -version
FFMPEG_INSTALADO=$?
if [ $FFMPEG_INSTALADO -eq 0 ]
then
echo -e "${ROJO}Esta instalada la version `ffmpeg -version | grep version | awk '{print $3}'` de ffmpeg${NEGRO}"
echo -e "${AZUL}Quieres instalar otra version? s/n${NEGRO}"
read INSTALAR_FFMPEG
case $INSTALAR_FFMPEG in
s)
wget -P /tmp/ http://ffmpeg.org/releases/
mv /tmp/index.html /tmp/ffmpeg_versions
cat /tmp/ffmpeg_versions | grep tar.gz | grep -v .asc| awk -F\" '{print $6}'
echo -e "${AZUL}Escoge la version de ffmpeg para descargar:${NEGRO}"
read FFMPEG_VERSION
cd /tmp/
wget -P /tmp/ http://ffmpeg.org/releases/${FFMPEG_VERSION}
;;
*)
echo -e "${VERDE}No se descargara otra version de ffmpeg${NEGRO}"
;;
esac
else
wget -P /tmp/ http://ffmpeg.org/releases/
mv /tmp/index.html /tmp/ffmpeg_versions
cat /tmp/ffmpeg_versions | grep tar.gz | grep -v .asc| awk -F\" '{print $6}'
echo -e "${AZUL}Escoge la version de ffmpeg para descargar:${NEGRO}"
read FFMPEG_VERSION
wget -P /tmp/ http://ffmpeg.org/releases/${FFMPEG_VERSION}
fi
case $INSTALAR_FFMPEG in
s)
cd /tmp
tar -zxvf ${FFMPEG_VERSION}
#tar -zxvf fpcbuild-${FREEPASCAL_VERSION}.tar.gz
echo -e "${AZUL}------------------------------${NEGRO}"
echo -e "${AZUL}Compilando e instalando ffmpeg${NEGRO}"
echo -e "${AZUL}------------------------------${NEGRO}"
echo "Pulsa INTRO para continuar"
read TECLA
FFMPEG_DIR=`echo ${FFMPEG_VERSION} | sed 's/.tar.gz//g'`
cd /tmp/${FFMPEG_DIR}
./configure --enable-shared --enable-pic --disable-encoders --disable-static --prefix=/usr
make -j4
sudo make install
which ffmpeg
case $? in
0)
VERSION_INSTALADA=`ffmpeg -version | grep version | awk '{print $3}'`
VERSION_COMPILADA=`echo $FFMPEG_DIR | awk -F- '{print $NF}'`
if [ $VERSION_INSTALADA != $VERSION_COMPILADA ]
then
echo -e "${ROJO}Error en la compilación de ffmpeg"
echo -e "Version instalada ${VERSION_INSTALADA}"
echo -e "Version compilada ${VERSION_COMPILADA}${NEGRO}"
exit 1
else
echo -e "${VERDE}Compilacion e instalacion de ffmpeg correcta${NEGRO}"
fi
;;
*)
echo -e "${ROJO}Error en la instalacion de ffmpeg. Revisa el log de la compilacion${NEGRO}"
;;
esac
;;
*)
echo -e "${VERDE}No se instalara el ffmpeg descargado${NEGRO}"
;;
esac
;;
3)
fpc -iV
FREEPASCAL_INSTALADO=$?
if [ $FREEPASCAL_INSTALADO -eq 0 ]
then
echo -e "${ROJO}Esta instalada la version `fpc -iV` de freepascal"
echo -e "${AZUL}Quieres instalar otra version? s/n${NEGRO}"
read INSTALAR_FREEPASCAL
case $INSTALAR_FREEPASCAL in
s)
wget -P /tmp/ https://sourceforge.net/projects/freepascal/files/Source/
mv /tmp/index.html /tmp/freepascal_versions
cat /tmp/freepascal_versions | grep "\"name\":" | sed 's/name/\n/g' | awk '{print $2}' | sed 's/=//g' | awk -F\" '{print$2}' | sort
echo -e "${AZUL}Escoge la version de freepascal para descargar:${NEGRO}"
read FREEPASCAL_VERSION
wget -P /tmp/ https://sourceforge.net/projects/freepascal/files/Source/${FREEPASCAL_VERSION}/fpcbuild-${FREEPASCAL_VERSION}.tar.gz
cd /tmp/
tar -zxvf fpcbuild-${FREEPASCAL_VERSION}.tar.gz
;;
*)
echo -e "${VERDE}No se descargara otra version de freepascal${NEGRO}"
;;
esac
else
wget -P /tmp/ https://sourceforge.net/projects/freepascal/files/Source/
mv /tmp/index.html /tmp/freepascal_versions
cat /tmp/freepascal_versions | grep "\"name\":" | sed 's/name/\n/g' | awk '{print $2}' | sed 's/=//g' | awk -F\" '{print$2}' | sort
echo -e "${AZUL}Escoge la version de freepascal para descargar:${NEGRO}"
read FREEPASCAL_VERSION
wget -P /tmp/ https://sourceforge.net/projects/freepascal/files/Source/${FREEPASCAL_VERSION}/fpcbuild-${FREEPASCAL_VERSION}.tar.gz
cd /tmp/
tar -zxvf fpcbuild-${FREEPASCAL_VERSION}.tar.gz
fi
case $INSTALAR_FREEPASCAL in
s)
echo -e "${AZUL}----------------------------------${NEGRO}"
echo -e "${AZUL}Compilando e instalando freepascal${NEGRO}"
echo -e "${AZUL}----------------------------------${NEGRO}"
echo "Pulsa INTRO para continuar"
read tecla
cd /tmp/fpcbuild-${FREEPASCAL_VERSION}
make NOGDB=1 OPT="-dFPC_ARMHF -CX -CfVFPV3_D16 -O- -XX -Xs" build
sudo make NOGDB=1 install
sudo unlink /usr/bin/ppcarm
sudo ln -s /usr/local/lib/fpc/${FREEPASCAL_VERSION} /usr/lib/fpc/${FREEPASCAL_VERSION}
sudo ln -s /usr/local/lib/fpc/${FREEPASCAL_VERSION}/ppcarm /usr/bin/ppcarm
which fpc
case $? in
0)
VERSION_INSTALADA=`fpc -iV`
VERSION_COMPILADA=`echo ${FREEPASCAL_VERSION}`
if [ $VERSION_INSTALADA != $VERSION_COMPILADA ]
then
echo -e "${ROJO}Error en la compilación de freepascal"
echo -e "Version instalada ${VERSION_INSTALADA}"
echo -e "Version compilada ${VERSION_COMPILADA}${NEGRO}"
exit 1
else
echo -e "${VERDE}Compilacion e instalacion de freepascal correcta${NEGRO}"
fi
;;
*)
echo -e "${ROJO}Error en la instalacion de FreePascal. Revisa el log de la compilacion${NEGRO}"
;;
esac
;;
*)
echo -e "${VERDE}No se instalara el freepascal descargado${NEGRO}"
;;
esac
;;
4)
which ultrastardx
ULTRASTAR_INSTALADO=$?
case $ULTRASTAR_INSTALADO in
0)
echo -e "${ROJO}Ya hay una version de ultrastar instalada"
echo -e "${AZUL}Quieres recompilar ULTRASTAR? s/n${NEGRO}"
read INSTALA_ULTRASTAR
;;
*)
INSTALA_ULTRASTAR=s
;;
esac
#if [ $INSTALA_ULTRASTAR == s ]
#then
echo -e "${AZUL}1) Version estable (Agosto 2017)"
echo -e "2) Ultima version (no estable)"
echo -e "3) Version diciembre 2016 (no estable)"
echo -e "Que version de Ultrastar quieres descargar?"
read VERSION
case $VERSION in
2)
echo -e "${VERDE}Descargando la última version (no estable)${NEGRO}"
cd /tmp
git clone https://github.com/UltraStar-Deluxe/USDX.git
;;
3)
echo -e "${VERDE}Descargando la versión de Diciembre de 2016 (no estable)${NEGRO}"
cd /tmp
git clone https://github.com/UltraStar-Deluxe/USDX.git
cd /tmp/USDX
git checkout `git rev-list -n 1 --before="2016-12-04 23:59" master`
;;
*)
echo -e "${VERDE}Descargando la version de Agosto de 2017 (estable)${NEGRO}"
cd /tmp
wget -P /tmp/ https://github.com/UltraStar-Deluxe/USDX/archive/v2017.8.0.tar.gz
tar -zxvf v2017.8.0.tar.gz
mv USDX-2017.8.0 USDX
;;
esac
echo -e "${AZUL}---------------------------------${NEGRO}"
echo -e "${AZUL}Compilando e instalando ULTRASTAR${NEGRO}"
echo -e "${AZUL}---------------------------------${NEGRO}"
echo -e "Pulsa INTRO para continuar"
read TECCLA
cd /tmp/USDX
./autogen.sh
./configure --prefix=/usr
cd src
sed 's/PFLAGS_RELEASE_DEFAULT := -Xs- -O2/PFLAGS_RELEASE_DEFAULT := -Xs- -O1/g' Makefile > Makefile.mod
sed 's/LIBS ?=/LIBS ?= -lm -lgcc_s -llua5.1/g' Makefile.mod > Makefile.mod2
mv Makefile Makefile.orig
mv Makefile.mod2 Makefile
sudo unlink /lib/arm-linux-gnueabihf/libgcc_s.so
sudo ln -s /lib/arm-linux-gnueabihf/libgcc_s.so.1 /lib/arm-linux-gnueabihf/libgcc_s.so
make -j4
cd /tmp/USDX
sudo make install
#else
# echo -e "${VERDE}No se instalara ULTRASTAR${NEGRO}"
#fi
;;
5)
wget -P /tmp/ http://i.imgur.com/JtmXso1.png
sudo mv /tmp/JtmXso1.png /usr/share/icons/ultra.png
cd /home/pi/Desktop
touch ultrastar.desktop
echo "[Desktop Entry]" >> /home/pi/Desktop/ultrastar.desktop
echo "Version=1.0" >> /home/pi/Desktop/ultrastar.desktop
echo "Type=Application" >> /home/pi/Desktop/ultrastar.desktop
echo "Terminal=false" >> /home/pi/Desktop/ultrastar.desktop
echo "Name=ultrastar" >> /home/pi/Desktop/ultrastar.desktop
echo "Categories=Games;" >> /home/pi/Desktop/ultrastar.desktop
echo "Exec=/usr/bin/ultrastardx" >> /home/pi/Desktop/ultrastar.desktop
echo "Comment=Ultrastar" >> /home/pi/Desktop/ultrastar.desktop
echo "Icon=/usr/share/icons/ultra.png" >> /home/pi/Desktop/ultrastar.desktop
chmod 755 /home/pi/Desktop/ultrastar.desktop
;;
0)
echo -e "${ROJO}Saliendo${NEGRO}"
exit 1
;;
esac
done
8. ## Ahora le damos permisos de ejecucion de esta manera. ##
9. ## Y ejecutamos el script. ##
9.1 ## Ahora si, comenzara la instalación/compilación) de todo. ##
9.2 ## Saldra un menú, con 5 opciones. le daremos a la opcion 1 para isntalar dependencias, la 2, 3 y asi hasta finalizar todas las opciones. Cuando nos pregunte que version de ffmpeg instalar, elegimos la 3.3 y de FPC elegimos la 3.0.0, cuando nos pregunte que version de USDX instalar decirle que la ultima 2017 estable, si nos dijera que ya tenemos instalada la 3.3 y la 3.0.0 y si queremos instalar otra, le decimos que NO e intro ##
10. ## Una vez instalado debemos cambiar el driver grafico desde sudo raspi-config y elegir el primero FULL, tras esto podremos lanzar UltraStar Deluxe ##
10.1 ## Lo arrancamos configuramos idioma y demás opciones y salimos. ##
11. OPCIONAL ## Ahora vamos a crear una carpeta compartida con SAMBA, para poder meter canciones sin complicaicones desde caulquier otro PC. * ##
## Instalamos samba si no lo habiamos hecho antes. ##
## Hacemos una copia de seguridad del archivo de configuracion de SAMBA, por si las moscas. ##
## Abrimos el archivo de configuración, nos vamos hasta el final con flecha abajo y pegamos el siguiente contenido. ##
Código: Seleccionar todo
[Canciones]
comment = Canciones karaoke
path = /home/pi/.ultrastardx/songs
writable = Yes
create mask = 0777
directory mask = 0777
browseable = Yes
guest ok = Yes
## * Para que aparezca esta carpeta, debemos de lanzar USDX una vez antes, para configurar idioma y demas, si no, no existirá la carpeta ##
11.1 ## CONTROL+O para guardar CONTROL+X para cerrar, con esto hemos hecho que la carpeta songs de USDX sea visible en la red, si tenemos las canciones en otro directorio en patch = ponemos el directorio correspondiente ##
## Reiniciamos el servidor SAMBA ##
## Para que funcione tenemos que darle permisos a la carpeta songs 0777, podemos hacerlo con WinSPC. ##
## Y ya podremos acceder desde un explorador de windows por ejemplo metiendo la direccion IP tal que así, sin comillas, "\\192.168.1.212", en esta carpeta, meteremos nuestras canciones. ##
11.2 ## Para saber la IP de nuestra raspberry, accedemos por SSH con Putty y tecleamos ##
12.## Arrancar Ultrastar al inicio y apagado automatico cuando salgamos de Ultrastar, creamos un script y le damos permisos de ejecución. ##
## Pegamos el siguiente contenido. ##
Código: Seleccionar todo
#!/bin/sh
echo "Running ultrastardx"
nohup /usr/bin/ultrastardx > /tmp/ultrastardx.log 2>&1&
while ! pgrep ultrastardx > /dev/null; do
echo "waiting start ultrastardx..."
sleep 1
done
echo "ultrastardx running ok, wait while running..."
while pgrep ultrastardx > /dev/null; do
sleep 1
done
echo "Reboot RMS_Pi_Karaoke"
sudo poweroff
## Le damos permisos de ejecución. ##
12.1 ## Creamos un acceso para la ejecución automatica del script. ##
## Directorio donde creamos el acceso. ##
12.2 ## Pegamos este script en el anterior acceso. ##
Código: Seleccionar todo
[Desktop Entry]
Type=Application
Name=rmspi
Comment=RMS_Pi_Karaoke
Exec=sh /home/pi/rmsautoservice.sh
13. ## reiniciamos y listo!