martes, 19 de septiembre de 2017

Cómo descargo manga desde Ubuntu?

Frente a los líderes de los gremios que componen Las 62 Organizaciones, Juan Perón enseña a instalar un descargador de Manga para Ubuntu.

¡Trabajadores!

Es esta una brillante oportunidad para tonificar el contacto entre el Conductor y el Pueblo Argentino. El trabajador debe ir de casa al trabajo y del trabajo a casa. Pero también debe disfrutar de los Derechos que - gracias al Justicialismo - son Realidad Efectiva.

Entre ellos, el de descargar libre, gratuita, y eficientemente el cómic de origen nipón que deseen. El manga (así se conoce a este tipo de literatura gráfica) tiene una extendida red de adeptos, casi tantos como los del Movimiento Justicialista que comando por designio del Pueblo. Son sus superhéroes los más famosos...
Existen foros y webs que contienen los cómics, pero la opresión y la insidia están en todos lados. Debemos descargar una a una las páginas del cómic que nos interesa, y ello es molesto e incordioso.
Afortunadamente el Justicialismo ha logrado un avance con una webapp que hace uso de la programación en nube sencilla, HaruNeko S, liberada bajo licencia MIT.
Se trata de una aplicación capaz de descargar desde varios sitios del género, y nos permite grabar como imágenes individuales, archivos CBZ (Comic Book), o eBook. Además, permite previsualizar los capítulos.

Para instalar esta aplicación habremos de hacer uso de la terminal; abrimos una con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:

cd ~/Descargas

wget https://downloads.sourceforge.net/project/hakuneko/0.0.32/hakuneko-desktop_0.0.32_linux_amd64.deb

sudo dpkg -i hakuneko-desktop_0.0.32_linux_amd64.deb

Una vez instalado, podremos ejecutar el programa desde Aplicaciones / Internet / Hakuneko Desktop.

En primer lugar se inicializará el programa...

...y ya tendremos la ventana en blanco, con el programa iniciado.

HakuNeko S nos deja ver y descargar manga desde algunos sitios online selectos para descarga de este tipo de contenido. Entre ellos se encuentran: Batoto, DynastyScans, JapScan, KissManga, MangaFox, MangaGo, MangaHere, MangaNel, MangaPanda, MangaPark, MangaReader, MangaStrea y MangaTown.


Haciendo clic en el botón propiedades podremos definir las mismas, especialmente la hubicación donde se descargarán los contenidos, y el formato que estos representarán. Normalmente se utilizan simples imágenes JPG de los escaneos individuales de las páginas, disponiéndolas encarpetadas dentro de nuestra carpeta Documentos/Mangas. Sin embargo, también se puede optar por disponer todo en tomos CBZ (archivo de formato Comic Book abierto) o directamente ePub. Normalmente recomiendo la comodidad del  archivo CBZ.

Para comenzar a utilizar HaruNeko S, primero debemos actualizar la lista de mangas disponibles para descargar o visualizar. Para ello debemos elegir uno de los proveedores de Manga y presionar el botón "Sincronizar".

En pocos segundos se descargará la lista de mangas disponibles en cada proveedor, y podremos hacer uso de la función de búsqueda (campo "lupa") para buscar un manga en particular desde la lista. Si lo encontramos, nos detallará los episodios disponibles en la segunda ventana. Allí podremos también escoger su idioma. Normalmente se encuentran en inglés (en) pero en varios proveedores podremos optar también por castellano.

Haciendo clic en el ícono del "cuadro" podremos ver una previsualización de todas las páginas que componen a episodio, y ampliarlas para leerlas.
Si deseamos directamente descargar los capítulos para disponer de ellos localmente, podremos hacer clic en el ícono de "nube". Normalmente estos se verán en forma de JPG, o si optamos, en CBZ, y se descargarán en muy pocos segundos. Normalmente podremos hacer hasta 4 descargas a la vez (lo cual puede aumentarse en las propiedades, dependiendo de las características de nuestra conexión). En la lista de descargas, los episodios finalizados cobrarán la forma de un sol amarillo.

Es importante notar que los archivos CBZ los podremos leer directamente con eVince o Atril (lectores de PDF estándar de Ubuntu), pero también podremos optar por el excelente visualizador dedicado Comix. Para descargar este programa podremos abrir una terminal con Ctrl+Alt+T e ingresar el siguiente Comando de Organización:

sudo apt install comix
Podremos iniciar Comix desde Aplicaciones / Gráficos / Comix. Este gran programa nos permite cargar archivos JPG, CBR, u otros. Tiene zoom y ajuste, visualización "a doble página" e incluso "modo manga" que ordenará las páginas al estilo invertido usual en el Imperio del Sol Naciente.


Tendremos también la opción de doble página y pantalla completa, lo cual facilita disfrutar de las obras en formato tradicional oriental.

Y ahora dirán conmigo: Perón-sama Tenno Hekka BANZAI!

Cómo recupero Grub con el LiveCD de Ubuntu

Indudablemente, un país que tiene grandes problemas que requieren serios esfuerzos para solucionarlos. Sin embargo, otros problemas que a primera vista parecerían de gran complejidad, pueden tener realmente una sencilla solución: sólo requieren el consabido conocimiento y un par de minutos de tiempo.

Unos de estos problemas consiste en cómo reparar el arrancador Grub de un equipo dañado. Múltiples pueden ser las causas de este simple descalabro, y en este caso no ha sido otra que reinstalar un sistema operativo de la oligarquía en un equipo que ya contaba con Ubuntu. Este error se debe a que dicho sistema operativo adquiere la despreciable costumbre de sobreescribir el sector de arranque de nuestro/s disco rígido con su propio arrancador, el cual omite a los sistemas operativos libres que pudiesen convivir en él. Esto normalmente puede aquejar a un principiante, mas no a un avezado conductor de Ubuntu, y solucionarlo será tan sencillo como darle una pelota a un niño en la Fundación Eva Perón.
Podremos reinstalar Grub sin tener que reinstalar Ubuntu, si tenemos a mano un medio de instalación de nuestro sistema operativo justicialista: en este caso un LiveDVD de Ubuntu MATE (pero puede servir cualquiera de Ubuntu a partir de 14.04LTS y de otras distribuciones compatibles).

Arrancamos nuestro sistema con tal LiveDVD o eventualmente un pendrive con la instalación (para ello hacemos uso de la función de arranque de la BIOS presionando F11, F2 o el comando correspondiente según sea necesario).

Conforme se haya iniciado Ubuntu, escogemos el idioma y procedemos a elegir arrancar en el modo de Prueba. Acto seguido procedemos a abrir una terminal con Ctrl+Alt+T, y escalamos nuestro permiso a superusuario. Ello podremos hacerlo ingresando el comando:

sudo -s

Luego listamos las particiones de discos, para ubicar específicamente en cuál de ellas está instalado Ubuntu (u otros sistemas operativos que podríamos tener). Ello lo haremos con

