martes, 20 de enero de 2015

¿Cómo instalo un software de gestión de proyectos en Ubuntu?

Vean señores, al asumir la Secretaría de Trabajo y Previsión, me encontré que debería enfrentar una tarea descomunal. Durante años la Argentina había hecho avances en materia legislativa, pero las leyes no se cumplían pues no existía un organismo que hiciera cumplir la Ley del Trabajo.
Recuerdo que lo primero que hice fue definir un Plan de Acción en el cual lo inicial y obvio era identificar el principal problema económico. En nuestro país lo constituía la informalidad del trabajo, con amplísimos sectores fuera de los mas rudimentarios derechos. De todos ellos el más representativo era el campo argentino.

Identificado el problema, me puse en acción. Llamé a una ronda por radio y dije "el peón, que ha sido hasta ahora una forma disimulada de la esclavitud, será suprimido. Eso se acabó. Aquél que no pueda pagar a su peón deberá vender su campo, pues un peón ha de recibir un salario que esté de acuerdo a sus necesidades de vida. Una vida digna, una vida al que no le sea ajeno ese mínimo de felicidad al que todos aspiramos". Al principio hubo alguno que quiso quejarse, pero después todos terminaron pagando, pues sólo un tonto sería capaz de vender su campo para no pagar un salario como corresponde.

Pero no solo el campo, múltiples sectores económicos se manejaban con informalidad, y nadie hacía nada. Por tanto, consabidos los requerimientos, mediante nuevo discurso y acción disciplinadora, corregimos eso. Cuando se abrió ese galpón, vimos que salían vivos por todos lados. Dije entonces que la fábrica, la mina, el obraje, el molino, y cualquier establecimiento que se encuentre fuera de las Leyes del Trabajo no podía gozar de ninguno de los beneficios que concedía el Estado. Debían ser tratarlos como enemigos sociales. Ni nosotros, ni la masa trabajadora argentina iba a tolerar ese estado de cosas.

Y así en brevísimo tiempo corregimos un comportamiento pernicioso que no hacía sino carcomer al país que trabajaba. ¿Cómo hice esto? Pues mediante una inteligente planificación de la acción. Y para la Conducción, nada mejor que un software libre que la asista.

Gnome Project Planner es un software de administración de proyectos de tipo de escritorio. Como tal, está pensado para coordinar una serie de obras complejas, asignar recursos a las mismas, y ayudar a ingeniar y conciliar de la mejor manera a fin de darle término. Es lógico que utilizándolo podrá facilitarse la solución a cualquier proyecto en beneficio del país.

Como la mayoría de las aplicaciones iniciales de la suite Gnome, se trata de una aplicación GTK+ escrita en C y liberada bajo licencia GPLv2. Permite exportar a ficheros HTML para ver los resultados fácilmente en cualquier navegador.

Su instalación es muy simple: abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt-get install planner

Para iniciar el programa, vamos a Aplicaciones / Oficina / Planner.

Se trata un un programa que sigue la línea de la mayoría de los del género, y tendiente a la simplicidad. Es capaz de mostrar la grafica de Gantt para las tareas. También la WBS, o Estructura de Repartición de Trabajo, que define las las tareas a realizar y las desglosa.

En este término he de decir que la mejor manera de introducir los datos es definir los elementos de las tareas en Objetivos o Resultados y no acciones de trabajo individualizadas (tal vez muy tediosas). Esto asegura que la WBS no sea excesivamente descriptiva de métodos de acción, y que en cambio permita mayor ingenio y pensamiento creativo en los participantes del proyecto.

Será ideal para un proyecto sencillo o medianamente complejo, que pueda ser gestionado por un único usuario.

Por medio de la agrupación y división de tareas, asignación de recursos humanos y materiales a las mismas, se puede comprobar la acción de la fuerza del trabajo. También gracias a las gráficas, podremos de manera sencilla prever, proveer, y evitar los posibles tiempos muertos del proyecto.


Otro software de excelencia en este estilo es Project Libre. Este paquete está escrito en Java y por lo tanto habremos de contar con dicha máquina instalada en nuestro sistema, lo que lo hace algo lento en su ejecución pero nos da la ventaja de contar con una herramienta multiplataforma (dable de ejecutar bajo gran cantidad de sistemas operativos diferentes).

Para instalarlo podemos abrir una terminal con Ctrl+Alt+T y copiarle los siguientes Comandos de Organización:

cd /tmp ;
wget https://sourceforge.net/projects/projectlibre/files/ProjectLibre/1.9.3/projectlibre_1.9.3-1.deb ;
sudo dpkg -i
projectlibre_1.9.3-1.deb

Tas completar su instalación podremos ejecutarlo Lo encontraremos en Aplicaciones / Oficina / Project Libre o lo buscamos con el Dash de Ubuntu si usamos Unity.


Project Libre cuenta con una interfaz depurada, y botones de acceso,, con un esquema de trabajo similar a Planner, pero con mayor capacidad para hacer un seguimiento más pormenorizado de la acción.

viernes, 16 de enero de 2015

¿Cómo configuro mi router Netgear a través de la Terminal Linux?

Juan Perón fue un eximio docente de historia militar, cuya enseñanza continuó una vez abandonado el gabinete. El diario La Prensa documetna que el 2 de junio de 1953, en ocasión de inaugurar el Curso de Coroneles en la Escuela de Guerra, el Conductor desempolvó su sapiencia para extenderse ante la concurrencia con una anécdota y la enseñanza sobre cómo habilitar y utilizar el acceso Telnet de los router Netgear a través de un sistema GNU con Linux.


(...)
Estimados oficiales,

Se cuenta que en las postrimerías de la Guerra de los Cien Años, el ejército de Enrique VI a las órdenes de Talbot, logró hacerse con la Gasconia. Los frenaba el imponente castillo amurallado de Burdeos. Su portentosa obra no era moco de pavo; instalada en un monte de paso que lo hacía comandero de todo la zona, aseguraba una guarnición capaz de batir al más pintado. Las tres puertas de la plaza estaban protegidas por seis torres, fortines, muralla almenada, empalizada y fosa, lo cual lo hacian inexpugnable. Indudablemente que en esa época, vencer su sitio hubiesen requerido meses de acampe con varios cuadros regimentados y máquinas de asedio para hambrear a sus ocupantes, todo con un costo que . imaginarán - no eran chirolas.

El castillo guardaba - sin embargo - un secreto de zonzo, que no tardó en llegar a los poco limpios oidos ingleses: una zarza de ligustro que las décadas habian dejado pegarse a la traza del muro, ocultaba un pequeño portalón de entrada a un establo de maestranza. Haciendo las gestiones necesarias y pagando unos poco talones en oro a los traidores que siempre existen, los ingleses pudieron hacerse con la llave. Cuando la guardia quiso advertirlo era tarde, pues las partidas de asalto se apoderaron de la plaza entera la noche de un 17 de octubre, pero del buen año de 1452.

Todo individuo ha de saber que en la ofensiva mas vale maña que fuerza. Y en la defensivaa podemos concluir que no debemos dejar bajo ningún aspecto una puerta trasera al alcance del enemigo.

Vean señores, como en la vieja historia de los conflictos, la telemática viene también a recordarnos este viejo adagio. No es secreto para nadie que la internet ha de compartirse entre los miembros de un grupo familiar, pues cada hogar ha de contar con múltiples dispositivos que haga uso de ella.

Hemos de saber que muchos routers Netgear están programados de fábrica para poder conectarnos a través de una terminal empleando el protocolo Telnet, pero dicha opción se mantiene oculta y no documentada por su fabricante. Al usuario se lo considera neófito, y se le provee una interfaz web de configuración limitada.


