Archivo de la etiqueta: Linux

Resolución de Xorg en un cliente (domU) Xen

[spanish]

Al instalar Linux como cliente Xen en un domU y activar el acceso por VNC, con un poco de suerte todo funciona salvo que no se puede cambiar la resolución del sistema. Hagas lo que hagas (a través de los menús, editando el xorg.conf) parece que sólo se puede usar la resolución 800×600.

Después de buscar un rato en Google dí con este correo que comenta una nueva opción extra=”xenfb.videomem=5,1024 “ para configurar la memoria RAM de vídeo del cliente, y por tanto las resoluciones soportadas. Lo probé pero no funcionó. Investigando más en ésta línea averigüé que esta opción “extra” de la configuración de Xen sirve para pasarle parámetros adicionales al kernel del sistema cliente, así que ese “xenfb” debía ser un módulo del kernel. Buscando en mi cliente Ubuntu módulos llamados *xen* dí con “xen-fbfront”:

$ modinfo xen-fbfront
filename:       /lib/modules/2.6.35-24-generic/kernel/drivers/video/xen-fbfront.ko
alias:          xen:vfb
license:        GPL
description:    Xen virtual framebuffer device frontend
srcversion:     0EB34742ACF8D2559403034
depends:        fb_sys_fops,syscopyarea,sysfillrect,sysimgblt
vermagic:       2.6.35-24-generic SMP mod_unload modversions
parm:           video:Video memory size in MB, width, height in pixels (default 2,800,600) (array of int)

Así que parece que en algún momento del desarrollo, se renombraron tanto el módulo como la opción para indicar la memoria, pero la idea básica era la misma. Lo probé, ¡y funcionó!

Así que en resumen, lo que hay que hacer es añadir al fichero de configuración del domU (/etc/xenDOMAIN.conf) en el dom0 la siguiente línea, ajustando los parámetros de memoria y resolución al gusto:

extra="xen_fbfront.video=4,1024,768 "

[/spanish][english]When installing a Linux system as a Xen guest on a domU and activating the VNC access, hopefully everything runs fine except that you can’t change the resolution. No matter what you do (through the GUI, editing the xorg.conf file) it seems all it can do is 800×600.

After googling for a solution I stumbled upon this post which commented on a new extra=”xenfb.videomem=5,1024 “ option for dealing with guest video RAM (and thus, supported resolutions). But it didn’t worked out. Digging deeper on this approach I realized this “extra” Xen configuration was used for passing extra parameters to the guest’s kernel, so this “xenfb” should be a module on the guest OS. Then I looked for *xen* modules on my Ubuntu guest and found “xen-fbfront”:

$ modinfo xen-fbfront
filename:       /lib/modules/2.6.35-24-generic/kernel/drivers/video/xen-fbfront.ko
alias:          xen:vfb
license:        GPL
description:    Xen virtual framebuffer device frontend
srcversion:     0EB34742ACF8D2559403034
depends:        fb_sys_fops,syscopyarea,sysfillrect,sysimgblt
vermagic:       2.6.35-24-generic SMP mod_unload modversions
parm:           video:Video memory size in MB, width, height in pixels (default 2,800,600) (array of int)

So it looks like the module and the option got renamed along the way. Tried it, and it worked!

So, all in all, what you need to add is this line to your domU config file (/etc/xenDOMAIN.conf) on the dom0, adjusting memory and resolution parameters at will:

extra="xen_fbfront.video=4,1024,768 "

[/english]

kpartx: Montar las particiones de un archivo imagen de disco

[spanish]A veces resulta útil poder montar las particiones de un archivo con la imagen completa de un disco, por ejemplo de un programa de backup (o un dd) o de una máquina virtual, sin tener que recurrir a ese software de backup o VM. Estos ficheros normalmente son una copia bit a bit de lo que debería haber en el disco real, por lo que el formato interno tanto de la tabla de particiones como de las particiones en sí son los normales que el sistema entiende y debería poder utilizarlos. El único problema es que ni la imagen ni las particiones están accesibles a través de un fichero de dispositivo de bloques en /dev para poderlas montar.

kpartx es un pequeño programa que hace precisamente eso, detecta las particiones que pueda haber en una imagen de disco y genera en /dev los mapeos necesarios para poder montarlas como si fueran particiones en un disco real. Es muy sencillo de usar: se le pasa el nombre del fichero y muestra la lista de particiones. Si se le añade el parámetro -a crea los dispositivos; si -d, los borra. mount.

Vaya mi agradecimiento a esta página, que es donde he sabido de la existencia de kpartx. Además ahí explican cómo hacer lo mismo pero a mano, detectar los inicios de cada partición y utilizar el “loop device” para acceder a ellas y montarlas.[/spanish][english]Sometimes it is useful to mount the partitions in a disk image file, e.g. from a backup (or dd) or a virtual machine, without having to use that backup or VM software. These files are usually a 1:1 copy of what should be on an actual disk, so the internal partition table format is the same the operating system would use on a disk and also the format of the partitions themselves are ext2/3/FAT/whatever. So the system should be able to use them, the only problem is that neither this image file nor its partitions are mapped to proper block device files in /dev.

Enter kpartx, a small utility that analyzes a disk image file, detects the partitions in it and creates device files for each partition, so that they can be mounted as if they were real partitions on a physical disk. Usage is very simple: just pass the file to it and kpartx shows the partition table. Add the -a parameter to that and kpartx creates the device files; -d and it deletes them. mount.

Kudos to this page where I learnt about kpartx, and which by the way explains a way to manually map the partitions using the loopback interface. [/english]

Ajustar la hora en servidores Amazon EC2

