当前位置: 首页 > article >正文

在WSL2 Ubuntu 20.04上编译安装QEMU 6.2.0:一份详细的依赖清单与避坑指南

在WSL2 Ubuntu 20.04上编译安装QEMU 6.2.0一份详细的依赖清单与避坑指南对于需要在Windows环境下进行嵌入式或系统开发的工程师来说WSL2提供了一个近乎原生的Linux开发环境。而QEMU作为一款功能强大的开源模拟器能够模拟多种硬件架构是开发过程中不可或缺的工具。本文将深入探讨在WSL2 Ubuntu 20.04环境下从源码编译安装QEMU 6.2.0的全过程特别关注那些官方文档可能未提及的依赖问题和版本冲突。1. 环境准备与依赖安装在开始编译QEMU之前确保你的WSL2 Ubuntu 20.04环境已经正确配置。不同于普通的Ubuntu系统WSL2有其独特的特性需要考虑。首先更新系统包列表并升级现有软件包sudo apt update sudo apt upgrade -yQEMU编译需要大量的开发工具和库文件支持。以下是分类整理的依赖项清单及其作用说明依赖类别关键包名功能说明基础编译工具build-essential, autoconf, libtool提供gcc编译器、make工具和自动配置脚本支持核心库zlib1g-dev, libglib2.0-dev提供压缩功能和GLib核心库支持图形相关libpixman-1-dev, libjpeg-dev处理像素操作和JPEG图像支持网络协议libssl-dev, libgcrypt20-dev加密通信和SSL/TLS支持特殊功能libbrlapi-dev, libbluetooth-dev盲文显示和蓝牙设备支持注意WSL2环境下某些硬件相关功能可能受限如蓝牙支持可能无法正常工作。对于国内用户建议更换APT源以提高下载速度sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list2. 源码获取与加速方案官方QEMU源码可以通过多种方式获取但直接下载可能会遇到网络速度慢的问题。推荐方法一GitHub镜像克隆git clone --depth 1 -b v6.2.0 https://github.com/qemu/qemu.git cd qemu git submodule update --init --recursive推荐方法二国内镜像源下载wget https://mirrors.ustc.edu.cn/qemu/qemu-6.2.0.tar.xz tar xvf qemu-6.2.0.tar.xz cd qemu-6.2.0对于子模块下载慢的问题可以修改.gitmodules文件中的URL[submodule roms/edk2] path roms/edk2 url https://github.com.cnpmjs.org/tianocore/edk2.git3. 编译配置与优化技巧QEMU的编译配置选项非常丰富合理的配置可以显著提升使用体验。基本配置命令./configure --prefix/opt/qemu \ --enable-kvm \ --enable-virtfs \ --enable-system \ --enable-user针对WSL2环境的特殊考虑禁用不必要的前端如GTK、SDL明确指定目标架构如x86_64-softmmu启用调试符号以便问题排查性能优化建议make -j$(nproc) # 使用所有可用CPU核心进行编译编译过程中常见问题处理Python版本问题确保Python ≥ 3.6可通过update-alternatives设置默认版本Ninja构建工具缺失sudo apt install ninja-buildpkg-config路径问题导出export PKG_CONFIG_PATH/usr/share/pkgconfig4. 架构特定问题解决方案不同硬件架构的模拟可能需要额外的库文件支持。4.1 CSKY架构支持CSKY架构常见问题集中在libbrlapi库的版本兼容性上。解决方法如下检查缺失的库ldd qemu-system-cskyv2创建符号链接解决版本冲突sudo ln -s /usr/lib/x86_64-linux-gnu/libbrlapi.so.0.7.0 \ /usr/lib/x86_64-linux-gnu/libbrlapi.so.0.64.2 Xtensa架构支持对于Xtensa架构需要特别注意libpng的版本要求sudo add-apt-repository ppa:linuxuprising/libpng12 sudo apt update sudo apt install libpng12-dev其他可能需要安装的库sudo apt install libvdeplug-dev libsnappy-dev libspice-server-dev5. 安装与验证编译完成后进行安装sudo make install将QEMU添加到系统路径echo export PATH/opt/qemu/bin:$PATH ~/.bashrc source ~/.bashrc验证安装是否成功qemu-system-x86_64 --version测试运行一个简单的虚拟机qemu-system-x86_64 -m 1G -enable-kvm -cdrom ubuntu-20.04.iso6. 日常使用技巧与维护QEMU在WSL2中的一些实用技巧磁盘性能优化使用qcow2格式镜像并启用缓存qemu-img create -f qcow2 disk.qcow2 20G网络配置使用TAP设备或端口转发-netdev user,idnet0,hostfwdtcp::2222-:22图形加速虽然WSL2不支持硬件加速但可以启用VirGL渲染-device virtio-vga,virglon定期更新关注QEMU的安全公告并及时更新版本对于长期使用QEMU的开发者建议设置以下别名简化常用命令alias qemu-kvmqemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 4G alias qemu-armqemu-system-arm -machine virt -cpu cortex-a15 -m 1G