fdisk -l

La terminal nos devolverá algo similar a

Disco /dev/sda: 320.1 GB, 320072933376 bytes
255 cabezas, 63 sectores/pista, 38913 cilindros, 625142448 sectores en total
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador del disco: 0xc42f9907

Dispositivo Inicio Comienzo  Fin       Bloques  Id Sistema
/dev/sda1          2048      83888127  41943040 83 Linux  (esta)
/dev/sda2          83888128  88082431  2097152  82 Linux swap / Solaris
/dev/sda3     *    88082432  488728575 200323072 7 HPFS/NTFS/exFAT
/dev/sda4          488728576 625141759 68206592  7 HPFS/NTFS/exFAT

Tras la información del disco, nos detalla las particiones de este, en este ejemplo caso la partición en la cual está instalado Ubuntu es la /dev/sda1 por ello en el siguiente paso usaremos sda1. Debemos asegurarnos específicamente de colocar la que corresponda según nuestra configuración.

sudo mount /dev/sda1 /mnt
Realizado este predicamente, habremos montado al sistema de archivos, la partición de nuestro disco en el cual está Ubuntu. Sólo resta reinstalar el arrancador Grub allí, con dos simples comandos de organización:

sudo grub-install --boot-directory=/mnt/boot /dev/sda
 
y finalizamos con:

sudo grub-install --root-directory=/mnt /dev/sda
sudo update-grub
 
Ya podemos reiniciar nuestra PC, y aparecerá el menú arrancador GRUB listando el/los sistemas operativos.

viernes, 15 de septiembre de 2017

¿Cómo cambio la pantalla de arranque de Ubuntu?


En mayo de 1974, Juan Perón anuncia medidas tendientes a acomodar una relación efectiva entre el costo de vida y el salario, y explica cómo instalar diferentes temas de la pantalla de inicio ("Splash") Plymouth para Ubuntu.

En la C.G.T. voy a tratar un tema que es de actualidad y que creo necesario rescatar desde el Gobierno. Un tema que es de actualidad en la clase trabajadora. Se trata de la relación entre sueldos y costos de vida, o en otras palabras, precios y salarios. Tema de suma importancia para el mantenimiento de un equilibrio sin el cual, normalmente, el hilo se suele cortar por lo mas delgado.


Para esto quiero en pocas palabras historiar ese desenvolvimiento en nuestro país. Hace ya 30 años cuando se crea el Justicialismo, nuestro país se encontraba en ese aspecto en unas condiciones lamentables. En estos 30 años, todo el proceso social del país ha avanzado. En 1943 cuando empezamos a actuar nosotros, nuestro país no tenía casi industrias. Ni los alfileres que empleaban nuestras modistas acá en Buenos Aires se fabricaban en el país: todo venía del exterior. Nosotros empezamos la industrialización del país.

Es decir que fuimos convirtiendo una masa rural en una masa urbana organizada. Por eso cuando se empezó a trabajar sobre sueldos y salarios, preferentemente se comenzó con el trabajador rural. Desde Trabajo y Previsión la primera reforma de fondo que se hizo fue el estatuto del peón. La situación de esos trabajadores rurales era muy próxima a la esclavitud, algunas veces peor. Había peones que ganaban 10 pesos por mes, y el término medio de los salarios rurales no pasaba de 50 pesos por mes. Entre esto había que considerar todo el proceso de la yerba, el tanino, todos trabajadores rurales; indudablemente desorganizados y dispersos. De manera que no había nadie que pudiera ocuparse de la defensa de los intereses profesionales.

El sector de la industria era insignificante. Yo recuerdo que cuando puse el estatuto del peón y obligamos a todo el mundo a poner un salario, se produjo en el campo nuestro un gran alboroto. La primera carta que recibí fue de mi madre que tenía una estancia en la Patagonia. Me decía "si vos creés que yo le puedo pagar 150 pesos a los peones te has vuelto loco". Naturalmente que yo le contesté a renglón seguido "si no podés pagar, tenés que dejarlos que vayan a otra parte donde le paguen, en vez de tener 20 peones tené 10, pero pagales por lo menos". Y los pagó, y estuvo conforme, y tomó todas las medidas. Y cito este caso porque eso fue general en todo el campo, en todo el país. Por primera vez el trabajador rural entró en la categoría de trabajador, y no de bestia de trabajo, o de esclavo.

Desde entonces hasta ahora han pasado 30 años, y nosotros - ese país que recibimos en el 46 sin industria - en 1955 debimos dejar el gobierno por la presión del levantamiento militar, lo dejamos fabricando ya toda la industria mediana, en una linea completa, y exportando manufacturas: fabricamos máquinas diésel eléctricas con las que reemplazamos los ferrocarriles, camiones, automóviles, tractores, y toda la línea ya inicial de la industria mediana.

Todo ese proceso fue acompañado precisamente por las medidas sociales que desde Trabajo y Previsión se fueron realizando. Para hacer un guiso de liebre lo primero que hay que tener es la liebre. Por eso nosotros pensamos el paso inicial que era el de poder consolidar una organización de los trabajadores rurales y los trabajadores urbanos. Eso es fácil en los trabajadores urbanos y difícil de hacer con los rurales porque están tan dispersos, y sometidos a tantas influencias raras, las fuerzas patronales, las costumbres, que para realizarlos se necesita que pase tiempo. Sin embargo, fuimos dando pasos importantes con las medidas. Fue entonces cuando pudimos pensar en organizar los elementos necesarios para establecer un equilibrio perfecto entre el costo de la vida y los salarios que se pagaban.

Comenzamos por formar lo que llamamos el Instituto de la Remuneración, que funcionó en Trabajo y Previsión, y que estudió localmente como también desde un punto de vista general los salarios con relación al costo de la vida. y nos dio un índice para establecer lo que llamamos en ese entonces el salario vital y móvil, es decir una base debajo de la cual no podía estar ningún trabajador porque estaba sumergido, es decir porque no ganaba lo necesario para hacer frente al costo de la vida.

Ese fue el punto de la vida ya en 1948, fue así que se fue estableciendo paulatinamente ese equilibrio, que se refleja perfectamente bien en los porcentuales de la distribución de la renta y en la distribución de los beneficios.

En 1955 la proporción establecida y consolidada en un país con muy débil inflación era: el 47,7% de los beneficios iba al trabajo, y el 52,3 iba para las empresas. Eso en ese entonces resultó justo, porque el poder adquisitivo de la masa había aumentado extraordinariamente, o sea que congelados los precios no habíamos permitido que la inflación anulara todo beneficio. Yo recuerdo que en el 54, en una de las últimas reuniones donde participé en la presidencia donde concurrieron todos los secretarios generales de los gremios argentinos, yo les pregunté si en ese aspecto estaban conformes o estaban satisfechos. Y unánimemente me dijeron "no queremos aumentos de sueldo, lo que no queremos es que aumenten los precios".

