标签: qemu

Android模拟器基于QEMU.我可以使用KVM吗?

我的笔记本电脑支持硬件虚拟化(AMD SVM),我知道:

  • QEMU可以通过KVM利用硬件虚拟化;
  • Android模拟器非常基于QEMU

自然问题如下:我可以将两者(Android + KVM)结合起来,以提高模拟器的性能吗?

android qemu android-emulator

11
推荐指数
1
解决办法
2万
查看次数

Qemu,div为零,mxcsr寄存器

我用以下代码得到了一个有趣的情况:

    static void DivideByZero() {
      // volatile to prevent compiler optimizations.
      volatile float zero = 0.0f;
      volatile float result __attribute__((unused)) = 123.0f / zero;
    }
  DivideByZero();
  int raised = fetestexcept(FE_DIVBYZERO | FE_OVERFLOW);
  ASSERT_TRUE((raised & FE_DIVBYZERO) != 0);
Run Code Online (Sandbox Code Playgroud)

当我在KVM支持下运行我的qemu设备时,我得到了以下结果:

 FE_DIVBYZERO !=0; //and it's ok
Run Code Online (Sandbox Code Playgroud)

但是当我在没有KVM支持的情况下运行相同的源时

 FE_DIVBYZERO ==0; //and it's not ok
Run Code Online (Sandbox Code Playgroud)

据我了解这种情况,它发生了,因为mxcsr寄存器位(div为零)未设置.但我不明白为什么这个位没有设置.有任何想法吗?

更新 :基于qemu的模拟器
也出现了同样的情况android.

emulator -avd test -qemu  
Run Code Online (Sandbox Code Playgroud)

返回:FE_DIVBYZERO!= 0;

emulator -avd test -qemu -disable-kvm
Run Code Online (Sandbox Code Playgroud)

返回:FE_DIVBYZERO == 0;

c floating-point android kvm qemu

11
推荐指数
1
解决办法
703
查看次数

如何在尝试使用qemu-arm运行arm二进制文件时解决"加载共享库时出错"?

我正在运行Linux Mint 14,安装了qemu,qemu-user和gnueabi工具链.我编译test.c以用arm-linux-gnueabi-gcc test.c -o test.

当我试着跑 qemu-arm /usr/arm-linux-gnueabi/lib/ld-linux.so.3 test

我收到一个错误说:test: error while loading shared libraries: test: cannot open shared object file: No such file or directory.qemu-arm test正如我之前尝试的那样,跑步给出了/lib/ld-linux.so.3: No such file or directory

但是,该文件确实存在且可以访问.

$ stat /usr/arm-linux-gnueabi/lib/ld-linux.so.3
  File: `/usr/arm-linux-gnueabi/lib/ld-linux.so.3' -> `ld-2.15.so'
  Size: 10          Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d  Inode: 4083308     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-04-22 16:19:48.090613901 -0700
Modify: 2012-09-21 08:31:29.000000000 …
Run Code Online (Sandbox Code Playgroud)

arm qemu

11
推荐指数
5
解决办法
3万
查看次数

如何在KVM(libvirt/virsh)上设置启动顺序?

使用libvirt/virsh时,如何在KVM上设置启动顺序?(通过配置或命令)

virtualization kvm qemu libvirt

11
推荐指数
1
解决办法
3万
查看次数

将qcows2快照和后备文件转换为独立映像文件

我有一个qemu qcow2磁盘快照dev.img,它基于一个支持文件dev.bak.如何将两者合并为独立版devplus.img,同时保持dev.bak原样?

qemu

11
推荐指数
2
解决办法
5974
查看次数

如何在QEMU上模拟Raspberry Pi 2?

前段时间我在本文后仿效了Raspberry Pi ,但这种方法有几个问题:

  1. 这很慢.
  2. 显示解决方案限制为800x600.
  3. 你无法模仿超过256mb的ram.

此外,在Qemu中没有新的Broadcom BCM2836或任何其他基于arm7的CPU的仿真.但是,有几个原因,为什么模仿Raspberry Pi会很有趣.因此,我感兴趣的任何提示都可以帮助我在正确的方向上使用Qemu或Linux下的任何其他仿真软件来获得可用的Raspberry Pi 2仿真.

linux qemu emulation raspberry-pi raspberry-pi2

11
推荐指数
3
解决办法
2万
查看次数

`vagrant up` 在“Waiting for domain to get an IP address...”超时