相关文章:

在WSL2 Ubuntu 20.04上编译安装QEMU 6.2.0:一份详细的依赖清单与避坑指南

在WSL2 Ubuntu 20.04上编译安装QEMU 6.2.0:一份详细的依赖清单与避坑指南 对于需要在Windows环境下进行嵌入式或系统开发的工程师来说,WSL2提供了一个近乎原生的Linux开发环境。而QEMU作为一款功能强大的开源模拟器,能够模拟多种硬件架构&…...

避坑指南:Mac+PyCharm安装PyQt5-tools时,解决‘pyuic5路径找不到’和‘Qt Designer打不开’的常见问题

Mac开发者必看:PyQt5环境配置疑难问题全解析 在Mac平台上使用PyCharm进行Python GUI开发时,PyQt5无疑是最受欢迎的选择之一。然而,从安装到配置的完整流程中,开发者常常会遇到各种"坑",特别是对于刚接触Qt框…...

告别Appium!用Python的uiautomator2+weditor 0.6.4搞定安卓自动化测试(附编码避坑指南)

轻量化安卓自动化测试:Python uiautomator2与weditor实战指南 在移动应用测试领域,Appium曾长期占据主导地位,但其复杂的配置环境让不少开发者望而却步。如今,基于Python的uiautomator2与weditor组合提供了一种更轻量、更高效的替…...

Playwright爬虫进阶:如何用`page.route`拦截请求、模拟登录并高效监听API数据?

Playwright爬虫进阶:如何用page.route拦截请求、模拟登录并高效监听API数据? 现代Web应用越来越依赖动态数据加载和复杂的反爬机制,传统的爬虫技术往往难以应对。Playwright作为一款强大的浏览器自动化工具,提供了丰富的API来模拟…...

C++如何实现YAML配置文件的自动备份_文件流操作用法【实战】

YAML配置备份必须用std::filesystem::copy并指定overwrite_existing选项,配合exists预检和try/catch捕获filesystem_error;命名需含时间戳与原扩展名,路径用std::filesystem::path,逻辑须独立于YAML加载。YAML配置文件备份必须用s…...

SQL中如何获取所有列的数据:SELECT -星号用法与性能影响

能用但多数时候不该用——它会解析全部列元数据、传输冗余字段、阻碍执行计划优化,易引发列名冲突、ORM映射错乱等问题,仅限调试或结构极小稳定时使用。SELECT * 在真实查询中到底能不能用能用,但多数时候不该用——不是语法错误,…...

告别Win10黑屏卡顿:深度排查Explorer.exe高CPU占用与启动失败的关联问题

深度解析Windows 10黑屏与Explorer高CPU占用的关联排查指南 你是否经历过这样的场景:Windows 10系统运行越来越慢,任务管理器显示Explorer.exe进程CPU占用率居高不下,最终在某次重启后直接陷入黑屏状态?这看似两个独立的问题——性…...

如何保证MongoDB文档的数据质量_JSON Schema验证规则配置

