Archive for the ‘GNU/Linux’ Category

Wine: preloader failed to reserve range 00000000-60000000

Posted on the abril 16th, 2008 under GNU/Linux,Probando herramientas,Software Libre by

Que lindo encontrarse con este error, más estando con una distribución que se va a convertir seguro en la principal en mi PC de escritorio y en el portátil. Estoy hablando de Hardy Heron, la nueva distro de Ubuntu.

Aunque según estuve investigando, el error se debe a una nueva política de seguridad en el Kernel. Acá se explica el por qué del cambio. Este error o mejor dicho advertencia (warning) es visible cuando quiero ejecutar cualquier programa mediante el Wine preloader. Especificamente me comenzó a ocurrir cuando quise probar el Smalltalk Express (que documenté aquí como hacerlo correr en GNU/Linux). Para mi desgracia luego de estos warnings terminó en un error.

Para ir al grano. La aplicación es de 16 bits, por lo tanto seguramente el error es reproducible con otras. Les pego el error que obtengo:

nacho@nacho-laptop:~/programas/oSTEXPRES$ wine VW.EXE
preloader: Warning: failed to reserve range 00000000-60000000
preloader: Warning: failed to reserve range 00000000-60000000
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
err:dosmem:load_winedos Could not load winedos.dll, DOS subsystem unavailable
winevdm: unable to exec '--app-name': 16-bit support missing

Buscando por la red encontré varios bugs anteriores que daban el mismo error. Pero fue éste y precisamente éste comentario, el que me enseñó la luz. En un artículo de Kerneltrap se puede leer que se decidió para evitar futuros ataques, proteger ese espacio de memoria. Sin embargo hay un mínimo que se puede utilizar, continuando con la protección, y que permite que se ejecuten en este caso, las aplicaciones de 16 bits con Wine sin problemas.

Hay que editar el archivo /etc/sysctl.conf y modificar la línea con el valor 4096 (0 desactiva la protección)

# protect bottom 64k of memory from mmap to prevent NULL-dereference
# attacks against potential future kernel security vulnerabilities.
# (Added in kernel 2.6.23.)
# vm.mmap_min_addr = 65536
vm.mmap_min_addr = 4096

para que el cambio se efectúe permanentemente. Si lo queremos hacer temporal, se puede hacer con

# echo 4096 > /proc/sys/vm/mmap_min_addr
o bien
# sysctl -w vm.mmap_min_addr=4096

En cuanto al proyecto Wine, están proponiendo un parche que al menos informe sobre esta incompatibilidad con el cambio en el parámetro del Kernel.

Desarrollo con Mono (.Net) en varios lenguajes – parte 1

Posted on the marzo 5th, 2008 under Código Experimental,GNU/Linux,Investigación,Probando herramientas,Programación Orientada a Objetos,Software Libre by

Para la cátedra de Administración de Recursos el año pasado, debíamos realizar un trabajo de investigación y desarrollo, en el cuál se mostraran nuevas tecnologías que permitieran integrar sistemas. Buscando cumplir con el objetivo asignado por la cátedra y a la vez investigar en algo que aún no hubiéramos profundizado fue lo que nos llevó a la plataforma Mono.

