28 abril 2008

Problemas al actualizar a Ubuntu 8.04

Voy a ir comentando los problemas que vayan saliendo. Me he encontrado con dos que ya me ocurrieron en versiones anteriores.

Al instalar, si estás en la sesión en vivo y no tienes la configuración de red automática (dhcp), seguro que no te funciona la red. Hay que hacerlo manual, y cuando digo manual me refiero a consola. Por si tienes suerte y funciona, prueba a usar la configuración de red de gnome. Lo normal es que al menos los servidores de resolución de nombres DNS si que los guarde, pero la dirección IP y la ruta por defecto, no. De todas maneras es fácil:
sudo ifconfig eth1 192.168.x.x
tienes que poner tu dirección, claro. Ahora comprueba que los servidores DNS están:
cat /etc/resolv.conf
Si no están, edita:
sudo nano /etc/resolv.conf
y añade lineas con "nameserver x.x.x.x" donde x.x.x.x será la dirección de los servidores que te dé tu proveedor, o la dirección de tu enrutador. Los enrutadores de telefónica (para ellos "routers", para que la gente no sepa de que va y quedar chachis) suelen ser 192.168.1.1.
Ahora seguirás sin tener red porque no hay pasarela configurada.
sudo route add default gw 192.168.1.1
o la dirección de tu enrutador. Ahora ya te funcionará.


Más cosas. Al actualizar puede darse el caso de que no funcionen los efectos de escritorio, pero no dice la razón. Bueno, esto no es algo nuevo, pero es un coñazo. Comprobamos si existe el archivo siguiente:
cat /etc/xdg/compiz/compiz-manager.ubuntu
Seguro que está vacío. Si es así, lo borramos:
sudo rm /etc/xdg/compiz/compiz-manager.ubuntu
Y lo sustituimos por el correcto. Quizá exista con otro nombre:
sudo mv /etc/xdg/compiz/compiz-manager.ubuntu.dpkg-new /etc/xdg/compiz/compiz-manager.ubuntu
Si no, hacemos lo siguiente:
sudo dpkg-divert --rename --remove /etc/xdg/compiz/compiz-manager
Y comprobamos.

Lanzada Ubuntu 8.04

Desde el jueves tenemos disponible para actualizar o descargar en la web de Ubuntu la versión 8.04 "Hardy Heron" (Garza Resistente), que es una versión de largo plazo de asistencia. Ahora mismo estoy actualizando y ya comentaré el resultado. Hice algunas pruebas de las versiones alfa y beta, y, la verdad, aunque trae cosas interesantes, hay detalles que no me acaban de convencer. Por una parte porque Gnome tiene una forma bastante curiosa de lanzar versiones, dejando cosas a medias bastante evidentes esta vez, y por otra, porque tan democrático es el lanzamiento de Ubuntu que eliminan características útiles para contentar a unos cuantos, que serán los que más colaboran, pero no son el total del público. Ellos sabrán. Esto va a acabar siendo más rígido que Debian.

04 abril 2008

Configurar un SAI en Debian (o Ubuntu)

Tengo un SAI baratito hace tiempo, de los que tiene conexión a puerto serie y USB. Es un Yukai Powermust600. Me lo compré en una temporada en que íbamos a varios apagones por semana. Ahora sólo ocurren por la noche, así la compañía eléctrica ahorra un poco (nosotros no) y no molesta a nadie (es un decir). Sólo ocurre cada varios meses, aunque puede ser media hora de corte.

Otros sistemas necesitan instalar el programa o controlador que lleva el SAI. En el CD incluso hay versión para Linux, pero ni funciona ni es necesaria en absoluto. Vamos a utilizar una de esas joyas que tenemos escondidas que se configuran a base de tocar ficheros, la infraestructura que lleva Debian para configurar estas baterías de respaldo, nut (network UPS tools). Está orientado a grandes sistemas y por ello tiene cientos de posibilidades, lo que lo hace ligeramente complicado de configurar, pero eso no quita que podamos usarlo con un sistema personal. El procedimiento descrito sirve para las últimas versiones de Debian y Ubuntu, y seguramente para algunas anteriores y posteriores, ya que no hay demasiados cambios en la forma. Comentar que si en debian no usas sudo, todas las lineas que lo indican tendrán que hacerse como root. Vamos a ello.

Primero que nada, instalamos nut:
sudo apt-get install nut
Ahora miramos qué controlador es necesario para nuestro SAI. Tenemos dos opciones, mirar en la web, o mirar las páginas de manual:
man nutupsdrv
Al final aparecen todos los controladores, de los que tendríamos que mirar uno a uno sus respectivas páginas de manual para ver qué modelos cubren. El que nos ocupa es megatec y su página de manual indica sus parámetros, las órdenes que podemos darle y algunas variables. En versiones anteriores era el mustek, pero como dice su página de manual, está obsoleto y debe usarse el otro.
Algo importante: Sólo responde al puerto serie, el USB no se usa. Quien no tenga puerto serie que se olvide de este modelo. Otros como APC o MGE sí funcionan con puerto serie. Además, próximamente se integrará con HAL y el gestor de energía de Gnome lo reconocerá, entre otras cosas.

