Translate

jueves, julio 04, 2019

¿Cómo Instalar y Configurar VNC en Ubuntu 16.04?

    Introducción
VNC o Virtual Network Computing es un sistema de conexión que le permite utilizar su teclado y su ratón para interactuar con un entorno de escritorio gráfico en un servidor remoto. Facilita la gestión de archivos, software y configuración en un servidor remoto para usuarios que aún no están cómodos con la línea de comandos.
En esta guía, vamos a configurar VNC en un servidor Ubuntu 16.04 y conectarse a él de forma segura a través de un túnel SSH. El servidor VNC que vamos a utilizar es TightVNC, un paquete de control remoto rápido y ligero. Esta opción garantizará que nuestra conexión VNC será suave y estable incluso en conexiones de Internet más lentas.

Requisitos Previos

Para completar este tutorial, necesitará:
  • Un Droplet Ubuntu 16.04 configurado a través del tutorial de configuración inicial del servidor Ubuntu 16.04, que incluye tener un usuario sudo no root
  • Un equipo local con un cliente VNC instalado que admita conexiones VNC a través de túneles SSH. Si está utilizando Windows, puede usar TightVNC, RealVNC o UltraVNC. Los usuarios de Mac OS X pueden usar el programa de Compartir Pantalla integrado o pueden usar una aplicación multiplataforma como RealVNC. Los usuarios de Linux pueden tener muchas opciones: vinagrekrdc, RealVNC, TightVNC y más.

Paso 1 — Instalación del Entorno de Escritorio y del Servidor VNC

De forma predeterminada, un Droplet Ubuntu 16.04 no viene con un entorno gráfico de escritorio o un servidor VNC instalado, por lo que comenzaremos por instalarlos. En concreto, instalaremos paquetes para el último entorno de escritorio Xfce y el paquete TightVNC disponible en el repositorio oficial de Ubuntu.
En su servidor, instale los paquetes Xfce y TightVNC.
  • sudo apt install xfce4 xfce4-goodies tightvncserver
Para completar la configuración inicial del servidor VNC después de la instalación, utilice el comando vncserver para configurar una contraseña segura.
  • vncserver
Se le promocionará para que ingrese y verifique una contraseña y también una contraseña de sólo vista. Los usuarios que inicien sesión con la contraseña de sólo vista no podrán controlar la instancia de VNC con su ratón o teclado. Esta es una opción útil si desea demostrar algo a otras personas usando su servidor VNC, pero no es necesario.
Ejecutar vncserver completa la instalación de VNC creando archivos de configuración predeterminados e información de conexión para que nuestro servidor pueda usar. Con estos paquetes instalados, ya está listo para configurar su servidor VNC.

Paso 2 — Configuración del Servidor VNC

En primer lugar, tenemos que decirle a nuestro servidor VNC qué comandos ejecutar cuando se inicia. Estos comandos se encuentran en un archivo de configuración denominado xstartup en la carpeta .vnc de su directorio personal. El script de inicio se creó al ejecutar el vncserver en el paso anterior, pero necesitamos modificar algunos de los comandos para el escritorio de Xfce.
Cuando VNC se configura por primera vez, inicia una instancia de servidor predeterminada en el puerto 5901. Este puerto se denomina puerto de visualización y VNC lo denomina :1. VNC puede iniciar varias instancias en otros puertos de visualización, como :2 , :3, etc. Al trabajar con servidores VNC, recuerde que :X es un puerto de visualización que se refiere a 5900+X.
Debido a que vamos a cambiar la configuración del servidor VNC, primero deberemos detener la instancia del servidor VNC que se está ejecutando en el puerto 5901.
  • vncserver -kill: 1
La salida debería verse algo así, con un PID diferente:
Output
Killing Xtightvnc process ID 17648
Antes de comenzar a configurar el nuevo archivo xstartup, vamos a hacer una copia de seguridad del original.
  • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
Ahora crea un nuevo archivo xstartup con nano o tu editor de texto favorito.
  • nano ~/.vnc/xstartup
