Instale el sistema de brazo win10 a través de qemu bajo win11

instalar qemu 

QEMU para Windows: instaladores (64 bits)

 Elegí la última versión de 20221230, la instalé en c:\qemu7\ y agregué esta ruta a la variable de entorno

 Luego crea una ruta en otro disco, el nombre es aleatorio, no tiene chino y espacios, lo pongo debajo de e:\qemu_rom

Luego ejecute el siguiente comando en este directorio para generar una imagen de disco de 30G

qemu-img.exe create win10arm.img 30G

 También puede crear un VHD a través de Mi PC-"Administración-"Administración de equipos-"Administración de discos-"Más operaciones-". La opción debe fijarse como se muestra en la figura, de lo contrario el reconocimiento no será exitoso.

Descargue los tres archivos de Linaro UEFI y el disco virtual con el controlador de disco virtual desde la siguiente dirección.

Enlace: https://pan.baidu.com/s/1lba9kdN8QCiTtfYJtFGt7Q;

Código de extracción: 3w1h

Instale arm virtual machine_Windows 10 ARM64 QEMU virtual machine installation steps_Daughter slave's RPG blog-CSDN blog 1, descargue el software de la máquina virtual QEMU, use la siguiente versión e instálela en cualquier directorio de la computadora. https://qemu.weilnetz.de/w64/2017/qemu-w64-setup-20171217.exehttps://qemu.weilnetz.de/w32/2017/qemu-w32-setup-20171217.exe2, descargar WINDOWS 10 ARM64 La imagen se obtiene de la siguiente dirección. Una vez completada la descarga, mueva la imagen a Q... https://blog.csdn.net/weixin_36410293/article/details/112570169

Descarga la versión de win10 arm

Proyecto de generación de UUP (plataforma de actualización unificada) (v2.4.18) [por @rgadguard y lo que sea127] Este proyecto lo ayuda a descargar archivos UUP o descargar y crear una imagen ISO con un solo clic. https://uup.rg-adguard.net / Elija la versión final, y luego elija el brazo 1803 para la versión de Windows. Si elige una versión alta, es posible que no pueda instalarla. Luego, elija chino, profesión, y finalmente elija descargar ISO, y luego se generará un script cmd a la derecha, descargue el script y colóquelo localmente, preste atención para no tener espacios ni chino en la ruta, y luego el archivo iso se generará automáticamente aproximadamente 1-2 horas después de ejecutarse (dependiendo de la velocidad de la red)

 Coloque la rom anterior, el disco virtual y Linaro UEFI y el disco virtual con el controlador de disco virtual en una carpeta

 Luego cree un nuevo archivo por lotes llamado win10.cmd

