Android x86 en virtualbox y Xenserver 6.5

El objetivo de esta publicación es modificar un iso de androidx86 para que cuente con acceso a internet cuando se utiliza en virtualbox, habilitando la interfaz ethernet para adquirir una dirección IP al iniciar el sistema por DHCP y habilitar un servidor DNS.

Se recomienda probar que los comandos que se incorporarán al iso funcionan en el iso que se haya seleccionado. Para esta prueba se usó el iso android-x86-4.0-r1-eeepc.iso . La prueba consiste en iniciar en modo Live el iso, aceptar todas las opciones hasta tener el mensaje de que está listo para usarse. Una vez ahí, iniciar una consola con Alt+F1, para regresar a la interfaz gráfica usar Alt+F7, y una vez ahí seguir los pasos descritos en un foro

netcfg eth0 up
netcfg eth0 dhcp
setprop net.dns1 8.8.8.8

Para probar que están funcionando los comandos, después del comando dhcp, ejecutar solo netcfg con el fin de ver que hemos adquirido una dirección IP. Tras este paso, probar hacer ping al gateway, o a una dirección pública como el servidor dns 8.8.8.8. Si todo sale adecuadamente, probar hacer ping a google.com. No debería funcionar. Esto último funcionará después del último comando de setprop. Tras estos comandos podéis regresar al entorno gráfico Alt+F7, y probar el navegador web.

Los comandos que siguen son para poder instalar estas opciones en el sistema sin tener que montar el disco virtual en vuestro sistema.

Iniciamos, instalando las herramientas requeridas para esta labor. Un procedimiento homólogo está presente en este website

sudo apt-get install bsdtar squashfs-tools

Crear directorio donde se van a descomprimir las imágenes, uno que usaremos para los archivos de boot y no para montar el sistema. Después copiar el iso de interés al directorio de trabajo. Para este ejemplo he renombrado el iso a androidx86.iso

mkdir androidTmp
mkdir boot
mkdir mountDir
cp androidx86.iso androidTmp/
cd androidTmp/

Luego "descomprimir" el sistema system.sfs, (se creará una carpeta squashfs-root ) ,crear una carpeta para montar el sistema y montar el sistema en el carpeta de montaje.

unsquashfs system.sfs
sudo mount androidTmp/squashfs-root/system.img mountDir/ -o loop

Ahora buscamos el archivo init.sh en el directorio androidTmp/etc y agregamos las siguientes líneas al final (El archivo está con permiso de escritura solo para root, para la edición usé sudo bluefish androidTmp/etc/init.sh ):

netcfg eth0 up
netcfg eth0 dhcp
setprop net.dns1 8.8.8.8

Lista la modificación, procedemos a desmontar el sistema, ingresar al directorio de trabajo, comprimirl el sistema, regresar (subir un directorio), copiar el contenitdo de isolinux a la carpeta que creamos al inicio boot y empaquetarlo como iso. Para este caso el nombre del nuevo iso será nuevoIsoAndroidx86.iso y con etiqueta Android-x86-New.

umount mountDir/
cd androidTmp/
mksquashfs squashfs-root/system.img system.sfs
cd ..
cp -r androidTmp/isolinux boot
genisoimage -vJURT -o nuevoIsoAndroidx86.iso -no-emul-boot -boot-load-size 4 -boot-info-table -input-charset utf-8 -V "Android-x86-New" -b isolinux/isolinux.bin -c isolinux/boot.cat boot/ androidTmp/*.img androidTmp/*.sfs androidTmp/kernel

La última versión android-x86-4.4-r3.iso incluye el procedimiento automático de reconocimiento de interfaz ethernet, (también funciona con Xenserver 6.5). Sin embargo, tiene el problema de no poder formatear en ext3 y si se usa GPT en las opciones de instalación al iniciar se quedará en grub>. Para solucionar esto, usar otro iso de androidx86, crear una partición y solo formatear ext3, no hacer más (Apagar la máquina virtual). Cargar el iso 4.4-r3, y para iniciar seleccionar la partición que ya creamos, y seleccionar no formatear. Funciona adecuadamente con GRUB (Evitar GRUB2 y EFI).

¿Desea donar?/Do you wish to give some money to the author?


Give money to the author/writer

Comentarios

Entradas populares de este blog

Xencenter on GNU/Linux

ICMP Monitor With MySQL - Linux

Citrix - Xenserver - Migrate MAC address