En este caso, os diré que cuento con un router Netgear WRT614v7, aparato que sigue esta tipología. También sirve con muchos routers Netgear de la serie WRG, WND, WNR, WPN, y DGN.
PUESTA A PUNTO INICIAL DEL ROUTER NETGEAR
Si ya contamos con el router con acceso a internet configurada, podremos pasar de esta explicación.

Pero si no fuese así, hemos de saber que para conectarlo, el fabricante recomienda emplear su propia interfaz web limitada de configuración, a la cual accedemos utilizando un navegador gráfico como Chromiun, Firefox, etc. En el campo de Dirección URL del navegador tipeamos la dirección IP del router (normalmente 192.168.0.1, 10.0.0.1 o 192.168.1.1) y presionamos Enter. El navegador contactará al router y desplegará rápidamente una ventana que nos solicitara un usuario y contraseña para la web limitada de administración. En el caso de que nuestro router tenga la configuración de fábrica, debemos ingresar usuario admin y contraseña password, o bien en ambos campos "admin" (en minúsculas, sin las comillas), y presionar Continuar: nos aparecerá la web limitada de configuración (la cual realmente se encuentra embutída dentro de la memoria del router, y se encarga de su gestión básica):
Lo ideal para configurar inicialmente el router es hacer clic en "Setup Wizard" (o "Asistente de Configuración"), una rutina que os permitirá detectar y semiautomatizar el proceso de puesta a punto de una conexión compartida a internet, y la configuración de un punto de acceso inalámbrico (WiFi protegido por contraseña). Os recomiendo seguir este procedimiento de forma inicial, pues nos permitirá conocer sin demasiada vuelta si tenemos internet en otro dispositivo módem, establecer una red LAN cableada que la comparta, y otra red inalámbrica WLAN, nos permitirá conectarno inalámbricamente, en fin, todas las tareas para las que queremos a un router convencional.

Debemos asegurarnos de conectarnos al router, ya sea de forma inalámbrica como cableada, y que la conexión funcione adecuadamente.

INCONVENIENTES Y LIMITACIONESDE LA WEB CONFIGURACIÓN DE FABRICA
Hemos dicho que la web limitada de configuración facilita la tarea al neófito, y parecería que rara vez deba ser utilizada nuevamente una vez que el sistema ha sido puesto a punto.

Sin embargo caballeros, un militar ha de saber para preveer. ¿Qué sucedería si existiese una entrada secreta inadvertida a retaguardai de nuestro router? ¿Como actuamos si deseamos configurar nuestro router Netgear, pero no tenemos acceso gráfico y debemos hacerlo desde una ignota Terminal Linux y no podemos reemplazar su firmware por uno libre? ¿Qué sucedería si deseamos cambiar aspectos de un router que no están disponibles en la web limitada de control?

Han de saber que no todo lo que reluce es oro, y el Netgear en ciertos casos suena a latón cuando lo picamos con el dedo. La gente de Netgear ha dejado una trampa: una puerta trasera capaz de conectarse a través del protocolo Telnet y la misma puede emplearse para administrar el router, pero tambien podría deparar cierto peligro de seguridad.

Por tal motivo, es imperativo no sólo conocer sobre esta puerta, sino en lo posible cerrarla para quien tenga dominio de ella sea sólo el usuario propietario. Recuerden que el Capital se plantea ante todo Ganancia, y nunca obrará en favor del Pueblo, como si lo hace el Justicialismo.

La puerta trasera nos permitirá dar un una burda pero potente interfaz de comandos, la cual nos permitirá configurar parámetros no disponibles en la limitada Interfaz Web.

DESCUBRIENDO LA PUERTA TRASERA TELNET DEL NETGEAR WRG614

En primer lugar necesitamos contar con dos datos básicos del router Netgear al que deseamos ingresar: la dirección IP del router y la dirección MAC de su red LAN. Una forma sencilla de conocer dichos datos es a través de la web limitada de configuración. Seleccionamos Router Status y consultando el apartado LAN Port tomaremos nota de la IP address y la MAC Address. Con respecto a esta última, sepamos que es única para nuestro dispositivo, y tendrá un formato de 12 caracteres hexadecimanles separados en grupos de 2 cifras, como por ejemplo 5c:13:0a:c4:e2:eb. En este caso, será importante tomar nota de la dirección MAC de nuestro router sin usar los ":" y con sus letras en mayúscula. En este caso de ejemplo, usaremos 5C130AC4E2EB.
Acto seguido preparar nuestro equipo cliente con las herramientas requeridas. Para ello abrimos unaConsola con Ctrl+Alt+T e ingresamos el siguiente Comandos de Organización:

sudo apt-get install nmap python-crypto telnet

...el sistema nos solicitará nuestra contraseña de Conductor de Ubuntu, y una vez provista, instalará dichos programas.

Tras esto, debemos revisar si nuestro router Netgear tenga efectivamente la puerta trasera accesible por protocolo Telnet. Normalmente en la mayoría de los casos (como en el modelo WGR614) se encuentra en el puerto de conexión de red número 23, pero podría variar. Para saberlo utilizamos nmap llamándo a la dirección IP del router para conocér qué puertos de conexión de red están abiertos. Normalmente esto se hace con:

nmap 192.168.0.1

Tras unos segundos el router nos contestará qué puertos tiene abiertos. Si la puerta trasera Telnet existe, aparecerá algo como:

Nmap scan report for 192.168.0.1
Host is up (0.027s latency).
Not shown: 997 closed ports
PORT     STATE    SERVICE
23/tcp   open     telnet
80/tcp   open     http
8080/tcp filtered http-proxy


Ahora bien, dicha puerta trasera Telnet ha de abrirse con una llave específica armada para nuestro router particular, que hemos de crear. Para ello debemos utilizar la dirección IP del Router, y la dirección MAC del adaptador LAN del mismo, asi como un usuario y contraseña secretos reservados para la gente de Netgear: el usuario Gearguy y la contraseña Geardog.

Para preparar la llave podremos emplear la terminal, ingresando el siguiente bloque de comandos:
 
mkdir ~/.activatelnet-ng/ ;
cd ~/.activatelnet-ng/ ;
wget http://netgear-telnetenable.googlecode.com/files/netgear-telnetenable-0.1.zip ;
unzip netgear-telnetenable-0.1.zip ;

rm ~/.activatelnet-ng/netgear-telnetenable-0.1.zip ;
cd ~ ;
nano ~/paqllave.sh ;

...estos comandos crearán una carpeta con el software necesario y abrirá el editor de texto Nano con un archivo en blanco llamado paqllave.sh. En él pegaremos el siguiente código de ejemplo:

#!/bin/bash
# paqllave.sh
# Genera paquete-llave para abrir la consola Telnet oculta del router Netgear.
# Ej: telnetenable.py [ip_router] [mac_router] Gearguy Geardog]

python ~/.activatelnet-ng/telnetenable.py 192.168.0.1 5C130AC4E2EB Gearguy Geardog

Naturalemten, cada uno de ustedes habrá de modificar el texto de ejemplo provisto con sus propia dirección IP del router y dirección MAC.  Una vez hecho ello, guardarán el fichero y saldrán de Nano presionando Ctrl+O (Enter) y Ctrl+x respectivamente, y al volver a nuestro prompt, le damos permisos de ejecución con:

cd ~
chmod +x paqllave.sh

Notarán que le hemos proporcionado la dirección IP del router (192.168.0.1, también se podría usar 10.0.0.1), y le hemos proporcionado el usuario/contraseña "secreto" reservados de Netgear (usuario Gearguy, contraseña Geardog, con mayúsculas en sus primeras letras).

Para usar la llave, tipeamos:

./paqllave.sh

Si el aparato responde, debería indicarnos algo como Sent telnet enable payload to '192.168.0.1:23'. Una vez usada la llave, podremos abrir la puerta a traves de nuestra Terminal.