qemu-system-aarch64.exe ^
-M virt ^
-cpu cortex-a57 ^
-smp 4 ^
-m 4G ^
-pflash QEMU_EFI.img ^
-pflash QEMU_VARS.img ^
-device VGA ^
-device nec-usb-xhci ^
-device usb-kbd ^
-device usb-mouse ^
-device usb-storage,drive=install ^
-drive if=none,id=install,format=raw,media=cdrom,file=win10.ISO ^
-device usb-storage,drive=drivers ^
-drive if=none,id=drivers,readonly=on,file=Drivers.vhdx ^
-device virtio-blk,drive=system ^
-drive if=none,id=system,format=raw,file=system.img ^
nombre nota
qemu-sistema-aarch64.exe Un archivo binario que proporciona un proceso de máquina virtual que simula la arquitectura aarch64
-M virtud Qué tipo de servidor se simula, generalmente elegimos virt, seleccionará automáticamente la versión más alta de virt
-cpu cortex-a57 Qué tipo de CPU se simula, entre los cuales cortex-a53\a57\a72 son todos conjuntos de instrucciones ARMv8, todos son falsos y la velocidad no será mucho peor
-mp4 4 vCPU
-m 4G Asigne memoria 4G, de hecho, 2G es suficiente para ver el efecto
-dispositivo xxx Agregue un dispositivo, los parámetros se pueden repetir
-conducir Agregue un controlador, los parámetros se pueden repetir

 Para obtener descripciones detalladas de los parámetros, consulte el siguiente artículo Opciones de parámetros comunes de qemu Descripción_Quard_D's Blog-CSDN Blog_qemu Parámetros Explicación detallada de las opciones de parámetros comunes de qemu En mi serie de blogs "Construir un sistema Linux integrado desde 0 basado en qemu-riscv" El linux integrado El sistema se construye paso a paso utilizando el proyecto qemu, y existen muchas y complicadas opciones de parámetros de inicio para qemu en run.sh, por lo que este artículo las resumirá. Tipo de dispositivo (-máquina/-M) En qemu, los simuladores con diferentes conjuntos de instrucciones se compilarán en diferentes archivos ejecutables, como: qemu-system-x86_64/qemu-system-aarch64/qemu-system-arm/qemu -system- mips/qemu-system https://blog.csdn.net/weixin_39871788/article/details/123250595?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167271407416800182169237%2522%252C%2522scm%2522%253A %252220140713.130102334. .%2522%257D&request_id=167271407416800182169237&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-2-123250595-null-null.142%5Ev68%5Ewechat_v2,201%5Ev4%5Eadd_ask ,213% 5Ev2%5Et3_control2&utm_term=qemu%20-M%20virt&spm=1018.2226.3001.4187

 Haga clic en Examinar, seleccione la unidad c, haga clic en Siguiente y se instalará automáticamente

 

 Seleccione el disco duro 20G como nuestro disco de instalación y haga clic en el siguiente paso

Entonces comenzó la larga espera 

 

La instalación es casi exitosa y siento que Microsoft ha avanzado mucho en términos de texto.

 

Han pasado casi 3 horas hasta ahora 

 

Finalmente, el sistema se instaló con éxito, pero este sistema no puede acceder a Internet y la aplicación que quiero probar necesita estar conectada a Internet, por lo que necesito configurar la red nuevamente.

  • Descargar el CD del controlador VirtIO ARM64

Haga clic aquí https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso para descargar el último CD del controlador VirtIO ARM64, cámbiele el nombre driver.iso y cópielo en Qemu Dentro del directorio de instalación

Debido a un problema con la firma del controlador de red, después de instalar el sistema, ejecute el símbolo del sistema como administrador y ejecute el comando:

bcdedit /set testsigning on

Reinicie el sistema después de ejecutarlo y luego instale el controlador de red en la carpeta \NetKVM\w10\ARM64 en el CD del controlador VirtIO

Luego, a través del siguiente artículo, instale una tarjeta de red virtual, agregue un puente de red al sistema y podrá conectarse

[Combate real UEFI] Configuración de red QEMU de la versión de Windows_blog de jiangwei0512-CSDN blog_qemu red de Windows [Combate real UEFI] Configuración de red QEMU de la versión de Windows. https://blog.csdn.net/jiangwei0512/article/details/122791901?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167274199216782428697606%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.% 2522%257d & request_id = 167274199216782428697606 & biz_id = 0 & utm_medium = distributibute.pc_search_result.none-task-blog-2 ~ all ~ first_rank_ecpm_v1 ~ rast_v31_ecppp-3-12279190101901-nreull 5Et3_control2&utm_term=win10%20qemu%20%E7%BD%91%E5%8D%A1%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187 Los siguientes son todos los archivos en ejecución

qemu-system-aarch64.exe ^
-M virt ^
-cpu cortex-a72 ^
-smp 4,cores=4,threads=1,sockets=1 ^
-m 4G ^
-pflash QEMU_EFI.img ^
-pflash QEMU_VARS.img ^
-device VGA ^
-device nec-usb-xhci ^
-device usb-kbd ^
-device usb-mouse ^
-device usb-storage,drive=drivers ^
-drive if=none,id=drivers,readonly=on,file=drivers.vhdx ^
-device virtio-blk,drive=system ^
-drive if=none,id=system,format=raw,file=win10arm.img ^
-device usb-storage,drive=netdriver ^
-drive if=none,id=netdriver,format=raw,media=cdrom,file=virtio-win-0.1.225.iso ^
-net nic,model=virtio ^
-net tap,ifname=tap0 ^