Pegue estos comandos en el archivo para que se realicen automáticamente cada vez que inicie o reinicie el servidor VNC, luego guarde y cierre el archivo.
~/.vnc/xstartup
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
El primer comando en el archivo, xrdb $HOME/.Xresources, le dice al framework de la GUI de VNC que lea el archivo .Xresources del usuario del servidor. .Xresources es donde un usuario puede realizar cambios en determinadas configuraciones del escritorio gráfico, como colores de terminales, temas de cursor y representación de fuentes. El segundo comando simplemente le dice al servidor que inicie Xfce, que es donde encontrará todo el software gráfico que necesita para administrar cómodamente su servidor.
Para asegurarse de que el servidor VNC pueda utilizar este nuevo archivo de inicio correctamente, tendremos que concederle privilegios ejecutables.
  • sudo chmod +x ~/.vnc/xstartup
Ahora, reinicie el servidor VNC.
  • vncserver
El servidor se debe iniciar con una salida similar a esto:
Output
New 'X' desktop is your_server_name.com:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/liniverse.com:1.log

Paso 3 — Prueba del VNC Desktop

En este paso, probaremos la conectividad de su servidor VNC.
Primero, necesitamos crear una conexión SSH en su computadora local que se envíe de forma segura a la conexión localhost para VNC. Puede hacerlo a través de la terminal en Linux u OS X con el siguiente comando. Recuerde reemplazar user y server_ip_address con el nombre de usuario sudo no root y la dirección IP de su servidor.
  • ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Si está utilizando un cliente SSH gráfico, como PuTTY, use server_ip_address como IP de conexión y establezca localhost: 5901 como un nuevo puerto reenviado en la configuración del túnel SSH del programa.
A continuación, ahora puede utilizar un cliente VNC para intentar una conexión al servidor VNC en localhost: 5901. Se le pedirá que se autentique. La contraseña correcta para usar es la que estableció en el paso 1.
Una vez conectado, debe ver el escritorio de Xfce predeterminado. Debe ser algo como esto:
Conexión VNC para servidor Ubuntu 16.04
Puede acceder a los archivos en su directorio personal con el administrador de archivos o desde la línea de comandos, como se ve aquí:
Archivos vía Conexión VNC para Ubuntu 16.04

Paso 4 — Creación de un archivo de servicio VNC

A continuación, configuraremos el servidor VNC como un servicio systemd. Esto hará posible iniciarlo, detenerlo y reiniciarlo según sea necesario, como cualquier otro servicio systemd.
Primero, cree un nuevo archivo de unidad llamado /etc/systemd/system/vncserver@.service usando su editor de texto favorito:
  • sudo nano /etc/systemd/system/vncserver@.service
Copie y pegue lo siguiente en él. Asegúrese de cambiar el valor de User y el nombre de usuario en el valor de PIDFILE para que coincida con su nombre de usuario.
/etc/systemd/system/vncserver@.service
[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=sammy PAMName=login PIDFile=/home/sammy/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
Guarde y cierre el archivo.
A continuación, haga que el sistema sea consciente del nuevo archivo de unidad.
  • sudo systemctl daemon-reload
Habilite el archivo de la unidad.
  • sudo systemctl enable vncserver@1.service
Detenga la instancia actual del servidor VNC si todavía está en ejecución.
  • vncserver -kill :1
A continuación, inícielo como iniciar cualquier otro servicio systemd.
  • sudo systemctl start vncserver@1
Puede verificar que se inició con este comando:
  • sudo systemctl status vncserver@1
Si se inició correctamente, la salida debería tener este aspecto:
Output
vncserver@1.service - TightVNC server on Ubuntu 16.04
   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
  Process: 2924 ExecStop=/usr/bin/vncserver -kill :%i (code=exited, status=0/SUCCESS)

...

 systemd[1]: Starting TightVNC server on Ubuntu 16.04...
 systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0)
 systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0)
 systemd[1]: Started TightVNC server on Ubuntu 16.04.