Cuando nosotros establecimos los convenios colectivos del trabajo sobre esta base, un salario vital y móvil regulado por el instituto de la remuneración, se produjo un amplio beneficio a todo el sector obrero.

Esto es así por un estudio profundo de las acciones llevadas a cabo. Lo mismo debe hacerse en Ubuntu cuando contemplamos modificar la pantalla del arrancador. Vean señores, Ubuntu emplea el arrancador Grub, y una vez elegido este, utiliza Plymouth para mostrar su pantalla de arranque (llamado en la jerga, Splash). Normalmente este Splash suele depender de la distribución específica.

Podremos descargar cientos de temas de Splash desde la web oficial Gnome Look y descargar los que querramos. Sin embargo, debemos tener en importante consideración lo siguiente. Con anterioridad a la versión 16.04LTS de Ubuntu, los temas debían guardarse en la carpeta /lib/plymouth/themes, y a partir de Ubuntu Xenial (16.04LTS) estos deben guardarse en la carpeta /usr/share/plymouth/themes. Debemos estar atentos a este nuevo esquema de carpetas sobre todo si instalamos Themes antiguos cuyas instrucciones o empaquetados podrían seguir el esquema antiguo y fallar. En tal caso, se reportará en la terminal el siguiente error cuando querramos hacer uso de un Theme:

plymouth module "(/usr/lib/i386-linux-gnu/plymouth//.so)" missing, skipping that theme

Podemos buscar los themes con:

apt search plymouth-theme

Y nos devolverán los paquetes que podemos instalar, por ejemplo:

Ordenando... Hecho
Buscar en todo el texto... Hecho
plymouth-theme-breeze/xenial 5.8.7-0ubuntu1~ubuntu16.04~ppa2 amd64
  Breeze theme for Plymouth

plymouth-theme-edubuntu/xenial,xenial 15.12.1 all
  Plymouth is an application that runs very early

plymouth-theme-hamara/xenial,xenial 1.0 all
  boot animation, logger and I/O multiplexer - Hamara theme

plymouth-theme-kubuntu-logo/xenial,xenial 1:16.04ubuntu2 all
  graphical boot animation and logger - kubuntu-logo theme

plymouth-theme-kubuntu-text/xenial,xenial 1:16.04ubuntu2 all
  graphical boot animation and logger - kubuntu-text theme

plymouth-theme-lubuntu-logo/xenial-updates,xenial-updates 0.61.1 all
  tema de plymouth para Lubuntu

plymouth-theme-lubuntu-text/xenial-updates,xenial-updates 0.61.1 all
  plymouth text theme for Lubuntu

plymouth-theme-sabily/xenial,xenial 1.3 all
  plymouth theme for Sabily (graphical theme)

plymouth-theme-sabily-text/xenial,xenial 1.3 all
  plymouth theme for Sabily (text theme)

plymouth-theme-ubuntu-gnome-logo/xenial-updates,xenial-updates 16.04.5 all
  graphical boot animation and logger - ubuntu-gnome-logo theme

plymouth-theme-ubuntu-gnome-text/xenial-updates,xenial-updates 16.04.5 all
  graphical boot animation and logger - ubuntu-gnome-text theme

plymouth-theme-ubuntu-logo/xenial-updates,now 0.9.2-3ubuntu13.1 amd64 [instalado]
  boot animation, logger and I/O multiplexer - ubuntu theme

plymouth-theme-ubuntu-mate-logo/xenial,xenial,now 16.04.8~xenial3.1 all [instalado]
  graphical boot animation and logger - ubuntu-mate-logo theme

plymouth-theme-ubuntu-mate-text/xenial,xenial,now 16.04.8~xenial3.1 all [instalado]
  graphical boot animation and logger - ubuntu-mate-text theme

plymouth-theme-ubuntu-text/xenial-updates,now 0.9.2-3ubuntu13.1 amd64 [instalado]
  boot animation, logger and I/O multiplexer - ubuntu text theme

plymouth-theme-ubuntustudio/xenial,xenial 0.53 all
  Tema Plymouth de Ubuntu Studio

plymouth-theme-xubuntu-logo/xenial,xenial 16.04.2 all
  graphical boot animation and logger - xubuntu-logo theme

plymouth-theme-xubuntu-text/xenial,xenial 16.04.2 all
  graphical boot animation and logger - xubuntu-text theme

plymouth-themes/xenial-updates 0.9.2-3ubuntu13.1 amd64
  boot animation, logger and I/O multiplexer - themes



Para instalar uno de dichos paquetes podremos hacer nuevamente uso de la Terminal. Por ejemplo, si queremos instalar el tema de Ubuntu Mate, podríamos hacer:

sudo apt install plymouth-theme-ubuntu-mate-logo

También podríamos querer instalar todos a la vez, con:

sudo apt reinstall --reinstall plymouth-themes
sudo apt install plymouth-theme-*

Una vez instalado el o los paquetes en cuestión, debemos activar aquél que querramos utilizar de entre todas las alternativas que tengamos en nuestro sistema. Para ello ingresamos:

sudo update-alternatives --config default.plymouth

...y el sistema nos devolverá las alternativas que podríamos usar, por ejemplo:

Existen 4 opciones para la alternativa default.plymouth (que provee /usr/share/plymouth/themes/default.plymouth).

  Selección   Ruta                                                                           Prioridad  Estado
------------------------------------------------------------
* 0            /usr/share/plymouth/themes/ubuntu-mate-logo/ubuntu-mate-logo.plymouth           150       modo automático
  1            /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo-scale-2.plymouth             99        modo manual
  2            /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth                     100       modo manual
  3            /usr/share/plymouth/themes/ubuntu-mate-logo/ubuntu-mate-logo-scale-2.plymouth   149       modo manual
  4            /usr/share/plymouth/themes/ubuntu-mate-logo/ubuntu-mate-logo.plymouth           150       modo manual

Press to keep the current choice[*], or type selection number: 3
update-alternatives: utilizando /usr/share/plymouth/themes/ubuntu-mate-logo/ubuntu-mate-logo-scale-2.plymouth para proveer /usr/share/plymouth/themes/default.plymouth (default.plymouth) en modo manual


La indicada con el asterisco ("*") será la opción utilizada actualmente. Para elegir otra debemos indicar el número correspondiente. Si presionamos Enter confirmaremos la opción actual.

Una vez que escojamos alguna, debemos asegurarnos de activar o no la opción de framebuffer (dependiendo de nuestro modo de video).

sudo nano /etc/initramfs-tools/conf.d/splash

Y le agregamos el siguiente contenido:

framebuffer=y

Guardamos y salimos del editor GNU Nano con Ctrl+o y Ctrl+x y luego refrescamos todo con:

 sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-4.10.0-33-generic

