Tuesday, February 19, 2008

NetworkManager, corazón GNOME

Hoy me he acordado de GNOME un rato largo. Hay pocas cosas de GNOME que use, creo que únicamente el NetworkManager. Tengo alguna que otra aplicación gtk: openoffice, gimp, seamonkey, etc, pero solo son gtk, por suerte no son parte de GNOME.

Al principio de los tiempos, cuando instalé mi Mandrake 7 tuve que elegir entre KDE y GNOME. Los dos eran por aquel entonces prácticemente iguales y elegí KDE por la sencilla razón de que no me molaba tener un pie como logo del menú (luego pasa lo que pasa).

Años más tarde lo probé de nuevo y ya había cambiado bastante, con la barra de menús arriba y demás. Me pareció demasiado simplón, pero di por supuesto que sería impresión mia por no saber donde se configuran las opciones, que simplemente estaba acostumbrado a KDE y que si miraba un poco lo encontraría. Eso fue hasta que leí esta perla del gran Linus Torvalds:
I personally just encourage people to switch to KDE.

This "users are idiots, and are confused by functionality" mentality of
Gnome is a disease. If you think your users are idiots, only idiots will
use it. I don't use Gnome, because in striving to be simple, it has long
since reached the point where it simply doesn't do what I need it to do.

Please, just tell people to use KDE.
Linus
Tremendo. Por supuesto el flame suguió y la historia incluso tuvo una segunda parte. Hace un año un usuario uso sus poderes nigrománticos (además, en español y para no decir más que tonterias que no vienen a cuento), Linus le respondió de una manera increiblemente calmada y fue retado a un mes vista por un desarrollador de GNOME a lo cual Linus respondió a los tres días con un owned de los gordos.

A lo que iba, el NetworkManager. Pues bien, cuando usaba WEP, tras abandonar mi script chapucero de ifconfig + iwconfig + dhclient + openvpn e instalar el NM todo parecía ir bien, hasta podía controlar la VPN desde el propio NM: boton derecho, vpn, concectar a "...". Lo lógico sería hacer que se ejecutara un postup al conectarse la wifi a esa essid, pero no vi la opción por ningún lado. Es una tontería tener que perder unos segundos haciendo 3 clicks cada vez que te conectas si se podría hacer solo sin ninguna complejdad. Pero bueno, es GNOME, lo mismo algún abuelo 90-añero se liaría con tantas opciones, así que mejor no ponerlo.

Ahora me he puesto a trastear y a cambiar cosas de la red y de momento me conecto por WPA, así que me olvidé por un rato del tema, hasta que monté un disco duro compartido por samba (cifs en concreto, ya hablaré de ello por también se las trae). Lo que quiero es tener ahi todos mis mp3, poder acceder al disco desde cualquier sitio y limitar el acceso pero sin tener que usar contraseña. ¿Solución? Muy facil: VPN. Cierro el puerto 445 en todas las interfaces excepto en la VPN y solo podrá acceder quien tenga acceso VPN. Así que en los clientes, al conectarse la VPN se montaría automáticamente el disco y listo para funcionar. En openvpn esto se hace con la opción "up cmd", así que no habŕia problema, en teoría.

Por que ahí están los desarrolladores de GNOME, que han hecho el módulo networkmanager-openvpn que ofrecen 4 tipos de autenticación + 6 opciones adicionales y punto pelota. Si quieres algo un pelín más avanzado, te jodes, no puedes hacerlo así porque a ellos les parece demasiado difícil. Hasta Pequesuave pone botones de "Opciones Avanzadas" en todos lados, pero aquí, nada: 1 desplegable de 4 opciones y 6 tick-boxes. Si quiero escuchar música tengo que primero tengo que conectarme a una wifi, luego click en boton derecho sobre el icono de NM en la bandeja del sistema > conexiones vpn > conectar a "..." y luego ir a una consola y teclear mount -t cifs //srv/disco /mnt/disco para montar el disco a traves de la red. ¿No sería más cómodo simplemente dejar que el NM se conecte a la wifi y lo haga todo por mí?