[spanish]El reloj del sistema de los servidores virtuales de Amazon EC2 está sincronizado con el del servidor anfitrión, pero algunos servidores parece que no tienen bien la hora. Estoy trabajando en un cluster de cuatro servidores (que crecerá a ocho cuando salgamos a producción) y mientras que tres de ellos estaban perfectamente sincronizados, el cuarto iba retrasado varios minutos.

Por defecto no se puede ajustar la hora ni con date ni ntp, los comandos se ejecutan pero no hacen nada. Para “desengancharse” del reloj del servidor anfitrión y poder ajustar la hora del sistema hay que ejecutar lo siguiente:

echo 1 > /proc/sys/xen/independent_wallclock

Sin embargo, hay que tener en cuenta tal y como se explica aquí que tras ejecutar esto ya no es posible volver a la sincronización con el servidor anfitrión, el reloj de tu sistema ya es independiente para siemre.[/spanish]

[english]Amazon EC2 virtual servers’ internal clock is synchronized with that of their host server. But some host servers seems to be off-date: I’m working on a four-server cluster (will grow to eight when we go into production) and while three of them were perfectly synchronized, the fourth one lagged behind a couple of minutes.

By default you can’t adjust the date with either date nor ntp, the commands execute but do nothing. In order to decouple the VM’s clock from the host’s one and being able to set the time on your system you need to run the following command:

echo 1 > /proc/sys/xen/independent_wallclock

Bear in mind that, as pointed out here, after decoupling your clock from the host’s you can’t go back, you’ll be on your own forever.[/english]

Android rooteado

Creo que por aquí no he llegado a comentarlo, pero hace unos meses me pillé un HTC Magic de Vodafone, si, un móvil con Android. Al final he picado, yo que nunca me he llevado bien con los móviles y de hecho hasta entonces tenía el más sencillo que había encontrado en la tienda. :-)

El bicho es una pasada, todo lo que siempre prometieron las PDA pero en mi opinión nunca llegaron a cumplir. Hace un tiempo ya publiqué un artículo sobre mi opinión de todos estos dispositivos, que creo que están más cerca de los ordenadores (prácticamente en la liga de los netbooks) que de las PDA de antaño. Echando la vista atrás al final el iPod Touch se me quedaba pequeño para todo lo que quería hacer, sin Internet un chisme de estos no deja de ser una PDA muy avanzada; con Internet … ¿un pocket-netbook? Y con una gran ventaja si usáis todos los productos de Google (GMail con sus contactos, Calendar, etc.): sincronización automática, :-) uno de los mayores quebraderos de cabeza con cualquier teléfono o PDA resuelto de un plumazo.

El caso es que ayer me decidí a “rootearlo”. En el caso de los Android no lo veo tan necesario como con los iPhones/iPods Touch, el Market de Android es mucho más abierto que la AppStore de Apple pero aún así hay aplicaciones (aceptadas en Market) que necesitan root, la única limitación que tienes con el firmware original. Además de que quería probar algunas de las características de Hero y Donut que llevan las ROMs “cocinadas”, como p.ej. el multitouch. :-)

El proceso en estos momentos es lo más sencillo del mundo: la semana pasada se descubrió un bug en todos los kernels 2.4 y 2.6 de Linux que permite un escalado de privilegios local, y pronto un tipo desarrolló una aplicación para, con un solo click, ejecutarla y conseguir acceso total al sistema operativo del teléfono. Ya no hace falta instalar la SDK, ni andar con cables y consolas de desarrollo. Eso si, es de suponer que en breve las operadoras actualizarán el software de los teléfonos con el parche que corrige este agujero de seguridad, con lo que me dije “ahora o nunca”. Es el momento antes de que con la próxima actualización ya no se pueda rootear tan fácil y haya que volver al método tradicional.

No voy a explicar el proceso porque en El Androide Libre se han currado un tutorial la mar de sencillo para rootear e instalar la ROM de Cyanogen, que por supuesto ya lleva parcheado el bug. Sólo algunos detalles:

  • momento de pánico: al primer intento el móvil se me quedó frito en el arranque después de la actualización. Solución: en el menú del “Recovery Mode” (arrancar con encendido y casita, es una especie de “lilo” que en el 1er paso del rooteo se sustituye por otro más avanzado que permite hacer backups e instalar las ROMs) hacer un wipe antes de instalar. Acojona. :-)
  • se puede volver al firmware original de Vodafone y el móvil queda como si no hubiéramos hecho nada, para eso el paso del  “Nandroid backup”. De hecho después de la petada hice esto para recuperar un par de puntos de cordura antes de volver a intentar el proceso (previo wipe).
  • tras la instalación el nuevo sistema no está completamente traducido al español, lo típico de cualquier aplicación de Linux, que con la nueva versión no se ha actualizado el .po de gettext y alguna que otra frase sale en inglés.
  • también se pierde la configuración de los APN de Vodafone, con lo que nada más arrancar no hay acceso a Internet (p.ej. el registro de la cuenta de Google falla). La configuración hay que hacerla a mano, datos aquí (si, si, pone Airtel).
  • y parece que se pierde también la configuración de todas las aplicaciones, a pesar de que guardé y luego restauré aplicaciones y datos con el MyBackup. :-/ La configuración del sistema si que la restaura, pero la de las aplicaciones no. :-(

Aparte de eso … como la seda. Aún no le he metido caña con lo que p.ej. lo de que la batería aguanta más no lo he podido comprobar. Pero si que funciona el multitouch (en el navegador se puede hacer zoom “pinchando” como en el iPhone), y si que da la impresión de que todo va más rápido, más fluido. No en vano la Cyanogen se originó en el Dream, con menos memoria que el Magic, así que si está optimizada para funcionar con un dispositivo menos cañero con éste va de lujo.

Ahora a meterle caña al juguete. :-)