En vista de accionar para libertar, usamos el protocolo Telnet y nos conectamos a la dirección IP del router:

telnet 192.168.0.1

...si la comunicación funciona, el aparato nos enviará la siguiente pantalla de la terminal Telnet:

...Trying 192.167.0.1
...Connected to 192.168.0.1.
Escape character is '^]'.
Login:


Cuando nos pida Login, ingresamos a la Consola del router mediante el usuario Gearguy y la contraseña Geardog. Una vez dados de alta, se nos mostrará un prompt como:

U12H06400>


Si no pudiésemos loguearnos y apareciera el indicador "Connection closed by foreign host" nos aseguramos de cerrar la interfaz web de administración, o bien emplear una conexión cableada para mayor estabilidad.

Hemos de saber que el protocolo Telnet, si bien enormemente útil y popular, no es un seguro pues carece de encriptación y es dable a ser interceptado. Por tal motivo, el primer paso mínimo de seguridad, consiste en cambiar la contraseña Geardog del usuario "secreto" Gearguy. Esta contraseña no guarda relación con la contraseña de la interfaz web limitada de configuración que tiene el router. Para cambiar la contraseña del usuario Gearguy de la consola Telnet,  ingresamos:

passwd

...el router nos solicitará la contraseña actual (introducimos "Geardog") y podremos ya ingresar una nueva con su confirmación:

Current Password for Gearguy: Geardog
New Password: **************
Confirm Password: **************
Password changed.


...Ahora al menos la sesión oculta Telnet habilitada para "Gearguy" tendrá una contraseña diferente.

Una vez asegurado este paso, podremos con cierta confianza realizar algunas tareas dentro del router a través de la Terminal. Las configuraciones se harán ingresando comandos de texto y sus variables.

Si tipeamos "?" se nos mostrará los comandos generales que podemos ejecutar.

bridge         ddns           exit           ftpc           ip             lan            nat            passwd         pot            reboot         save           show           sntp           time           uptime         version        wan            web            wla 

Es importante saber que mientras algunos comandos son del tipo directo (sin variables), otros pueden estar escalonados en subcomandos mas complejos o potentes. Si tipeamos ? subcomando, se nos mostrará una descripción y la sintaxis que usa dicho comando.

Por ejemplo ? reboot nos mostrará una pequeñá referencia de dicha orden, utilizada para reiniciar remotamente el router.

Por ejemplo, si tipeamos el comando version nos devolverá la versión del firmware y del hardware, mientras que uptime nos indicará el tiempo que el aparato lleva encendido en la sesión actual. Como se ha dicho, para reiniciar el router podríamos usar el comando reboot (tengamos en cuenta que además de reiniciar el router, se volverá a cerrar la puerta trasera Telnet, de modo que ello requeriría volver a utilizar el paquete-llave antes de poder volver a ingresar al router usando Telnet).

El comando web es un ejemplo de comando "complejo" que permite ajustar la configuración de la interfaz Web de configuración del router Netgear..

Al tipear este comando, subiremos un nivel en la estructura de árbol de comandos y el prompt cambiará a > (como si de un directorio se tratase). Si volvemos a solicitar listado de directorio con ?, se nos mostrarán los subcomandos simples username y passwd. Si ingresamos dos puntos (..) volveremos al nivel anterior.

Los comandos complejos nos permiten trabajar de forma un poco más específica. Por ejemplo, a través de esta orden web y sus subcomandos, podríamos cambiar el nombre de usuario y la contraseña que tendrán la interfaz de configuración web del router (aquella accesible a través de un navegador apuntando a 192.168.0.1). En este router Netgear WRT 614v7, el usuario y la contraseña son "admin/password", y si bien través de la web de configuración del router podemos cambiar la contraseña por otra, no podemos cambiar el nombre de usuario, el cual siempre es admin. Sin embargo, el Justicialismo nos permite algo más de seguridad, pues a través de la Terminal Telnet podremos modificar ambos usando la sintaxis de comando complejo. En tal caso, podríamos modificarla con:

web username peron
web passwd mongoaurelio


...una vez ingresados dichos usuario/contraseña, podremos asegurarnos que estén bien almacenados en la memoria del router. Con web username debería indicarnos el usuario y con web passwd la contraseña que se nos solicitará. Indudablemente, es un comando útil si deseamos reforzar la seguridad de nuestra red, o incluso si debemos ingresar a la web de configuración de un router Netgear y no tenemos la contraseña de administrador.

sntp es otro ejemplo de comando complejo: nos permite controlar el reloj de tiempo real del router, configurando una dirección IP de un servidor de hora universal y nos permite elegir un huso horario. Por ejemplo, para ponerlo en hora en la Argentina (huso horario GMT-3), podriamos usar las órdenes:

sntp server 206.16.42.153
sntp timezone -3
sntp gettime


El comando save nos permite aplicar los cambios que realizamos en la memoria EEPROM del router, para protegerlos contra un reinicio del sistema.

El comadno exit nos permite salir de la terminal Telent del usuario Gearguy y volver a la Terminal de nuestro Ubuntu. Podríamos aprovechar para usar el comando

nano ~/paqllave.sh

...y modificar definitivamente dicho archivo, reemplazando la vieja contraseña Geardog por aquella con la cual la hemos reemplazado. Luego podremos volver a conectarnos tipeando telnet ip_del_router.

Con el comando show podremos solicitar una serie de opciones de gestión. Al ingresarlo nos aparecerá el prompt

show>
...y en él podremos ingresar la variable que querramos analizar, las cuales se listan con "?".

arp            flashShow      icmp           inet           interface      ip             mbuf           mem            mroute         netpool        route          routestat      stack          task           tcp            ud

Si estamos en el nivel show, podríamos ingresar el comando mem para que nos liste un detalle de uso de los 32 MB de memoria RAM incorporados en el router. Si quisieramos podríamos volver al nivel anterior tipeando "..".

show tcp nos muestra un detalle de las conexiones de internet a través de los convencionales paquetes, lo cual nos puede informar sobre conexiones exitosas o falladas. show udp nos muestra ese tipo de paquetes.

show task en cambio nos lista las tareas que está ejecutando el router en este momento.

WAN
El menu wan nos permite acceder a las configuraciones de la conexión a intenret del router. Normalmente el acceso del router al exterior suele manejarse a través de una plataforma automática de cliente DHCP que al establecer conexión con nuestro proveedor de internet (a través de un cablemódem o un suscriber, por ejemplo) le solicitará el alta de una dirección IP temporal (dinámica) para sí mismo, la cual el servidor DHCP del proveedor contestará afirmativamente y asignará.

Otros proveedores de internet utilizan un sistema de conexión por sesión de usuario con contraseña, llamado PPPoE (que puede tener IP fija o dinámica).

El primer caso suele ser el más extendido, por lo que wan dhcpclient show nos muestra la configuración actual de intenet, con todos los parámetros y si han sido detectados correctamente por el router, no deberían modificarse.


Si necesitásemos solicitar una nueva IP dinámica a nuestro proveedor de internet, podríamos hacerlo con wan dhcpclient renew para renovarla. El router se encargará de los reruteos necesarios.

LAN
El comando lan nos permite revisar amplias opciones, pues cuenta con varios niveles que podemos explorar y utilizar.

Dentro de menú lan, la opción dhcpserver es una de las funciones de gestión de red más apreciada, pues cuenta con una variedad de opciones de gestión general de la conexión y administración de ruteo para los dispositivos conectados.

Si estamos en la raíz podríamos usar lan dhcpserver status para que nos devuelva el estado actual de la conexión con los diferentes dispositivos que tengamos conectados al router.

lan dhcpserver dns nos permite configurar los DNS del router, por ejemplo podríamos utilizar los clásicos DNS de Google con el comando:

lan dhcpserver dns 8.8.4.4 8.8.8.8