Conclusión

Ahora debe tener instalado un servidor VNC asegurado en su servidor Ubuntu 16.04. Ahora podrá administrar sus archivos, software y configuraciones con una interfaz gráfica fácil de usar y familiar.

sábado, abril 13, 2019

Comprimir y descomprimir, tar gzip zip

Archivos .tar.gz:
Comprimir: tar -czvf empaquetado.tar.gz /carpeta/a/empaquetar/
Descomprimir: tar -xzvf archivo.tar.gz

Archivos .tar:
Empaquetar: tar -cvf paquete.tar /dir/a/comprimir/
Desempaquetar: tar -xvf paquete.tar

Archivos .gz:
Comprimir: gzip -9 index.php
Descomprimir: gzip -d index.php.gz

Archivos .zip:
Comprimir: zip archivo.zip carpeta
Descomprimir: unzip archivo.zip

jueves, abril 11, 2019

Telegram IoT: Crear un bot Telegram

Cómo crear un bot para Telegram y darle funcionalidad

En este post voy a explicaros como desarrollar un bot sencillo en Telegram.

Descargar Telegram
¿Está claro, no? Lo primero que necesitas es descargar la aplicación de Telegram en tu ordenador. Para ello, acude a la página oficial de telegram y elige la opción que se adapte al modelo de tu ordenador. Una vez finalizada la instalación, podrás acceder a Telegram tal y como haces en el teléfono móvil.

Tengo que destacar que esta versión para desktop funciona realmente bien, es como utilizar la app móvil pero con la ventaja de usar el teclado, el mouse y, por supuesto, una pantalla más grande.

Conoce a “Bot Father”
Si no has leído previamente ningún tutorial sobre desarrollo en Telegram ahora mismo te habrás quedado más o menos así:

Bueno, vayamos al grano. Lo primero que tienes que hacer es buscar al BotFather utilizando el buscador de Telegram. Cuando des con él, inicia una conversación,  el bot te ofrece automáticamente una serie de posibilidades:

Paso 1: crear un bot nuevo y ser conscientes de todas las opciones disponibles.

Algunos de esos comandos son:
/newbot — para crear un nuevo bot
/token — para generar el token
/revoke — revocar acceso al token
/setname — cambiar el nombre del bot
/setdescription — cambiar la descripción del bot
/setabouttext — cambiar el texto “about me”
/setuserpic — cambiar la foto de perfil
/setinline — cambiar los ajustes de “inline” (lo que permite que el bot interactúe desde cualquier chat), perfecto para bots que participen en grupos (como bots de Trivial y cosas así). Más información aquí
/setinlinefeedback — relacionado con lo anterior y que no nos interesa por ahora
/setcommands — establece los comandos del bot
/setjoingroups — determina si el bot se puede o no unir a grupos
/setprivacy — determina los mensajes que verá nuestro bot si se une a un grupo
/deletebot — eliminar un bot
/cancel — cancelar lo que estemos haciendo

Lo primero que tienes que hacer es clickar en “/newbot”. Al clickar BotFather te dirá que bautices a tu bot con un nombre. Recuerda, que este nombre tiene que acabar en “bot” o en “_bot”. En mi caso, he decidido llamarle “Nutellita_bot”. Tras comprobar que todo está correcto, BotFather te lanzará el token del bot con el que tendrás que seguir trabajando en los siguientes pasos. Pero antes de analizar esas cuestiones, no pierdas de vista la documentación que te lanza en ese mismo paso.

Paso 2: Nombre del bot con token incluido.

Pero para que tu bot esté completo, además de ponerle un nombre, tienes que fijar una descripción, elegir una foto y otras muchas cuestiones. Para ello, solo tienes que escribir la opción /mybots, automáticamente aparecerá una serie de opciones entre las que se encuentran:
API TOKEN: Si haces click en este botón te aparecerá el token de tu bot.
EDIT BOT: para que edites el nombre, la imagen, la descripción, el about y los comandos.
BOT SETTINGS: en esta opción encontrarás “inline mod” que te permitirá utilizar comandos como @giphy. También, encontrarás la opción de unirlo a grupos privados o públicos.
PAYMENTS: opción para conectar con el método de pago, por ejemplo Stripe.
DELETE BOT: si te arrepientes y ya no quieres desarrollar el bot, solo tienes que hacer click en esta opción y el bot se eliminará.

