jueves, 26 de mayo de 2016

¿Cómo instalo Flowblade en Ubuntu?


Reunido en el Teatro Nacional Cervantes con motivo del Congreso Nacional Justicialista, Juan Perón expone sobre la existencia de herramientas ortodoxas y heterodoxas para la edición de video, y nos enseña cómo instalar y utilizar en Ubuntu el editor Flowblade, el justo medio entre los creadores audiovisuales libres.


Nota: Si tras instalar o actualizar el sistema Flowblade 1.6.0 falla al arrancar con Ubuntu 16.04LTS, e indica error del paquete Python-mlt, debemos recurrir a esta solución.

(...)
Algunos en nuestro Movimiento y por fuera de nuestro Movimiento - que son los mas - nos han criticado, porque dicen que estamos un poco desorganizados. Señores, yo pregunto si en la historia política del mundo existen muchos ejemplos que después de veinte años de persecución, de fusilamientos, de cárceles y de todas las arbitrariedades que se han cometido con el Movimiento Nacional Justicialista, hasta colocarlo fuera de la ley, si hay muchos Movimientos que después de todo eso, hayan resistido y estén firmes como una piedra, como está nuestro Movimiento.
Pertenecemos a un Movimiento que mantiene firme su doctrina, que muchos niegan - porque una de las cosas más curiosas que ha sucedido con nuestro Movimiento es que hay todavía algunos políticos que no conocen la doctrina peronista, que no saben lo que es el Movimiento Peronista, y que ignoran qué ideología tiene el Movimiento Peronista. Y lo más curioso es que yo vengo de Europa, vecina al África, y en Francia se han escrito ya varios libros sobre el Justicialismo, y que en Italia, hasta han abierto unidades básicas justicialistas. Y algo que es mucho más curioso: en la ciudad de Nueva York existe una Unidad básica peronista que se reúne, hace exteriorizaciones en la vía pública y tiene numerosos adherentes.

Ahora es curioso que frente a eso, todavía haya algunos argentinos que no sepan lo que es el justicialismo. Pero después de dieciocho años de proscripción, observamos el fenómeno justicialista en la Argentina de nuestros días, ¿y podemos temer que haya algunos tontos que simulen desconocernos?

A los muchachos les gusta ponerse calificativos. Los hay ortodoxos, los hay heterodoxos, los hay combativos, los hay contemplativos. Pero todos trabajan. No es malo la existencia de sectores así, pues solución para todo ha de dar la política. En el campo del software libre también suele ser el caso que contar con varias herramientas permite darnos una solución a medida de cada problema.

Tal vez uno de los programas más avanzados y ortodoxos del medio sea el Lightworks. Por otro lado, uno de los más sencillos y adecuados para proyectos simples y heterodoxos puede ser OpenShot. Entre ellos contaremos con un justo medio, que podremos considerar a Flowblade.

Flowblade es  un software de edición de video liberado bajo licencia GPLv3. Es una herramienta de producción de video completa y muy eficiente, pensada para proyectos más complejos que los que es posible hacer frente con el clásico Openshot.

Para instalarlo en nuestro sistema hemos de abrir una Terminal con Ctrl+Alt+T. Acto seguido instalaremos las dependencias requeridas por el programa. Ello lo haré ingresando en la consola el siguiente Comando de Organización:

sudo apt install frei0r-plugins libgavl1 libgl2ps1.4 libhdf5-openmpi-103 libmlt++3 libmlt-data libmlt6 libmovit8 libnetcdf-c++4 libopencv-calib3d4.2 libopencv-contrib4.2 libopencv-dnn4.2 libopencv-features2d4.2 libopencv-flann4.2 libopencv-highgui4.2 libopencv-ml4.2 libopencv-objdetect4.2 libopencv-photo4.2 libopencv-shape4.2 libopencv-stitching4.2 libopencv-superres4.2 libopencv-video4.2 libopencv-videostab4.2 libopencv-viz4.2 libvtk6.3 python3-mlt python3-opencv
 


El sistema nos solicitará nuestra contraseña de Conductor de Ubuntu y procederá a descargar e instalar esta paquetería. Conforme haya finalizado la descarga, podremos hacernos con el paquete de instalación con la siguiente orden:

cd ~/Descargas/ ;

wget https://github.com/jliljebl/flowblade/releases/download/v2.8.0.2/flowblade-2.8.0.2-1_all.deb

...y luego ingresamos:

sudo dpkg -i flowblade-2.8.0.2-1_all.deb

Para ejecutar el programa, vamos a Aplicaciones / Sonido y Video / Flowblade Movie Editor.
La pantalla del mismo es similar a programas de este estilo, con un selector/agregador multimedia para clips de video, de sonido, fotografías y gráficos estáticos, etc. Este permite la gran mayoría de formatos compatibles con Ubuntu.

En cuanto a los modos principales, al estilo Adob€ Pr€mi€r€ podremos optar por el monitor de secuencias, o el monitor de recorte (que sólo nos muestra el clip actual con los efectos que le hayamos aplicado). Estos reciben el nombre de "recortes" en el programa.

Asimismo, podremos armar secuencias más importantes. Estas reciben el nombre de "bins" ("latas de película"). Estas latas de secuencias son útiles para el armado de largometrajes coherentes, pues operan como si fuesen "capítulos". Una idea interesante es emplearlos como contenedores autoconclusivos, o para dividir según el esquema de relato audiovisual clásico: presentación-inicio-nudo-desenlace.

En cuanto a la edición en sí, no encontraremos que es convencional, y podremos operarla mediante el ratón para desplazarnos y el uso de la rueda de scroll (para definir el nivel de zoom, y con clic de scroll para volver al zoom de secuencia completa).

También podremos emplear el teclado para muchas de las funciones. Podremos usar las Flechas del Cursor para desplazarnos cuadro a cuadro hacia adelante o atrás. Asimismo, podremos definir puntos de inicio y final para un recorte con I o con O, y hacer un corte con X. Contaremos con herramientas Deshacer (Ctrl+z) y Rehacer (Ctrl+y).

En la parte inferior contaremos con un selector de tracks divididos entre pistas de video numeradas ("Vx") y de sólo audio ("Ax"). Estas son conmutables de manera general tanto en su componente visual, como de sonido. El orden de las pistas no es caprichoso, pues nos permite "apilar" las proyecciones de video, o mezclar de forma diferente los sonidos. Por regla general por lo tanto, conviene empezar a definir los pistas de fondos primero.

Para insertar recortes en la grilla de pistas, debemos elegir con el teclado uno de los seis modos de edición posibles.

  1. Modo Insertar. Agrega el recorte pegado al inicio de la pista, o en un lugar determinado si esta está vacía.
  2. Modo Sobreescribir. Pisa un recorte anterior realizando un agujero en el lugar de la inserción. Adecuado para mover los clips libremente.
  3. Modo Recortar. Este modo de ajuste nos permite achicar o agrandar un recorte desde su punto de inicio o desde su punto de final para acomodarlo a la edición.
  4. Modo Enrollar. Este modo de ajuste hace lo mismo anterior, pero también corre los recortes contiguos. Podremos considerarlo entonces como enrollar/desenrollar.
  5. Modo Deslizamiento. Corre los demás clips haciendo espacio para el que agregamos.
  6. Modo Spacer. Hace espacio para el clip que acabamos de colocar, eliminado el
El programa cuenta con una paleta estándar de efectos de video, aplicables por render incluso a nivel de fotogramas individuales, o directamente por secuencia (en el caso de las transiciones). Como Flowblade emplea una arquitectura abierta, este tipo de efectos se le pueden agregar también a través de Plugins. Entre ellos, es altamente recomendable cargar a nuestro sistema el paquete de efectos gráficos G'MIC pues nos permite una buena cantidad de efectos de video adicionales estéticamente muy aceptables.
El tratamiento del audio es completo. Disponemos de consola de mezcla y paneo para las pistas, así como un ecualizador paramétrico para cada uno de los tracks de audio. Asimismo, cada clip es regulable en su parámetro de volumen, y contamos con herramienta de nivelación basada en decibeles para ajustar este aspecto. Por otro lado contamos también con una buena paleta de efectos de audio con reductores de ruido, downmixers mono, pasoaltos, flanger, reverbs y coros paramétricos, cambiadores de tono (pitchshifters), y muchos mas.

Normalmente tendremos una previsualización de calidad, que requiere buena potencia computacional (bicúbica). Si quisiéramos una previsualización más ágil podremos elegirla desde Ver / Previsualización. Contaremos con esquema bilineal, neighbouring (el más rápido). Por otro lado, si contamos con un equipo de excelente desempeño podremos utilizar esquema lanczos.

Las opciones de renderizado y exportación son extensivas, y al igual que otros programas de su estilo, como el Openshot, podremos definir códecs de audio y video, así como las resoluciones y aspectos de salida. Sin embargo, en Flowblade podremos controlar un render en lotes, definiendo el órden de trabajo, para hacernos cargo del renderizado por partes o clips individuales, antes de proceder a la pieza completa final (si fuese necesario, para proyectos de gran envergadura o despliegue técnico). Si disponemos de la capacidad computacional suficiente, podremos renderizar videos en 1080i con audio AAC o MP3 sin problema alguno.
En resumen, nos encontramos ante un programa de edición de video noble, algo más avanzado que el clásico OpenShot y esquematizado según criterios de trabajo del Adobe Premiere y otros. Nos provee en el campo Nacional y Popular del Software Libre con herramientas audiovisuales con mayores posibilidades, y que podremos notar algo más estable para su cometido.