Uno de los casos específicos de ruteo que podríamos resolver es el de asignar una IP estática a un dispositivo en particular que genere conflictos o que deba quedar fijo en la red (por ejemplo, una impresora compartida en red, o un Smart TV que no pueda cambiar la IP). Para ello debemos conocer la dirección física MAC del dispositivo, y agregarla al listado de direcciones IP estáticas reservadas, con el comando que incluya todo. Suponiendo una dirección MAC y una dirección IP estática de ejemplos, podríamos usar esta sintaxis:

lan dhcpserver reserveip add 00:11:22:33:44:55 192.168.0.106

...de esta forma, toda vez que el dispositivo con la dirección MAC 00:11:22:33:44:55 solicite una IP, el router le asignará la dirección IP estática 192.168.0.106.

Si quisiéramos ver qué dispositivos tienen reservada su IP estática en nuestro router podríamos hacer:

lan dhcpserver reserveip show

Y nos mostraría:

1. 00:11:22:33:44:55   192.168.0.106

lan dhcpserver pool nos permite definir una serie de direcciones IP dinámicas que el router asignará de manera aleatoria o en orden a los dispositivos de red que se conecten a el. Pueden ser hasta 255 valores en la red, pero como recomendación y para evitar conflictos, os recomiendo configurarla para que no tenga más de 40 posibilidades (en todo caso, no deberíamos poder conectar más que esos dispositivos en un router hogareño). Por ejemplo, podríamos utilizar:

lan dhcpserver pool 192.168.0.010 192.168.0.050

WIFI LAN (WLAN)
El comando complejo wla se encarga de las configuraciones del punto de acceso wifi, en el cual podemos revisar con get, y cambiar sus múltiples parámetros con set.

La lista de configuraciones para el punto de acceso inalámbrico, a diferencia de lo que permite la web de configuración oficial, es enorme, podremos acceder a funcionalidades "ocultas" del router Netgear WRG614.

Con wla find channel, que busca entre los 11 canales WiFi al que esté más libres, y se recomienda establecer la conexión en el mismo con wla set channel xx.

wla get operationmode nos muestra el modo operativo actual, pero podremos optar por nuevos a traves de wla set opereationMode. Las opciones que tendrá este comando son ap (punto de acceso) sta (sólo cliente), wbr (puente) o repeater (repetidor).

El modo repetidor toma la señal de radio de la banda wifi y simplemente la amplifica, repitiendo la señal existente. Sirve para ocasiones donde deseamos esclavizar el router como repetidor da un segundo router.

wla get remoteWbr nos lista los routers puentes que pudiese tener adosados remotamente la unidad, mientras que wla add remoteWbr agrega uno remoto.

Usar el Router como extensor, usando Modo Bridge ("Puente")
Como he explicado, a través de la consola podremos activar una función que directamente no se haya disponible a través de la limitada web de configuración oficial. Se trata del Modo Bridge (Puente).

Esto nos permitirá, si tenemos un poco de conocimientos, realizar actividades de ingeniería y pontonado, como emplear el Netgear 614 como "extensión Wifi" hacia otro router maestro. De esta manera y sin recurrir a un cableado físico que los una, podremos aumentar con dos routers el alcance de nuestra red inalámbrica, y emplearlo como un simple repetidor.

En este ejemplo, utilizaremos un router Linksus WRT120 como router "Conductor" conectado a internet, y el router Netgear como su extensión.

Para facilitar las cosas podremos realizar parte de las configuraciones preliminares en parte la interfaz de configuracion Web Limitada del router Netgear. Una vez en ella, iremos a la opción Wireless Settings y configuraremos el mismo nombre de red inalámbrica (Name SSID) y Canal (Channel) que el router principal. Durante la configuración apagaremos la encripción de clave para evitar problemas. Luego podremos utilizar encripción WEP de 128 bits (pues los modelos más avanzados como WPA2 no funcionan). En el apartado LAN IP Setup, sección en apartado LAN TCP/IP Setup buscamos la sección IP Address.

Le configuramos una dirección IP en la misma subred, pero por fuera del rango habilitado por el primer router. Por ejemplo, si el router principal tuviese la IP 192.168.1.1 y asigna entre decimales 10 y 50, podríamos ponerle al router Netgear en 192.168.1.100. Guardamos los cambios haciendo clic en el botón Apply de la interfaz web limitada, y una vez que se complete la barra de progreso, presionamos Logout.

Atentos a los cambios realizados, editaremos con Nano el archivo paqllave.sh del equipo cliente acordemente para modificar la nueva IP del router Netgear a la que corresponda. Apagamos el router "amo" y encendemos el router Netgear, y nos conectaremos a él de manera inalámbrica.

Los comandos a apiicar en la terminal para configurar el router Netgear serían los siguientes:

paqllave.sh

Un vez activada la llave, nos conectamos

telnet 192.168.1.100

Nos damos de alta con el usuario Gearguy y la contraseña que corresponda, e ingresamos los siguientes comandos:

wla
set remoteAp [dirección MAC del router amo]
add remote Wbr [dirección MAC del router amo]

(Nota: la dirección MAC de los routers Linksys está anotada en una etiqueta en tu parte inferior, ej: 0a:1b:2c:3d:4a:5b)

set oper wbr
set wds enable
..
lan dhcpserver disable
save
reboot

Luego en el router principal Linksys, podremos reservarle la dirección MAC del router Netgear en la IP 192.168.1.100.

Como vemos, las posibilides son muy amplias para continuar utilizando el pequeño router blanco, el cabeza negra del Justicialismo.

La lista entera de comandos del menú telnet wla (inalámbrico) es muy extensa. Es:

 add remoteWbr    -- Agrega un Puente inalámbrico remoto.
 config wlan      -- Configura la wlanX
 config virtualap -- configura un punto de acceso virtual
 config bss       -- configura bss
 connect bss      -- conecta a un bssX
 del acl          -- Borra la lista de COntrol de acceso
 del key          -- borra clave de encripción
 del remoteWbr    -- Borra un puente inalámbrico remoto
 find bss         -- Encuentra BSS
 find bssPassive  -- Encuentra BSS con scan pasivo
 find channel     -- Busca canales disponibles
 find all         -- Busca todos los BSS
 format           -- Formatea el sistema de archivos
 bootrom          -- Actualiza imagen ROM de inicio
 ftp              -- Actualiza Software via FTP
 get 11gonly      -- Muestra disp. sólo 11g
 get 11goptimize  -- Muestra nivel optimiz 11g
 get 11goverlapbss   -- Muestra protección acaballamiento BSS
 get abolt        --
 get acl          -- Muestra listas de ptos. de acc.
 get aging        -- Muestra intervalo de Periodo de tiempo
 get antenna         -- Muestra diversidad de antena
 get association     -- Muestra tabla de asoc.
 get authentication  -- Muestra tipo de autenticación
 get autochannelselect    -- Muestra autoselección de canal
 get beaconinterval       -- Muestra intervalo de baliza
 get burstSeqThreshold    -- Muestra máximos frames x Ráfaga
 get burstTime            -- Muetra tiempo de ráfaga
 get cacheperf       -- Muestra contador de performance de caché
 get calibration     -- Muestra interferencia y offset
 get cckTrigHigh     --
Muestra Higher Trigger Threshold for CCK Phy Errors for ANI Control
 get cckTrigLow      --
Muestra Lower Trigger Threshold for CCK Phy Errors for ANI Control
 get cckWeakSigThr   --
Muestra ANI Parameter for CCK Weak Signal Detection Threshold
 get channel         -- Muestra radiocanal activo
 get cipher          --
Muestra cifrado de encripc.
 get config          -- Muestra configuración actual
 get countrycode     --
Muestra código de pais
 get ctsmode         -- Muestra