Con esto ya deberíamos poder activar un theme instalado. Sin embargo, también podría ser útil crear un guión que active un theme en particular y eventualmente lo pruebe durante unos 10 segundos, para evitar tener que reiniciar el equipo para hacerlo. Para ello podremos usar:

nano update-plymouth

Se abrirá un archivo en blanco con ese nombre, al cual podremos pegarle el siguiente código:
#!/bin/bash

echo "Elija el número del Theme que desea usar, y luego presione [ENTER]"
echo
sudo update-alternatives --config default.plymouth
sudo update-initramfs -u
echo
read -p "Desea probar el Themee? (S/N) "
if [ "$REPLY" != "n" -a "$REPLY" != "N" ] ; then
 echo
 echo "Running 10-second test..."
 sudo plymouthd ; sudo plymouth --show-splash ; for ((I=0; I<10 --quit="" --update="test$I" 1="" code="" do="" done="" exit="" fi="" i="" plymouth="" sleep="" sudo="">

Luego de guardar el archivo con Ctrl+o y salir del editor Nano con Ctrl+x, podremos darle permisos de ejecución con:

chmod +x update-plymouth

Y podremos ejecutarlo con:

sudo ./update-plymouth

jueves, 14 de septiembre de 2017

¿Cómo puedo correr una máquina virtual Ubuntu en Window$ 10 y Windows Server?

El 12 de junio de 1974, Juan Perón pronuncia un histórico discurso, donde expone cómo convertirse en un agente de vigilancia y control para neutralizar lo negativo que tienen los sectores, y cómo apostolar a través de máquinas virtuales Hyper-V de Ubuntu bajo Window$ 10 y Window$ 10 Server.

¡Compañeros!

Retempla mi espíritu volver a presencia de este pueblo que toma en sus manos la responsabilidad de defender a la Patria. Creo, también, que ha llegado la hora de que pongamos las cosas en claro.
Estamos luchando por superar lo que nos han dejado en la República y, en esta lucha, no debe faltar un solo argentino que tenga el corazón bien templado.


Sabemos que tenemos enemigos que han comenzado a mostrar sus uñas. Pero, también sabemos que tenemos a nuestro lado al Pueblo, y cuando éste se decide a la lucha, suele ser invencible.

Hoy es visible, en esta circunstancia de lucha, que tenemos a nuestro lado al pueblo, y nosotros no defendemos ni defenderemos jamás otra causa que no sea la causa del Pueblo.

Yo sé que hay muchos que quieren desviarnos en una o en otra dirección. Nosotros conocemos perfectamente bien nuestros objetivos y marcharemos directamente a ellos, sin influenciarnos ni por los que tiran desde la derecha ni por los que tiran desde la izquierda.

El Gobierno del Pueblo es manso y es tolerante, ¡pero nuestros enemigos deben saber que tampoco somos tontos!

Nadie duda ya que hace años es posible correr en Ubuntu máquinas virtuales como Wine, que nos permiten emular Window$, aquél limitado sistema operativo privativo de antaño. A tal fin he dado cátedra en la Escuela de Guerra sobre cómo instalar y correr emuladores de equipamiento antiguo tanto de la misma arquitectura como de otras, tales como DosBOX con Windows, aislado para juegos o DosEmu, o SIMH. Esto es así pues - en el ámbito del software libre - son enormes las ventajas comparativas y las facilidades para hacer nuestro hardware actual y del ayer bajo la flama del Justicialismo.

Ahora bien, también hemos de notar que es posible también correr contenedores Docker sobre Window$ 10 y Window$ $erver, dejando a Ubuntu como base de ejecución y contenedor.

Naturalmente que lo primero es plantearnos el serio dilema moral que ello plantea y requiere, pues es sabido que los sistemas operativos Window$ no son libres, sino engendros privativos destinados a espiar al usuario a través de software en el mejor de los casos será malicioso.

Poco sentido real tiene, más que el de infiltrar las filas de las oligarquías con herramientas superiores, a fin de convencer a todo el que se pueda. ¡Imaginemos correr nuestras propias aplicaciones Linux en Window$, empleando una distribución como Ubuntu Peronista! Tal ha de ser el objetivo, pues cada individuo que use software libre se multiplicará apostolándolo, y afianzando así no una comunidad de individuos, sino una Comunidad Organizada.

Dicho esto, os explicaré cómo es posible engendrar un sistema huésped basándonos en la tecnología libre Docker, y la virtualización Hyper-V bajo Window$.
1. Requerimientos
Para lograr el éxito anhelado debemos disponer de un sistema tipo x86 (una PC común) con procesador de 64 bitios y compatible con la tecnología Hyper-V (también llamada Intel VTx), dotado idealmente con 8 GB de memoria RAM o más, y corriendo Window$ 10 o Window$ $erver.

A diferencia de GNU, Window$ es un sistema operativo de tipo excluyente, por lo cual sólo podremos correr contenedores GNU/Linux con Hyper-V en la medida en que tengamos una membresía en el programa que Micro$oft ha dado en llamar Window$ In$ider. Este esquema nos deja evaluar software prelanzamiento (betas), y versiones futuras de Window$, pretendiéndonos desarrolladores y usuarios de tal plataforma nociva.

Si la estabilidad y la privacidad son esenciales fundamentalmente en nuestra instalación - Window$ Insider oficializa la acción de Micro$oft de recoger información del equipo del usuario - no quedará otro remedio que considerar aguardar a la actualización de Window$ 10 Fall Creator, disponible a partir de octubre de 2017. Con este lanzamiento, se podrá emplear Docker munido de Hyper-V sin necesidad de la membresía Window$ Insider. Pero si queremos combatir al capital asegurándonos la privacía por medio de otros esquemas, podremos darnos de alta en Window$ In$ider.

Asimismo, necesitaremos contar con una instalación reciente de Docker, que podremos descargar libremente desde http://dockerproject.org. Como ingrediente final habremos de tener instalado XZ Utils, la versión Window$ de las aplicaciones de descompresión libres, necesarias para descomprimir correctamente la imagen contenedora de Ubuntu.

2. Unirse al programa Window$ In$ider

Si ya somos miembros del programa Window$ Insider Program, podremos evitar el siguiente paso. Si no, debemos abrir el este enlace en nuestro navegador:

Para enrolarnos, nos damos de alta usando la misma cuenta personal que empleamos para usar con Window$ 10, y seguimos nuestro propio enlace personal para la página de Introducción del programa In$ider. Aceptamos los draconianos términos y condiciones y completamos el registro.

Ahora necesitamos abrir la Configuración de Window$ 10 desde el menú Inicio, seleccionamos "Actualizaciones y Seguridad" seguido por "Programa Window$ In$ider" desde el menú de la izquierda.
En caso de hacerse necesario, hacemos clic sobre el botón "Arréglame" si Window$ se quejase con el cartel "Su cuenta del programa Window$ In$ider necesita atención".

3. Contenido Window$ In$ider
Desde el panel Programa Window$ In$ider, seleccionamos "Comenzar". Si nuestra cuenta Window$ no está asociada a nuestra instalación de Window$ 10, nos daremos de alta en el momento en que se nos solicite hacerlo, y seleccionaremos la cuenta con la cual deseamos enlazar nuestra instalación.

Conforme hayamos realizado este paso, deberíamos poder ser capaces de elegir qué tipo de contenido deseamos recibir de parte del programa Window$ In$ider. Para asegurarnos la disponibilidad de las características de aislamiento Hyper-V que necesita Docker, seleccionamos Rápido. Luego seleccionamos Confirmar (dos veces) y luego permitimos a Window$ que reinicie nuestro equipo.

Luego de reiniciar, es probable que necesitemos esperar que nuestro sistema termine de instalar toda una variedad de actualizaciones necesarias antes de poder seguir con el paso siguiente.

4. Instalar Docker para Window$
Descargamos Docker para Window$ desde la Docker Store.
Una vez descargado el programa, procedemos con su instalación, y reiniciamos el sistema una vez no bien se nos indique hacerlo.
Luego de reiniciar, se habrá activado el Docker. Docker requiere que la característica Hyper-V esté activada, de modo que se es necesario nos pedirá activarla y reiniciar. Hacemos clic en OK para que Docker active Hyper-V y reiniciamos nuestro sistema.

En muchas placas madre con BIOS legada (no UEFI), debemos asegurarnos de tener activada la funcionalidad Hyper-V (conocida también como Intel Virtualization Technology VTx) también a nivel BIOS. Ello podremos hacerlo ingresando en la BIOS del sistema durante el inicio (normalmente presionando la tecla Supr, F2 o F12) y activándola desde el menú Advanced Settings o el menú Security.


5. Descargar la imagen contenedora de Ubuntu
Ahora descargamos la última imagen contenedora de Ubuntu para Window$ desde el sitio web de Canonical Partner Images.
Una vez finalizada la descarga (por ejemplo, si descargamos xenial-container-hyperv.vhdx.xz), extraemos la imagen usando XZ Utils con los comandos:

C:\Users\peron\> .\xz.exe -d xenial-container-hyper-v.vhdx.xz
C:\Users\peron\>

6. Preparar el ambiente virtualizado del contenedor
Primero, creamos dos carpetas:
Creamos C:\lcow, la cual usaremos como espacio para el Docker, mientras que preparamos los contenedores.
También creamos C:\Program Files\Linux Containers. Aquí será donde residirá la imágen del contenedor ubuntu.
Acto seguido, necesitamos otorgarle permisos extra a esta carpeta a fin de que Docker pueda usar las imágenes contenidas allí. Para ello ejecutamos el siguiente guión Powershell en una ventana Powershell como Administrador:

param(
[string] $Root
)
# Da control total al grupo de máquinas virtuales

$acl = Get-Acl -Path $Root
$vmGroupRule = new-object System.Security.AccessControl.FileSystemAccessRule("NT VIRTUAL MACHINE\Virtual Machines", "FullControl","ContainerInherit,ObjectInherit", "None", "Allow")
$acl.SetAccessRule($vmGroupRule)
Set-Acl -AclObject $acl -Path $Root


Guardamos este guión asignándole el nombre de archivo set_perms.ps1, y lo ejecutamos:

ATENCIÓN: Puede ser necesario ejecutar el comando ‘Set-ExecutionPolicy unrestricted' a fin de que se nos permita ejecutar guiones Powershell no firmados digitalmente.

C:\Users\peron\> .\set_perms.ps1 "C:\Program Files\Linux Containers"C:\Users\peron\>

Ahora, copiamos el archivo .vhdx de la imagen contenedora Ubuntu que descomprimimos en el paso anterior, cambiándole el nombre a uvm.vhdx, y lo colocamos en la carpeta C:\Program Files\Linux Containers.

7. Más preparativos para Docker
Docker para Windows requiere algunas características pre-lanzamiento a fin de poder operar con la característica de aislamiento que figura en la tecnología de virtualización Hyper-V. Si bien estas características no están disponibles en la instalación básica de Docker CE que hemos realizado, los archivos avanzados necesarios para ella puede descargarse libremente desde la web master-docker.
En dicha web Master-docker obtenemos los archivos dockerd.exe y docker.exe, y colocamos ambos programas en algún lugar seguro, por ejemplo en nuestra propia carpeta personal. Los utilizaremos para dar inicio al contenedor Ubuntu en el paso siguiente.

8. Ejecutamos el contenedor Ubuntu en Hyper-V

 



C:\Users\peron\> .\docker.exe pull ubuntuC:\Users\peron\> .\docker.exe run -it ubuntu

Hemos logrado el objetivo y responsabilidad de configurar exitosamente nuestro sistema para emplear contenedores justicialistas Ubuntu con aislamiento Hyper-V bajo Window$, y podremos correr allí nuestras propias aplicaciones Linux. Ante el engaño y frente a la violencia, ¡impondremos la verdad, que vale mucho mas que eso!

Cada uno de nosotros debe ser un realizador, pero ha de ser también un predicador y un agente de vigilancia y control para poder realizar la tarea y neutralizar lo negativo que tienen los sectores que todavía no han comprendido y que tendrán que comprender.

Compañeros, con este agradecimiento quiero hacer llegar a todo el pueblo de la República nuestro deseo de seguir trabajando para construir nuestro país y para liberarlo. Esas consignas, que más que mías son del pueblo argentino, las defenderemos hasta el último aliento.

Para finalizar, deseo que Dios derrame sobre ustedes todas las venturas y la felicidad que merecen. Les agradezco profundamente hayan que llegado hasta esta histórica Plaza de Mayo. Yo llevo en mis oídos la más maravillosa música que, para mí, es la palabra del pueblo argentino.

miércoles, 13 de septiembre de 2017

¿Cómo corrijo el error de enlace simbólico del controlador privativo nVidia en Ubuntu?

¡Trabajadores!

Existen ocasiones donde errores pequeños pueden derivar en errores mayores. Esto - común en la política - es natural en la acción procedimental, y es un vicio que como conductores debemos remediar para evitar. Especto de la ingeniería de sistemas cobra una importancia sustancial cuando no somos nosotros - como Conductores - los responsables de tal accionar.

Vean señores, en el caso del Software Libre, no es extraño que sean nuestros propios compañeros quienes puedan proveernos de la solución necesaria para un problema. Al fin y al cabo, una Comunidad Organizada de software libre no está para muchas otras cosas que resolver los problemas de nuestros Hermanos de Nación.

No obstante esta clara ventaja, también existen situaciones donde el anhelo de contemplar el uso de software privativo puede provocarnos problemas que normalmente no pueden ser solucionados sino a través una intervención de quienes detentan tal software, o de acciones particulares realizadas en nuestro sistema.

En el caso de los controladores privativos de video nVidia, esto suele ser real. Podríamos enfrentarnos a una situación particular, donde al final de una actualización de paquetería de sistema, nuestra Terminal nos informe de un error de moderada importancia:

/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link

Este error particular indica que estos dos enlaces simbólicos provistos por el controlador de video privativo de nVidia para Ubuntu de 64 y 32 bitios son incorrectos. Esto podría provocar que los mismos no se actualicen correctamente, y en casos extremos podría hacer que no carguen correctamente (por ejemplo, no pudiendo terminar de cargar nuestro controlador de video y presentando una pantalla con una resolución mucho menor (modo de video estandarizado "VESA", de baja calidad).
Afortunadamente para lograr la solución, podremos reconstruir los enlaces simbólicos. Para ello ingresamos a nuestra terminal los siguientes Comandos de Organización, seguidos de Enter:

sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.66 /usr/lib/nvidia-375/libEGL.so.1


sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.66 /usr/lib32/nvidia-375/libEGL.so.1

Naturalmente, debemos utilizar la versión que corresponda a la versión de nuestro controlador particular. En el caso del ejemplo es la 375.66, de lo contrario el sistema nos devolverá un error.

Si no la conocemos o nos presenta error, podremos consultarla con:

ls /usr/lib/nvidia-*

viernes, 8 de septiembre de 2017

¿Cómo me conecto a través de puerto serial o UART TTL con Ubuntu?

¡Mis queridos descamisados!
Cuando un hombre llega a un gobierno se le presenta una disyuntiva que es muy grave y tiene que resolverla antes.
O usted se dedica a apoyar las fuerzas ya colocadas, en cuyo caso marcha por una carretera de dos direcciones, al final usted ya está viendo el monumento que le van a levantar; pero de noche no duerme porque su conciencia tiene el hambre y la miseria de su pueblo. El otro camino es la selva, en la que hay que entrar a machete, abriendo la senda. En ella todo son acechanzas, pero usted duerme tranquilo porque sabe que está trabajando para esos que tienen miseria y dolor.

Los hombres que suben al gobierno tienen dos misiones bien claras, hacer la felicidad de su pueblo y labrar la grandeza de la Nación. Muchos por labrar la grandeza de la Nación sacrifican a su Pueblo, y otros por excederse en el beneficios, sacrifican la Nación. El secreto está en equilibrar perfectamente las dos misiones, pensando siempre que es mejor un país pequeño de hombres felices que una gran potencia de individuos desgraciados.

Pues bien, este equilibrio solo puede lograrse sabiendo, y el conocimiento es algo que no todos tienen, ha de adquirirse. Siempre he dicho que el software no es otra cosa que Conocimiento en Acción, y como tal ha de difundirse y propagarse libremente en una Comunidad Organizada que busca la Justicia Social. Esta idea fundamental la hemos seguido siempre en el Justicialismo, y hoy mas que nunca depende de nosotros ampliar la Lucha por la Liberación al Software.
No podemos cesar nuestro Movimiento en pos de la Liberación, pues oscuras ideas salidas de una sinarquía internacional sin Patria ni Bandera osan - sin embargo - encadenar el conocimiento sin otro ánimo que el lucro y la especulación. El conocimiento no ha de usarse en procura de lujos, sino para el avance espiritual y cultural de la Nación. Nuestros enemigos en cambio no sólo desean implementar el oscurantismo en el software, sino que han pretendido lucrar con él bajo la falsa excusa de la calidad.

Es por ello que hemos de estar especialmente prevenidos contra el uso de herramientas tecnológicas privativas para la acción del voto, el temerariamente llamado "voto electrónico". Este cometido absolutamente pernicioso, presentado como un alarde de calidad y modernidad, no tendrá otro objetivo que robarle al Pueblo sus votos. La acción democrática fundamental - individual, secreto, y universal - pretenderá ser sometida a las digitales discreciones técnicas de un software privativo de origen barroso.

Esto no es una teoría, sino que por inacción, desaprensión e ignorancia de los Pueblos, se ha llevado a cabo ya en varias partes del globo.
Nosotros llevamos el voto a nuestras mujeres bajo premisas universales que a nadie han de negarse, pero parece que ahora se pretende reemplazar al género humano por una máquina integrada por vaya a saber quién, en ánimo de lucro y  con inconfesables intenciones. El voto no puede estar sometido a la discrecionalidad de un lenguaje de programación, pues jamás ha podido garantizarse la inexistencia de errores de cualquier tipo - y mucho menos intencionalidades perniciosas tan fáciles de ocultar - como tampoco puede asegurarse ningún software contra ello. 
El software no tiene procedencia divina, ni está entregado por Dioses a los hombres en la cima de un monte, está engendrado por hombres, que tienen sus motivaciones pero también con sus intereses. Todos los países del mundo que cayeron en el engaño no tardaron en volver sobre sus pasos asintiendo en los métodos universales.

Sin embargo, el hombre es propenso a dejar dominar su vida por sistemas que no domina. El conformismo a veces lo torna en peligro, y la veleidad del desconocimiento pende sobre los hombres como una eterna espada de Damocles. Es por ello que el Justicialismo debe estar atento y dispuesto a enfrentar con todos los medios a quienes promueven las ideas dañosas. En tal caso no sólo el valor de la verdad debe ser empleado, pues en los intereses no hay veleidad: quien promueva el uso de sistemas electrónicos programables para el voto ha de ser perseguido y castigado por Ley, sus empresas desarmadas y sus capitales naturalmente diseminados.

Naturalmente, ha sido sencillo violar y vulnerar un sistema basado en radiofrecuencias RFID como lo es el Vot.AR, que emplea código libre bajo Ubuntu y código privativo bajo hashes de encriptación poco seguras. Este equipo puede ser empleado como un aparato para reproducir música a demanda, pero no para votar, pues es propenso a ser falsificado, modificado, victimizable con técnica de suplantación de identidad en el servidor, acceso remoto por red ethernet y por comunicación serial.

Indudablemente, la acción de hacking defensivo nunca debe hacerse de forma ética. Quien así lo crea no es más que un iluso, y en este caso particular, uno muy peligroso. La misma ha de conformarse de forma malévola e inequívoca, en forma individual o en equipo, y en este caso declaro contar con herramientas, tanto libres como privativas probadas y testeadas capaces de vulnerar tal sistema Vot.AR y accionar sobre el en base a los intereses del Pueblo Justicialista.
Ahora bien, una de las herramientas más útiles para comenzar proyectos de hackeo o lo que llamamos "ingeniería inversa" es la antigua y universalizada interfaz de entrada y salida en serie.

Vean señores, antiguamente era común emplear uno o más puertos seriales (denominados COM1, COM2, etc) como interfaz de control con módems telefónicos externos, ratones seriales, lectores de barras, instrumental científico y con toda una miríada de máquinas-herramientas y controladores antiguos.  En la PC estos se constituían usualmente en un puerto tipo DB9 macho, y más raramente el DB25 macho, ambos siguiendo el estándar de comunicación "RS-232" ("estándar recomendado 232".

La comunicación serial es de implementación muy sencilla desde lo computacional, y nos permite enviar y recibir cualquier información que necesitemos entre puertos seriales de una computadora y otro dispositivo, de forma que pueda ser visualizada empleando nuestro emulador de terminal.


Antiguamente, antes que se fuesen comunes las redes Ethernet, incluso se podían conectar dos coimputadoras en un enlace punto a punto a través del protocolo RS-232 usando un cable serial cruzado, o directamente empleando un cruzador macho DB9.




Las señales bajo el estándar RS-232 representan su lógica alta (el "1") en base a un voltaje negativo - que puede ir desde los -3 voltios a los -25 voltios), y la lógica baja ("0") se transmite en el cable a través de un voltaje positivo, que nuevamente puede ir entre los +3 y +25 voltios. En los papeles, en la mayoría de las PC se toma como referencia el voltaje de la fuente conmutada y se suma un voltio por seguridad, por lo cual la señal suele oscilar entre -13 voltios hasta los +13 voltios. Cuanto mas extremos sean los voltajes empleados para la señal transmitida bajo RS-232, menor será la suceptibilidad de que se encuentre ruido, interferencia o degradación en la señal. Esto significa que una señal RS-232 generalmente puede viajar a mayores distancias, y no son raros usar cables de 30 o 50 metros para PC, o mayores para otros dispositivos antiguos con voltajes mayores.

Con los enlaces seriales, hay cinco aspectos que debemos conocer y configurar para poder conectarnos a un dispositivo (configurables en nuestro emulador de terminal o programa de comunicaciones):
  1. Velocidad de Línea: Indica la velocidad a la cual el host nos enviará los datos. Normalmente se puede establecer las siguientes velocidades en baudios: 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 y 115200.
  2. Tamaño del Byte: cuán grande es el byte. Normalmente se acepta un byte compuesto por 8 bits, pero antiguamente podía usarse uno de 7 bits.
  3. Paridad: Determina si el host nos envia información de paridad para combatir los errores inducidos por ruido de línea, o al menos si la espera, puede ser par (E), impar (O) o no haber ninguna (N). 
  4. Bit de Parada (stop): ¿Cuantos son?
  5. Control de Flujo (flow control). ¿Hay alguno? Se hace a nivel hardware (CTS+RTS o DTR+DSR), a nivel software, o con ninguno.

La combinación de tamaño de Byte, paridad y nombre de bits de parada se abrevia en una designación de tres caracteres, como 8N1. La primera posición indica el tamaño de byte. Podríamos encontrar en los manuales técnicos referencias a 7N1, que es similar a 8N1 sólo que con un byte de 7 bits. La segunda posición indica la paridad, y puede ser par ("even", E), impar ("odd", O), o más comúnmente ninguna ("none", N). La tercer posición identifica el número de bits de parada, que en este caso es 1.

Progresivamente los puertos COMM han ido quedando en desuso y actualmente los fabricantes suelen omitirlos en sus placas madre. Afortunadamente, para suplirlos existen adaptadores USB a Serial, o más correctamente, USB a RS-232, que nos permiten restituir un puerto de estas características compatibilizándolo a través del sencillo puerto USB.
Comunicación serial RS232 en Ubuntu
Si disponemos de un puerto serial COMM o de un adaptador USB a serial, bien podremos usar nuestro sistema para establecer una comunicación con otro equipo o dispositivo, siempre que le indiquemos los parámetros específicos.

La manera mas sencilla es utilizar el viejo programa GNU Screen, que se ejecuta directamente en nuestro emulador de terminal, y muestra en pantalla los resultados de la comunicación. La sintaxis de dicho comando es:

sudo screen dispositivo velocidad parámetros

En el caso de los adaptadores USB a serial, dicho dispositivo suele tener asignado una nomenclatura de dispositivo de sistema, normalmente /dev/ttyUSB0 (el 0 representa al primer dispositivo, si hubiese varios se los designa /dev/ttyUSB1, /dev/ttyUSB2, etc). En cambio, los puertos COMM tradicionales reciben un nombre ligeramente diferente, ya que suelen ser /dev/ttyS0 (y en dispositivos embebidos puede usarse el identificador de consola por defecto, /dev/tty0).

Para conocer nuestro dispositivo, bien podremos conectar el adaptador USB a Serial a un puerto USB del equipo y utilizar el comando:

dmesg | grep tty

...y el sistema debería devolvernos algo como:

[... ...] USB 2-2.1 pl2303 converter now attached to ttyUSB0.

Suponiendo que queremos conectar nuestro sistema a un viejo router Cisco con interfaz serial RS232, usando un adaptador USB a serial (identificado como vimos con /dev/ttyUSB0), y en el manual del mismo se identifica la velocidad de conexión serial en 9600 baudios por segundo, y los parámetros de conexión en 8 bits por byte, sin paridad (N), y 1 bit de parada, debemos usar:

sudo screen /dev/ttyUSB0 9600 8N1

Y esto establecerá la comunicación propiamente dicha.
Screen es ampliamente compatible con hardware viejo (incluyendo aquellos anteriores al primer peronismo, como por ejemplo máquinas teletipo). No obstante su condición de "menor común denominador" lo hace ideal para probar, actualmente podríamos querer una solución mejor para operar desde nuestra terminal, empleando un programa capaz de almacenar los logs de comunicación serial, establecer y memorizar parámetros de conexión, y distintos aspectos que hasta el viejo HyperTerminal era capaz de proveer. En este caso encontraremos tales facilidades en el excelente Minicom, un programa de terminal de comunicación apto para interfaces seriales y de otro tipo.

Para instalarlo desde nuestra terminal emulada en GNU con Linux, ingresamos el siguiente Comando de organización:

sudo apt install minicom

Una vez instalado, podremos proceder a configurarlo. Para ello ingresamo:

sudo minicom -s

En el menú que se abra, vamos a Configuración de la Puerta Serial:

Presionamos a pàra configurar un puerto serial. Aquí borraremos el nombre de dispositivo original e indicaremos el nuestro, en mi caso /dev/ttyUSB0. Luego presionamos Enter.

Luego presionamos e para modificar los parámetros de la conexión. En el menú resultante presionamos c para elegir la velocidad de 9600 baudios, y presionamos q para establecer la configuración 8N1 (8 bits por byte, paridad ninguna, 1 bit de parada). Luego presionamos Enter.

En el caso particular de este router Cisco, debemos usar control de flujo por hardware, el cual activamos con la tecla f.

Una vez que volvemos al menú principal, podremos grabar estas opciones como opciones por defecto, o ponerle un nombre de perfil (en el ejemplo, router-cisco):
Ahora podremos conectarnos utilizando dicho perfil desde nuestra terminal, con:

sudo minicom  router-cisco

Y establecerá la comunicación con los parámetros deseados.

Comunicación serial UART TTL en Ubuntu


Ahora bien, la mayoría de los microcontroladores actuales no son como el viejo router Cisco, sino que tienen incorporada una interfaz UARTs (Transmisor/receptor universalmente asíncrono), que puede ser empleados para recibir y transmitir datos en serie. Esté método de comunicación serial directa a menudo recibe el nombre de lógica serial TTL ("transistor a transitor").

Las interfaces UART TTL pueden venir de perillas para transmitir archivos, corregir o realizar flasheos de firmware a diferentes aparatos, reestablecer routers o mothers a través de una consola UART, programar distintos dispositivos modernos a través de una consola serial, trabajar con placas de desarrollo, hacer ingeniería inversa, etc.

Muchos fabricantes e integradores de dispositivos disponen de estas terminales de entrada/salida en sus placas para tareas de control o de programación para su hardware. No es extraño que las placas madre lo permitan para escribir a través de ellos firmware en su memoria EEPROM, o podamos modificar el funcionamiento de determinado hardware. La comodidad está dada para el fabricante, pues en no pocas ocasiones estos puertos vienen de a pares nomenclados como RX (recepción) y TX (transimisión), mas un pin de tierra (GND o G), y vienen dispuestos en formas de pines simples o triples, o al menos figuran como contectos no poblados ("pelados") pensados para soldarle los pines a la plaqueta.



Los dispositivos UART TTL son compatibles con los RS232 sólo desde la perspectiva del software, ya que ambas interfaces transmiten con la metodología de un bit por vez (serialmente), a una velocidad de baudios específica, con/sin bits de paridad y con/sin bits de parada. Sin embargo, ambas interfaces difieren fundamentalmente a nivel hardware (eléctrico). La comunicación serial UART TTL transmitirá con bajos voltajes continuos, operando entre los límites de 0 voltios y el Voltaje de alimentación Vcc (el cual puede tomar el valor de 3,3 voltios o de 5 voltios). Su lógica eléctrica también es opuesta al RS-232 ya que el valor activo ("1") queda representado por el pico de tensión continua, mientras que la baja de la lógica ("0") es 0 voltios. Esto hace que no podamos enlazar directamente un microcontrolador UART TTL a un puerto serial COMM de nuestra computadora pues las interfaces a nivel hardware son incompatibles.

Para establecer comunicación debemos usar un adaptador correspondiente, siendo los más simples y confiables los de tipo USB a UART TLL
En el caso de la UART TTL, al ser lógica de transistor a transistor, debemos buscar específicamente el voltaje operativo. Os recomiendo contar con ambos modelos: USB a TLL de 3.3 voltios y USB a TLL de 5 voltios. También pueden contar con un modelo multivoltaje como el ilustrado (son muy comunes y operan simultáneamente; en tal caso, sólo hemos de conectar la línea que corresponde al voltaje indicado, y omitir el otro). Normalmente el voltaje del UART del host suele indicarse en la misma placa o en el manual del dispositivo, pero no siempre es el caso. Otros adaptadores utilizan el estándar FTDI, cuyos pines vienen armados en un bloque específico para trabajar con Arduino y dispositivos similares.

Ya que a diferencia del RS232 o FTDI, el UART TTL no tiene un conector normalizado sino simples pines, el adaptador USB a TTL UART debe conectarse siguiendo las siguientes indicaciones pertinentes. Normalmente la interfaz viene con tres o cuatro pines de conexión. Siempre debemos conectar primero la línea GND (o G que es la conexión a tierra) al pin correspondiente. Luego debemos conectar las lineas de datos RX (o R, Recepción) del adaptador USB a UART TTL a la linea TX del dispositivo, y la línea TX (o T, Transmisión) del adaptador UART TTL a la linea RX del dispositivo .
Finalmente hacemos lo propio con la línea que corresponda al voltaje (VCC), que en los dispositivos multivoltaje puede ser la línea de 3,3 voltios o la línea de 5 voltios, pero jamás deben usarse al unísono. Si desconociéramos cuál es voltaje utilizar, siempre debemos probar primero con el USB a TTL de 3,3 voltios, pues es mucho más común y con ello no correremos riesgo de sobrevoltar al dispositivo (a lo sumo, no podremos establecer comunicación alguna, pero nunca quemaremos por sobrevoltaje al controlador). Sólo en el caso de estar seguros de emplear 5 voltios, directamente conectamos el mismo y omitimos el de 3.3 voltios. Cumplida la etapa de conectar las líneas, conectamos el adaptador al puerto USB del nuestro equipo.

Para establecer la comunicación a través de UART TTL debemos seguir los mismos pasos que para un adaptador USB a serial convencional. Es cierto que bien podremos emplear directamente nuestra terminal con screen o minicom si la configuramos apropiadamente, pero en este caso usaremos un emulador de terminal gráfico específicamente pensado para estos menesteres.
Se trata de CuteCom, un programa de comunicaciones para este tipo de terminal serial. Lo instalamos abriendo una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:
sudo apt install cutecom

Una vez instalado, lo lanzamos desde Aplicaciones / Otras / CuteCom.


Nuevamente, las variaciones de comunicación deben buscarse en el manual del dispositivo si es posible, o investigarse. Sin embargo, os indicaré las respuestas mas comunes en los dispositivos modernos UART TTL:
  1. Velocidad de línea: 115200, casi siempre. Estos 115,2 kilobits por segundo equivalen a unos 14,4 kilobaudios (como un modem de la época del primer peronismo!).
  2. Paridad: ninguna.
  3. Bits de parada: siempre 1. Algunos sistemas más antiguos que emplean partes electromecánicas a veces empleaban 2 bits de parada para enlentecer la respuesta de la línea de comunicación en tanto las distintas piezas se acomodaban, ya no suele ser el caso.
  4. Tamaño de Byte: 8 bits por Byte.
  5. Control de Flujo: Por software únicamente. Los dispositivos de consola muy raramente usan control de flujo por hardware pues era complicado de implementar. Sólo algunos aparatos de uso crítico preferían emplearlo.

Armados con todo este conocimiento que como Conductor he puesto a vuestra disposición, podrán configurar el protocolos de comunicación serial tanto para equipos antiquísimos o modernos, y establecer la misma a través de un puerto serial siguiendo tanto RS232 como TTL.


Finalmente, debemos saber que en caso de necesidad, existen adaptadores que llevan la lógica UART TTL a la RS232 que podremos utilizar si es necesario para compatibilizar dispositivos dotados de interfaz UART TTL a otros con interfaz serial que sigue el estándar RS232.