Raspberry Pi Shell Streaming!

TTYCast
Shell Streaming!



Una infinidad de veces queremos enseñarle a un amigo algo, o nos preguntan como realizar algo, estamos dando una clase, etc... Y no precisamos más que la terminal para ello. 

Retransmitir toda la pantalla con todos sus gráficos resulta algo terriblemente pesado y lento en estas situaciones. Lo mejor para estos casos es montar en nuestra queridísima raspberry un TTYCast.

Instalamos NodeJs, git y npm, aunque este último suele venir con la instalación de NodeJs.


apt-get install git nodejs npm

Limpiamos el caché de npm

npm cache clean -f


Registramos el sitio desde donde vamos a descargar los paquetes y le decimos que no es necesario ssl estricto.

npm config set registry http://registry.npmjs.org/
npm config set strict-ssl false


Instalamos un controlador de versiones de NodeJs a traés de npm

npm -g install n

Y le decimos que queremos la versión 0.10.21

n 0.10.21

Por último en la versión 0.10.21 instalamos los paquetes necesarios ttyrec ttycast, express y en general instalamos headless-terminal y connect


/usr/local/n/versions/0.10.21/bin/npm install -g express
npm install headless-terminal
/usr/local/n/versions/0.10.21/bin/npm install -g ttyrec
/usr/local/n/versions/0.10.21/bin/npm install -g ttycast
npm install -g connect



Específicamos el puerto por el que vamos a transmitir, generalmente el 80.

export PORT=80

Si ponemos un puerto por debajo del 1024 tenemos que asegurarnos de que nuestro usuario tenga permisos para usar ese puerto. Si ponemos cualquier otro puerto al conectarnos desde el navegador web tendremos que especificar el puerto después de la dirección.
Ejemplo : curiosoinformatico.com/ttycast:3333
3333 sería el puerto.

A mi a la hora de hacerlo funcionar me dió unos errores que después de probar cosas y analizar el error llegué a como solucionarlo.

Faltaba crear los enlaces simbólicos que por defecto no crea

Crearlos es tan sencillo como hacer:

ln -s /usr/local/n/versions/0.10.21/bin/ttyreccast /usr/bin/ttyreccast
ln -s /usr/local/n/versions/0.10.21/bin/ttycast /usr/bin/ttycast
ln -s /usr/local/n/versions/0.10.21/bin/ttyplay /usr/bin/ttyplay

Ahora en una terminal escribimos

ttyreccast archivooptativo.tty

Donde archivooptativo es una característica optativa que si lo escribimos nos creará un archivo con todo lo que hagamos que después podremos reproducir con ttyplay.

En otra terminal escribimos 

ttyrec /tmp/ttycast


Tardará unos segundos y a continuación parecerá que no ha pasado nada. Tendremos nuestra terminal pero a partir de ese momento todo lo que escribamos en ella será retransmitido vía web.

Si abrimos puertos desde fuera podremos verlo en nuestra ip externa y sino desde la red local podremos verlo desde nuestra ip interna.




Nota:
Es muy recomendable poner una Ip fija. Si no sabes como aquí te dejo un enlace.
http://blog.curiosoinformatico.com/2014/12/un-servidor-en-debian-dia-2.html


Nota 2:
Si nodejs no está en el repositorio en un determinado momento lo podemos instalar de la siguiente manera:

apt-get install python g++ wget libssl-dev  
mkdir /tmp/nodejs 
cd /tmp/nodejs  
wget http://nodejs.org/dist/node-latest.tar.gz  
tar xzvf node-latest.tar.gz  
cd node-v*  
./configure  
make  
make test  
make install

No hay comentarios:

Publicar un comentario