modo CTS
 get ctsrate         --
Muestra indicie CTS
 get ctstype         --
Muestra tipo CTS
 get domainsuffix    --
Muestra el sufijo del serv nombre de dominio
 get dtim            --
Muestra Data Beacon Rate (DTIM)
 get enableANI       --
Muestra control adaptable de inmunidad a inferferencia On/Off
 get encryption         -- Muestra modo de encripc.
 get extendedchanmode   -- Muestra modo de canal extendido
 get firStepLvl         --
Muestra ANI Parameter for FirStepLevel
 get fragmentthreshold  --
Muestra Fragment Threshold
 get frequency          -- Muestra radiofreq (MHz)
 get gateway            -- Muestra la IP Gateway
 get groupkeyupdate     --
Muestra intervalo de actualizacion Group Key (segs)
 get hardware           -- Muestra datos del hardware
 get hostipaddr         --
Muestra dirección IP del Host
 get interVF            --
Muestra Inter Vap Forwarding State
 get intraVF            --
Muestra Intra Vap Forwarding State
 get ipaddr             --
Muestra dirección IP
 get ipmask             -- Muestra
IP máscara de subred
 get jsw                --
Muestra modo Jumpstart
 get jsP2PassPhrase     -- Muestra JS-P2 passphrase
 get key                --
Muestra Encryption Key
 get keyentrymethod     --
Muestra Encyrption Key Entry Method
 get keysource          --
Muestra Source Of Encryption Keys
 get login              --
Muestra Login User Name
 get minimumrate        --
Muestra Minimum Rate
 get nameaddr           --
Muestra IP address of name server
 get noiseImmunityLvl   --
Muestra ANI Parameter for Noise Immunity Level
 get ofdmTrigHigh       --
Muestra Higher Trigger Threshold for OFDM Phy Errors for ANI Control
 get ofdmTrigLow        --
Muestra Lower Trigger Threshold for OFDM Phy Errors for ANI Control
 get ofdmWeakSigDet     --
Muestra ANI Parameter for OFDM Weak Signal Detection
 get operationMode      --
Muestra Modo de Operación actual
 get pktLogEnable       --
Muestra Packet Logging Mode
 get power              --
Muestra conf. de Potencia de Transmisión
 get pvid               --
Muestra the VLAN Tag
 get radiusname         --
Muestra RADIUS server name or IP address
 get radiusport         --
Muestra RADIUS port number
 get rate               --
Muestra Data Rate
 get reg                --
Muestra the register contents at the given offset
 get remoteAp           --
Muestra la dirección MAC del Pto. Acc. Remoto
 get reset              -- Muestra numero de Resets
 get remoteWbr          -- Muestra los Puentes Wireless remotos configurados
 get hwtxretries        --
Muestra HW Transmit Retry Limit
 get swtxretries        --
Muestra SW Transmit Retry Limit
 get rogueAPDetect      --
Muestra Rogue AP Detection Mode
 get rtsthreshold       --
Muestra RTS/CTS Threshold
 get shortpreamble      --
Muestra Short Preamble Usage
 get shortslottime      --
Muestra Short Slot Time Usage
 get sntpserver         --
Muestra SNTP/NTP Server IP Address
 get softwareretry      --
Muestra Software Retry
 get ssid               --
Muestra Service Set ID
 get ssidsuppress       --
Muestra SSID Suppress Mode
 get active             --
Muestra Active (up) Mode
 get station            --
Muestra Station Status
 get counters           --
Muestra Tx/Rx Counters
 get SuperG             --
Muestra SuperG Feature Status
 get systemname         --
Muestra Nombre de sistema de Pto.Acc.
 get tzone              --
Muestra config. zona horaria
 get updateparam        --
Muestra Vendor Default Firmware Update Params
 get upsd               --
Muestra modo UPSD
 get uptime             --
Muestra tiempo encendido
 get vaps               --
Muestra nro de Ptos de Acceso virtuales
 get vlan               --
Muestra VLAN Operational State
 get watchdog           --
Muestra modo Watchdog
 get wds                -- Muestra modo WDS
 get wirelessmode       --
Muestra modo WLAN
 get wmm                --
Muestra Modo WMM
 get wmmParamBss        --
Muestra WMM parameters used by STA in this BSS
 get wmmParam           --
Muestra parámetros WMM de este Pto.Acc.
 get usrp               --
Muestra prioridad de usuario
 get wlanstate          --
Muestra status wlan
 get xrpoll             --
Muestra XR poll
 get xrbss              --
Muestra XR Bss Info
 get xrFragmentThreshold            --
Muestra XR fragment threshold
 help                   --
Muestra lista de comandos
 ping                   -- Ping
 pktLog                 -- Packet Log
 reboot                 -- Reiniciar el punto de acceso
 run                    -- Run command file
 quit                   -- Sale
 exit                   -- Sale
 set 11gonly            -- Set 11g Only Allowed
 set 11goptimize        -- Set 11g Optimization Level
 set 11goverlapbss      -- Set Overlapping BSS Protection
 set acl                -- Set Access Control List
 set aging              -- Set Aging Interval
 set antenna            -- Set Antenna
 set authentication     -- Set Authentication Type
 set autochannelselect  -- Set Auto Channel Selection
 set beaconinterval     -- Modify Beacon Interval
 set burstSeqThreshold  -- Set Max Number of frames in a Burst
 set burstTime          -- Set Burst Time
 set cachePerf          -- Comienza monitoreo performance caché
 set calibration        -- Set Calibration Period
 set channel            -- Set Radio Channel
 set cipher             -- Set Cipher
 set countrycode        -- Set Country Code
 set ctsmode            -- Set CTS Mode
 set ctsrate            -- Set CTS Rate
 set ctstype            -- Set CTS Type
 set domainsuffix       -- Set Domain Name Server Suffix
 set dtim               -- Set Data Beacon Rate (DTIM)
 set enableANI          -- Turn Adaptive Noise Immunity Control On/Off
 set encryption         -- Set Encryption Mode
 set extendedchanmode   -- Set Extended Channel Mode
 set factorydefault     -- Restore to Default Factory Settings
 set firStepLvl         -- Set ANI Parameter for FirStepLevel
 set fragmentthreshold  -- Set Fragment Threshold
 set frequency          -- Set Radio Frequency (MHz)
 set gateway            -- Set Gateway IP Address
 set groupkeyupdate     -- Set Group Key Update Interval (in Seconds)
 set hostipaddr         -- Set Host IP address
 set interVF            -- Set Inter Vap Forwarding State
 set intraVF            -- Set Intra Vap Forwarding State
 set ipaddr             -- Set IP Address
 set ipmask             -- Set IP Subnet Mask
 set jsw                -- Set Jumpstart Mode
 set jsp2Passwd         -- Set JS-P2 password
 set key                -- Set Encryption Key
 set keyentrymethod     -- Select Encryption Key Entry Method
 set keysource          -- Select Source Of Encryption Keys
 set login              -- Modify Login User Name
 set minimumrate        -- Set Minimum Rate
 set nameaddress        -- Set Name Server IP address
 set noiseImmunityLvl   -- Set ANI Parameter for Noise Immunity Level
 set ofdmTrigHigh       -- Set Higher Trigger Threshold for OFDM Phy Errors for ANI Control
 set ofdmTrigLow        -- Set Lower Trigger Threshold for OFDM Phy Errors for ANI Control
 set ofdmWeakSigDet     -- Set ANI Parameter for OFDM Weak Signal Detection
 set operationMode      -- Set operation Mode
 set password           -- Modificar Password
 set passphrase         -- Modificar Frase de Paso
 set pktLogEnable       -- Enable Packet Logging
 set power              -- Set Transmit Power
 set pvid               -- Set the VLAN Tag
 set radiusname         -- Set RADIUS name or IP address
 set radiusport         -- Set RADIUS port number
 set radiussecret       -- Set RADIUS shared secret
 set rate               -- Set velocidad de datos
 set reg                -- Set valor de registro
 set hwtxretries        -- Set HW Transmit Retry Limit
 set swtxretries        -- Set SW Transmit Retry Limit
 set rogueAPDetect      -- Set modo de detección de AP conflictivo
 set rtsthreshold       -- Set RTS/CTS Threshold
 set shortpreamble      -- Set Short Preamble
 set shortslottime      -- Set Short Slot Time
 set sntpserver         -- Set SNTP/NTP Server IP Address
 set softwareretry      -- Set Software Retry
 set ssid               -- Set Service Set ID
 set ssidsuppress       -- Set SSID Suppress Mode
 set active             -- Set Active (up) Mode
 set SuperG             -- Super G Features
 set systemname         -- Set Access Point System Name
 set tzone              -- Set Time Zone Setting
 set updateparam        -- Set Vendor Default Firmware Update Params
 set vaps               -- Set Number of Virtual APs
 set upsd               -- Set UPSD Mode
 set vlan               -- Set VLAN Operational State
 set watchdog           -- Set Watchdog Mode
 set wds                -- Set WDS Mode
 set wlanstate          -- Set wlan state
 set wirelessmode       -- Set Wireless LAN Mode
 set usrp               -- Set the User Priority
 set wmm                -- Set WMM Mode
 set wmmParamBss        -- Set WMM parameters used by STAs in this BSS
 set wmmParam           -- Set WMM parameters used by this AP
 set xr                 -- Set XR
 timeofday              -- Display Current Time of Day
 version                -- Software version