Seguimos. Ahora creamos el archivo /etc/nut/ups.conf y le introducimos algunos datos:
sudo gedit /etc/nut/ups.conf

[misai]
driver = megatec
port = /dev/ttyS0

Suponiendo que está conectado en el primer puerto serie. El nombre "misai" será con el que se identificará este SAI. Podemos poner el que queramos, pero hay que tenerlo en cuenta en los siguientes ficheros.
Ahora hacemos que arranque al iniciar el sistema:
sudo gedit /etc/default/nut
Buscamos las lineas siguientes, que tenemos que dejar tal como se indica:
START_UPSD=yes
START_UPSMON=yes

Ahora copiamos los siguientes archivos, que sirven como base:
sudo cp /usr/share/doc/nut/examples/upsd.conf /etc/nut/upsd.conf
sudo cp /usr/share/doc/nut/examples/upsd.users /etc/nut/upsd.users
sudo cp /usr/share/doc/nut/examples/upsmon.conf.gz /etc/nut/upsmon.conf.gz
sudo gunzip /etc/nut/upsmon.conf.gz

Tenemos que modificar los dos últimos:
sudo gedit /etc/nut/upsd.users
[admin]
password = contraseña
allowfrom = localhost
actions = SET
instcmds = ALL
[usuario]
password = contraseña
allowfrom = localhost
upsmon master

Esto nos crea dos usuarios de nut, con la contraseña que indicamos, y con acceso únicamente desde nuestro propio equipo. Puesto que hay contraseñas, este archivo hay que protegerlo. Lo haremos con todos al final. Ahora editamos el otro archivo:
sudo gedit /etc/nut/upsmon.conf
y le añadimos la linea siguiente, que indicará el usuario que utilizamos para acceder, su contraseña, y obviamente, el nombre de nuestro sai, localizado en el equipo local.
MONITOR misai@localhost 1 usuario contraseña master


