0 votos

Guía paso a paso para construir androidx86 con integraciones de virtual box guest os

Androidx86.org dice que para usar la aceleración 3d para mi máquina virtual androidx86 tengo que instalar guest additions de Linux.me gustaría saber como hacerlo.

Estoy utilizando un

  • ubuntu 20.10 (64bit)
  • core i5 4th gen(@3.1 ghz)
  • Nvidia gt 730
  • Virtualbox 6.1

0 votos

No creo que las adiciones para invitados que vienen con VirtualBox puedan ser instaladas en Android-x86, la lista de SO soportados puede verse aquí: virtualbox.org/manual/ch04.html#additions-linux Por lo tanto, tendría que compilar un kernel(módulo) personalizado Android-x86.org/documentation/customize_kernel.html En mi opinión deberías empezar con VBoxVGA Configuración de la máquina virtual.

0 votos

@Robert La vm no rinde bien sin la aceleración 3d.Me gustaría saber como personalizar el kernel para incluir las integraciones del guest os de vbox.O conseguir una imagen preconstruida

2voto

Kothari Puntos 26

Para utilizar la aceleración de la GPU para Android x86 vm es más fácil si se utiliza qemu. Mira esto (el método que utilicé y este video no son totalmente iguales, utilicé la última versión)

Exclusiva Linux-Siéntase libre de comentar sus preguntas

  • Instale las siguientes dependencias de compilación (no es necesario construir para arch linux leer abajo) usando sudo apt install -y build-essential libepoxy-dev libdrm-dev libgbm-dev libx11-dev libvirglrenderer-dev libpulse-dev libsdl2-dev libgtk-3-dev libsdl1.2-dev ninja-build

  • cd en el directorio que quieres descargar y construir qemu(si usas arch linux no tienes que construir qemu.simplemente usa el paquete en depósito oficial .también no es necesario añadir su usuario a kvm group.it simplemente funciona).

  • Descargue las últimas fuentes de qemu utilizando git clone [https://git.qemu.org/git/qemu.git](https://git.qemu.org/git/qemu.git)

  • ejecute cd qemu

  • ejecute ./configure --enable-sdl --enable-opengl --enable-virglrenderer --enable-system --enable-modules --audio-drv-list=pa --target-list=x86_64-softmmu --enable-kvm --enable-gtk

  • ejecute make

  • ejecute sudo adduser yourusername kvm

  • ejecute sudo chmod 666 /dev/kvm

  • ejecute sudo touch /lib/udev/rules.d/99-kvm.rules

  • añadir línea KERNEL=="kvm", GROUP="kvm", MODE="0666" a 99-kvm.rules

  • puede hacerlo mediante sudo gedit /lib/udev/rules.d/99-kvm.rules y pegar la línea y luego guardar.

  • ejecute sudo apt install qemu-utils

  • cd al directorio donde quiere crear el disco duro virtual.

  • qemu-img create -f qcow2 Android.img 10G

  • 10G se refiere al tamaño del disco duro, en este caso 10 Gigabytes.

  • Descargar androidx89 .(la última versión del kernel me funcionó mejor o fue sólo un placebo?)

  • cd al directorio donde se clonó git qemu

  • cd al directorio qemu/build/x86_64-softmmu/ ie cd qemu/build/x86_64-softmmu/

  • ejecute

    qemu-system-x86_64 -boot d \ -enable-kvm \ -smp 2 \ -cdrom "/path/to/android/iso" \ -name linuz \ -device virtio-vga,virgl=on,xres=1280,yres=720 \ -cpu host \ -device AC97 \ -m 2048 \ -display sdl,gl=on \ -drive file=/path/to/android/Android.img,if=virtio \ -object rng-random,id=rng0,filename=/dev/urandom \ -device virtio-rng-pci,rng=rng0 \ -device virtio-keyboard \ -boot menu=off \ -device virtio-tablet \ -machine type=q35 \ -serial mon:stdio \ -net nic -net user,hostfwd=tcp::4444-:5555

  • smp se refiere al número de núcleos de cpu dados a la máquina virtual. -m se refiere a la ram asignada, en este caso 2048 megabytes. -display gtk,gl=on también pero display gtk no funciona los drivers propietarios de nvidia por alguna razón.

  • Utilice las teclas de flecha para navegar y enter para seleccionar.do como sigue

  • Seleccione la instalación enter image description here

  • Seleccione crear/modificar partición enter image description here

  • no usar gpt enter image description here

  • Seleccionar nuevo
    enter image description here

  • seleccione el primario enter image description here

  • presione el botón "enter". enter image description here

  • seleccione escribir y teclear yes .then seleccione quit enter image description here

  • seleccionar la partición que acabamos de crear enter image description here

  • seleccione ext4 enter image description here

  • seleccione sí para formatear enter image description here

  • seleccione sí para instalar grub enter image description here

  • seleccione sí para que /system lea y escriba (recomendado) enter image description here

  • Una vez que todas las operaciones han terminado, puedes arrancar en Android.

  • Para arrancar directamente en el disco duro utilice

    qemu-system-x86_64 -boot c \ -enable-kvm \ -smp 2 \ -name linuz \ -device virtio-vga,virgl=on,xres=1280,yres=720 \ -cpu host \ -device AC97 \ -m 2048 \ -display sdl,gl=on \ -drive file=/path/to/android/Android.img,if=virtio \ -object rng-random,id=rng0,filename=/dev/urandom \ -device virtio-rng-pci,rng=rng0 \ -device virtio-keyboard \ -boot menu=off \ -device virtio-tablet \ -machine type=q35 \ -serial mon:stdio \ -net nic -net user,hostfwd=tcp::4444-:5555

  • para usar adb use adb connect localhost:4444

  • si el traductor de brazos no se instala automáticamente haga este

instrucciones para instalar manualmente el puente nativo

  • Descargue este archivo( http://dl.Android-x86.org/houdini.php?v=9_y ) en tu vm.9 se refiere a la versión de Android si tienes una versión anterior cámbiala en consecuencia.o puedes comprobarlo aquí

  • cambiar el nombre del archivo de acuerdo a la versión de Android en mi caso houdini9_y.sfs.mover ese archivo a system/etc/ se puede hacer usando terminal o Root browser.

utilizando el tipo de terminal mv /sdcard/Download/houdini9_y.sfs /system/etc si no te sientes cómodo con este método, utiliza una aplicación de navegador Root.

  • ahora tiene que escribir en el emulador de terminal su (si te sale un aviso preguntando si quieres dar acceso de superusuario di que sí para siempre)
  • entonces escriba system/bin/enable_nativebridge
  • Es posible que obtengas algunos errores, pero supongo que es seguro ignorarlos (yo tuve dos errores, pero los traductores de brazos funcionaron).
  • Ir a la configuración androidx86-options habilitar puente nativo

Configuración de la red de grifos
Para una mejor integración de los huéspedes, utilizo una red de grifos.

sudo ip link add name br0 type bridge
sudo ip addr flush enp3s0
sudo ip link set enp3s0 master br0
sudo ip tuntap add mode tap name tap0 user yourusername
sudo ip link set tap0 master br0
sudo ip link set enp3s0 up
sudo ip link set tap0 up
sudo ip link set br0 up
sudo dhclient -v br0

sustituir enp3so con su interfaz de red.Utilice el siguiente comando to para lanzar el emulador

qemu-system-x86_64 -boot c \
    -enable-kvm \
    -smp 2 \
    -name linuz \
    -device virtio-vga,virgl=on,xres=1280,yres=720 \
    -cpu host \
    -device AC97 \
    -m 2048 \
    -display sdl,gl=on \
    -drive file=/path/to/imgfile,if=virtio \
    -object rng-random,id=rng0,filename=/dev/urandom \
    -device virtio-rng-pci,rng=rng0 \
    -device virtio-keyboard \
    -boot menu=off \
    -device virtio-tablet \
    -machine type=q35 \
    -serial mon:stdio \
    -netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no \
    -device virtio-net-pci,netdev=mynet0,mac=51:55:00:a1:11:32

0 votos

Buen tutorial, pero después de compilar y configurar siempre me sale este error > qemu-system-x86_64: -device virtio-vga,virgl=on,xres=1280,yres=720: > Propiedad 'virtio-vga.virgl' no encontrada" Estoy en Debian 11. Cuando omito el parámetro virgl se ejecuta, sin embargo no estoy seguro si con 3d accel. Gracias

0 votos

@masscream Prueba virtio-vga-gl,xres=1280,yres=720

0 votos

Muchas gracias Tuve que sustituir -device virtio-vga,virgl=on,xres=1280,yres=720 \\ con -device virtio-vga-gl,xres=1280,yres=720 \\ y funciona perfectamente, un rendimiento impresionante en Ubuntu 22.04 LTS / i5-6600 y AMD RX550. (Set 4 núcleos y 6 GB de RAM para Android).

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X