viernes, 9 de enero de 2015

¿Cómo activo la hibernación en Ubuntu 14.04LTS?

Durante la antidemocrática era proscriptiva que azotó a la República desde 1955 por mano de la oligarquía, el sentir patrio y libertario del Justicialismo debió hibernar en el corazón del Pueblo, para luego resurgir en un nuevo gobierno de signo socialista nacional. Por tal motivo, en un discurso pronunciado frente al Concejo Nacional del Partido Justicialista en 1973, el Conductor nos enseña cómo activar la hibernación en Ubuntu 14.04LTS.


(...)
Hemos regresado tras un período que no debiera haber sucedido, en el cual la lucha no ha sido fácil ni el camino llano. En 1955 tuvimos que pasar "la Hora de los Enanos", en la que el País fue arrastrado por una fuerza de ocupación al mando de la Sinarquía Internacional y una oligarquía cipaya deseosa de hacerle el juego. Ante esta fuerza ilegítima se sometió por dieciocho años nuestro pueblo - que ha sufrido y visto caer sus logros en un pozo del que sólo saldremos con el esfuerzo de todos.
 
En un mundo que es otro, y sin las oportunidades que se han desperidiciado trastabillando en un rumbo erróneo, parecería ser que la situaciónn actual es desesperante. Sin embargo, no todo se ha perdido, pues los argentinos entendieron el objetivo que planteaba la hora: frente al accionar antipatria de los pusilánimes de siempre, no podía darse otro resultado que conservar los logros de nuestro Movimiento en la más añorada memoria histórica del Pueblo, para revivirla cuando nos diésemos la oportunidad.
Nuestro Pueblo no necesita órdenes para ello: nuestra acción dignificante e hidalga se almacenó con cariño en los recuerdos de cada Argentino de provecho, se inculcaron a cada niño, se entendieron y valoraron bajo la nueva luz que da el paso del tiempo bajo la opresión. Podría con propiedad decirse que - durante mas de dieciocho años - el Justicialismo quedó hibernando en el corazón Pueblo Argentino.

Ahora bien, cuando sonó la nueva hora, dicha Memoria Histórica fue recuperada para establecer en la República el retorno de nuestro Movimiento. Continuaremos así con una nueva iteración de Peronismo como si nada hubiese pasado.
Sin embargo, esta idea - tan provechosa a lo largo de la historia - no se limita al corazón del pueblo: puede ejercerse con el mismo provecho venturoso en un sistema GNU con Linux.

Vean señores, un sistema Linux también es dable de hibernarse. Cuando se activa la hibernación, el contenido completo de la memoria volátil de acceso aleatorio (RAM) es almacenada de manera indeleble en un sector del disco rígido (normalmente la partición de intercambio). Conforme se haya salvado dicho contenido, el sistema se apaga completamente (desconectándose de manera de no utilizar energía electrica). Al reencender el equipo, el sistema restaurará el contenido de la memoria almacenado en disco, y lo volverá a colocar en la memoria volátil de trabajo RAM. Esta mecánica permite -si todo va bien - continuar utilizando las aplicaciones y documentos de la misma forma que estaban antes de apagar el sistema, como si la sesión nunca se hubiese detenido.

Ahora bien, por defecto en Ubuntu 14.04LTS esta función de Hibernación se encuentra desactivada. Esto se debe a que en algunos equipos específicos la hibernación provoca problemas con Ubuntu; inconvienientes determinados a cierto hardware o combinaciones de hardware, y en ocasiones difíciles de aislar, replicar o solucionar sin un estudio mas acabado.

Por lo tanto, para agregar la opción de Hibernar, hemos de comprobar fehacientemente que el hardware de nuestro equipo no interfiere y opera bien en dicha condición, y una vez verificado esto, podremos proceder a agregarle la función.

hibernate ubuntu 14.04

Para evaluar el correcto funcionamiento de la Hibernación, podremos hacerlo a través de una órden en la Terminal. Nos aseguramos de no estar haciendo nada crítico con el equipo, abrimos una instancia de terminal presionando simultáneamente Ctrl+Alt+T, y en la Consola que aparezca ingresamos el siguiente Comando de Organización:

sudo pm-hibernate

El proceso de hibernación suele tardar varios segundos, durante los cuales se almacena al completo el contenido de la RAM al disco (la pantalla puede quedar en negro, o mostrando un simple cursor durante este evento). Una vez concuido, el equipo se apagará automáticamente. Podríamos desconectarlo incluso de la red eléctrica y por varios años si fuese necesario. En este caso, volveremos a  reencenderlo.

Al rearrancar el sistema, se procederá a la lecctura del disco y a la transferencia de dichos datos a la memoria RAM. Es probable que esto alarge el tiempo de arranque del sistema, pero deberían aparecer las aplicaciones abiertas y la instancia de trabajo anterior. Si las aplicaciones abiertas se reencienden correctamente, significa que el sistema de hibernación funciona de forma adecuada en nuestro equipo y no tenemos ningún hardware conflictivo que cause problemas con el sistema. En tal caso, podremos continuar agregando el comando al menú del panel superior de Ubuntu, sin temor a problemas.

Para agregar la función de Hibernar en el menú de sistema, hemos de modificar ciertos archivos de configuración: Para ello abrimos una Terminal e ingresamos los siguientes Comandos de Organización:

sudo -i 

cd /var/lib/polkit-1/localauthority/50-local.d/


gedit com.ubuntu.enable-hibernate.pkla

Nota: Si este archivo no funciona y aparece vacío, puede deberse a que aparezca localizado en la carpeta /etc, si tal es el caso, el comando correco que utilizaremos será: cd /etc/polkit-1/localauthority/50-local.d/ &&
gedit com.ubuntu.enable-hibernate.pkla

Con esta orden se activará el editor de textos peronista, Gedit. Aprovecharemos para copiar y pegar en el archivo el siguiente código justicialista:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

enable hibernate ubuntu 14.04
Una vez completado todo, guardamos el archivo con Ctrl+s y salimos con Ctrl+q. Acto seguido - y como última comprobación - podremos reiniciar el equipo para que este cambio se aplique. Lo haremos con el comando:

sudo reboot