Bueno, tiene que haber una opción, voy a mirar en el manual:

NAME
NetworkManager - network management daemon

SYNOPSIS
NetworkManager [--no-daemon] [--enable-test-devices]

DESCRIPTION
The NetworkManager daemon attempts to keep an active network connection available at all times. The point
of NetworkManager is to make networking configuration and setup as painless and automatic as possible. If
using DHCP, NetworkManager is intended to replace default routes, obtain IP addresses from a DHCP server,
and change nameservers whenever it sees fit, with the aim of making networking Just Work.

OPTIONS
The following options are supported:

--no-daemon
Do not daemonize. This is useful for debugging.

--enable-test-devices
Enable support for virtual test devices. These are useful for debugging.

SEE ALSO
NetworkManagerDispatcher(1), nm-tool(1)
Aha, ok. Estupendo. Miraré el nm-tool, que suena a herramienta, a ver que puede hacer.
nm-tool - utility to report NetworkManager state

SYNOPSIS
nm-tool

DESCRIPTION
The nm-tool utility provides information about NetworkManager, device, and wireless networks.

SEE ALSO
NetworkManager(1), NetworkManagerDispatcher(1)
¡Yupi! A ver el que queda:
NAME
NetworkManagerDispatcher - daemon that runs commands in response to off/online

SYNOPSIS
NetworkManagerDispatcher [--no-daemon]

DESCRIPTION
The NetworkManagerDispatcher daemon runs commands in the /etc/NetworkManager/dispatcher.d directory in
response to interfaces coming up and down. The scripts are run alphabetically. The first parameter is the network interface name. The second parameter is up if the interface is now up and down if the interface is now down.

OPTIONS
The following options are supported:

--no-daemon
Do not daemonize. This is useful for debugging.

FILES
/etc/NetworkManager/dispatcher.d

SEE ALSO
NetworkManager(1), nm-tool(1)
Bueno, al fin algo en claro. Solo tengo que poner ahí los scripts y listo. Pero claro, ¿de qué me sirve entonces la opción de VPN del NM? Bueno, ¡también puede hacerse! Claro que para esto aparte de bash script también habría que saber Phyton y tener conocimientos de D-BUS. ¿Eso es ser fácil y usable? Pues que baje Dios y lo vea, si para ahorrarte 3 clicks y hacer que la vpn se arranque sola tienes que estudiarte el manual de openvpn y escribir varios scripts en varios lenguajes de programación. A mi no me cuesta nada porque openvpn lo tengo dominado y el script de hecho ya está casi listo, pero... ¿no se supone que lo hacen así para que los usuarios que son nuevos e inexpertos lo tengan todo más fácil?

Y para terminar, un detallito más de la web de NM, que se supone que está para ayudar a los usuarios. Me metí para ver que decían de la Intel 3945, que con los drivers ipw3945 antiguos no conseguí que funcionase con NM. Lo miro y tienen lo siguiente:
Intel Pro Wireless 3945
Provider: Linux kernel via http://intellinuxwireless.org/
Driver: ipw3945
Claro, así les va. A ver si algún día se enteran que el driver que porvee intellinuxwireless.org (y que funciona) es iwl y no ipw. Ya sé que la diferencia es sólo una letra, pero también es la diferencia entre funcionar y no funcionar.

Me despido citando una vez más a Linus:
"Usability" is an issue only if you can do something at all. But if you
can't do the thing at all, it's pointless to talk about usability: the
thing is BY DEFINITION not usable if it cannot be used for a specific
task.

Then a person that claims that it's usable for something else is a FUCKING
IDIOT.
¡Hasta la próxima!

1 comment:

Anonymous said...

¿Los abuelos ochenteros no son aquellos que se dedican a hablar y hablar de cosas y cosas sin parar que no le interesan a uno? ups.. vaya ahora no se si hablo de los viejos o de KDE...