|
|
 |  |  | | |
Sunday December 10, 2006
( Note: If you are looking for an English version of this, go here) Instalar Qemu si tienes Ubuntu es muy fácil ya que está en los
repositorios. sudo apt-get
install qemu
Pero sin KQemu, la
emulación va a ser bastante lenta, por lo que es recomendable
instalarlo. El problema es que KQemu no es libre, pero si es freeware.
Para instalarlo hace falta compilar Qemu en la maquina y luego instalar
KQemu. Nota: No he probado instalar KQemu con la instalación de los repositorios de Qemu por lo que no estoy seguro de
que no funcione. Como tengo una instalación "fresca"
(instale recientemente), empecé a investigar como debía instalar
Qemu+Kqemu en mi Ubuntu. Ya lo había hecho en Ubuntu 5.10 (Breezy
Badger) pero sospechaba que en Ubuntu 6.10 Edgy Eft iba a ser un tanto
diferente. Entonces revise la lista de fuentes que utilice y decidí
hacer un script inspirándome en este sitio y este otro. Ambos tienen información
valiosa pero no del todo acertada a mi gusto. Esta es la primera vez
que utilizo checkinstall para hacer un paquete y me
pareció muy útil. Para ejecutar el
script: 1 - Bajar el Script de aqui o guardar el
contenido en un archivo (sigue bajando para ver el
contenido). 2 - Habilitar el repositorio de
"Software Libre mantenido por la Comunidad (universe)" que es necesario
para instalar checkinstall. Esto se puede hacer
utilizando el Gestor de Paquetes Synaptic (Abrir Synaptic,
Configuración/Repertorios, Seleccionar el repositorio en cuestión y
Recargar) o editando los sources para apt-get
(/etc/apt/sources.list). 3 - Hacer ejecutable el
script chmod +x
InstallQemu.sh
4 - Ejecutar el
script sudo
./InstallQemu.sh
Hay que ejecutarlo con
sudo ya que el script lleva a cabo varias tareas administrativas que
requieren privilegios de administrador. Si quieres
ver el script, aqui
está. (necesitas JavaScript para
verlo) #!/bin/bash # Este script fue creado
por Felipe Caballero # # Creado (y probado) para
Ubuntu 6.10, debería funcionar en 6.06 y en 5.10 tambien #
Probablemente funcione en otros Debian # # Este
script instala qemu como paquete, lo que permite que sea quitado
tambien como paquete # a traves de Synaptic o por consola
escribiendo: apt-get -r qemu # # Este script no tiene
ningun tipo de garantía, a usar bajo tu propio riesgo # -No
deberia dañar el sistema de todas maneras, por las tareas que
hace- # # Va a instalar por defecto varios paquetes
necesarios para compilar Qemu # No va a pedir confirmacion
para instalarlos # para evitar esto, comentar la variable
IPBD
# Hay que ejecutarlo como root ya que lleva a
cabo varias tareas administrativas if [ $USER != "root" -o
$UID != 0 ]; then echo "Este
script debe ser ejecutado como
root" exit
1 fi
function clean
{ rm -rf $QEMU_HOME; rm -rf
$KQEMU_HOME; rm -rf $QEMU_TAR; rm -rf
$KQEMU_TAR echo
; echo "Para evitar corrupcion
de archivos o errores de I/O, los tar que ya fueron bajados son
borrados" echo "Para ver los
errores, ver los archivos de
log" echo ; echo
; }
# Estas son las variables
necesarias echo "Creando variables..." ; echo
;
QEMUVERSION=0.8.2 KQEMUVERSION=1.3.0pre9 #
las siguientes 2 variables son los nombres de los paquetes a
bajar QEMU_TAR=qemu-${QEMUVERSION}.tar.gz KQEMU_TAR=kqemu-${KQEMUVERSION}.tar.gz #
Las 2 siguientes variables son los url para bajar Qemu y
KQemu # Si no funcionan los url verificarlos
manualmente QEMUPKGSOURCE=http://fabrice.bellard.free.fr/qemu/${QEMU_TAR} KQEMUPKGSOURCE=http://fabrice.bellard.free.fr/qemu/${KQEMU_TAR}
#
Variables
obvias... INSTALL_HOME=/home/${USER}/qemu+kqemu QEMU_HOME=${INSTALL_HOME}/qemu-$QEMUVERSION KQEMU_HOME=${INSTALL_HOME}/kqemu-${KQEMUVERSION} LOG=${INSTALL_HOME}/log ERROR_LOG=${INSTALL_HOME}/error_log IPBD="--yes"
mkdir
-p $INSTALL_HOME cd $INSTALL_HOME
# log y
error_log son borrados cada vez que el script es ejecutado por razones
practicas touch $LOG; rm $LOG ; touch $LOG; touch
$ERROR_LOG; rm $ERROR_LOG; touch $ERROR_LOG;
echo
"Para ver la salida del script ver el archivo log en
$INSTALL_HOME/log" echo "Para ver la salida de errores, ver el
archivo $INSTALL_HOME/error_log" echo # Se baja el
codigo de Qemu y los binarios de KQemu echo "Bajando los
paquetes (i.e. el codigo de Qemu y los binarios de
KQemu..." echo "wget -nv $QEMUPKGSOURCE" wget -nv
$QEMUPKGSOURCE >> $LOG 2>> $ERROR_LOG || {
echo ; echo "-----> ERROR bajando el codigo de Qemu"; clean;
exit 1; } echo "wget -nv $KQEMUPKGSOURCE" wget -nv
$KQEMUPKGSOURCE >> $LOG 2>> $ERROR_LOG || {
echo ; echo "-----> ERROR bajando los binarios de KQemu"; clean;
exit 1; } echo
# Los archivos bajados son
desempaquetados echo "Desempaquetando los archivos
bajados..." tar xzf qemu-${QEMUVERSION}.tar.gz
>> $LOG 2>> $ERROR_LOG || { echo ; echo
"-----> ERROR al desempaquetar el codigo fuente de Qemu"; clean;
exit 1; } tar xzf kqemu-${KQEMUVERSION}.tar.gz
>> $LOG 2>> $ERROR_LOG || { echo ; echo
"-----> ERROR al desempaquetar los binarios de KQemu"; clean;
exit 1; } echo
# Los paquetes necesarios se
instalan echo "Instalando los paquetes
necesarios..." echo "apt-get install
gcc-3.4..." apt-get install gcc-3.4 $IPBD >>
$LOG 2>> $ERROR_LOG || { echo ; echo "-----> ERROR
instalando: gcc-3.4"; clean; exit 1; } echo "apt-get install
libsdl1.2debian-all libsdl1.2-dev" apt-get install
libsdl1.2debian-all libsdl1.2-dev --yes >> $LOG
2>> $ERROR_LOG || { echo ; echo "-----> ERROR
instalando: libsdl1.2debian-all libsdl1.2-dev"; clean; exit 1;
} echo "apt-get install linux-headers-$(uname
-r)" apt-get install linux-headers-$(uname -r) --yes
>> $LOG 2>> $ERROR_LOG || { echo ; echo
"-----> ERROR instalando: linux-headers-$(uname -r)"; clean;
exit 1; } echo "apt-get install checkinstall" apt-get
install checkinstall --yes >> $LOG 2>>
$ERROR_LOG || { echo ; echo "-----> ERROR instalando:
checkinstall"; echo "Por favor seleccione el repositorio \"Community
maintained Open Source software (universe)\" del gestor de paquetes
Synaptic"; echo "o editar las fuentes de los apt-get manualmente";
clean; exit 1; } echo "apt-get build-dep
qemu" apt-get build-dep qemu --yes >> $LOG
2>> $ERROR_LOG || { echo ; echo "-----> ERROR al
tratar de crear el paquete de qemu: apt-get build-dep qemu"; clean;
exit 1; } echo
cd
$QEMU_HOME
# Preparar compilacion echo
"Ejecuando el script de configuracion para
Qemu..." ./configure --cc=gcc-3.4 --host-cc=gcc-3.4
--kernel-path=/usr/src/linux-headers-$(uname -r)
>> $LOG 2>> $ERROR_LOG || { echo ; echo
"-----> ERROR ejecuando el script de configuracion para Qemu";
clean; exit 1; } echo
# El archivo
usb-linux.c es problematico bajo Ubuntu 6.10 # algunos cambios
son necesarios echo "Configurando el archivo
usb-linux.c..." sed -i "s/#include
<linux\/compiler.h>/#include
<\/usr\/src\/linux-headers-$(uname
-r)\/include\/linux\/compiler.h>/" usb-linux.c >>
$LOG 2>> $ERROR_LOG || { echo ; echo "-----> ERROR
editando usb-linx.c"; clean; exit 1;
} echo
# Compilacion de Qemu echo
"Compilando Qemu" echo "make clean..." make clean
>> $LOG 2>> $ERROR_LOG || { echo ; echo
"-----> ERROR: make clean"; clean; exit 1; } echo
"make..." make >> $LOG 2>>
$ERROR_LOG || { echo ; echo "-----> ERROR: make"; clean; exit 1;
} echo
# Se crea el paquete de
Qemu echo "Creando paquete de instalacion e
instalandolo..." checkinstall -y --pkgname=qemu
--pkgversion=${QEMUVERSION} --pkgrelease=1 --pkglicense=Restricted
--pkggroup="Miscellaneous - Text Based" --pkgsource=$QEMUPKGSOURCE
--exclude=kqemu/install.sh >> $LOG 2>>
$ERROR_LOG || { echo ; echo "-----> ERROR creando el paquete de
Qemu"; clean; exit 1; } echo
# Se instala
KQemu echo "Instalacion de KQemu" cd
$KQEMU_HOME echo "Configurando KQemu..." ./configure
>> $LOG 2>> $ERROR_LOG || { echo ; echo
"-----> ERROR configurando KQemu"; clean; exit 1;
} echo "make..." make >> $LOG
2>> $ERROR_LOG || { echo ; echo "-----> ERROR:
make"; clean; exit 1; } echo "make install" make
install >> $LOG 2>> $ERROR_LOG || { echo ;
echo "-----> ERROR: make install"; clean; exit 1;
}
Importante: El script va a instalar varios
paquetes lo que va a utilizar basatante espacio, la respuesta por
defecto para llevar a cabo la instalacion es "yes". Para evitar
problemas, es bueno revisar si los paquetes que queremos sean
instalados o no, para eso, hay que mirar el script, está bastante
comentado.
Si te gusto lo que leiste, deja un comentario.
Permalink
Posteado por felipe
| |  |  |  |
|
 |  |  | | |
Tuesday November 28, 2006
Hace ya un tiempo, probé por primera vez un emulador, fue un emulador de Nintendo para PC, me pareció súper bueno, era muy practico correr los juegos de consola en mi pc. Ahora hay muchos emuladores para muchas cosas, desde Calculadoras hasta Game Boys, incluso está emulado el sistema operativo de la OLPC ( aqui están las instrucciones de como se puede hacer). Con la masificación de Súper Computadoras Personales (bueno, asi se verían si estuvieramos en 1990) se puede emular cualquier cosa (bueno, no Deep Blue o monstruos semejantes). Ahora hay varias opciones para emular PC's. Hay Open Source, populares, eficientes... Entre las más importantes están: Personalmente, he utilizado VistualPC (para emular Minix3) y Qemu (para emular WindowsXP y Minix3). VirtualPC es fácil de usar y de instalar, no puedo decir mucho de su eficiencia ya que corri un OS poco pesado. Qemu, funciona bastante bien. Con Minix3 no tengo quejas (excepto que para la instalacion KQemu bloqueaba el OS). Ahora con Windows es otra historia diferente, QEmu funciona bien, pero por si solo es muy lento, así que lo mejor es instalar también KQemu. Por lo que he leido y oido, Parallels tiene la mejor eficiencia de todos. VMWare funciona muy bien, aunque la instalación es compleja; tengo entendido que en Windows se mete con muchas partes del sistema. Y bueno, VirtualPC parece que funciona bastante bien, pero desde que fue comprado por Microsoft (antes era de Connectix) aparentemente ha perdido velocidad; lo que dicen las malas lenguas es que Microsoft prefiere vender OS para ser corridos nativamente y no quieren llenar sus OS's de Linux o BSD o lo que sea. Todas estas formas de virtualización tienen sus ventajas y ahora están muy de moda, por ejemplo lo que se hace es tomar una maquina muy poderosa y crear adentro del OS de esta varios OS's emulados y volverlos servidore. Este enfoque permite no gastar tanto en la compra de servidore y ahorrar en energía electrica. Desde el punto de vista Desktop, para usuarios caseros, la virtualización no se ha vuelto aún tan popular pero a medida que las maquinas vayan creciendo y los emuladores mejorando, la virtualización se ira popularizando. En fin, para usuarios de Linux, que necesitan aplicaciones de Windows, o usuarios de cualquier OS que necesiten correr otro OS, la virtualización es la solución. Por eso, virtualicen. Links Virtualization
Si te gusto lo que leiste, deja un comentario.
Permalink
Posteado por felipe
| |  |  |  |
|
 |  |  | | |
Thursday September 21, 2006
// Nota: Instrucciones para Ubuntu Breezy Badger (5.10)
Para la creación de una red virtual adentro del computador, se utilizaran los Bridge Utilities (apt-get install bridge utilities) y TUN/TAP modules (apt-get install uml-utilities). Los dos paquetes deben estar instalados para que funcione todo adecuadamente. Hay que seguir los siguientes pasos: 1. Cargar el modulo tun
# modprobe tun
2. Se crea el port tap0
# tunctl -t tap0
3. Se desactiva eth0
# ifconfig eth0 down
4. Se suben los 2 puertos que se van a usar
# ifconfig eth0 0.0.0.0 promisc up
# ifconfig tap0 0.0.0.0 promisc up
5. Se crear interfaz bridge
# brctl addbr br0
6. Hacer que las interfaces se conecten al bridge
# brctl addif br0 eth0
# brctl addif br0 tap0
7.Se hace que el bridge adquiera IP automáticamente
# dhclient br0
Antes de poder conectar Minix a la red virtual, tiene que existir el archivo /etc/qemu-ifup y en el tiene que estar esta línea:
/sbin/ifconfig $1 0.0.0.0 up
Luego de realizar estos cambios, hay que iniciar Minix de la siguiente manera:
qemu -boot c -hda /minix/def.img -net nic,vlan=0 -net tap,vlan=0,script=/etc/qemu-ifup,ifname=tap0 &
Cuando Minix Acabe de cargar, va a mostrar en pantalla el IP que le fue asignado por el DHCP externo. Lo idea es que la información de Minix desde y hacia el OS host no salga del computador host, pero en esta oportunidad no se realizó de esta manera. // Esta forma de conexion hace que lo que sale del sistema operativo emulado salga por la tarjeta de red eth0, para que no tenga que salir del Pc Host hay que manipular la tabla de rutas, pero no lo he probado aun.
Si te gusto lo que leiste, deja un comentario.
Permalink
Posteado por felipe
| |  |  |  |
|
 |  |  | | |
Thursday September 21, 2006
Para instalar Qemu existen dos posibilidades en Ubuntu, la primera es instalarlo como paquete a través de Synaptic Package Manager -o su equivalente apt-get en consola- y la segunda es bajando el código fuente de www.qemu.org y compilarlo manualmente. La segunda forma permite que la versión de qemu funcionando sea las más reciente por lo que se escogió esta.
Estos son los pasos a seguir:
1.Descargar las fuentes de Internet de la página:
http://www.qemu.org/qemu-0.8.2.tar.gz
2.Descargar el compilador gcc 3.4 (Qemu no funciona adecuadamente con el gcc 4.0). Para esto, en una consola se ejecuta el siguiente comando:
# apt-get install gcc-3.4
3.Descargar DSL (Simple DirectMedia Layer), una librería que permite acceso a uso de hardware. Para esto, se ejecuta el siguiente comando:
# apt-get install libsdl1.2debian-all libsdl1.2-dev
4.Descargar los headers del código fuente del kernel. Para esto se necesita saber la versión del kernel que se está utilizando (en consola ejecutar el comando: uname -r). Se descargan de Internet con el comando:
# apt-get install linux-headers-2.6.12-10-386
La parte “2.6.12-10-386” tiene que ser cambiada por el resultado del comando uname -r.
5.Una vez descomprimido el archivo del código fuente de Qemu, hay que editar el archivo configure que se encuentra adentro de la carpeta del emulador. Los cambios que hay que hacer:
de cc=”gcc” a cc=”gcc-3.4”
de host_cc=”gcc” a host_cc=”gcc-3.4”
de kernel_path=”” a kernel_path=”/usr/src/linux” (Esta ubicación es el lugar donde se encuentran las fuentes del kernel)
6.Compilar el emulador con los siguientes comandos:
# ./configure
# make
# make install
Con esta serie de instrucciones, Qemu debería quedar operativo y ejecutable desde cualquier punto en el sistema corriendo el comando qemu. Con la compilación se instalan varios comandos más del emulador como qemu-img que será utilizado más adelante.
Si te gusto lo que leiste, deja un comentario.
Permalink
Posteado por felipe
| |  |  |  |
|
 |  |  | | |
Thursday September 07, 2006
Si te gusto lo que leiste, deja un comentario.
Permalink
Posteado por felipe
| |  |  |  |
|
|
|