wget -O flowblade.deb https://www.dropbox.com/s/4smy1jlofzn896o/flowblade-1.6.0-1_all.deb?dl=0 ;

miércoles, 25 de mayo de 2016

¿Cómo instalo controladores alternativos para chipsets Wifi Realtek en Ubuntu?

¡Mis descamisados!

Un día Patrio como el de hoy es buena excusa para hacer un desfile que nos haga presente en nuestra Argentinidad y refleje el destino grande que nos aguarda por justo derecho.

En estas ocasiones, aunque nos ofrezcan un coche, debemos montar en el pintado. Esto es así pues el noble bruto nos quiere y a veces se siente solo.
Todo sistema informatizado que se precie humano tendrá por respuesta las mismas condiciones que enfrentamos en la vida. Por ejemplo, si bien nuestro sistema operativo suele ofrecernos controladores adecuados para nuestros dispositivos Wifi, en ocasiones podremos encontrar ventajas en reemplazar dichos controladores provistos por algunos otros de uso más conveniente.


En muchos casos podremos instalar un mejor controlador para los chipsets de comunicación WiFi de marca Realtek, especialmente para los chipsets más comunes: los RTL8188CUS, RTL8192CU, RTL8723BE, RTL8192EU y RTL8812AU.

Determinar el chipset de nuestro adaptador Wifi:

En primer lugar y como requisito ineludible, habremos de determinar con exactitud cuál es el chipset con el cual está munido nuestro adaptador Wifi. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

lsusb

El sistema nos listará todos los dispositivos USB y sus identificadores (ID). Debemos buscar por alguno de estos:

Bus xxx Device yyy: ID 0bda:8176 Realtek Semiconductor Corp.
Bus xxx Device yyy: ID 0bda:8178 Realtek Semiconductor Corp.

Bus xxx Device yyy: ID 0bda:8179 Realtek Semiconductor Corp.

Bus xxx Device yyy: ID 0bda:b720 Realtek Semiconductor Corp.

Bus xxx Device yyy: ID 0bda:818b Realtek Semiconductor Corp.
Bus xxx Device yyy: ID 0bda:8812 Realtek Semiconductor Corp.

Para cada uno de estos chipsets, os daré una solución específica para operar en Ubuntu y Linux Mint.

  • Chipset Realtek RTL8188CUS y RTL8192CU (identificados como ID 0bda:8176 e ID 0bda:8178 respectivamente)

Este tipo de chipsets son muy comunes con adaptadores de red tanto USB como incorporados en equipos portátiles. Normalmente en Ubuntu utilizarán por defecto el controlador rtl8192cu que viene incluido en el sistema operativo. Sin embargo, en ciertos receptores específicos a veces se corta la conexión wifi o esta funciona con menos potencia de la requerida. Ello se debe a un error el el controlador rtl8192cu.

Por ejemplo, el chipset incorporado en el adaptador USB Medion MD 86498. Los chipsets problemáticos son el RTL8192CU y el RTL8188CUS.

Para corregir los problemas debemos utilizar un mejor controlador en lugar del suministrado por defecto. Para ello:

a) Revisamos si estamos usando el controlador rtl8192cu defectuoso. En la terminal ingresamos:

lsmod | grep rtl8

...y si podemos ver una o más instancias del controlador rtl8192cu en la salida de la terminal, entonces lo estamos utilizando. En tal caso procedemos al paso

b) Desconectamos nuestra conexión Wifi (desenchufamos el adaptador USB que contiene el puerto Realtek), y temporalmente nos conectamos a internet por medio de un cable Ethernet.

c) Instalamos las dependencias necesarias para compilar los controladores. Ingresamos en la terminal:

sudo apt-get install linux-headers-$(uname -r) build-essential dkms git




Al presionar Enter e ingresar a ciegas nuestra contreaseña de descargará la paquetería necesaria.


d) Descargamos el código fuente del controlador correcto ingresando el siguiente comando en la Terminal:

git clone https://github.com/pvaret/rtl8192cu-fixes.git

e) Lo configuramos como un módulo DKMS ingresando en la terminal:


sudo dkms add ./rtl8192cu-fixes

f) Compilamos e instalamos el nuevo controlador corregido ingresando el siguiente comando en la terminal y presionando Enter:

sudo dkms install 8192cu/1.10

g) Refrescamos nuestra lista de módulos instalados con el siguiente comando en la terminal y presionando Enter.

sudo depmod -a
h) Enviamos el controlador fallado a la lista negra para que el sistema operativo no lo emplee más. Para ello introducimos el siguiente comando en la terminal y presionamos Enter:

sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/
i) Desactivamos la función de ahorro de energía para el chipset Wifi (y para este chipset únicamente):

sudo cp ./rtl8192cu-fixes/8192cu-disable-power-management.conf /etc/modprobe.d/

j) Reiniciamos el equipo.

k) El problema debería ahora estar resuelto. Desconectamos el cable Ethernet temporal, e insertamos nuevamente el dispositivo Wifi USB con chipset Realtek. Revisamos si tenemos el controlador correcto en nuestro sistema abriendo una terminal e ingresando el siguiente Comando de Organización:

lsmod | grep 8192

...el sistema debería devolvernos que el controlador nuevo 8192cu está activo. No deberían encontrarse ya menciones del viejo controlador rtl8192cu.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio con el código fuente del controlador a mano.

  • Chipset Realtek RTL8188EU (Identificado como ID 0bda:8179)

Los adaptadores Wifi USB munidos con chipset Realtek RTL8188EU funcionan perfectamente en Ubuntu 14.04.x y Linux Mint 17. Pero tiene un problema cosmético: la potencia indicada por las redes wifi cercanas siempre se muestra al 0%.

Aún así, deberíamos poder conectarnos al wifi sin problemas, tras lo cual se mostrará la potencia Wifi con un porcentaje muy bajo (y erróneo, pues la conexión debería funcionar adecuadamente si las condiciones son las de siempre).

Aunque este problema cosmético no parecería impactar en el desempeño del controlador, aún así podríamos instalar otro controlador creado por Larry Finger (lwfinger), que nos debería mostrar la potencia de las redes adecuadamente.

a) Establecemos una conexión a internet mediante un cable Ethernet.

b) Abrimos una terminal con Ctrl+Alt+T).

c) Revisamos cuál controlador se está ejecutando actualmente en nuestro sistema mediante el siguiente comando en la Terminal:

lsmod | grep 8188

...el sistema debería devolvernos el nombre de nuestro controlador cargado actualmente: rtl8188eu.

d) Instalamos las dependencias necesarias para compilar en nuestro sistema mediante el siguiente Comando de Organización en nuestra Terminal:

sudo apt-get install linux-headers-$(uname -r) build-essential dkms git
e) Descargamos el paquete con el controlador, con el siguiente comando en la terminal:

git clone https://github.com/lwfinger/rtl8188eu

f) Compilamos el módulo del núcleo del sistema operativo requerido a partir del paquete del controlador que hemos descargado. Lo hacemos introduciendo los siguientes Comandos de Organización en la Terminal.

cd ~/rtl8188eu ;
make ;


g) Instalamos el módulo ya compilado ingresando en la terminal el siguiente comando:

sudo make install

h) Acto seguido enviamos el controlador fallado a la lista negra. Para ello usamos el editor GNU Nano con el siguiente comando en la terminal:

sudo nano /etc/modprobe.d/blacklist.conf

...se abrirá el editor peronista Nano, con un archivo de configuración. Al final del archivo, le pegamos el siguiente código:

# Desactivar el controlador que indica mal la potencia wifi
# para que se cargue el controlador 8188eu.
blacklist rtl8188eu

Guardamos las modificaciones en el archivo con Ctrl+o y salimos del editor Nano con Ctrl+x.

i) Reiniciamos el equipo.

j) Revisamos tener en ejecución el controlador para nuestro chipset wifi. Para ello ingresamos el siguiente comando en una Terminal:

lsmod | grep 8188

...el sistema debería ahora devolvernos el nombre del nuevo controlador cargado: 8188eu.

k) Hacemos clic en el ícono del Administrador de Redes en el panel superior, para revisar la potencia de las redes Wifi.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio con el código fuente del controlador a mano.
  • Chipset Realtek RTL8723AU (identificado como ID 0bda:b720)

Atención: Los chipsets RTL8723AU y RTL8723BU a pesar de ser distintos, comparten el mismo identificador ID 0bda:b720. La explicación siguiente es específicamente para corregir los problemas del chipset RTL8723AU; si desea usar el chipset RTL8723BU deberá ver la sección sobre el mismo más adelante.

Para utilizar adecuadamente los adaptadores Wifi USB con el chipset Realtek RTL8723AU, debemos contar con un Kernel de versión 3.15 o superior, que incluye el módulo necesario. De lo contrario, habremos de instalar un controlador específico. En vista de ello:

a) Establecemos un enlace a internet a través de un cable Ethernet conectado a nuestro router/cablemódem.

b) Abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt-get install git build-essential linux-headers-$(uname -r)

c) Descargamos el paquete de controlador con el siguiente comando en la Terminal seguido de Enter:

git clone https://github.com/lwfinger/rtl8723au.git

d) Ahora compilaremos el módulo del kernel requerido a partir del paquete de controlador que hemos descargado. Para ello en la terminal ingresamos:

cd ~/rtl8723au ;
make ;


e) finalmente, instalamos el módulo compilado con el siguiente comando:

sudo make install

f) Ahora ponemos el controlador fallado en la lista negra con:

sudo nano /etc/modprobe.d/blacklist.conf

...se abrirá el editor peronista GNU Nano. Le pegamos el siguiente texto:

# Los controladores rtl8723au y rtl8723bu están fallados,
# de modo que debe impedirse su carga automática

# Esto debería darles a los controladores 8723au o 8723bu
# la oportunidad de cargarse en su lugar.
blacklist rtl8723au
blacklist r8723au
blacklist rtl8723bu
blacklist r8723bu


g) guardamos los cambios con Ctrl+o y salimos del editor con Ctrl+x.

h) Reiniciamos la computadora

Ahora su Wifi debería funcionar correctamente. Haga clic en el Administrador de Redes en el panel superior para ver las redes disponibles.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio con el código fuente del controlador a mano.

Si también deseamos emplear Bluetooth, ejecutamos de a uno los siguientes Comandos en la Terminal:

git clone https://github.com/lwfinger/rtl8723au_bt.git
cd rtl8723au_bt
make
sudo make install
sudo modprobe -v 8723au_bt


  • Chipset Realtek RTL8723BU (Identificado como ID 0bda:b720)

Atención: Los chipsets RTL8723BU y RTL8723AU a pesar de ser distintos, comparten el mismo Identificador ID 0bda:b720. Estas indicaciones por lo tanto son específicas para el chipset RTL8723BU. Si desea instrucciones para el chipset RTL8723AU busque la sección correspondiente arriba en este artículo).

Para utilizar adecuadamente los adaptadores Wifi USB con chipset Realtek RTL8723BU debemos instalar un controlador específico. Podremos proceder de la siguiente manera:

a) Establecemos una conexión estable a internet por medio de un cable Ethernet conectado al Router/Módem.

b) Abrimos una terminal con Ctrl+Alt+T.

c) Instalamos las dependencias necesarias por medio del siguiente comando de organización en la Terminal, seguido de Enter.

sudo apt-get install git build-essential linux-headers-$(uname -r)
 
d) Descargamos el paquete de controlador desde la terminal, por medio del siguiente Comando de Organización:

git clone https://github.com/lwfinger/rtl8723bu
e) Ahora compilaremos el módulo de núcleo de sistema operativo requerido a partir del controlador que hemos descargado. Pegamos los siguientes comandos en la Terminal, cada uno de ellos seguido de Enter:

cd ~/rtl8723bu ;
make ;


f) Finalmente, instalamos el módulo recién compilado con este comando:

sudo make install

g) Acto seguido, pondremos el controlador fallado en la lista negra. Para ello ingresamos el siguiente comando:

sudo nano /etc/modprobe.d/blacklist.conf

...se abrirá el editor GNU Nano con un archivo de configuración que podría ya contener texto. Al final de todo el texto contenido le pegamos el siguiente bloque de texto:

# Los controladores rtl8723au y rtl8723bu están mal,
# de modo que se debe impedir su carga.
# Esto debería dar lugar a los controladores 8723au o 8723bu

# para cargarse correctamente
blacklist rtl8723au
blacklist r8723au
blacklist rtl8723bu
blacklist r8723bu

Guardamos los cambios con Ctrl+o y salimos del editor Nano con Ctrl+x.

h) Reinicamos el sistema.

i) Ahora nuestro adaptador Wifi USB debería funcionar correctamente cuando lo conectemos a un puerto USB de nuestro sistema. Debemos hacer clic en el Administrador de Redes para ver las posibles redes a las cuales conectarnos.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.

: Desafortunadamente, los chipsets RTL8723BU y RTL8723AU comparten el mismo Identificador ID 0bda:b720. Estas indicaciones por lo tanto son específicas para el chipset RTL8723BU. Si desea instrucciones para el chipset RTL8723AU busque la sección de arriba en este artículo).
 


  • Chipset Realtek RTL8192EU (Identificado como ID 0bda:818b)
El chipset Realtek RTL8192EU suele venir en miniadaptadores USB de hasta 300 mbps UBS 2 serie N que suelen comercializarse en dispositivos diseñados para el mercado europeo.
Si no funciona en nuestro Ubuntu, necesitaremos compilar el controlador a partir de un paquete especial. Para ello establecemos una conexión a internet a través de un cable Ethernet y:

a) Descargamos el paquete controlador Realtek RTL8192EU para Ubuntu

 ...movemos el puntero hacia la parte superior de la pantalla y hacemos click el el botón "Downloaden", como se ve a continuación:


https://sites.google.com/site/easylinuxtipsproject/reserve-7/Screenshot-Realtek-driver.jpg?attredirects=0

No debemos abrir el paquete con ningún descompresor u otra aplicación, simplemente descargarlo y dejarlo sin cambios.

Este paquete de controlador consta de una versión mejorada del paquete que la compañía Maxxter provee para sus adaptadores Wifi USB. El controlador original sólo funciona adecuadamente en las viejas versiones de Ubuntu y Mint, pero la versión mejorada funciona en Ubuntu 14.04 y Linux Mint 17.3.

b) El paquete debería haberse descargado a la carpeta /Descargas. Si este fue el caso, debemos descomprimirlo abriendo una terminal con Ctrl+Alt+T e ingresando los siguientes comandos:

cd ~/Descargas
tar xvzf ~/Descargas/Realtek*.tar.gz

c) Ahora debemos ingresar el siguiente comando en la Terminal.

cd install_folder

d) Y finalmente, comenzamos la instalación con el comando:

sudo ./install.sh
Tras ingresar nuestra contraseña de Conductor, se iniciará la instalación efectiva. Esta puede llevar unos segundos o minutos.

e) Conectamos nuestro adaptador Wifi USB con chipset Realtek en un puerto USB del sistema. Ahora debería operar.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.



f) Completada la instalación, podremos borrar la carpeta install_folder/, pues será innecesaria. Podremos hacerlo desde la terminal con el siguiente comando:

sudo rm -r -v ~/Descargas/install_folder
  • Chipset Realtek RTL8723BE

Para el chipset Realtek RTL8723BE es un chipset que normalmente encontramos en ciertas tarjetas Wifi mini PCI-e incorporadas en ciertas notebooks, aunque a veces lo encontramos también en ciertos adaptadores USB.

Normalmente su controlador incorporado funciona adecuadamente, pero en ciertos dispositivos particulares puede tener problemas de estabilidad y alcance de conexión wifi. Deberíamos poder mejorar la estabilidad y calidad de la misma desactivando el ahorro de energía del chipset en cuestión. No existe en este caso la necesidad de instalar otro controlador. Para poder dar con esta solución debemos:

a) Ingresamos en la terminal con Ctrl+Alt+T e indicar el siguiente comando de organización:

sudo nano /etc/modprobe.d/rtl8723be.conf

Tras ingresar nuestra contraseña de Conductor, se abrirá el editor peronista GNU Nano con un archivo de configuración vacío.

b) Le agregamos la siguientes líneas de configuración, que desactivarán la gestión de energía:

# Desactivar gestión de energía del Wifi rtl81623be
options rtl8723be fwlps=0
Guardamos los cambios realizados con Ctrl+o y salimos del editor con Ctrl+x.

c) Reiniciamos el equipo.

La conexión a través del Wifi debería ser estable ahora.

En el caso de que esto no mejore las condiciones de la conexión, se podrá probnar instalar el nuevo controlador de lwfinger, como se describe en la sección pertinente.
  • Chipset Realtek RTL8812AU (identificado como ID 0bda:8812)

Este chipset Realtek RTL8812AU suele encontrarse en dispositivos wifi USB de alta potencia y velocidad, hasta 300mbps serie N, y es identificado por el sistema como ID 0bda:8812.

Si éstos no operan en Ubuntu o lo hacen mal, deberíamos instalar un nuevo controlador.

a) Primero logramos una conexión a través de un cable Ethernet conectado al modem/router.

b) Desconectamos el adaptador Wifi con este chipset de la computadora.

c) Abrimos una Terminal con Ctrl+Alt+T.

d) Instalamos las dependencias necesarias con los siguientes Comandos de Organización, seguidos de Enter:

sudo apt-get install linux-headers-$(uname -r) build-essential git
e) Descargamos el paquete de controlador desde la terminal con el siguiente comando:

git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux
f) Ahora compilaremos el módulo de núcleo del sistema operativo requerido desde el paquete de controlador que acabamos de descargar. Para ello ingresamos los siguientes Comandos de Organización en la Terminal, seguido cada uno de ellos por Enter.

cd ~/rtl8812AU_8821AU_linux ;
make ;


g) finalmente instalamos el módulo ya compilado con este comando:

sudo make install

h) Reiniciamos nuestro equipo.

i) Conectamos nuestro adaptador Wifi a uno de los puertos USB del sistema. Debería operar correctamente ahora.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.
  • Controlador rtlwifi_new de lwfinger