Ya están todos los archivos con su contenido adecuado. Ahora falta protegerlos:
sudo chown root.nut /etc/nut/*
sudo chmod g+r /etc/nut/*
sudo chmod o-r /etc/nut/upsd.users

Serán de root y del grupo nut, que tendrán acceso de sólo lectura, y los demás ninguno.

Falta lo más importante: dar acceso a nut al puerto serie:
sudo usermod -a -G dialout nut

Ya por fin vamos a ponerlo en marcha:
sudo /etc/init.d/nut start

Si todo va bien dirá que ha conectado con el SAI. Si no, hay algo que nos hemos dejado.

Si se fuera la luz, tras unos instantes, se apagaría el ordenador ordenadamente, y tras él, el propio SAI. Al volver la luz volvería a encenderse todo. Veamos que nos dice el SAI:
upsc misai@localhost
battery.charge: 95.0
battery.voltage: 13.50
battery.voltage.nominal: 12.0
driver.name: megatec
driver.parameter.port: /dev/ttyS0
driver.version: 2.0.5
driver.version.internal: 1.5
input.frequency: 50.0
input.voltage: 230.5
input.voltage.fault: 230.5
input.voltage.maximum: 232.9
input.voltage.minimum: 223.7
output.voltage: 225.6
output.voltage.nominal: 220.0
ups.beeper.status: disabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 23.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL
ups.temperature: 25.0

Si queremos ver sólo un dato, podemos filtrarlo con grep.

Ahora que nos diga qué podemos hacer con él:
upscmd -l misai@localhost
Si tienes el SAI en el dormitorio será recomendable quitarle el pito. No querréis enteraros así de que se ha ido la luz:
upscmd -u admin -p contraseña misai@localhost beeper.toggle

Hay una forma más bonita de ver los datos. Vamos a instalar un programa de KDE para ello, pues parece ser el único:
sudo apt-get install knutclient
Lo ejecutamos (ALT+F2 y escribir knutclient) y vamos a Preferencias>configurar>SAI Añadir
Ponemos el nombre del SAI, y en dirección localhost, el nombre del usuario y la contraseña, todo igual que pusimos en los archivos de texto. Podemos seleccionar las variables que queremos que nos muestre. Por ejemplo, el voltaje de entrada y la carga. Tras aceptar, veremos los datos gráficamente. Una luz verde nos indica que todo va bien, y si hay un corte o la batería está baja, sendas luces rojas nos lo indicarán.

02 abril 2008

Bienvenidos al circo de la ISO

Me gustaría que esto no fuera verdad, y que todo no se puede comprar o manipular. Me entero por barrapunto (noticia de ayer) de que parece ser que se va a aprobar OOXML hoy. Microsoft ya tenía publicada ayer una nota de prensa (en inglés) en su web garantizando ese hecho. Si lo tienen tan claro será porque saben que países han comprado, ¿no? Obvio. Edito, porque ya es oficial. El mundo es suyo.

La ISO es la Organización Internacional para la Estandarización. ISO es una palabra griega que significa igual. Voy a recurrir a la wikipedia:
"Su función principal es la de buscar la estandarización de normas de productos y seguridad para las empresas u organizaciones a nivel internacional". "Las normas desarrolladas por ISO son voluntarias, comprendiendo que ISO es un organismo no gubernamental y no depende de ningún otro organismo internacional, por lo tanto, no tiene autoridad para imponer sus normas a ningún país".
Sobre las normas ISO, "su finalidad es la coordinación de las normas nacionales, en consonancia con el Acta Final de la Organización Mundial del Comercio, con el propósito de facilitar el comercio, facilitar el intercambio de información y contribuir con unos estándares comunes para el desarrollo y transferencia de tecnologías"

"La Normalización es la actividad que tiene por objeto establecer, ante problemas reales o potenciales, disposiciones destinadas a usos comunes y repetidos, con el fin de obtener un nivel de ordenamiento óptimo en un contexto dado, que puede ser tecnológico, político o económico.
Persigue fundamentalmente tres objetivos:
* Simplificación: Se trata de reducir los modelos quedándose únicamente con los más necesarios.
* Unificación: Para permitir la intercambiabilidad a nivel internacional.
* Especificación: Se persigue evitar errores de identificación creando un lenguaje claro y preciso"

Ahora recurro a la propia web de la ISO. Traduzco:
"Los estándares ISO se desarrollan de acuerdo a los siguientes principios:
* Consenso. Las consideraciones de todos los intereses se tienen en cuenta: fabricantes, vendedores y usuarios, grupos de consumidores, laboratorios de prueba, gobiernos, profesiones de ingeniería y organizaciones de investigación.
* Abierto a la industria. Soluciones globales para satisfacer a las industrias y clientes en todo el mundo.
* Voluntario. La estandarización internacional se dirige al mercado y por tanto se basa en la participación de todos los intereses en el sector de mercado."

Si yo hago un enchufe propio y tu haces otro, a ver quien cojones enchufa nada en ningún sitio.
El proceso parece consistir en que la industria en cuestión se pone de acuerdo en hacer una norma sobre algo. Ese algo debe satisfacer a todos y se basa en que todos participen. Se coge el modelo más simple y necesario, unificándolo, en un lenguaje claro. Así ISO facilita el intercambio y desarrollo de tecnologías. Vale.

Caso OOXML. Se abre sesión. Uy, me he adelantado. Esto ocurrirá, si la comisión no se echa atrás sobre su intención de investigar qué ha pasado en la mayoría de comités nacionales de estandarización asociados a ISO.
OOXML pretende ser un estándar de documentos ofimáticos, pero ya hay un estándar sobre eso: ODF (opendocument), aprobado por ISO en 2006. ODF lo creó el consorcio OASIS, del que forma parte un gran número de empresas en distintos niveles, incluida Microsoft. La primera reunión sobre ODF fue en 2002, así que tuvo 4 años de desarrollo hasta su aprobación. Tal como pretende ISO, favorece el intercambio de información, y en él han participado todas las empresas implicadas.
¿Por qué otro estándar para lo mismo? Eso contradice lo de estándar y el fin que sigue ISO. Pues Microsoft lo quiere imponer porque Office está decayendo poco a poco, en favor de Openoffice, que sí soporta y usa por defecto, al igual que todos los demás paquetes ofimáticos que no son de Microsoft, el estándar ODF.

Todas las cuestiones sobre OOXML pueden verse aquí. Microsoft, en lugar de competir en igualdad de condiciones con un formato estándar, como todos, que facilita el intercambio de documentos, se crean el suyo sin la participación de nadie más, ni consenso con nadie, e intentan estandarizarlo en ISO, con el consenso pagado de numerosos comités nacionales, o directamente sobornando a ISO, pues algunos ni siquiera han votado lo que se dice que han votado. Lo más claro es el caso de Cuba. ¿Cuba votando a favor de un formato de Microsoft? Venga hombre.
Es escandaloso. ¿Cualquiera se puede comprar su estándar? ¿Para que sirve ISO entonces?

Como dice el enlace sobre ooxml:
"El hecho de que Microsoft y ECMA hayan anunciado públicamente antes que la propia ISO/IEC el resultado "oficial" de la segunda votación del previamente rechazado borrador de estándar DIS 29500, es un síntoma más sobre quién ha dado las órdenes en ISO durante todo el proceso. A ello se suma la larguísima lista de irregularidades que lo ha jalonado desde sus inicios a primeros del 2007. A partir de este momento ISO debería cambiar en su nombre la palabra "internacional" por "industrial", pues tras éste precedente cualquier multinacional con suficiente capacidad de influencia política, mediática y económica podrá obtener un estándar ISO si se lo propone, con independencia de la opinión de los expertos técnicos y los intereses o derechos de los ciudadanos."