MongoDB 5.0 启用 JSON Schema 验证需显式配置 validator、validationLevel(推荐 strict)和 validationAction(建议先设 warn);schema 不自动映射 ObjectId/Date,需正则或 format 校验;嵌套字段…...

Navicat导出Excel表格数据为空如何解决_过滤条件与权限排查

...

微信消息自动转发终极指南:如何实现多群消息智能同步的完整教程

微信消息自动转发终极指南:如何实现多群消息智能同步的完整教程 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 你是否曾经因为需要在多个微信群之间反复转发相同的信息而感到疲惫…...

浪潮NF5280M6服务器上ESXi 6.7双网卡聚合实战:从交换机LACP到ESXi IP哈希的完整避坑指南

浪潮NF5280M6服务器ESXi 6.7双网卡聚合实战:从交换机配置到主机调优的全链路解析 当两台Intel X710光纤网卡在浪潮NF5280M6服务器机箱里闪烁绿灯时,大多数运维工程师可能不会想到,这个看似标准的硬件组合会在LACP聚合配置中引发持续数小时的网…...

别再只改颜色了!用ECharts GL给你的3D地图加上背景图和地表纹理(Vue3实战)

别再只改颜色了!用ECharts GL给你的3D地图加上背景图和地表纹理(Vue3实战) 当3D地图成为数据可视化的标配,许多开发者仍停留在基础配色调整阶段。实际上,通过ECharts GL的材质系统与环境配置,完全可以让地图…...

微服务 第四天

初识MQ 同步...

别再暴力搜索了!用Python实现Manacher算法,轻松搞定LeetCode 5(最长回文子串)

从暴力搜索到Manacher算法:Python实战最长回文子串 在算法竞赛和面试中,字符串处理问题总是高频出现。LeetCode第5题"最长回文子串"就是一个经典案例,它要求我们在给定字符串中找到最长的回文子串。回文串是指正读反读都相同的字符…...

告别mstsc!用C# WinForm打造一个专属的远程桌面管理工具(支持Win11)

用C# WinForm构建企业级远程桌面管理工具 每次打开Windows自带的远程桌面连接工具mstsc,面对那个简陋的界面和每次都要重复输入的服务器信息,作为.NET开发者的你是否感到效率低下?本文将带你从零开始,用C# WinForm打造一个功能强大…...

企业大模型私有化部署完全指南:数据不出门,智能照样顶

别再让核心数据裸奔了!三步搭建你自己的AI能力中心,成本不到云服务的一半引言:为什么2026年每家企业都该有个“私人大模型”?你有没有遇到过这种情况:想让AI帮忙分析公司上季度的销售数据,但又怕把Excel上传…...

魔兽争霸3终极优化方案:用WarcraftHelper解决现代系统兼容性问题

魔兽争霸3终极优化方案:用WarcraftHelper解决现代系统兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电…...

别再只会用`uvm_object_utils`了!拆解宏定义,搞懂UVM工厂注册的底层逻辑

深入拆解UVM工厂注册机制:从宏定义到对象创建的全链路解析 在芯片验证领域,UVM(Universal Verification Methodology)作为行业标准方法论,其工厂模式(Factory Pattern)的设计精妙程度常常被使用…...

从助听器到嫦娥四号:聊聊通用技术里那些‘活’的考点,帮你轻松搞定高考选择题

从助听器到嫦娥四号:技术考点背后的思维跃迁 高考通用技术科目中,"技术的性质"这一考点常常让考生感到抽象难懂。但如果我们把课本上的六个性质——目的性、创新性、综合性、两面性、专利性和相关性——与现代科技发展的鲜活案例结合起来&…...

避开中介效应陷阱:经济学论文机制检验的另类思路与实操解析

经济学机制检验的突围之路:当中介效应模型不再适用时如何破局 经济学研究中对因果关系的执着追求,使得机制检验成为论文中最令人辗转反侧的部分。当审稿人要求"请补充机制分析"时,许多研究者会条件反射般地打开中介效应模型的Stata…...

企业信用查询怎么查?避坑指南+实操步骤