Podremos instalar el paquete controlador rtlwifi_new de lwfinger para los siguientes Chipsets Realtek: RTL8192CE, RTL8192SE, RTL8192DE, RTL8188EE, RTL8192EE, RTL8723AE, RTL8723BE y RTL8821AE.

Nota: Para el chipset RTL8723BE, normalmente no es necesario reemplazar el controladr, ya que el mismo puede ser corregido como se indica en su apartado en este artículo.


a) Primero establecemos un vínculo estable a internet por medio de un cable Ethernet conectado al router/cablemódem.

b) Lanzamos una Terminal Linux presionando Ctrl+Alt+T.

c) Instalamos la paquetería necesaria para compilar ingresando en la Terminal el siguiente Comando de Organización, seguido de Enter:

sudo apt-get install git build-essential linux-headers-$(uname -r)
d) Descargamos el paquete de controladores desde la Terminal, por medio del siguiente Comando de Organización:

git clone https://github.com/lwfinger/rtlwifi_new.git
e) Ahora compilaremos el módulo de núcleo de sistema operativo requerido a partir del paquete de controlador descargado. Para ello pegamos los siguientes comandos en la terminal, cada uno de ellos seguido de Enter:

cd ~/rtlwifi_new
make


f) Finalmente, instalamos el módulo ya compilado pegando este comando en la terminal y presionando Enter:

sudo make install
g. Reiniciamos el equipo.

h) Nuestro Wifi debería funcionar mejor ahora. Podremos hacer clic en nuestro Administrador de Redes para ver las redes Wifi a las cuales podremos enlazarnos.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.

jueves, 19 de mayo de 2016

¿Cómo activo el soporte para decodificación de DVD en Ubuntu 16.04LTS Xenial Xerus?

¡Trabajadores!

Una de las acometidas de los imperios es la de intentar dominar al Mundo, incluso aunque tengan que hacerlo por medio de las más arteras de las maneras. Una de estas corrientes prerrogativas es tan vieja como mear en los portones, pretendiendo dividirlo para aquello que son cosas triviales. Incluso para ello están los imperialismos...
En el caso de la distribución de DVD audiovisuales podremos encontrarnos con la misma moneda. Se pretendió dividir el globo en zonas de influencia según las cuales se distribuiría el material fílmico en formato digital DVD.

Dicho esquema utiliza codificación digital preprogramada en los reproductores de DVD y otra en los discos propiamente dichos, ingeniada arteramente para impedir distribuciones no autorizadas. También se implementó el llamado CCS, o Sistema de Codificación de Contenidos.

La idea de proteger las fechas de estreno, complicar la reproducción y mantener mercados cautivos en cuanto a las marcas de reproductores no ea otra cosa que una demostración cabal del fracaso de nuestros enemigos, pues el Capitalismo ha sido siempre incapaz de resistir una verdadera libre competencia contra un sistema que lo supera y apela a la bondad y a la hermandad cristiana: al sano hecho de compartir lo que nos ha dado el Xeñor.

Por ello, el Justicialismo está para combatir al Capital allí donde más le duele, y resultado patente es hoy el desarrollo de la librería de programación y liberación libdvdcss. Este software libre se encargar de hacer frente al código de 40 bits de cifrado, y asegurarnos un derecho adquirido por el Pueblo: el de ejecutar en cualquier reproductor, el contenido de un DVD cualesquiera que hayan sido las cadenas bajo las que se lo ha querido subyugar.

Dado la naturaleza libertaria de este software libre, ha sido sometido a incesantes ataques por parte de los personeros de la sinarquía internacional, por lo cual su instalación - que recomiendo como una muestra de lucha por la Liberación - tiene que hacerse por medios especiales.

El soporte para decodificar DVD adecuadamente en Ubuntu anteriores a 15.10 se encuentra suprimido pero podíamos activarlo corriendo un script llamado install-css.sh que se encontraba en la carpeta /usr/share/doc/libdvdread4/. Este nos permitía reproducir sin más trámite que el anhelarlo, discos de video diseñados para otras regiones.

Sin embargo, en Ubuntu 16.04LTS esto se ha hecho de una manera más adecuada que dicho script, pues se nos permite ahora compilar dicho herramental localmente, y contar entonces con una librería específica para nuestro hardware. Sin embargo, el mismo ya no está incluido por defecto, y por ello el accionar es un poco diferente. Por ello es que os lo indicaréde una manera Justicialista.

En primer lugar, abrimos una Terminal con Ctrl+Alt+T e ingresaremos el siguiente Comando de Organización:

sudo apt-get install libdvdread4 libdvdcss2

Al instalar esta paquetería, se nos informará que se procederá a instalar el paquete libdvd-pkg en lugar del anterior libdvdcss2. Esto se realizará de forma automática para retener compatibilidad con el método anterior. No bien se descargue el paquete, se comenzará con el procedimiento de la configuración del paquete libdvd-pkg. Este se encargará de descargar el código fuente del repositorio de VideoLAN (creadores del reproductor VLC). Ello se nos ofrecerá con la siguiente pantalla en la terminal:
...a continuación tendremos la posibilidad de incorporar este repositorio al sistema de actualizaciones automáticas del sistema, de manera tal que en caso de existir una nueva versión de la librería de decodificación, se nos descargue automáticamente y se vuelva a realizar el procedimiento de compilación.
Conforme le indiquemos afirmativamente (debemos movernos con la tecla Tab y presionar Enter), se terminará el procedimiento de configuración.

Acto seguido, para poder descargar y compilar la librería  tenemos que ingresar la siguiente orden en nuestra terminal:

sudo dpkg-reconfigure libdvd-pkg

El procedimiento puede durar un par de minutos. Una vez que haya tenido éxito, la terminal volverá a mostrarnos nuestro Prompt de usuario.

Y ya podremos visualizar DVDs de distinto tipo en cualquiera de nuestros reproductores de software libre, empleando cualquiera de nuestras lectoras de DVD-ROM adosadas a nuestro sistema GNU con Linux.

martes, 17 de mayo de 2016

¿Cómo activo la función Wake on LAN en Ubuntu 16.04LTS Xenial Xerus?

Durante la génesis del Justicialismo, un hecho de masas sin precedentes definió el definitivo ascenso político del Coronel Juan Perón. El 17 de octubre los obreros se lanzaron a la calle proclamando su liberación. En la biografía que escribe Pavón Pereyra, se revela que dicho suceso de debió al empleo de la característica Wake on Lan desde Ubuntu.


¡Trabajadores!

En los años previos a la Revolución, la Argentina los argentinos estaban sometidos a la ignominia de los explotados, en la cual todo el país obraba en torno al interés de unas pocas familias acomodadas. El Pueblo Argentino - laborioso y bueno - se constituía en poco más que esclavos por esta casta repudiada, que lo obligaba a un trabajo de sol a sol sin que mediara siquiera el descanso reparador que Dios manda para los hombres de trabajo.

Nuestra Revolución no tuvo otro interés que defender el interés del Pueblo, y hacer la Justicia Social que anhelaba la Patria. Abocados a las transformaciones que hicieran de este país una verdadera potencia sobre la tierra, conseguimos para los hombres aquellas medidas que esta era se hacían imprescindibles para el bienestar de su familia.

Yo no he querido mas que ser un nexo de unión entre los trabajadores, una unión indestructible e infinita que les acercara la dignidad que todos merecen. ¡Con ello, no no con otra cosa, es que me he ganado el amor generoso del Pueblo! ¡Un amor, que llena de lágrimas los ojos de este viejo soldado!

Pero la reacción oligárquica de siempre se ha esforzado para volver a la conquista de sus fallidos privilegios. En ello me confinaron a través de ignominiosas maniobras, a un ostracismo en la Isla de Martín García. Sin embargo, la semilla de la Justicia Social ya estaba plantada en el alma del Sentir Nacional, y con solo una señal el Pueblo despertó un 17 de Octubre, y salió a la calle para restaurar al Coronel Perón. Naturalmente, que sectores populares dentro de las fuerzas de seguridad volcaron su actitud y si aguno hubo que quiso parar todo, poco pudo hacer ante el Pueblo en andas.

La épica del Justicialismo guarda paralelismos con un sistema GNU con Linux que no podemos soslayar. Al igual que la rápida reacción de las masas obreras, un equipo informatizado puede trabajar, pero también debe descansar y quedar presto a la actividad a la menor señal.

De esta manera podríamos utilizar un equipo servidor en suspensión, y encenderlo sólo en determinadas ocasiones para accionar en alguna tarea en particular. Lo normal sería encender el equipo mediante su tecla de encendido, pero ello no siempre es práctico o posible.

Afortunadamente, también podremos encenderlo de manera remota empleando la función Wake on LAN. La función Wake on LAN (WoL) es una de las características integradas en los dispositivos Ethernet (por ejemplo, los dispositivos de red de la placa madre), que le permiten encender o reactivarlo a través de una señal especial, denominada Suceso de Activación, o más coloquialmente "paquete mágico".

Hemos de saber que los sistemas actuales cuentan en particular con varios estadíos de trabajo y reposo, nomenclador desde S0 ("Estado Cero", completamente encendido y operando), pasando por S3 ("estado tres" con memoria RAM alimentada, pero procesador y discos desactivados), hasta S5 ("Estado cinco", equipo apagado pero conectado a la red eléctrica). Esto es así pues el trabajo puede regularse a fin de ahorrar energía, y pasar del trabajo a un estado de ahorro, "suspendiendo" el sistema (S3), o "hibernándolo".