Reiniciamos el equipo y si lo deseamos, evaluamos la hibernación nuevamente desde el menú de sistema para estar seguros.

Ahora bien, en el caso de los equipos portátiles, suelen tener una función de ahorro energético que se encarga de suspender el sistema si cierro la pantalla del equipo. Esta función permite una reactivación rápida, pero a cambio de una penalidad: se seguirá gastando energía eléctrica en el equipo portátil. Si la misma no está conectada, esta energía se tomará de la batería, y si la misma se agotase (por estar suspendido varias horas o días), podríamos perder la información almacenada y perjudicar nuestro sistema operativo e instalación.

Sin embargo, en todo ha pensado el Justicialismo. Se preguntarññan ¿cómo hago para que al cerrar la pantalla de la notebook, Ubuntu se hiberne en lugar de entrár en suspensión?

Pues bien señores, esta modificación al accionar es muy simple de lograr toda vez que sepamos cómo modificar el fichero de configuración correspondiente. Y esto es fácil gracias a Perón. En primer lugar abro una terminal con Ctrl+Alt+T e ingreso el siguiente comando de organización:

sudo gedit /etc/systemd/logind.conf

Al abrirse el editor gedit, presiono Ctrl+f para activar la función de búsqueda. Se abrirá un cuadro de diálogo, en el cual en el campo "buscar" puedo indicarle la siguiente cadena de texto.

#HandleLidSwitch=suspend

Acto seguido presiono el botón Buscar. El editor me resaltará el texto. Simplemente hemos de modificarlo de modo que quede de la siguiente manera:

HandleLidSwitch=hibernate


...ahora ya podremos guardar el archivo con Ctrl+S. Para que el sistema tome nota de la modificación sin tener que reiniciar completamente el sistema, podremos ingresar el comando:

sudo restart systemd-logind

Ahora toda vez que cerremos la pantalla de la portátil, en lugar de suspender el sistema (y continuar consumiento una mínima pero apreciable cantidad de energía), podremos hibernarla, con lo cual el sistema se apagará y podría quedar así un tiempo mas largo almacenada con la misma sesión.

Nota: Si la función Hibernar no responde adecuadamente al reiniciar, debemos revisar qué es lo que sucede, tal vez apagando y reencendiendo el equipo directamente (manteniendo presionado el botón de encendido durante unos 4 segundos para apagar el equipo, y luego volverlo a encender). Uno de los problemas puede ser que nuestra partición de intercambio "Swap" no sea al menos tan grande como la memoria RAM disponible.

lunes, 5 de enero de 2015

¿Cómo uso el adaptador WiFi USB TP Link TL-WN8200ND en Ubuntu?

 En su juventud, Juan Perón entrenó para atravesar las montañas en su especialidad. Hoy no sólo eso, sino que nos enseña cómo solventar el problema del adaptador Wifi USB TP-Link TL-WN8200ND en Ubuntu.

(...)
En mis tiempos de cadete en el Liceo Militar, no dudé en establecer un régimen deportivo mas duro, entendiendo que para poder llegar a las más altas cotas militares se hacía necesario un riguroso estado físico.

En la montaña, el aire es menos denso, y eso hace que la roca parezca más dura. Coronar una cumbre es entonces más un trabajo de la ciencia y la mente, pero el cuerpo ha de estar preparado. Yo soy, ante todas las cosas, un montañista. Y el  principio rector que rige al macizo puede aplicarse a otros órdenes de la vida.

Vean señores, si bien las redes Wifi proveen una gran comodidad, libertad y universalidad para la el armado por aire de una red hogareña, no por ello son siempre las herramientas más potentes ni las mas adecuadas. Un Justicialista ha de comprender cuándo es necesario ejercitar más duro, perforar material para pasar un cable. Allí donde necesistamos asegurar una conexión en un inmueble de muy grandes dimensiones, gruesas paredes, entre intrincada arquitectura, o entre varios entornos de trabajo alejados entre sí por acabados de mampostería o piedra, podríamos encontrarnos con que el hecho de contar con un simple router Wifi no alcanza.

Por otro lado, existen situaciones donde una red estableccida de antemano se ve superada por nuevos desafíos: mayor cantidad de dispositivos, un nuevo edificio con numerosos usuarios y sus respectivos routers, nuevas fuentes de interferencia, etc.

Sin embargo, en situaciones donde cablear no sea práctico o posible, habremos de aumentar la calidad de nuestro radioenlace telemático.  En una Comunidad Organizada siempre es mejor preveer un router de mayor potencia, pero si únicamente es un equipo el que presenta problemas podremos recurrir a un nuevo adaptador USB inalábrico, que no requiera abrir un equipo, y que puede instalarse en uno portátil.

El adaptador USB TP-Link TL-WN8200ND es un receptor/emisor inalámbrico de alta potencia, lo que lo ha hecho acreedor al válido apodo de "el rompemuros". Se trata de una unidad munida de dos antenas orientables desprendibles, y provista de un conector mini USB. Esta se conecta a la PC a través de un cable USB de 1,5m de extensión, lo que permite disponer al receptor no en el equipo, sino ya en una posición donde mejor reciba la señal.  Es muy efectivo y recomendable para recibir y enviar Wifi en condiciones de interferencia, de construcciones muy grandes o con muchas paredes intermedias en las cuales no es deseable utilizar cableado.

Si bien este dispositivo es excelente, cuenta con un inconveniente que podría dificultar su uso: si bien parece emplear el chipset Realtek RTL8192cu, no tendremos éxito con el controlador nativo, pues al compilar el mismo no se producirá con éxito el enlace con Linux (incluido Ubuntu 14.04LTS).

Sin embargo, el Justicialismo ha pensado en todo, y para todo tiene una solución. Una de los proyectos llamados "estratégicos" es NDISwrapper, una utilidad capaz de "envolver" parte del controlador original de los dispositivos de red inalámbrica escrito para Window$, y darle uso a través del kernel Linux como si de un módulo nativo se tratara. Esto significa que - de no mediar problemas - podríamos operar con controladores de WiFi escritos para Window$ XP x64 (específicamente, los archivos .inf) en Linux. En esto es en lo que habremos de concentrarnos para llegar a buen puerto.

Los alemanes suelen decir que la planificación es la mitad del camino hacia la victoria. Por ello, siguiendo este viejo adagio, nos encargaremos en primera instancia de establecer un enlace cableado provisional a internet.

Para ello todo justicialista que arme redes no teme utilizar los metros necesarios de cable par UTP provisto de fichas normalizadas RJ45. Esquivando puertas y saliendo por ventanas si fuese necesario.
Este cable lo conectaremos entre el puerto de red de nuestro equipo cliente y una de las salidas LAN del router Wifi (si las tuviese), el módem o el dispositivo de acceso que utilicemos. Normalmente y si no hubiese problemas de conexión a internet, Ubuntu establecerá de forma automática el enlace cableado a la web.

Tendremos dos maneras para corregir el problemas a través de este incómodo enlace de circunstancias:

I.
Compilar el controlador del chipset que corresponda, e instalarlo como un módulo, o
II. usar el controlador de Windows en Ubuntu, con la aplicación ndiswapper.


