如何在QEMU社区提Bug

news2025/5/26 10:39:41

当在编译及使用QEMU的过程中发现问题又不能自行解决时,可以去QEMU官网提Bug。本文以笔者实际遇到的问题为例,讲解提交QEMU Bug的完整过程。

1. 访问QEMU主页

QEMU官网主页地址为:https://www.qemu.org/

页面如下:

2. 跳转至CONTRIBUTE页面

点击QEMU官网主页右上角的“CONTRIBUTE”按钮,跳转至CONTRIBUTE页面。如下图所示:

3. 跳转至Issue页面

点击CONTRIBUTE页面中的“Report a bug in our bugtracker: https://gitlab.com/qemu-project/qemu/-/issues”链接,跳转至Issue页面。如下图所示:

此页面中显示已提交的Bug。可以看看其他人是如何提交问题的,以及是否有你所遇到的问题。

4. 跳转至Reporting a bug页面

回到CONTRIBUTE页面。点击CONTRIBUTE页面中的“How to report a bug”链接,跳转到Reporting a bug页面。如下所示:

其中关于如何报告Bug的具体方法翻译如下:

报告一个Bug

Bugs 可以在我们的bug tracker中被处理,其被托管于GitLab。注意:如果你在你使用的发行版的QEMU包中遇到了一个问题,请使用你的发行版的bug tracker。