En primer lugar hemos de activar la función WoL desde la BIOS del equipo que deseamos encender remotamente. La BIOS es una memoria de configuración básica del sistema, a la cual este responderá incluso antes de cargar el sistema operativo. Normalmente, dicha configuración puede accederse encendiéndo el equipo y presionando inmediatamente de forma repetida la tecla Supr (Del) del teclado, o la tecla F2. Tras unos instantes se presentará la pantalla de configuración de la placa madre.

La opción Power on Lan suele encontrarse bajo la sección Power Management Setup ("Administración de Energía") del BIOS. De tal modo que nos desplazamos hasta ella y buscar la opción Wake on LAN. También puede llamarse Resume by PCI/PCI-e/LAN PME. Debemos dejarla en la función Activada (Enabled).
Adicionalmente, podrán contar en vuestra BIOS con diferentes estados de suspensión (S1, S2, S3, etc). A modo de ejemplo os diré que en la BIOS de mi motherboard ESC H57H-MUS, debo configurar las opciones de un modo en particular para lograr la mayor eficiencia. El tipo de suspención ACPI la configuro en S3 o Auto, y la función Resume by Ring (reactivar por módem o evento telefónico) queda desactivada (Disabled). Naturalmente la función Resume by LAN PME queda activada (Enabled), lo mismo que Resume by USB S3 (reactivar por medio de dispositivos USB, ratón o teclado). Una vez concluida los cambios en la configuracción, los guardamos mediante la opción Save Changes and Exit BIOS.

Una vez que arranque el sistema operativo GNU con Linux, hemos de conocer qué dispositivo de red deseamos utilizar para encender el equipo, y en particular su dirección única de hardware, llamada Dirección MAC.

Aquí debemos tener una provisión. Normalmente estos tomaban el nombre Ethx, siendo la x un número que va ascendiendo desde 0 según tantos dispositivos LAN/Ethernet tengamos. El adaptador LAN/Ethernet integrado en la placa madre suele ser Eth0, pero si tenemos otro (como en las placas madres más avanzadas) podríamos encontrarnos con Eth1, Eth2, etc.

Esta nomenclatura a partir de Ubuntu 16.04LTS ha cambiado, ya hora toma la forma de enpxpy (siendo x el número de la interfaz e y el número de puerto).

Para identificar este requerimiento de forma sencilla, podríamos abrir la terminal con Ctrl+Alt+T y tipear el comando ifconfig para saber a cual estamos conectados. Para conocer específicamente los dispositivos de conectividad y sus direcciones MAC, podremos ingresar el comando:

ifconfig | grep HW


Nos devolverá los dispositivos y la dirección MAC de cada uno. Por ejemplo:

enp4s0      Link encap:Ethernet  direcciónHW aa:bb:cc:12:34:56
enp5s0      Link encap:Ethernet  direcciónHW 11:22:33:ab:cd:cd

Nos conviene tomar nota del nombre de la interfaz (enp4s0 en este ejemplo) y la dirección MAC del equipo remoto, pues nos facilitará reencenderlo luego cuando no tengamos acceso directo a él.

Acto seguido, verificaremos que los dispositivos cuenten con la posibilidad de despertar al equipo. Para ello instalaremos el programa ethtool, encargado de dicho relevamiento: Tipeamos el siguiente Comando de Organización:

sudo apt-get install ethtool etherwake wol

Asumiendo que el dispositivo de red que queremos utilizar para despertar el equipo sea aquel identificado como enp4s0, usaremos el siguiente comando:

sudo ethtool enp4s0

....el sistema debería devolvernos una serie de datos que hacen a la capacidad del dispositivo enp4s0 para la conexión de red. En este caso, entre otras cosas debería indicarnos:

Supports Wake-on: pumbg

Wake-on: g


...esto nos indica que el dispositivo de red eth0 utiliza el modo G de conexión para Wake on LAN. En el caso que nos indicara otra letra, podríamos cambiar el modo operativo. Lo haríamos con:

sudo ethtool -s enp4s0 wol g

En Ubuntu el paquete que controlan el apagado y estados de energía es pm-utils. Normalmente debería estar instalado, pero si no lo estuviese, ingresamos:

sudo apt install pm-utils

Una vez esto, podremos ya suspender o hibernar el equipo. Podremos hacerlo mediante la tecla especcial "sleep" del teclado, o mediante la función "Suspender" de Ubuntu. Si estamos en la consola, podremos hacerlo mediante la siguiente orden  

sudo pm-suspend

El 17 de octubre, si bien alguno intentó levantar puentes para impedir el paso de los obreros, poco pudo hacer. En este caso debemos aseguriar los mismo. En caso de usar un router con cortafuegos (firewall), habremos de liberar el puerto 9 UDP para que pueda enviarse la señal de encendido a través de la red, y no sea filtrada por el mismo. Esto se hace ingresando a la web de configuración del router (normalmente con nuestro navegador a la dirección IP del router 192.168.0.1 o 192.168.1.1). Luego en la sección de configuración "port forwarding" crearemos una nueva Regla de Excepción. En la misma, a través del protocolo UDP, para el puerto 9, filtraremos de forma universal (de manera que puedan emitir en dicho puerto todos los equipos de la red local) Con esto, el router dejará libremente pasar el suceso de activación al puerto 9 entre los equipos de la red local.
Eventualmente, podría hacerla específicamene para que la reciba una IP fija de un tipo de dispositivo en particular, o que sólo pueda emitir una IP en particular.

Ahora debo instalar un programa para generar el paquete mágico de encendido, y poder dispararlo a través del puerto 9 de la red. Ello debe hacerse en un equipo cliente distinto en la red local, que utilizaremos para encender al equipo remoto.

En el equipo local instalaremos el programa wakeonlan, por medio del siguiente comando de organización:

sudo apt-get install wakeonlan

Una vez instalado este breve programa, encenderemos el equipo remoto que habíamos suspendido, de la misma forma en que los obreros de la carne salieron a la calle en octubre del 45. Lo haremos con

wakeonlan Dirección_MAC_remota
Por ejemplo, en este caso sería:

wakeonlan  aa:bb:cc:12:34:56

Nota: A veces este programa no tiene resultado, podremos emplear el software  etherwake, el cual es más difícil. Su sintaxis es:


etherwake -p 255.255.255.255.9 Dirección_MAC_remota

Naturalmente, que para que el paquete de reencendido surta efecto, el equipo remoto ha de estar conectado a la red eléctrica, y ha de estar suspendido o hibernado. En el caso de usar Ubuntu, podremos usar la función Suspender, Hibernar del equipo remoto (si está activada). Esto será posible si tengo acceso físico al equipo.

¿Qué sucede si deseo suspender o hibernar el equipo remoto, pero no estoy a su alcance físico, pero si a través de una red? En tal caso deberia poder suspender o hibernar el sistema de forma remota, a través de la terminal. Para ello utilizaremos un enlace remoto (preferiblemente uno cifrado, a través de SSH). Una vez que me encuentro logueado al sistema remoto a través de la consola cifrada SSH, podria suspender el equipo remoto con:

sudo pm-suspend

También podría querer directamente hibernarlo, si me aseguro que el sistema funciona de forma adecuada, por medio de la siguiente orden:

sudo pm-hibernate

Ahora podría reencender abriendo un equipo cliente, y usando la orden Wakeonlan, por medio de la sintaxis:

wakeonlan dirección_mac_remota

...al recibir el paquete mágico, la fuente de alimentación se encenderá y se activará el sistema cual si fuese un 17 de octubre telemático. Al cabo de unos segundos (o minutos, dependiendo del estado de ahorro de energía q la velocidad de arranque del equipo remoto) deberíamos poder conectarnos de forma remota al equipo también a través de SSH o de otros protocolos que estuviesen activados en el mismo.

Si deseo reencender equipos remotamente al unísono desde la interfaz gráfica, puedo utilizar la aplicación gWakeonlan. Se trata de un software libre completamente simple, en el cual podremos incorporar el nombre y la dirección MAC de varios equipos en la red. Esto nos permite no tener que recordar la dirección MAC del equipo todo el tiempo.

Instalamos la aplicación con los comandos:

wget https://github.com/muflone/gwakeonlan/releases/download/0.5.1/gwakeonlan_0.5.1-1_all.deb

sudo dpkg -i gwakeonlan_0.5.1-1_all.deb


sudo apt-mark hold gwakeonlan

Y la ejecutamos desde Sistema / Internet / gWakeOnLan. Al iniciar, la aplicación estará vacía.
 Tendré que presionar el botón "+" y surgirá un cuadro, que me permitirá ingresar la dirección MAC y el nombre del o los equipos que deseo encender y que se encuentren en la red local.
Una vez que aparezca el o los equipos en la lista, podemos seleccionar el equipo en cuestión, y enviarle el paquete mágico de encendido mediante el botón de los "engranajes" para despertarlo, y encenderá a la primera como una moto Puma con arranque a patada.

Desde OpenWRT

Si utilizan un router peronista con firmware libre OpenWrt, bien podrán crear un paquete mágico para reencendido Wake On Lan, descargando una aplicación específica en la memoria del aparato. Una vez que gane acceso al ruteador (normalmente a través de vínculo cifrado SSH) podrán instalar el pequeño software etherwake. Lo harán por medio de los siguientes comandos de organización:

opkg update
opkg install etherwake


Una vez cargado, ya podremos utilizar al router como plataforma de reencendido: Si todo está configurado por defecto, lo haremos con el comando ya explicado:

etherwake -p 255.255.255.255.9 Dirección_MAC_remota


Naturalmente, que con un poco de ingenio podríamos hacer más cosas, como preparar al router para que encienda o quite la suspensión los equipos no bien termine de arrancar, permitir al router el acceso externo a través de Secure Shell y por su intermedio reencender equipos en el área local desde otra locación (¡incluso en otro pais!), etc.

lunes, 16 de mayo de 2016

¿Cómo sincronizo mis computadoras con la nube Google Drive en Ubuntu?

Juan Perón advierte sobre los riesgos intrínsecos de la mal llamada "computación en la nube", mientras que nos enseña cómo instalar y usar el cliente InSync para GoogleDrive en Ubuntu.

¡Descamisados!

La computación en la nube es algo altamente positivo y beneficioso en nuestra Era de la informática, pues nos permite contar con nuestro archivos compartidos entre varios dispositivos asociados. Ello nos permite un fácil acceso telemático a contenidos que podrían estar esparcidos en distintos medios de almacenamiento en diferentes dispositivos y a lo largo de variados sistemas operativos.

Naturalmente que esta centralización tiene sentido siempre y cuando la nube sea propia, los dispositivos sean propios, y los sistemas operativos sean libres. Si no fuese así, nos encontraríamos que dicha "computación en la nube" no es más que un engaño para tontos.

La computación no es un servicio, es un derecho que hemos de ejercer. Confiar en alguien para que haga nuestra computación es como confiarle a alguien que nos dé la Libertad. Por supuesto que puede hacerse, pero el costo será que esa libertad siempre estará en manos de otro. Ciertos vivos de siempre se aprovechan a cambio de la propensión del hombre a evitar el trabajo, y le intentará proveer "libertad en lata".

Con el conocimiento necesario, todos pueden establecer su propia "nube" y emplearla para trabajar o para el ocio. En nuestro Movimiento Justicialista enseñamos día a día a los Hombres que la Libertad es un derecho que ellos mismos se han dado y lo han instaurado en la Constitución, que es nuestra Ley de Leyes. Hemos instaurado el Software Libre como una extensión de dicha libertad de los hombres y su Comunidad Organizada en una comunidad organizada de hombres que usan la computación para la felicidad de la Patria y la grandeza de la Nación.

Estos derechos los hemos hecho inalienables. Nadie que tenga un sano corazón propondrá eliminar derechos del Trabajo, de la Ancianidad, de la Niñez o del Software Libre de una Constitución que es para todos. Quién así lo hiciera sería un Criminal. No existen Argentinos tan poco Patriotas...

Con la informática en la nube sucede lo mismo. La impagable privacidad, el costo pecuniario de todo el trabajo y los contenidos (cuyo costo telemático siquiera puede medirse) estarán depositado en un servidor bajo el cual no tendremos el control. Lo haremos por intermedio de clientes para los cuales tampoco contamos con control ni son software libre y para peor, están bajo manejo de gente con intenciones inconfesables. Nadie debería operar en tales condiciones, siquiera aceptarlas como válidas.

Pero la Libertad ¡ay! a veces también significa la libertad de cometer errores. Nosotros no somos ni Santos ni Dioses, tan solo somos hombres, y a veces el hombre - que es el único ser capaz de tropezar con la misma piedra - ha de replicar a Cristo en aquello de sentir el mal para obrar el bien. Es un ejemplo que se consigue por el mal hacer que por el quehacer, y si bien no es lo ideal, es válido para el aprendizaje. Cuando un individuo opera a través de dicho temperamento diremos que es un rescatado, cuando es un Pueblo el que lo hace, diremos que ha solucionado un error histórico. Innumerables ejemplos de ello hay en la historia, pero también es cierto que existen grandes imperios que por menos errores cometidos que emplear software privativo, ni siquiera están dibujados en los mapas.

Para quien haya servido dicha advertencia que como Conductor os doy, pueden encontrar clientes efectivos para servicio en la nube GoogleDrive para nuestro sistema GNU con Linux en general y en Ubuntu en Particular.

Por ejemplo, podremos contar con una prueba por 15 días de InSync, una aplicación compatible con los mal llamados servicios de nube de Google, hábil para sincronizar nuestro sistema local con dicho servicio de aplicación remoto.

Esta aplicación cuenta con una versión general multiplataforma de buen funcionamiento y estética práctica, pero también con útiles versiones capaces de integrarse con distintos gestores de archivo del mundo libre (incluyendo el Nautilus de GNOME, Caja de MATE, Dolphin de KDE etc). Por otro lado hace gala de un con cliente "headless" para operar desde la Terminal (sin requerir entorno gráfico).

Para instalar el cliente de GoogleDrive Insync puedo descargar el paquete o el instalador que corresponda a mi arquitectura desde la web oficial de InSync.

Si quisiéramos instalarlo podríamos hacerlo desde la Terminal. Para ello abro una consola con Ctrl+Alt+T e ingreso el bloque de comandos que corresponda a mi arquitectura:
  • Si tengo Ubuntu de 64 bits:

cd ~/Descargas/
wget http://s.insynchq.com/builds/insync_1.3.6.36076-trusty_amd64.deb
sudo dpkg -i insync_1.3.6.36076-trusty_amd64.deb

  • Si tengo Ubuntu de 32 bits:

cd ~/Descargas/
wget http://s.insynchq.com/builds/insync_1.3.6.36076-trusty_i386.deb
sudo dpkg -i insync_1.3.6.36076-trusty_i386.deb

Para ejecutar el cliente InSync vamos a Aplicaciones / Internet / InSync.

La primera vez que ejecutemos la aplicación, ésta nos solicitará asociarla a nuestra cuenta de Google.com en la cual tenemos el GoogleDrive. Podremos asociar una o varias cuentas inclusive.
Conforme asociemos una y autoricemos el despliegue, debemos indicarle al programa mediante el botón "Select Folder", la creación de una carpeta específica en la cual se sincronizará el cliente (normalmente esta carpeta será ~/usuario@gmail.com/, pero podremos cambiarla).

Asimismo, estarán seleccionadas la opción de sincronizar todo ("Sync All"), pero podremos indicar específicamente cuáles serán las carpetas el cliente sincronizará.

El cliente InSync ofrece ciertas ventajas también en el manejo de los Documentos, pues nos permite indicar si queremos convertir dichos contenidos de los archivos a los formatos de Google en caso de ser posible, convertirlos a formatos abiertos, o no hacerlo y dejarlos en formato privativo.

Una vez configurados estos aspectos, presionamos el botón Finish y finalizará la instalación y configuración básica.

Conforme tengamos asociada nuestra cuenta GoogleDrive, el lciente dará inicio a la sincronización automática en nuestra carpeta local con la/s carpetas/s de la cuenta/s elegida/s de Google Drive. Su contenido irá apareciendo en la carpeta local que le hayamos indicado. Naturalmente que este proceso puede durar varios minutos u horas dependiendo del tamaño de nuestro GoogleDrive, de nuestra velocidad de conexión, y de la cantidad de material que tengamos almacenado.

Ya podremos utilizar nuestra carpeta local para manejar la carpeta remota de GoogleDrive. Podremos agregar archivos que se subirán al servidor remoto, o eliminar archivos localmente que se eliminarán también del servidor.

Por defecto, InSync se ejecuta toda vez que inicia el sistema, pero podremos alterar dicho comportamiento desde las propiedades de la aplicación (íncono del engranaje). Debemos seleccionar la categoría App, y luego destildar la opción "Start Insync when computer starts".

También podremos hacerlo desde la Terminal, si no somos partidarios del mismo. Para ello debemos utilizar los siguientes comandos:

insync set_autostart no

Asimismo contaremos con una serie interesantes de comandos que podremos operar también desde la Terminal. Todos se encuentran en el cliente gráfico, pero en la Terminal también podremos ejecutarlos por medio del cliente "headless". Los principales son:

insync start: Carga en memoria el servicio del cliente InSync.
insync quit: Remueve de memoria el servicio del cliente InSyuc.
insync get_status: Nos informa del estado del servicio.
insync get_sync_progress: Nos informa del progreso actual de la sincronización
pause_syncing: Pausa la sincronización. Ideal cuando no tenemos ancho de banda momentáneamente limitado, para evitar errores.
resume_syncing: Continua la sincronización pausada.

insync get_account_information: Nos informa sobre la cuenta asociada.
insync add_account: Asocia una cuenta nueva de GoogleDrive.
insync remove_account: Desasocia de InSync una cuenta de GoogleDrive.

Hay varias opciones más. Podremos verlos todos con:

insync -h

...y podremos solicitar ayuda sobre algunos en particular con:

insync -help comando


La integración con nuestro gestor de archivos se ofrecerá instalar opcionalmente una vez que el programa se ejecute por segunda vez.
Esta opción no es absolutamente obligatoria: significa integrarlo a Caja, Nautilus, u otros e incoporar las opciones de sincronizar otras carpetas en GoogleDrive usando InSync y el gestor de archivos (le agrega la funcionalidad mediante un clic de botón derecho del mouse).