企业信用查询怎么查?最直接的方式是通过官方渠道或第三方平台,但很多人不知道,错误的查询方法可能会遗漏关键风险。根据2026年行业数据,68%的用户因信息分散导致风险识别不全。那么,如何高效、全面地查询企业信用呢&am…...

保姆级图解:用Wireshark抓包实战,一步步拆解PCIe链路训练(LTSSM)的完整握手过程

保姆级图解:用Wireshark抓包实战,一步步拆解PCIe链路训练(LTSSM)的完整握手过程 当一块全新的PCIe设备插入主板后,系统却始终无法识别——这种场景对硬件工程师而言再熟悉不过。此时,协议分析仪上跳动的TS1…...

你的项目电量测量方案选对了吗?从手机充电到工业电池包,聊聊库仑计的那些“坑”

你的项目电量测量方案选对了吗?从手机充电到工业电池包,聊聊库仑计的那些“坑” 当手机电量显示从20%骤降到5%时,我们往往会抱怨电池不耐用。但很少有人思考:这个数字背后究竟是如何计算出来的?在消费电子领域&#xf…...

Kandinsky-5.0-I2V-Lite-5s GPU显存策略详解:offload机制在24GB卡上的工程实现

Kandinsky-5.0-I2V-Lite-5s GPU显存策略详解:offload机制在24GB卡上的工程实现 1. 模型概述与技术背景 Kandinsky-5.0-I2V-Lite-5s是一款轻量级图生视频模型,能够将单张输入图片转换为约5秒、24fps的短视频。与完整版相比,Lite版本通过模型…...

MinerU 系列教程 第十八课:Magic Model 转换层详解

MinerU 系列教程 第十八篇 本篇教程作为 模块五:原理篇 - 数据流与中间格式 的第二课,将深入剖析 MinerU 的 Magic Model 转换层。每种后端都有一个专属的 Magic Model,负责将各自的原始输出标准化为上一课学习的 Middle JSON 块结构。本课将揭示四个版本的 Magic Model 在块…...

生物质锅炉自动上料控制系统功率MOSFET选型方案——高效、可靠与长寿命驱动系统设计指南

生物质锅炉自动上料控制系统作为锅炉高效稳定运行的核心,其驱动电路的性能直接决定了上料的精确性、响应速度及系统整体可靠性。功率MOSFET作为电机驱动、电磁阀控制及电源管理的核心开关器件,其选型需应对高粉尘、温度波动及连续作业的严苛工业环境。本…...

晶体管工作原理与半导体技术解析

1. 晶体管工作原理与半导体技术解析1947年圣诞节前夕,贝尔实验室的两位物理学家约翰巴丁和沃尔特布拉顿在锗晶体表面放置了两个相距仅0.05毫米的金属触点,意外发现这个简单装置能够放大电信号。这个被称为"点接触晶体管"的发明,彻底…...

面向高端汽车暖风系统控制器的功率MOSFET选型策略与器件适配手册

随着汽车电气化与智能化进程加速,高端汽车暖风系统(HVAC)正朝着高能效、高功率密度、高可靠性及智能热管理方向演进。其核心控制器需精准驱动PTC加热器、高效水泵、散热风扇及风门电机等多元负载,功率MOSFET作为电能转换与分配的执…...

多线程缓存性能优化与内存子系统深度解析

1. 多线程缓存性能的本质矛盾现代处理器设计中,缓存系统对性能的影响远超大多数程序员的想象。当我们把视线投向多线程环境时,缓存行为会呈现出一些反直觉的特性。以典型的Intel Core 2 Duo处理器为例,其每个核心拥有32KB L1数据缓存和4MB共享…...

PDF与电子表格智能同步工具的技术实现与优化

1. 项目概述:PDF与电子表格的智能同步工具PDFMerge是一个持续开发中的工具项目,旨在解决PDF表单与电子表格(如Google Sheets)之间的数据同步难题。作为一名长期与表单打交道的开发者,我深知手动在PDF和电子表格之间来回…...