Milton ya estaba desarrollando un sistema utilizando esta plataforma, César ya había programado con .Net (C# y VB.Net) para un TP anterior y yo algo de Web Services ya había utilizado (consumido con PHP, pero nunca creado) y además estaba usando C# para algunas cosas.

Sin embargo queríamos probar la madurez del proyecto Mono, utilizar las últimas versiones de MonoDevelop como IDE y las librerías y compiladores que pudieramos. Se nos ocurrió implementar un sistema de mensajería instantánea al estilo Gaim, obviamente que con la única posibilidad de enviar mensajes de texto y ver la lista de usuarios conectados. Pero, a medida que avanzabamos, le ibamos agregando cosas.

Smalltalk Express corriendo con Wine (de nuevo)

Posted on the marzo 4th, 2008 under GNU/Linux,Smalltalk by

ste-transcript-mini.jpgRecuerdo que el último trabajo práctico que realicé en Smalltalk fue cuando ya no utilizaba Windows como sistema operativo. Estaba utilizando Debian GNU/Linux en ese momento y pensando en pasarme a Ubuntu, debido a su frecuente actualización de paquetes y una comunidad creciente detrás. Esto fue en el año 2005, creo que con la versión Dapper. Para mi sorpresa, habiendo decidido implementar dicho trabajo práctico en Smalltalk y usar STE (Smalltalk Express) que ya conocíamos le ambiente todos los integrantes, se me ocurrió probarlo con Wine. Anduvo perfecto! O casi… Algunas cositas como copiar y pegar no funcionaban del todo bien. Quizá se debiera a que es una aplicación de 16 bits.

Pasaron 2 años, y quisé abrir nuevamente una instancia de STE y la mayoría de las pantallas creadas con WindowBuilder tenían un fondo negro, y no se identificaban los controles. Sin embargo el resto del sistema, Transcript, el Browser de Classes y otras básicas andaban ok.

Intenté volver a esa versión de Wine, sin éxito. Probé con varias configuraciones y no había caso. Probé en una máquina virtual con Dapper y ahí funcionó bien!. Justo cuando me decidía a postear en Wine que con versiones posteriores había dejado de funcionar algo, con la última actualización de a la versión 0.9.55 ¡volvió a funcionar! ¡Y mejor! (al momento de escribir el artículo era la 0.9.55, pero con la 0.9.56 sigue funcionando)

Les dejo un repositorio para tener la versión más actualizada de Wine en su distro sin tener que compilar o andar buscando (usando apt).
En un archivo nuevo (para tener separado del resto de los repositorios)

sudo vim /etc/sources.list.d/winehq.list

Agregar las siguientes lineas

deb http://wine.budgetdedicated.com/apt gutsy main #WineHQ - Ubuntu 7.10 "Gutsy Gibbon"
deb-src http://wine.budgetdedicated.com/apt gutsy main #WineHQ - Ubuntu 7.10 "Gutsy Gibbon"

Para agregar la clave

wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -

Luego con un apt-get update van a tener las listas actualizadas para poder instalar la última versión de Wine.

Para ejecutarlo, probé con varias configuraciones de Wine (Win98, Windows XP, etc) y funcionó perfecto. Lo que hay que tener en cuenta es que debe encontrarse en un directorio que no tenga espacios en todo el path, y debe ser ejecutado desde una consola mediante

wine VW.EXE

Algunas capturas de STE bajo Wine

smalltalk-ide-450.jpg

window-builder.jpg

Google Desktop para linux

Posted on the junio 28th, 2007 under GNU/Linux,Probando herramientas by

Al final se vé que lanzaron Google Desktop para GNU/Linux. Ya estaban hace tiempo versiones de Picasa y Google Earth. Ahora sólo falta GTalk (aunque de no ser por el servicio de voice, Pidgin no tiene nada que envidiar).

Por ahora sigo con mi útil Beagle, en algún momento lo voy a probar.

Vía Under Linux

TurboGears 1.0.22 en Ubuntu 7.04

Posted on the junio 22nd, 2007 under GNU/Linux,TurboGears by

Precisamente calculo que este post debería servir para cualquier instalación de python 2.5 que venga por defecto. Resulta que las instrucciones que figuran acá (TurboGears en Ubuntu) no me funcionaron así directo. Al parecer easy_install reconocía algunos componentes como instalados, pero luego eran incompatibles con esa versión de TG.

Lo que hice para tenerlo andando fue seguir las instrucciones de ese sitio con easy_install, y luego al correr

# tg-admin info

ver todos los errores que tiraba. Ahí detecté que debía desinstalar:

python-turbogears, python-cherrypy, python-turbojson, python-turbokid, python-simplejson, python-dispatch

En mi caso fueron sólo esas las dependencias.

Luego corriendo nuevamente

# sudo easy_install --prefix /usr/local -f http://www.turbogears.org/download/index.html TurboGears[standard]

se instalaron pero con las versiones que TG necesita (que no estaban en los repositorios de Ubuntu).

Ahora ya me anda

# tg-admin info

Hay que ver el resto 🙂