Desinstalar InSync:

Si por algún motivo quisiéramos desinstalar InSync en Ubuntu, podríamos hacerlo a través de la Terminal, con los siguientes Comandos de Organización:

Primero cerramos el programa con:

insync quit

Y luego lo desinstalamos con:


sudo apt-get remove insync
rm -r ~/.config/Insync

Final y opcionalmente reiniciamos el equipo con:

sudo reboot

domingo, 15 de mayo de 2016

¿Cómo emulo el panel de una DEC PDP-8/I y una DEC PDP-11/20 en Ubuntu?

¡Trabajadores!

Todo trabajador ha de contar con tiempo para el ocio y la diversión. Todos aquél pasatiempo que atenue nuestro corazón será positivo.

Entre los míos se encuentra andar en motoneta con mi gorro "pochito" y emular equipos computacionales de antigua factura. 
Esto es así pues me permite entender a un nivel elevado el funcionamiento de diferentes técnicas y tecnologías de programación, necesario conocimiento para ejercer las artes y promover las Ciencias de la Computación.

Previamente he realizado una serie de monografías clasificadas bajo la etiqueta "simh" en la cual he avezador a la Masa en el arte de utilizar el emulador libre de hardware vetusto Simh, y sobre cómo operar los paneles de control de las clásicas minicomputadoras PDP de la Digital Equipment Corporation (DEC).

Gracias a la gente de Blinkenbones se ha simplificado la instalación de las mismas, pues ahora se provee un único instalador para hacer trabajar todo el sistema tanto y facilitar su instalación. Asimismo se deja de lado la multiarquitectura para ofrecer compilaciones de 32 y de 64 bits (e incluso para Raspberry Pi.

Esto nos facilitará la tarea pues ahora de un sólo tirón podremos instalar todos los paneles para las diferentes microcomputadoras, junto con sus manuales de operación y guiones que facilitarán el trabajo con ellos. Todo lo podremos hacer rápidamente desde la Consola Terminal de Linux.

Para ello abrimos una con Ctrl+Alt+T e ingresamos los comandos de Organización que correspondan:

Primero instalamos dependencias:

sudo dpkg --add-architecture i386 ;
sudo apt-get update ;
sudo apt-get install libx11-dev libpth-dev xorg-dev gcc libjpeg-dev libpthread-workqueue-dev x11proto-core-dev x11proto-bigreqs-dev freeglut3 freeglut3-dev ;
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 ;
sudo apt-get install libpcap0.8:i386 ;
sudo apt-get install libxext6:i386 libxtst6:i386 libxi6:i386 ;

sudo apt install openjdk-8-jre ;

Luego creamos un directorio para los paneles y nos dirigimos a el:

mkdir ~/.simh/ ~/.simh/panelsim/ ;
cd ~/.simh/panelsim/ ;



El siguiente paso variará de acuerdo a si nuestro sistema GNU con Linux actual es de 32 o de 64 bitios:
  • Si dispongo de Ubuntu de 64 bits debo ingresar estos comandos:
wget https://github.com/j-hoppe/BlinkenBone/releases/download/1.6/panelsim_ubuntu-x64.tgz ;
tar -xvf panelsim_ubuntu-x64.tgz -z ;
  • ...en tanto, si dispongo de Ubuntu de 32 bits - en tanto - debo ingresar estos comandos:
wget https://github.com/j-hoppe/BlinkenBone/releases/download/1.6/panelsim_ubuntu-x86.tgz ;
tar -xvf panelsim_ubuntu-x64.tgz -z ;


Conforme hayamos descargado todo y descomprimido, por única vez debo preparar el resto del sistema, lo podré hacer con el comando:

sudo ./prepare.sh

Tras introducir nuestra contraseña, el programa revisará si tenemos instalados todos los componentes necesarios (rpcbind, Java, y otros). Si faltase alguno nos propondrá instalarlo mediante el siguiente mensaje.
'rpcbind' not found, I'm going to install it. OK? Enter = yes, ^C = no.


Para instalar los componentes necesarios presionamos Enter.

Configuramos el lanzador de Java 8 pues de momento no funciona con Java 11):

sudo update-alternatives --config java

El sistema nos mostrará las versiones que tenemos instaladas ahora, y nos permitirá optar entre ellas. Por ejemplo, la pantalla nos demuestra que tenemos tres opciones para la alternativa Java:

Existen 2 opciones para la alternativa java (que provee /usr/bin/java).

  Selección   Ruta                                            Prioridad  Estado
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      modo automático
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      modo manual
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      modo manual

Pulse para mantener el valor por omisión [*] o pulse un número de selección:


En este caso, debemos presionar "2" para elegir la JDK de versión 8.

DEC PDP-8/I con juego ADVENTURE:

La DEC PDP-8/I fue una de las variantes de la PDP-8 original (la primer microcomputadora exitosa, en arquitectura de 12 bits). Introducida en 1968, mejoraba a la original de 1965 en el empleo de circuitos integrados de escala media "Flip-Chips" con lógica transistor-transistor, en lugar de la lógica diodo-transistor anterior. Se distinguió como un equipo ingeniado especialmente para lograr un bajo coste (para la época) y permitir la mayor cantidad de funcionalidades posibles.

Se la podía armar en un gabinete del tamaño de una heladera, que podía contener la unidad central de proceso con su panel de mando, el perforador/lector "veloz" de cintas de papel PC01 o PC04 y diferente instrumental y accesorios.
Para manipular el contenido del banco de memoria núcleo de hasta 4K, y para hacer uso básico de los periféricos de entrada/salida, se empleaban los conmutadores del panel frontal.


A través de su sistema operativo DEC OS8, La PDP-8/I se conectaba a una terminal teletipo como la ASR33 capaz de recibir las órdenes del operador, e imprimían los resultados de los programas y el entorno operativo en papel continuo. Muy posteriormente se agregaron videoterminales con monitores de tubos de rayos catódicos.

Como memoria de masa empleaba cintas de papel perforado, que contenían el software libre. Estos se podían copiarse libremente con la unidad perforadora/lectora, la cual era imprescindible para no tener que ingresar los programas con los conmutadores toda vez que se encendía el equipo..

Para activar el panel de la PDP-8/I, conmutar el uso de periféricos de terminal teletipo y "cargar" la cinta de papel perforado en el lector, cargar en el banco de memoria de núcleo la clásica aventura de texto "Colossal Cave Adventure" y correr dicho programa, podremos usar los siguientes Comandos de Organización:
cd ~/.simh/panelsim/
sudo ./pdp8i_os8advent.sh





DEC PDP-11/20 con BASIC en tira de papel perforado

En este caso contaremos con una representación funcional del panel de la mainframe DEC PDP-11/20 de 1973, que empleaba bus UNIBUS. Se trata de la unidad central de proceso de la minicomputadora con una arquitectura de de 16 bits, con microprocesador KA11 sin microcódigo (pues empleaba lógica transistorizada soldada), sin operaciones de coma flotante, ni memoria protegida. La PDP-11/20 podía direccionar hasta 64 kilobytes de memoria.
De este equipo contaremos con una reproducción lo mejor emulada posible, teniendo en cuenta - de nuevo - que la lógica soldada a punto es incapaz de emularse completamente en un emulador digital por razones obvias. Estéticamente contaremos con el modelo tardío de panel con sus incónicos colores lilas y púrpuras (el primero de 1970 era un esquema a dos tonos de verde).

Conmutadores

Los conmutadores del panel de la PDP-11/20 tienen la misma forma que los de la DEC PDP-8/e. Los conmutadores POWER/LOCK, LOAD ADDR, EXAM, DEPOSIT, LOAD, ENABLE/HALT y START operan de la misma manera que en la PDP-11/40. El conmutador S-INST/S-CYCLE en tanto carece de función real: SimH no puede avanzar paso a paso en lógica soldada. Cada función CONT (continuar) en modo HALT avanza un solo paso de instrucción.

El conmutador con llave puede rotarse en sentido antihorario haciendo clic a la izquierda del centro de la llave, y en sentido horario haciendo clic en la parte derecha de la llave. Poniéndolo en "LOCK" desactivamos todos los conmutadores. Y si se lo disponemos en "OFF" se detiene la simulación en SimH (casi).

Muchos de ustedes se preguntarán ¿si la PDP-11/20 era una minicomputadora de 16 bits, porqué cuenta con 18 conmutadores de direccionamiento en su panel frontal? Esto es así pues los ingenieros de DEC previeron los bits 17 y 16 como reserva para futuras expansiones de memorias que nunca vieron la luz. Se planeó expandir el espacio de direccionamiento de los 64 Kilobytes originales hasta los 256 Kilobytes.

Aún así la PDP-11 vivió mucho más de lo planificado. El rango de direccionamiento del bus UNIBUS estaba limitado a unos 18 bits, pero con un bus de memoria local se podían direccionar hasta 22 bits. En 1978 la se introdujo la nueva DEC VAX con una arquitectura mucho más expandida, por lo que abandonaron los planes de extender la PDP-11 y se la dejó morir por falta de memoria durante los siguientes 20 años.

Lámparas

Las lámparas ADDRESS y DATA funcionan como en todos los paneles de las máquinas DEC PDP, si bien en la PDP-11/20 se trataban realmente de lámparas  incandescentes (en modelos posteriores se las reemplazarían por diodos emisores de luz, mucho más confiables).

