win11下通过qemu 安装win10 arm系统

news2024/9/24 16:31:56

安装qemu 

QEMU for Windows – Installers (64 bit)

 我选了最新的20221230的版本,我将其安装在c:\qemu7\下,另外在环境变量中加入这个路径

 然后在别的盘上建立一个路径,名称随意,不要有中文和空格即可,我放在了e:\qemu_rom下

然后在这个目录下运行下面的命令生成一个30G大小的磁盘镜像

qemu-img.exe create win10arm.img 30G

 也可以通过我的电脑 -》管理-》计算机管理-》磁盘管理-》更多操作-》创建VHD,选项如图所示一定要选固定大小,不然识别不成功。

下载Linaro UEFI与带虚拟磁盘驱动的虚拟磁盘三个文件,从以下地址获得。

链接:https://pan.baidu.com/s/1lba9kdN8QCiTtfYJtFGt7Q ;

提取码:3w1h

安装arm虚拟机_Windows 10 ARM64 QEMU虚拟机安装步骤_女儿奴的RPG的博客-CSDN博客1,下载QEMU虚拟机软件,使用以下版本,并安装到计算机任意目录之下。https://qemu.weilnetz.de/w64/2017/qemu-w64-setup-20171217.exehttps://qemu.weilnetz.de/w32/2017/qemu-w32-setup-20171217.exe2,下载WINDOWS 10 ARM64镜像,从以下地址获取,下载完成后,把镜像移入Q...https://blog.csdn.net/weixin_36410293/article/details/112570169

下载win10 arm的版本

UUP (Unified Update Platform) Generation Project (v2.4.18) [by @rgadguard & whatever127]This project helps you just download UUP files or download and create an ISO image in one click.https://uup.rg-adguard.net/选择finalversion ,然后windows  版本选1803 arm,如果选高了可能安装不上,然后选中文 ,profession,最后一个选dowload ISO,然后在右边会生成一个cmd的脚本,把这个脚本下载,放到本地,注意路径中不要有空格和中文,然后运行后大约1-2个小时就会自动生成iso的文件了(视网速而定)

 将前面的rom,虚拟盘,以及Linaro UEFI与带虚拟磁盘驱动的虚拟磁盘三个文件都放到一个文件夹下

 然后新建立一个叫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 ^
名称注释
qemu-system-aarch64.exe二进制文件,提供模拟aarch64架构的虚拟机进程
-M virt模拟成什么服务器,我们一般选择virt就可以了,他会自动选择最高版本的virt
-cpu cortex-a57模拟成什么CPU,其中cortex-a53\a57\a72都是ARMv8指令集的,都是假的,速度不会差多少
-smp 44个vCPU
-m 4G分配内存4G,实际上看效果2G就够了
-device xxx添加一个设备,参数可重复
-drive添加一个驱动器,参数可重复

 详细的参数说明请参考下面的文章qemu常用参数选项说明_Quard_D的博客-CSDN博客_qemu 参数详解qemu常用参数选项说明在我的系列博客《基于qemu-riscv从0开始构建嵌入式linux系统》中使用qemu项目一步步构造搭建了嵌入式linux系统,而其中在run.sh中qemu的启动参数选项非常多且繁杂,因此本文将对其进行归纳整理。设备类型(-machine/-M)在qemu中,不同的指令集的模拟器会编译成不同的可执行文件,诸如:qemu-system-x86_64/qemu-system-aarch64/qemu-system-arm/qemu-system-mips/qemu-systemhttps://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

 点击浏览,选中c盘,点击下一步,就会自动安装了

 

 选 中20G的硬盘做为我们的安装盘占击下一步

然后就开始漫长的等待了 

 

安装快成功的样子 ,感觉文字方面微软进步不小

 

到目前为止已经过去了快3个小时了 

 

最后系统安装成功,但是这个系统是无法上网的,而我要测试的应用要连网,于是又要把网配一下

  • 下载 VirtIO ARM64 驱动光盘

点此https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso下载最新的 VirtIO ARM64 驱动光盘,将其改名为 driver.iso 并复制到 Qemu 安装目录内

由于网络驱动程序的签名存在问题,安装系统后,以管理员身份运行命令提示符,运行命令:

bcdedit /set testsigning on

运行后重启系统,再安装 VirtIO 驱动光盘中 \NetKVM\w10\ARM64 文件夹下的网络驱动程序

然后通过下面文章,安个虚拟网卡,在系统中加个网桥,就可以上网了

【UEFI实战】Windows版本QEMU网络配置_jiangwei0512的博客-CSDN博客_qemu windows 网络【UEFI实战】Windows版本QEMU网络配置。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=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-3-122791901-null-null.142%5Ev68%5Ewechat_v2,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_control2&utm_term=win10%20qemu%20%E7%BD%91%E5%8D%A1%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187下面是全部运行的文件

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 ^

但是这个x64 win11下安装的arm win10 运行速度之慢做一个循环,在虚拟机外用时1.7秒,在虚拟机内用时51秒,差了30倍,如果在虚拟机中使用x86的版本会更慢要100多秒