Normalmente indicaría el método II, pero en ciertos casos la misma falla (no he podido determinar la causa, pues a mí me ha funcionado. Pero atento a los problemas, os indicaré ambas maneras:


I. Compilar el controlador del chipset que corresponda a nuestra versión del adaptador TL-WN8200ND, en Ubuntu:

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 o rtl8192eu en la salida de la terminal, entonces significa que lo estamos utilizando. En tal caso procedemos al paso b.

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.

TP-Link TL-WN8200ND V1
La versión V1 del adaptador, usa el chipset Realtek RTL8192CU, y en Ubuntu se intenta implear el módulo "rtl8192cu" defectuoso. Para reemplazarlo con uno llamado "8192cu" que esté corregido, pegamos el siguiente bloque de comandos en la Terminal y presionamos Enter:

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

sudo dkms add ./rtl8192cu-fixes ;
cd ~/rtl8192cu-fixes/ ;

sudo dkms install 8192cu/1.11 ;

sudo depmod -a ;

sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/ ;

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

...y finalmente reiniciamos el equipo con el comando:

sudo reboot

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.

Podremos ocultar la carpeta del controlador con:

mv ~/rtl8192cu-fixes/ ~/.rtl8192cu-fixes/

Nota: Este controlador a pesar de estar corregido, presenta ciertos problemas, al menos en la versión 1.0 del adaptador. Para que el adaptador encuentre y se conecte rápido a la conexión, asegúrese de usar un nombre de red wifi (SSID) de una sola palabra, escrito en minúsculas (ej. "redperonista". Evite espacios en la contraseña del wifi. Evite caracteres especiales en el nombre de la red, pues lamentablemente no andan bien con este adaptador en particular.

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.

TP-Link TL-WN8200 V2

Si contamos con la versión V2 del adaptador, debemos de saber que utiliza el chipset RTL8192EU. Por lo tanto debemos ingresar:


cd ~ ;
git clone https://github.com/luckynzm/tlwn8200nddriver.git ;
cd ~/tlwn8200nddriver ;
nano Makefile

Se abrirá el editor GNU Nano con el archivo de configuración del controlador. Usaremos la función Buscar (Ctrl+w) para buscar la línea "CONFIG_POWER_SAVING". Esta opción significa "configurar ahorro de energía", y normalmente está activada con "y" de Yes, que significa "Si" en el idioma de Braden. Sin embargo, el TL-WN8200ND en Ubuntu causa problemas, al cortar la conexión de Wifi intermitentemente para ahorrar energía. Por lo tanto la modificamos, dejándola en "n".

Una vez realizada la modificación, guardamos el archivo con Ctrl+o y salimos del editor Nano con Ctrl+x, y continuamos con el procedimiento ingresando los siguientes comandos:

sudo dkms add . ;
sudo dkms install rtl8192eu/1.0 ;


Con esto ya estará compilado el controlador. Para cargar el módulo durante el inicio de Ubuntu, debemos editar nuestro archivo de sistema /etc/modules, con:

sudo nano /etc/modules

...se abrirá nuevamente el editor Nano con dicho archivo. Debemos asegurandos de agregarle al final del archivo agregamos las siguientes líneas:

# Módulo peronista compilado por mí mismo para que funcione el
# Wifi USB TP-Link TL-WN8200ND V2 en Ubuntu.

8192eu

Guardamos el archivo con Ctrl+o y salimos del editor con Ctrl+x
Y reiniciamos el sistema. Si queremos hacerlo desde la terminal podremos utilizar el comando:


sudo reboot



II. Usar el controlador del TP Link 8200 para Windows en Ubuntu, con Ndiswapper.

A través de este incómodo enlace de circunstancias - podremos sin embargo instalar en el equipo cliente la utilidad NDISwrapper y los programas necesarios, sin afrontar de momento el riesgo de un corte en una red inalámbrica de poca o inexistente señal. Presionamos Ctrl+Alt+T y al abrirse la ventana de la Terminal, ingresamos los siguientes Comandos de Organización:

sudo apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') ndiswrapper-utils-1.9 wireless-tools ndisgtk unzip

Tras ingresar nuestra contraseña de Conductor, se descargará a través de la internet cableada la paquetería necesaria a nuestro equipo cliente. Conforme haya terminado, agregamos el módulo al archivo /etc/modules, de modo que se cargue toda vez que se inicie el sistema. Lo haremos con la órden:

sudo echo ndiswrapper >> /etc/modules


En tercer lugar, nos encargaremos de descargar el fichero controlador del TP-Link TL-WN8200ND para Windows XP x64 a nuestro sistema, desde la web del fabricante. En este punto debemos comprender que existen dos versiones diferentes del adaptador 8200ND, identificables por la inscripción en la etiqueta que se encuentra debajo del mismo. Lo más probable es que contemos con la versión más nueva, producida a partir del año 2013 y denominada v1 (versión 1). En caso contrario, debemos decargar un controlador de versión anterior. De acuerdo a la versión que tengamos, escogemos un procedimiento para seguir en la terminal:
  • Si uso el dispositivo TL-WN8200ND v1, debo descargar el controlador para este modelo desde la web del fabricante. Para ello utilizaré los siguientes Comandos de Organización:
cd ~/Descargas ;

wget http://www.tp-link.com/resources/software/TL-WN8200ND_V1_Driver.zip ;

unzip -a TL-WN8200ND_V1_Driver.zip ;

cd ~/Descargas/TL-WN8200ND\ Driver/Windows\ XP\ 64bit/ ;
  • En cambio, si dispongo de la extraña versión más antigua del adaptador TL-8200ND, debo descargar otra versión del controlador, empleando en su lugar estos comandos:

cd ~/Descargas ;

wget http://www.tp-link.com/Resources/software/TL-WN8200ND_V1_130108.zip ;

unzip -a TL-WN8200ND_V1_130108.zip ;

cd ~/Descargas/TL-WN8200ND_V1_Driver/Driver\ Files/Windows\ XP\ 64bit/ ;

Acto seguido, ya podremos desconectar el cable de internet y operar para hacer funcionar el controlador inalámbrico de Window$ bajo Linux. Para ello envolvemos el controlador con:

sudo ndiswrapper -i netrtwlanu.inf

Indudablemente, debemos verificar la instalación del driver. Para ello conectamos el adaptador TL-WN8200ND a uno de los puertos USB del equipo, y tipeamos:

sudo ndiswrapper -l

Si todo va bien, el sistema debería devolvernos algo como:


rtl81192cu: driver installed
device TP-LINK 300Mbps High Power Wireless USB Adapter present

Ahora podremos evaluar si nuestro sistema acepta un nuevo dispositivo de conexión inalámbrica nomerada wlan. Ello lo haremos ingresando:

iwconfig

El sistema debería listar al menos un dispositivo adaptador wlan (red de área local inalámbrica). Si hasta aquí hemos tenido éxito, podremos proporcionar el módulo ya envuelto al kernel de nuestro sistema operativo, con el siguiente Comando de Organización:

sudo modprobe ndiswrapper

Habiendo ya envuelto el controlador e instalado el módulo para su ejecución, debemos probar establecer la conexión inalámbrica y evaluar que la misma sea confiable. Para ello primero reiniciaremos el sistema. Desde la terminal podremos utilizar:

sudo reboot

Una vez reiniciado el equipo y al conectar el adaotador TL-WN8200ND a un puerto USB, deberiamos poder conectarnos a nuestra red inalámrbrica utilizando el Gestor de Redes (seleccionando la red que corresponda y tipeando la contraseña requerida, si aplica). Nuestro WN8200ND debería aparecer listado entre los dispositivos inalámbricos como TP-Link 300kbps High Power Wireless USB adapter.

Iluminados por la suerte, debería poder establecerse una conexión inalámbrica ahora fiable, con mayor conexión y potencia de señal, menos corte y retraso, pues el dispositivo 8200ND capta y emite de manera mucho más eficiente. Indudablemente, para lograr los mejores resultados debemos orientar ahora el dispositivo de la mejor forma. Para ello podremos ayudarnos con una aplicación como wavemon.

Como corolario habrán de saber que algunos dispositivos portátiles cuentan con una función para habilitar o deshabilitar la conexión por Wifi: dependiendo el modelo, en algunos casos al desactivar el adaptador de red integrado en un equipo portátil lleva también a desactivar otros dispositivos inalámbricos adicionales (como el TL-WN8200ND).