这似乎只有在我使用generic/arch盒子时才会发生。我已经尝试了几个 ubuntu 盒子,一切正常。

主机操作系统是 Manjaro。

输出冻结:

 INFO interface: info: ==> default: Waiting for domain to get an IP address...                                                                   
==> default: Waiting for domain to get an IP address...
 INFO retryable: Retryable exception raised: #<Fog::Errors::TimeoutError: The specified wait_for timeout (2 seconds) was exceeded>
Run Code Online (Sandbox Code Playgroud)

libvirt/virsh 版本 3.10.0 vagrant 版本 2.0.1

操作系统 4.9.76-1-MANJARO

流浪文件:

Vagrant.configure("2") do |config|
  config.vm.box = "generic/arch"
end
Run Code Online (Sandbox Code Playgroud)

以下是我认为相关输出的内容 VAGRANT_LOG=debug vagrant up

==> default: Creating shared folders metadata...                                                                                                               
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderLibvirt::Action::CreateNetworks:0x0000560dfaea3450>                                                 
 INFO create_networks: Using …
Run Code Online (Sandbox Code Playgroud)

qemu libvirt archlinux vagrant virsh

11
推荐指数
1
解决办法
5296
查看次数

如果 M1 上的 Docker Desktop 使用 QEMU 进行模拟,为什么还需要 Rosetta?

在为Apple Silicon安装Docker Desktop时,官方说明说:

您必须安装 Rosetta 2,因为某些二进制文件仍然是 Darwin/AMD64。

但是,如果我理解正确的话,基于 Intel 的容器实际上使用 QEMU 进行模拟,而不是 Rosetta

然而,尝试在模拟下的 Apple Silicon 机器上运行基于 Intel 的容器可能会崩溃,因为 qemu 有时无法运行容器。

(这是 Docker在 M1 上运行非本机容器时速度缓慢的原因之一。)

那么 Docker 实际上使用 Rosetta 做什么呢?

qemu docker apple-m1

11
推荐指数
1
解决办法
1万
查看次数

在Windows上的VirtualBox上运行的Ubuntu上启用kvm

我有一台带有Intel CPU的Windows机器(启动菜单上启用了VMX).我正在使用VirtualBox运行Ubuntu Guest.我正在运行qemu以运行另一个客户操作系统,使用kvm(-enable-kvm选项).

尝试插入kvm-intel模块时出现以下错误:

FATAL: Error inserting kvm_intel (/lib/modules/2.6.20-ARCH/kernel/drivers/kvm/kvm-intel.ko): Operation not supported
Run Code Online (Sandbox Code Playgroud)

我在客户操作系统中检查了vmx标志,我也没看到

$ grep vmx /proc/cpuinfo
$
Run Code Online (Sandbox Code Playgroud)

无论如何在客户端Ubuntu操作系统中启用kvm支持,以便我可以在Ubuntu客户机上运行支持kvm的qemu?

virtualization virtualbox kvm qemu

10
推荐指数
1
解决办法
2万
查看次数

将扇区加载到内存时出现磁盘读取错误

我试图开发利用的bootloader 这个,但是当它时,它会显示:

disk read error!
Run Code Online (Sandbox Code Playgroud)

如果我忽略它,在后面的部分,它会显示我错误的内存映射.我也跟着其他一些消息来源但是徒劳无功.感觉就像我只是在复制他们正在做的事情.如果我做的甚至有点不同,每次都会产生一种新的错误.

我应该使用已经构建的引导加载程序还是该怎么做?

磁盘加载错误代码如下:

[org 0x7c00]

    KERNEL_OFFSET equ 0x1000    
    mov [BOOT_DRIVE], dl        
    mov bp, 0x9000          
    mov sp, bp  
    mov bx, MSG_REAL_MODE       
    call print_string           
    call load_kernel            
    jmp $

print_string:
    pusha
    mov ah, 0x0e

loop:
    mov al,[bx]
    cmp al, 0
    je return
    int 0x10
    inc bx
    jmp loop

return:
    popa
    ret

disk_load: 
    push dx                                              
    mov ah, 0x02                                   
    mov al, dh                                          
    mov ch, 0x00                                    
    mov dh, 0x00                                     
    mov cl, 0x02                                    
    int 0x13                                           
    jc disk_error                                  
    pop dx                                               
    cmp dh, …
Run Code Online (Sandbox Code Playgroud)

assembly kernel qemu osdev bootloader

10
推荐指数
1
解决办法
1130
查看次数