// 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;
}

用vs2019编译出的exe程序,运行会提示缺少vcruntime140.dll,

第一种:

一般可以配置一下两项:

1.项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC。

2.项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MT)。

编译时,在下拉框中选择的是release,win32 

执行编译生成方案之后,在该工程目录下的release文件夹中,找到这个.exe文件,则可以在其它电脑上运行使用。

 然后执行arm 版本和win32版本,分别耗时5412ms ,14971ms ,在win10 arm系统中仅支持x86与arm应用,对x64的应用不支持,其中arm的exe比x86的应用快3倍(仅针对本程序)。

程序版本运行耗时(ms)
arm64       5412
x8614971

 

然后把程序放在我笔记本(i9 12900h ,32g,2T ssd)外面运行一下

程序版本运行耗时(ms)
x64        95
x86102

 是的没错,在qemu中虚拟出的win10运行效率比外面慢了近50倍,可能有出入但应该是10倍以上的效率损失。

然后再把这个应用放在华为matebook E go

  • Snapdragon® 8cx Gen 3 3.0G

  • 16G +512G
  • win11 home

 

上面的程序运行结果

程序版本运行耗时(ms)
arm64364
win32645
x64425

 

最后,qemu模拟arm win10的这个效率比arm原生的系统也慢了10多倍,如果有条件还是在原生的arm系统上测试应用吧。

WINDOWS 10 ARM64版本与WINDOWS 10 X86/X64版本之前界面功能没任何差别,只是ARM64版除支持ARM版Windows应用外还能通过模拟器形式支持运行X86-32位应用程序,两个系统版本,前者支援ARM处理器的精简指令集架构,后者支援X86-64处理器的复杂指令集架构。

而win11 arm版本可以兼容运行x86/x64/arm指令的应用,但是涉及到驱动程序必须是arm64的,x64如果应用没有驱动层的可以完全正常运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑蓝屏提示错误代码0X000000B4怎么办?

电脑蓝屏可以说是Windows的一个常见问题了。蓝屏状况数不胜数&#xff0c;关键还得看是何终止代码。 如果电脑蓝屏&#xff0c;提示错误代码0X000000B4是什么意思&#xff1f;这是由于Windows不能启动显卡驱动&#xff0c;从而无法进入图形界面。 蓝屏错误0X000000B4可能由驱…

docker搭建redis集群(Cluster版三主三从)