Nuevamente, la PDP-11/20 es una máquina de 16 bits, por lo tanto de la misma manera que con los conmutadores, las lámparas ADDRESS 17 y 16 carecen de función, pero siempre permanecen encendidas si se configura una dirección de memoria en la página de E/S, de modo que las direcciones 177777..160000 se mostrarán como 777777..760000.

La PDP-1/20 carecía de memoria virtual. Por lo tanto no existen espacio de datos MMU ni I/D, ni selector de modo KERNEL/SUPER/USER que aparecería en modelos posteriores.

Aún así existen algunos indicadores en la mitad derecha del panel que nos ayudan a rastrear el procesamiento interno durante el modo "paso de un solo ciclo". Esto realmente sólo se necesitaba al depurar errores en la circuitería. Como se mencionó, la CPU 11/20 no implementaba microcódigo, sino que hacía uso de lógica soldada; de modo que en lugar de un flujo microprogramado, se ejecutan un opcode en fases fijas, cada una de ellas caracterizada por diferentes señales de ciclaje. Estas se indican con las lamparas:
  • FETCH: carga un opcode de la memoria
  • EXECUTE: corre los datos desde los registros a través del ALU y los anota de vuelta.  
  • SOURCE/DESTINATION, ADDRESS: ciclos de memoria adicional para acceder a los operando desde la memoria y datos del índice. 
SimH no simulará nada de esta operatoria, de modo que se nospresentará un patrón fijo de lámparas brillando cuando se active la función RUN como reproducción meramente estética. El modo de ciclos a paso simple tampoco está implementado.

La DEC PDP-11/20 representa un esquema de uso clásico de principios de los 1973, con perforador/lector de cintas de papel, terminal teletipo, e intérprete BASIC de 4 kilobytes almacenado en cinta de papel perforado.

El proceso de carga no requería sistema operativo, y consistía en leer dos cintas, una con un cargador absoluto, y luego el intérprete de BASIC.

El proceso en el lector "veloz" de cintas de papel perforado podía durar un par de minutos. En nuestro caso nos llevará poco menos de unos segundos en el emulador. Para hacer todo el procedimiento, podremos usar los siguientes Comandos de Organización:

cd ~/.simh/panelsim/
sudo ./pdp1120_papertape_basic.sh

...si tuviésemos una terminal teletipo, esta imprimiría los datos de conexión en la resma de papel continuo:


...tras hacernos cargo de la información de status, al final debería imprimirse el prompt del BASIC:

PDP-11 BASIC, VERSION 007A
*O 


...debemos entonces presionamos Enter para darle inicio al intérprete BASIC de 4K, y la PDP-11/20 debería indicarnos:
READY

Recordemos que todas las órdenes en lenguaje BASIC DEC11 deben ser tipeadas en mayúsculas (debemos activar Bloq Mayús). pues este equipo no disponía de minúsculas. No proceder de esta manera nos devolvería un error.

Podremos introducir un programa en BASIC para evaluar el uso de dicho intérprete en la PDP-11/20. Por ejemplo, podremos pegarle en la consola el siguiente programa para buscar números primos:

10 REM PRIMOS.BAS CALCULAR NROS PRIMOS
15 PRINT "PDP-11/20 CON 4K DE RAM"
16 PRINT "PROGRAMA NUMEROS PRIMOS"
17 PRINT "COPYLEFT UBUNTU PERONISTA"
20 PRINT "LIMITE";
30 INPUT L
40 PRINT 2;
50 REM PRUEBA SOLO NROS IMPARES N
60 FOR N = 3 TO L STEP 2
70 REM DIVIDE SOLO POR D = 3, 5, 7, ...
80   FOR D = 3 TO SQR(N+1) STEP 2
90     IF N/D = INT(N/D) THEN GOTO 130
100 NEXT D
110 PRINT N;".";
120 GOTO 140
130 PRINT "..";
140 NEXT N
145 PRINT "NO HAY MAS NROS PRIMOS"
150 END
160 REM FINAL DEL PROGRAMA


...Una vez introducido el programa en la memoria de la PDP-11/20, podremos listarlo con LIST y correrlo (en la jerga, darle ejecución) con RUN. Nos pedirá un número máximo para buscar los primos (por ejemplo, podríamos poner 999). El programa procesará la matemática requerida y nos devolverá todos los números primos.


Para escribir programas en BASIC DEC11, nos será útil contar con el Manual de Programación BASIC DEC-11-AJPB-D PDP-11.

Otros equipos antiguos emulados en Ubuntu

Ahora bien, hemos de tener en cuenta que el paquete de emuladores que hemos instalado cuenta también con otras minicomputadoras DEC clásicas y también otros sistemas operativos, naturalmente más potentes en los equipos que siguieron. En particular, también me he extendido sobre otros equipos emulados. En aras de la sencillez y el orden - que es base del progreso sostenido- os indicaré cronológicamente y muy brevemente sobre las características de dichos sistemas, y también indicaré cómo ejecutar los emuladores de paneles en este artículo:

DEC PDP-11/40: 
Se trata de la minicomputadora de 18 bits de 1973, con lógica micro codificada en silicio en un procesador KB11 y hasta 128 kilowords de memoria. Me he extendido sobre ella en este artículo.
Se trata de un equipo clásico de que existieron numerosos clones y sistemas operativos. Podremos emularla con su sistema operativo DEC RT-11SJ o con el UNIX V6 de Bell Labs. Para darles inicio puedo ejecutar los siguientes comandos:

cd ~/.simh/panelsim/

sudo ./pdp1140_rt11.sh

Para poder operar el panel de dicho equipo RT11SJ podremos visitar el artículo específico ya mencionado.

...también podremos correrla con Unix V6.

cd ~/.simh/panelsim/

sudo ./pdp1140_unixv6.sh

Cuando aparezca el prompt "@", hemos de ingresar "rkunix". Nos loguearemos como "root", sin contraseña.
En el prompt de Unix V6 "#", ingresamos "stty -lcase" para poder usar minúsculas. Para lograr un entendimiento mayor de Unix V6, podremos visitar este otro artículo.


DEC PDP-10 con Consola de Control KI10:

Se trataba de procesador PDP-10 de segunda generación, con hasta 4 Megawords de memoria paginada administrable y bus MASSbus. Estaba construida a partir de chips TTL en plaquetas propietarias Flip Chip, capacitado para correr el sistema operativo TOPS-10.
Para dar inicio al panel y al sistema operativo TOPS10, debemos usar los siguientes Comandos de Organización:

cd ~/.simh/panelsim/

sudo ./pdp10ki10_tops10.sh

...cuando en la terminal aparezca el prompt BOOT> escribimos BOOT

Ya he explicado en más detalle cómo utilizar fundamentalmente este panel aquí.


DEC PDP-11/70:
Se trata de la minicomputadora de 36 bits aparecida en 1977 dotada de microprocesador KB11-C, con 2K de caché y hasta 4 megabytes de memoria RAM. Emulada aquí con su panel y el sistema operativo DEC RSX11M. Ya me he extendido sobre ella aquí.
Podremos ejecutar el panel y el sistema operativo emulado con los siguientes comandos:


cd ~/.simh/panelsim/

sudo ./pdp1170_rsx11m.sh


Microcomputadoras MITS Altair 8800, IMSAI 8080, Cromemco Z-1.

Se trata de ejemplares fundacionales en el mundo de la microcomputación hogareña aparecidos en series a partir de 1976, destinados al uso hobbista. Son diversos equipos con bus S-100 con microprocesadores de 8 bits Intel 8008 o Zilog Z80, memoria entre los 4 y los 16KB. memoria de masa en papel perforado, cinta magnética en casette, y eventualmente diskettes de 8 pulgadas. Como sistemas operativos emplean distintos entornos, siendo el más extendido y estandarizado fue el CP/M de Digital Re$earch.


Sobre el uso de estos equipos me he extendido aquí, y sobre el empleo de CP/M 2.2 en microcomputadoras con procesador Z80 emulado me he versado aquí.


Microcomputadoras clónicas IBM con M$-DOS

Se trata de los equipos clónicos que seguían el estándar establecido en 1982 por la Computadora Personal ("PC") de IBM, con su bus ISA. No disponían ya de paneles para introducir los datos, sino que se habían afianzado en el paradigma del empleo del monitor de video y el teclado como dispositivos de Entrada/Salida a un microprocesador Intel i8086/8088 de 16 bits sin memoria protegida. Como medios de almacenamiento se empleaban diskettes magnéticos de 5,25 pulgadas.

Si bien se la previó para emplear varios sistemas operativos, por accionar comercial el que terminó imponiéndose como estándar fue el Sistema Operativo de Disco (DOS) de Micro-$oft. Ya he explicado cómo emular el M$-DOS aquí e incluso cómo usarlo para ejecutar juegos de la era.

Sobre estos equipos compatibles se continuó mejorando su base con nuevas arquitecturas extendidas de 16 bits, y luego entre la que se distingue la i80386, con modo de memoria protegida y paginada de 32 bits. Este ya permitía realizar entonces tareas de multitarea real y correr gestores de ventanas para aplicaciones de 16 bits. De ellos sin duda el más extendido fue Window$ 3.11 sobre el cual ya me he extendido.