lukin-amd64 n00b
Joined: 01 Mar 2006 Posts: 66 Location: Sant Feliu de Llob. (Bcn)
|
Posted: Fri Jun 30, 2006 8:35 pm Post subject: [HOWTO] Chroot AMD64 |
|
|
Bueno aquí llega mi primera aportación; xD (y no sera la última)
Crear entorno de 32 bits en AMD64
-Introducción
Esta guía te permitirá crear un entorno para poder ejecutar aplicaciones de 32 bits en tu tu amd64. Por ejemplo (openoffice, mplayer, win32codecs ..)
-Instalación:
Para instalar el entorno de 32 bits tenemos que descargar el stage3 de la arquitectura x86 (de uno de los servidores de gentoo.) http://www.gentoo.org/main/en/mirrors.xml
Descargando stage3 de un servidor de gentoo.
Code: | $ cd /home/user/downloads
wget -c http://linuv.uv.es/mirror/gentoo/releases/x86/2006.0/stages/http://linuv.uv.es/mirror/gentoo/releases/x86/2006.0/stages/stage3-x86-2006.0.tar.bz2 |
Nota: No descargeis la stage para amd64
Después de descargar la stage3 crearemos el directorio para poner nuestro nuevo entorno.
Code: | $ su root (ponemos la contraseña)
# cd /mnt
# mkdir gentoo32 |
Una vez creado el directorio procediremos a descomprimirlo.
Code: | # cd /mnt/gentoo32
# tar -xvjpf /home/user/downloads/stage3-x86-2006.0.tar.bz2 |
Ahora copiaremos el archivo resolv.conf y el passwd al nuevo entorno.
Code: | # cp -L /etc/resolv.conf /mnt/gentoo32/etc/
# cp -L /etc/passwd /mnt/gentoo32/etc/ |
-Configuración
Configurando el entorno de 32 bits.
Empezamos configurando el nuevo make.conf
Code: | CFLAGS="-O2 -march=athlon-xp -msse2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2" |
Ahora montamos el entorno chroot32.
Code: | # mount -o bind /dev /mnt/gentoo32/dev
# mount -o bind /dev/pts /mnt/gentoo32/dev/pts
# mount -o bind /dev/shm /mnt/gentoo32/dev/shm
# mount -o bind /proc /mnt/gentoo32/proc
# mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb
# mount -o bind /tmp /mnt/gentoo32/tmp
# mount -o bind /sys /mnt/gentoo32/sys |
Ahora creamos un link entre el portage actual y el del entorno de 32 bits.
Code: | # mkdir -p /mnt/gentoo32/usr/portage/
# mount -o bind /usr/portage /mnt/gentoo32/usr/portage/ |
-Entrando en el nuevo entorno.
Code: | # linux32 chroot /mnt/gentoo32 /bin/bash |
Nota: para los que no tengan setarch que hagan un:
Ahora ya estamos en el nuevo entorno, es hora de actualizarlo.
Code: | # source /etc/profile
# env-update
# emerge -au world |
Una vez terminada la actualizaciónción abremos terminado con el entorno de 32 bits.
Para que se nos monte nuestro entorno al iniciar nuestra computadora crearemos este script.
Creando el nuevo archivo en /etc/init.d
Code: | # nano -w /etc/init.d/gentoo32
#!/sbin/runscript
depend() {
need localmount
need bootmisc
}
start() {
ebegin "Mounting 32bits chroot dirs"
mount -o bind /dev /mnt/gentoo32/dev >/dev/null &
mount -o bind /dev/pts /mnt/gentoo32/dev/pts >/dev/null &
mount -o bind /dev/shm /mnt/gentoo32/dev/shm >/dev/null &
mount -o bind /proc /mnt/gentoo32/proc >/dev/null &
mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb >/dev/null &
mount -o bind /sys /mnt/gentoo32/sys >/dev/null &
mount -o bind /tmp /mnt/gentoo32/tmp >/dev/null &
mount -o bind /usr/portage /mnt/gentoo32/usr/portage/ >/dev/null &
eend $? "An error occured while attempting to mount 32bit chroot directories"
ebegin "Copying 32bits chroot files"
cp -pf /etc/resolv.conf /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/passwd /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/shadow /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/group /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/gshadow /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/hosts /mnt/gentoo32/etc > /dev/null &
cp -Ppf /etc/localtime /mnt/gentoo32/etc >/dev/null &
eend $? "An error occured while attempting to copy 32 bits chroot files."
}
stop() {
ebegin "Unmounting 32bits chroot dirs"
umount -f /mnt/gentoo32/dev/pts >/dev/null &
umount -f /mnt/gentoo32/dev/shm >/dev/null &
umount -f /mnt/gentoo32/dev >/dev/null &
umount -f /mnt/gentoo32/proc/bus/usb >/dev/null &
umount -f /mnt/gentoo32/proc >/dev/null &
umount -f /mnt/gentoo32/sys >/dev/null &
umount -f /mnt/gentoo32/tmp >/dev/null &
umount -f /mnt/gentoo32/usr/portage/ >/dev/null &
eend $? "An error occured while attempting to unmount 32bits chroot directories"
} |
I le damos permisos:
Code: | # chmod 777 /etc/init.d/gentoo32
# rc-update add gentoo32 default |
Ejemplo: (instalando aplicaciones en nuestro nuevo entorno)
Code: | # linux32 chroot /mnt/gentoo32 /bin/bash (montamos el entorno)
# source /etc/profile
# env-update
# emerge mplayer (...........) |
Para ejecutar aplicaciones con X desde nuestro entorno de 32 bits debemos hacer:
Code: | # xhost local:localhost (en una consola de 64 bits) |
Conclusión
Con este entorno podemos instalar y ejecutar paquetes que solo estan en x86. Es el caso de Openoffice, mplayer..... |
|