docker搭建redis集群(Cluster版三主三从编写脚步建立配置redis的配置文件启动六个redis服务创建cluster集群测试集群的高可用编写脚步建立配置redis的配置文件 建立配置文件脚本 vim redis.shfor port in $(seq 1 6); \ do \ mkdir -p /volumn/redis/node-${port}/conf touch…

怎么修复老照片?这三个修复方法让你轻松学会

大家在翻看以前的照片时&#xff0c;有没有发现有一些照片的颜色泛黄&#xff0c;内容也变得有些模糊不清了&#xff0c;遇到这种情况应该怎么办呢&#xff1f;不知道的小伙伴也不要着急&#xff0c;今天我就给大家分享几个模糊老照片修复教程&#xff0c;教会大家如何修复老照…

一直没明白的 HTTPS,今天必须让你懂了~

大家第一次接触 HTTPS 协议的时候是不是和我一样&#xff0c;非常困惑。 这玩意概念又多又繁琐。尤其是里面的公钥私钥啥的。 当时就特别想知道&#xff0c;为什么用公钥加密却不能用公钥解密&#xff1f; 看完这篇文章你会弄明白&#xff0c;同时还会解锁很多HTTPS里的细节…

1.所有被new出来的实例都是存放在堆里的吗?Android面经

问题&#xff1a; 所有被new出来的实例都是存放在堆里的吗&#xff1f; 相关知识点&#xff1a; 堆和栈、标量替换、栈上分配、逃逸分析 思考&#xff1a; 首先&#xff0c;这样问了&#xff0c;答案肯定是不是所有new出来的实例都存放在堆里&#xff0c;不然下面没法继续问了…

MODBUS转PROFINET网关在冷水机项目中应用

在电镀行业中&#xff0c;需要频繁用到冷水机&#xff0c;电镀产品在焊接过程中会产生大量的热量&#xff0c;这些热量若不及时散除&#xff0c;则有可能会导致待加工的电镀产品发生大变形&#xff0c;本案例的目的是通过微硬创新MODBUSRTU转PROFINET网关连接冷水机和PLC&#…

安卓玩机搞机技巧综合资源-----修复基带 改串码 基带qcn 改相关参数 终结贴

有需要了解这方面常识的友友梦可以先参阅我这几个帖子 请点击跳转 基带qcn的备份与写入相关 格机 nv报错 高通联机修改IMEI等参数的相关解析 关于高通QPST平台功能和选项的一些简单说明 基带qcn的备份与写入相关 格机 nv报错 以上几个帖子可以初步了解基带 串码等参数方面…

面试官:如何用Excel进行预测分析?这操作绝了!

【面试题】一个社交APP, 它的新增用户次日留存、7日留存、30日留存分别是52%、25%、14%。请模拟出来&#xff0c;每天如果日新增6万用户&#xff0c;那么第30天&#xff0c;它的日活数会达到多少&#xff1f;请使用Excel进行分析。【分析思路】第1日(次日)留存用户数第1日新增用…

筛选用户权限子集记录

【问题】Is there a way to use the $map operator in a regular Mongo document query (or aggregate \$match which I believe is the same thing).What I’m trying to do is thus: Given an set of sets, return the document if any of the sets is a subset of a paramet…

SpringBoot+VUE前后端分离项目学习笔记 - 【12 Vue使用路由】

整体代码结构 Manage.vue HomeView.vue改名为Manage.vue,用以管理其他view页面【通过import 】 <template><el-container style"min-height: 100vh"><el-aside :width"sideWidth px" style"box-shadow: 2px 0 6px rgb(0 21 41 / 3…

年终盘点:元宇宙产业委多项成果荣登元宇宙行业影响力榜单

在经过了2021年元宇宙概念落地和普及后&#xff0c;2022年成为元宇宙相关产业井喷式发展的一年。元宇宙产业委在2022年多项成果荣登行业影响力榜单。 2021-2022元宇宙科技传播图书影响力榜发布&#xff0c;元宇宙产业委好书上榜 2022年9月&#xff0c;两办印发《关于新时代进一…

Internet Download Manager2023最新永久版下载及功能介绍

提到下载工具&#xff0c;大多数国人映入脑海的或许是迅雷。没错&#xff0c;当今随着互联网的迅猛发展&#xff0c;不少早期积累大量用户的国内外下载工具尽显疲态&#xff0c;止步不前&#xff0c;纷纷掉队&#xff0c;如网络快车、FDM、脱兔等等。一款名叫Internet Download…

Anaconda(python)安装教程以及创建新环境

文章目录一. Anaconda简介二. Anacoda安装1. Anacondad下载2. 安装方式三.通过conda创建新的环境四.conda常用命令一. Anaconda简介 Anaconda介绍&#xff1a;开源的Python发行版本。Anaconda指的是一个开源的Python发行版本&#xff0c;其包含了conda、Python等180多个科学包…

make_shared与new

假设有这么个类&#xff1a; class A {private:int b;public:A(int c):b(c) { cout << "call constructor..." << endl;}~A() { cout << "call destructor..." << endl;}int getValue() { return b;} }; 当创建指向 A 对象的智能…

【测绘程序设计】——附合导线近似平差

附合导线(Connecting Traverse,CT)近似平差是测绘专业九大核心专业基础课——《数字地形测量学》中的重点内容,其程序设计也是测绘学子必修的课程设计之一。本文分享了测绘程序设计——附合导线近似平差(C++/MFC版),相关源代码(完整工程,包含测试数据)及使用示例(结果…

CLion开发环境的完全解析(QT开发?STM32?顺便速通cmake

文章目录下载与安装主题推荐编辑器与clang-format设置鼠标滚轮改变字体大小clang-format的使用我的 .clang-format 配置编译工具链设置编译工具链的添加与解释cmake配置项的添加与解释cmake的使用与实战常用的cmake变量&#xff08;入门&#xff09;常用的cmake命令&#xff08…

融合通信系统建设建议(华脉智联内参一)

各行业融合通信系统建设建议 让通信融合信息无阻 题记&#xff1a;目前各个行业都已建设了视频监控系统、内部电话系统、无线对讲机系统、公共广播系统、会场音频系统、视频会议系统等。这些通信系统各自解决不同的用户需求&#xff0c;随着技术的发展&#xff0c;以及融合通信…

腾讯安全连续三年列为Gartner在线反欺诈市场指南全球代表厂商

近日&#xff0c;全球研究机构Gartner发布了2022《在线反欺诈市场指南》&#xff08;Market Guide for Online Fraud Detection&#xff09;。腾讯安全凭借天御&#xff08;TenDI&#xff09;金融风控被列为全球代表性厂商&#xff0c;这也是腾讯安全连续第三次被列入该报告。随…

洛谷千题详解 | P1031 [NOIP2002 提高组] 均分纸牌【C/C++、pascal、Java语言】

博主主页&#xff1a;Yu仙笙 专栏地址&#xff1a;洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析&#xff1a; C源码&#xff1a; pascal源码&#xff1a; pascal源码2&#xff1a; Java源码&#xff1a; ------------------------------------------------…

很穷的top2农村男博士要不要嫁?

这个问题最近在知乎上面很火&#xff0c;经常能刷到&#xff0c;具体背景如下&#xff1a;我自己家也是农村的&#xff0c;家里比较穷&#xff0c;我就读的学校肯定比不上top2&#xff0c;但也还不错&#xff0c;是个C9&#xff0c;所以这个问题想和大家简单聊一下我的看法。知…