Es hora de probar a Nutellita
Una vez completados todos los apartados que estimes oportunos, especialmente los que están relacionados con el nombre y la descripción del bot, es el momento de ponerlo en marcha. Eso sí, recuerda que antes de llevar a cabo el paso que te voy a explicar a continuación, tendrás que haber desarrollado la conversación utilizando el lenguaje de programación que estimes oportuno y siguiendo las normas que Telegram determina en sus documentos oficiales.
El último paso es conectar tu bot con tu server/código. Te va a parecer increíble,pero para ello solo tienes que ejecutar esta ruta:
https://api.telegram.org/bot/setWebhook?url=
Bueno, esta tal cual no, recuerda poner en la parte de TOKEN, el TOKEN de tu bot y en la parte de /url poner la ruta de entrada de tu código.


viernes, abril 05, 2019

1.8" inch ST7735R SPI 128*160 TFT

Cenxiones de pines (con esto ya podemos usar programas en python sin
agregar modulo al kernel):



Agregar modulos al kernel:

HAbilitar con raspi-config, el modulo SPI:
The SPI interface is ena.bled 

cargar modulos al kernel:
modprobe fbtft_device name=flexfb

modprobe fbtft_device name=sainsmart18 speed=16000000 rotate=270

I've activated SPI in raspi-config, and I've added fbcon=map:10 fbcon=rotate:1 fbcon=font:ProFont6x11 in /boot/cmdline.txt, but I see nothing but a white screen.

A modprobe fbtft_device name=adafruit18 gives the following:
Code: Select all
Apr  2 21:57:29 egpu kernel: [ 5888.241426] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
Apr  2 21:57:29 egpu kernel: [ 5888.242751] spidev spi0.1: spidev spi0.1 500kHz 8 bits mode=0x00
Apr  2 21:57:29 egpu kernel: [ 5888.242804] bcm2708_fb soc:fb: soc:fb id=-1 pdata? no
Apr  2 21:57:30 egpu kernel: [ 5889.145656] graphics fb1: fb_st7735r frame buffer, 128x160, 40 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi0.0 at 32 MHz
Apr  2 21:57:30 egpu kernel: [ 5889.145713] fbtft_device: GPIOS used by 'adafruit18':
Apr  2 21:57:30 egpu kernel: [ 5889.145722] fbtft_device: 'reset' = GPIO25
Apr  2 21:57:30 egpu kernel: [ 5889.145729] fbtft_device: 'dc' = GPIO24
Apr  2 21:57:30 egpu kernel: [ 5889.145736] fbtft_device: 'led' = GPIO18
Apr  2 21:57:30 egpu kernel: [ 5889.145752] spidev spi0.1: spidev spi0.1 500kHz 8 bits mode=0x00
Apr  2 21:57:30 egpu kernel: [ 5889.145765] fb_st7735r spi0.0: fb_st7735r spi0.0 32000kHz 8 bits mode=0x00
Plus, /dev/fb1 appears after the modprobe. 
There is also no luck in xorg - using /dev/fb1 in /usr/share/X11/xorg.conf.d/99-fbturbo.conf for fbturbo is not contributing. The white screen is residual. But the x startup was only a test, in the end I'd like nothing more than a console. 

Any ideas?


Sainsmart 1.8"

Sainsmart 1.8
Wiring

DisplayDriver gpio nameRaspberry PiRemark
GNDGND
VCC3.3V
SCLSCLK
SDAMOSI
RS/DCdcGPIO24Command/data
RESresetGPIO25
CS
https://github.com/notro/fbtft/wiki/LCD-Modules#sainsmart-18