martes, 6 de diciembre de 2011

Entorno de 32 bits en sistemas de 64 bits

  Este post no hace referencia a ninguna novedad ni ningún descubrimiento digno de alarde, sino que es una posibilidad que estaba ahí, que no conocía y que me pareció interesante compartir.

  El otro día peleándome con la instalación de gentoo para un netbook me surgió la necesidad de compilar aplicaciones (entre ellas el kernel) de 32 bits sobre un sistema de 64 bits (i686 sobre amd64) obteniendo errores que me impedían proseguir con mi inmersión gentooniana. Como de costumbre la solución para ello la encontré en la siempre genial wiki de archlinux.

 
  La salida a mi problema se encontraba en la sección Arch64 y proponía la creación de un entorno de 32 bits mediante linux32, realizando una tarea muy similar a un chroot (man chroot para mas información ;) ), pero en este caso se nos encerrará en una jaula de 32 bits.

   Para preparar el entorno tenemos que tener habilitada la librería multilib en el fichero /etc/pacman.conf.

      [multilib]
      Include = /etc/pacman.d/mirrorlist


y actualizamos los repositorios con:

pacman -Sy

  Lo siguiente será instalar el gcc contenido en multilib:

pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc

  Además también requerimos linux32 para cerrar la jaula, con lo que lo instalaremos:

pacman -S util-linux

   el siguiente paso será realizar preparar la jaula:
    
     mount --bind /dev /<directorio>/dev 
     mount --bind /dev/pts /<directorio>/dev/pts
     mount --bind /dev/shm /<directorio>/dev/shm
     mount -t proc none /<directorio>/proc 
     mount -t sysfs none /<directorio>/sys

  donde directorio es la ruta donde queremos crear nuestro entorno de 32 bits.
 
  Para final solo queda entrar en dicha jaula: 

      linux32

  Para realizar las comprobaciones y saber si lo hemos hecho correctamente tenemos el comando uname:
uname -m

   En el caso de haberlo introducido correctamente nos debe mostrar i686 como salida.


   -> Como siempre para más y mejor información  mirad la entrada de la wiki de Arch:
  https://wiki.archlinux.org/index.php/Arch64_FAQ#Can_I_run_32-bit_apps_inside_Arch64.3F


  Antes de finalizar decir que aunque estas instrucciones son para Archlinux, no debería ser excesivamente difícil usarlo en otras distribuciones.

  Un saludo.

Aetsu


No hay comentarios:

Publicar un comentario