当提交一个bug报告时,请尝试做以下事情:

  • 在描述中包含QEMU发布版本(号)或者git提交的哈希值,以便于之后能够始终清楚你发现问题的版本。对于最新发布的版本或甚至是最新开发书中的问题的报告通常能得到更快的响应处理。

  • 包含用于启动QEMU客户机的完整的命令行。

  • 直接通过QEMU命令行重现问题。避免前段和管理栈,以确保bug是QEMU自身的问题而非前端的问题。

  • 包含主机和客户机的信息(如操作系统、版本、32/64位。

QEMU不使用GitLab合并请求;补丁根据QEMU的 patch submissions guidelines.被发送至邮件列表。

在bug追踪器中不要报告安全方面的问题(也或者其它bug)作为“保密”的bug。

QEMU对于应该非公开报告的问题有一个 security process。

对于位于内核中的KVM的问题,使用内核bug跟踪器;  KVM wiki包含了具体细节。

5. 跳转至bug tracker链接中的页面

在步骤4中点击bug tracker链接,跳转到bug跟踪器页面。其实就是步骤3中的Issue页面。

6. 未注册或登录状态下提交bug

点击Issue页面中的“New issue”按钮,出现以下页面:

 

如果没有注册过GitLab账号,则需要自行注册。点击“Register Now”,出现以下界面:

填写个人基本信息(注意Username不要和已有用户名重复),邮箱一定要留自己能够使用的真是邮箱,后续步骤中会用到。 设置好密码后,点击“Register”按钮,出现以下页面:

稍后,前述步骤留的邮箱中会收到确认邮件。如下所示:

 点击“Confirm your account”,跳转回之前的登录界面。同时,界面中会有已确认的信息。如下所示:

 输入密码后,点击“Sign In”按钮,出现以下页面:

填写好信息后,点击“Continue”按钮, 出现以下页面:

这说明注册GitLab账号的步骤完成了。后续无需重复此步骤,直接使用已经注册的账号登录即可。

7. 已注册登录状态下提交bug

点击Issue页面中的“New issue”按钮,这次就不出现登录页面了,而是出现以下页面:

根据自己实际遇到的问题填写bug单。比如,笔者遇到的实际问题是,通过qemu-7.2.0源码编译出来的7.2.0版本qemu工具,启动虚拟机后网络始终不正常,而qemu-7.1.0中的源码编译出来的是正常的。那么就根据自己所遇到问题的实际情况进行编辑,相关信息要详细(见上面说明),如下所示:

<!--
This is the upstream QEMU issue tracker.

If you are able to, it will greatly facilitate bug triage if you attempt
to reproduce the problem with the latest qemu.git master built from
source. See https://www.qemu.org/download/#source for instructions on
how to do this.

QEMU generally supports the last two releases advertised on
https://www.qemu.org/. Problems with distro-packaged versions of QEMU
older than this should be reported to the distribution instead.

See https://www.qemu.org/contribute/report-a-bug/ for additional
guidance.

If this is a security issue, please consult
https://www.qemu.org/contribute/security-process/
-->

## Host environment
 - Operating system: Ubuntu 22.04           <!-- Windows 10 21H1, Fedora 37, etc. -->
 - OS/kernel version: 5.15.0-58-generic #64-Ubuntu SMP          <!-- For POSIX hosts, use `uname -a` -->
 - Architecture: x86             <!-- x86, ARM, s390x, etc. -->
 - QEMU flavor: qemu-system-x86_64                <!-- qemu-system-x86_64, qemu-aarch64, qemu-img, etc. -->
 - QEMU version: QEMU emulator version 7.2.0               <!-- e.g. `qemu-system-x86_64 --version` -->
 - QEMU command line: qemu-system-x86_64 -enable-kvm -m 8G -smp 4 -drive file=./Ubuntu2004.img -device ac97
   <!--
   Give the smallest, complete command line that exhibits the problem.

   If you are using libvirt, virsh, or vmm, you can likely find the QEMU
   command line arguments in /var/log/libvirt/qemu/$GUEST.log.
   -->
   ```
   ./qemu-system-x86_64 -M q35 -m 4096 -enable-kvm -hda fedora32.qcow2
   ```

## Emulated/Virtualized environment
 - Operating system: Ubuntu 20.04         <!-- Windows 10 21H1, Fedora 37, etc. -->
 - OS/kernel version: 5.15.0-58-generic #64~20.04.1-Ubuntu SMP         <!-- For POSIX guests, use `uname -a`. -->
 - Architecture: x86               <!-- x86, ARM, s390x, etc. -->


## Description of problem
<!-- Describe the problem, including any error/crash messages seen. -->
After I created and installed Ubuntu 20.04 img in qemu virtual machine from Ubuntu 20.04 iso, I found that the network could not work normally, the network settings wasn't right yet. 

## Steps to reproduce
1. Download the source code of qemu-7.2.0 using command "wget https://download.qemu.org/qemu-7.2.0.tar.xz";
2. Untar using command "tar Jxvf qemu-7.2.0.tar.xz";
3. Configure with command "./configure --target-list=x86_64-softmmu" under root of qemu source code;
4. Build with command "make";
5. Install with command "make install" or "sudo make install";
5. Create image with command "qemu-img create -f qcow2 Ubuntu2004.img 40G";
5. Launch and install guest with ubuntu 20.04 iso using command "qemu-system-x86_64 -enable-kvm -m 8G -smp 4 -boot once=d -cdrom ../iso_images/Ubuntu-20.04.5-desktop-amd.iso -drive file=./Ubuntu2004.img -device ac97";
6. After system installed, launch guest with command "qemu-system-x86_64 -enable-kvm -m 8G -smp 4 -drive file=./Ubuntu2004.img -device ac97"

## Additional information
1. When I used qemu version 7.1.0, that is qemu-7.1.0, and go through the same steps above, then the network worked normally, and the network setting was right.
2. Windows images from Windows iso(s) had the same phenomenon.
<!--
Attach logs, stack traces, screenshots, etc. Compress the files if necessary.
If using libvirt, libvirt logs and XML domain information may be relevant.
-->

<!--
The line below ensures that proper tags are added to the issue.
Please do not remove it.
-->
/label ~"kind::Bug"

编辑完成后,点击“Commit”按钮,出现以下页面:

可以看到,bug已经提交,issue号为1482。

至此,向QEMU社区提Bug的全部步骤完成。

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

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

相关文章

RK3566 多Mipi屏的兼容

需求:项目需求需要同一个固件兼容两款不同IC的mipi屏。以便有一个IC停产之后使用不受影响。由于是同一个模组厂商,所以设计初就要求硬件接口一样或者兼容。 方法:一开始的想法很简单和网上以及同行提供的方法一样在uboot阶段去读屏的ID,然后再把对应屏ID放到cmdline里面去传…

Parasoft全面发布最广泛的MISRA规则覆盖

Parasoft通过其经过市场验证的自动化软件测试工具集成套件&#xff0c;帮助企业持续交付高质量的软件。Parasoft的技术支持嵌入式、企业和物联网市场&#xff0c;通过将静态代码分析和单元测试、Web UI和API测试等所有内容集成到交付管道中&#xff0c;再加上服务虚拟化和完整的…

Python 数据库开发实战 - Python与Redis交互篇- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis

接下来这个章节将继续来完成 《新闻管理系统》 这个项目&#xff0c;上一章节我们完成了 “发表新闻” 这个功能&#xff0c;在发表新闻后&#xff0c;什么时候才会缓存该条新闻记录呢&#xff1f;并不是说在发表新闻成功之后就立刻被缓存&#xff0c;而是该新闻被管理员审批通…

基于Verilog HDL的状态机描述方法

⭐本专栏针对FPGA进行入门学习&#xff0c;从数电中常见的逻辑代数讲起&#xff0c;结合Verilog HDL语言学习与仿真&#xff0c;主要对组合逻辑电路与时序逻辑电路进行分析与设计&#xff0c;对状态机FSM进行剖析与建模。 &#x1f525;文章和代码已归档至【Github仓库&#xf…

配置类的几种写法

需求 通过java配置类实现一个数据库连接池。 以前xml中是这样写的&#xff1a; <!--配置德鲁伊数据库连接池--><bean id"ds" class"com.alibaba.druid.pool.DruidDataSource"><property name"driverClassName" value"${jdbc…

Selenium常用API详解(从入门到进阶)

目录 1、打开页面 2、查找页面元素 3、输入文本 4、点击操作 5、提交操作 6、清除文本 7、获取文本、属性 8、获取页面的标题和URL 9、窗口 9.1、设置窗口大小 9.2、窗口切换 9.2.1、为什么需要窗口切换&#xff1f; 9.2.2、获取句柄的方式 9.2.3、切换句柄 10、…

PHP环境配置和验证

很多文章都把php和apache环境混合在一起讲&#xff0c;美其名曰PHP环境配置并提供验证是编写phpinfo命令。概念都搞不清后继的学习也好频频失误。 1、获取PHP。这个有说法网上有讲的总结的很到位。 windos服务器&#xff1a; 1、如果你是PHPIIS&#xff1b;请选择&#xff1…

VBA提高篇_ 20 括号的使用 _值/引用传递

文章目录1. 决定函数调用是否使用括号的三种情境:2. VBA对象的默认属性3.过程/函数的传递方式 :1. 决定函数调用是否使用括号的三种情境: 没有参数: 不写有参数: 调用语句处于一行代码中间: 写有参数: 调用语句独占一行代码: 不写 括号的特殊含义: Evaluation(求职运算) 2. VB…

开发必看!三分钟读懂Salesforce SOQL查询和限制

SOQL是支持我们与Salesforce数据库交互的查询语言。开发人员在编写Apex时通常会使用到SOQL&#xff0c;此外&#xff0c;它还允许管理员和开发人员从组织内部检索数据并在导出结果时生成强大的数据报告。 SOQL 查询对于编写代码的开发人员&#xff0c;以及通过使用子句扩展查询…

CK-GW208-EC与汇川PLC配置走EtherCAT通讯指南

CK-GW208-EC这款产品是晨控智能一款工业级 IO-LINK 主站网关&#xff0c;支持 EtherCat 工业协议。可通过以太网接口&#xff0c;对 IO-LINK 从站设备进行控制。CK-GW208-EC 是一款支持标准工业 Ethercat协议的 IO-LINK主站网关&#xff0c;方便用户快速便捷的集成到 PLC 等控制…

GLP-1类药物研发进展-销售数据-上市药品前景分析

据一项2021 年的报告发现&#xff0c;当 GLP-1 类似物用于治疗 2 型糖尿病时&#xff0c;全因死亡率降低了 12%&#xff0c;它们不仅降糖效果显著&#xff0c;同时还兼具减重、降压、改善血脂谱等作用。近几年&#xff0c;随着GLP-1R激动剂类药物市场规模不断增长&#xff0c;美…

Disruptor实战和笔记之二:Disruptor类分析

1 本篇概览通过前文的实战&#xff0c;咱们对Disruptor有了初步认识&#xff0c;借助com.lmax.disruptor.dsl.Disruptor类可以轻松完成以下操作&#xff1a;环形队列初始化指定事件消费者启动消费者线程接下来要面对两个问题&#xff1a;深入了解Disruptor类是如何完成上述操作…

第十四期 | ETC车主收到的诈骗短信原来是黑灰产在搞鬼?

目录 互联网时代&#xff0c;车企的安全挑战 黑灰产的两种攻击方式&#xff1a;撞库攻击&密码爆破攻击 1、撞库攻击&#xff1a; 2、密码爆破攻击 黑灰产变现方式 1、贩卖数据 2、直接变现 3、电信诈骗 防控建议 1、终端加固/H5混淆 2、通信传输安全保障 3、行…

Java知识点细节简易汇总——(7)面向对象编程(高级部分)

一、类变量、静态变量static static访问方式&#xff1a; public class VisitStatic {public static void main(String[] args) {//方法一://类名.类变量名//说明&#xff1a;类变量是随着类的加载而创建&#xff0c;所以即使没有创建对象实例也可以访问System.out.println(A.…

代码随想录NO38 |动态规划——leetcode 343. 整数拆分 96.不同的二叉搜索树

动态规划—leetcode 343. 整数拆分 96.不同的二叉搜索树今天是动态规划第三天的题&#xff0c;动态规划这块儿题目比较多&#xff01; 343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的…

拼经济促发展,雨花区脚踏实地将“民生愿景”变为“幸福实景”

2022年&#xff0c;面对国内外复杂的经济形势&#xff0c;我国经济发展依旧保持稳中向好态势。经济增长总体平稳且后续动力强劲&#xff0c;物价涨幅持续可控&#xff0c;结构调整积极推进。经济增长由政策刺激向自主增长有序转变&#xff0c;继续朝着宏观调控的预期方向发展&a…

Linux环境下Redis单机、集群升级部署

目录 前言 一、Redis安装环境准备 二、安装升级Redis 1.Redis升级前准备&#xff08;首次安装忽略&#xff09; 2.Redis安装 总结 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可…

回顾 | .NET MAUI 跨平台应用开发 - 用 .NET MAUI 开发一个无人机应用(下)

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将…

七、Linux文件 - main函数参数讲解、代码实现cp指令

目录 1、main函数参数 2.cp指令的使用 3、实现cp指令 3.1实现cp指令-入门版 3.2实现cp指令-进阶版 1、main函数参数 int main(int argc,char *argv[]) {return 0; } C语言规定了main函数的参数只能由2个&#xff0c;一个是argc,一个是argv,并且argc只能是整数&#xff0c…

[Leetcode] 打开转盘锁(BFS求最短路径)

题目链接&#xff1a;https://leetcode.cn/problems/open-the-lock/你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字&#xff1a; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 。每个拨轮可以自由旋转&#xff1a;例如把 9 变为 0&#xff0c;0 变为 9 。每次旋转都只能旋转一个拨轮…