Sin embargo, la velocidad de ejecución de arm win10 instalado bajo x64 win11 es muy lenta para hacer un bucle. Tarda 1,7 segundos fuera de la máquina virtual y 51 segundos dentro de la máquina virtual, lo que es 30 veces peor. Si usa la versión x86 en el máquina virtual, será aún más lento. más de 100 segundos

// main.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#include <math.h>
#include <time.h>
int main(int argc, char const* argv[]) {
     
    clock_t start, end;

    start = clock(); 
    printf("begin program\n");
    double v = 0;
    for (unsigned long i = 0; i < 10000000; i++)
    {
        v += 2 * sin(i);
    }
    end = clock(); 
    char infor[256];
    sprintf(infor, "result=%0.3lf , time cost  %ld \r\n", v,  (end - start));
    printf("%s", infor);

    printf("finished!\n");
    getchar();
    return 0;
}

Al ejecutar el programa exe compilado con vs2019, se le indicará que falta vcruntime140.dll.

La primera:

En general, puede configurar los siguientes dos elementos:

1. Proyecto -> Propiedades de configuración -> General -> Uso de MFC: use MFC en la biblioteca estática.

2. Proyecto -> Propiedades de configuración -> C/C++ -> Generación de código -> Biblioteca en tiempo de ejecución: Seleccione  depuración de subprocesos múltiples (/MT).

Al compilar, seleccione release, win32 en el cuadro desplegable 

Después de ejecutar el esquema de compilación y generación, busque el archivo .exe en la carpeta de lanzamiento en el directorio del proyecto, y luego se puede ejecutar y usar en otras computadoras.

 Luego ejecute la versión arm y la versión win32, que toman 5412ms y 14971ms respectivamente. En el sistema win10 arm, solo se admiten las aplicaciones x86 y arm, y las aplicaciones x64 no son compatibles. Entre ellas, el exe de arm es 3 veces más rápido que el aplicación de x86 (solo para este programa).

Versión del programa Tiempo de ejecución (ms)
brazo64        5412
x86 14971

 

Luego coloque el programa fuera de mi computadora portátil (i9 12900h, 32g, 2T ssd) y ejecútelo

Versión del programa Tiempo de ejecución (ms)
x64         95
x86 102

 Así es, la eficiencia operativa de win10 virtualizado en qemu es casi 50 veces más lenta que en el exterior, puede haber discrepancias, pero debería ser más de 10 veces la pérdida de eficiencia.

Entonces ponga esta aplicación en Huawei matebook E go

  • Snapdragon® 8cx Gen 3 3.0G

  • 16G +512G
  • win11 casa

 

El resultado de ejecutar el programa anterior

Versión del programa Tiempo de ejecución (ms)
brazo64 364
ganar32 645
x64 425

 

Finalmente, la eficiencia de qemu para simular arm win10 es más de 10 veces más lenta que la del native arm system.Si es posible, pruebe la aplicación en el native arm system.

La versión WINDOWS 10 ARM64 y la versión WINDOWS 10 X86/X64 no tienen diferencias en las funciones de la interfaz, excepto que la versión ARM64 admite la ejecución de aplicaciones X86-32-bit en forma de emulador, además de admitir la versión ARM de las aplicaciones de Windows, dos versiones del sistema, el primero es compatible con la arquitectura de conjunto de instrucciones reducidas del procesador ARM, que admite la arquitectura de conjunto de instrucciones complejas del procesador X86-64.

La versión win11 arm es compatible con aplicaciones que ejecutan instrucciones x86/x64/arm, pero el controlador debe ser arm64.Si la aplicación x64 no tiene una capa de controlador, puede ejecutarse normalmente.

Supongo que te gusta

Origin blog.csdn.net/babytiger/article/details/128448765
Recomendado
Clasificación