标签: qemu

如何通过命令行关闭Android模拟器

我无法正常地从命令提示符停止模拟器.

我使用的是Linux Ubuntu 10.04版本(64位),Android SDK版本是2.3.

我使用它的快照启动了模拟器.现在我关心的是优雅地关闭正在运行的Emulator实例.我已经尝试使用kill -9(模拟器运行的进程ID)关闭模拟器,但下次它没有启动,因为它的快照已损坏.请帮我避免强行关闭模拟器.

知道怎么解决吗?

ubuntu android qemu emulation android-virtual-device

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

简单内核无法在GRUB中启动

我正在从OSDev.org学习一些OS开发.我有一个内核,我正在尝试使用qemu在GRUB Legacy(0.97)中启动.但是,当我输入时kernel 200+9,我收到了消息

[Multiboot-elf, <0x100000:0x80:0x4008>(bad), entry=0x10000c]
Run Code Online (Sandbox Code Playgroud)

这是我所期望的,除了(坏)部分.如果我boot现在输入GRUB就会挂起.

我认为数字0x100000,0x44,0x4008分别代表.text段起始地址,.bss起始地址和.bss段大小.我认为这是因为objdump -h在内核映像上运行会产生以下结果:

kernel.bin:     file format elf32-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000044  00100000  00100000  00001000  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .bss          00004008  00100044  00100044  00001044  2**2
                  ALLOC
Run Code Online (Sandbox Code Playgroud)

所以你可以看到我提到的数字几乎匹配.问题是,而不是100044,.bss的开头只有44个.我认为这就是GRUB说错的原因.我的内存不足1 MB(低内存).但objdump告诉我我的部分超过了这个门槛,所以我不知道出了什么问题.无论如何,我会在下面粘贴我的代码,它相对较短.虽然我的问题可能是非常基本的,如果你以前做过OS开发,所以代码可能是无关紧要的.

;loader.s - contains the multiboot header for grub and calls the main kernel method

global loader                           ; making entry point visible to linker
global magic                            ; we will …
Run Code Online (Sandbox Code Playgroud)

assembly kernel grub qemu osdev

24
推荐指数
1
解决办法
3435
查看次数

将QEMU窗口输出重定向到运行qemu的终端

我试图用qemu调试linux内核的启动顺序,我正在运行的命令是:

  qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"
Run Code Online (Sandbox Code Playgroud)

在引导期间,所有内核消息都将打印到QEMU窗口.只有当引导完成后,我才会将提示返回到终端,我运行了QEMU.

现在我可以开始使用我正在运行的内核终端并在终端中查看输出,而不是在QEMU窗口中.

如何将所有消息(包括引导消息)发送到终端而不是QEMU窗口(因为我无法在该窗口中向上滚动..)?

linux debugging qemu linux-kernel

24
推荐指数
2
解决办法
5万
查看次数

了解QEMU的好消息来源是什么?

您建议哪些书籍或网站了解QEMU?我想看一些使用示例以及如何使用API​​.

processor qemu emulation

22
推荐指数
3
解决办法
8676
查看次数

如何使用QEMU模拟Raspberry Pi Raspbian?

我正在尝试使用QEMU使用Raspian OS模拟Raspberry Pi.我尝试过在互联网上描述的几种方法但没有任何成功.

我想我需要修补一个适合所需操作系统的Linux内核.在我的例子中,我选择了带有内核4.4的Rasbian Lite:

wget https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2016-05-31/2016-05-27-raspbian-jessie-lite.zip
unzip 2016-05-27-raspbian-jessie-lite.zip
rm 2016-05-27-raspbian-jessie-lite.zip
Run Code Online (Sandbox Code Playgroud)

接下来,我从https://www.kernel.org/加载内核:

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.16.tar.gz
tar -xzf linux-4.4.16.tar.gz
rm linux-4.4.16.tar.gz
Run Code Online (Sandbox Code Playgroud)

现在交叉编译内核:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
cd linux-4.4.16
make vexpress_defconfig
make all
cd ..
Run Code Online (Sandbox Code Playgroud)

现在我可以将启动映像(即在RAM中自动提取的压缩内核映像)复制到我的工作区:

cp linux-4.4.16/arch/arm/boot/zImage zImage
Run Code Online (Sandbox Code Playgroud)

并运行QEMU

qemu-system-arm -kernel zImage -M vexpress-a9 -m 1024 -cpu cortex-a9 -no-reboot -serial stdio -hda 016-05-27-raspbian-jessie-lite.img -append "root=/dev/sda2 rootfstype=ext4"
Run Code Online (Sandbox Code Playgroud)

但我所看到的只是一个黑色的QEMU窗口.:(

我认为问题是获得正确的内核.从Internet复制某些内核从未取得成功,因为它们不适合操作系统.

如何构建/修补适合操作系统的内核(不下载现有的内核)以及如何正确运行QEMU?

先谢谢
Alex


第二种方法

kernel-qemu从这里加载一个https://www.dropbox.com/s/g8u93xblz1v1ly0/kernel-qemu?dl=0并用它运行QEMU:

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial …
Run Code Online (Sandbox Code Playgroud)

linux qemu linux-kernel raspberry-pi raspbian

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

QEMU - 代码流[指令缓存和TCG]

我正在尝试分析QEMU源代码.

我知道它很庞大,直到约会还没有官方文件.

我主要关注的是指令缓存管理和TCG操作.

任何指向它们的指针都会有所帮助吗?

qemu

21
推荐指数
1
解决办法
7729
查看次数

远程运行qemu(通过ssh)

我有一个我正在试验的服务器,有时我想在家工作,所以我安装了'ssh守护进程'(即'sshd'),我可以ssh到服务器.这很好用.但是当我尝试使用'qemu'在服务器上运行虚拟机时,我收到以下错误Could not initialize SDL(No available video device) - exiting.

是否可以通过ssh连接运行qemu?

注意,我不希望看到我正在启动的VM的可视界面.我只是想跑.

ssh qemu virtual-machine sshd

21
推荐指数
4
解决办法
4万
查看次数

如何使用qemu在终端上运行非gui操作系统?

我想在我的部门的高性能计算机(使用8核处理器)上运行一些程序.现在我使用终端ssh使用该机器.机器上安装了Red Hat linux.但我的程序需要在Solaris上运行.我使用Nexenta Solaris for x86.

可以使用qemu通过终端在该机器上运行Nexenta Solaris.我需要说服管理员可以,否则他不会在该机器上安装qemu,因此允许我通过虚拟机使用Solaris.另请注意,我不使用Nexenta Solaris的GUI,只使用命令行.在我的机器中,我使用VMware来运行它.

solaris qemu

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

为什么 QEMU 在将 x86 转换为 M1 时无法接近 Rosetta 2 的性能?

显然,QEMU是唯一可以在新 Apple 芯片(M1、M2 等)上模拟 x86 操作系统的开源代码。

Apple 构建了 Rosetta 2,理论上,它与 QEMU 在这些场景中执行的操作完全相同。它将 x86 (Intel) 指令转换为新 Apple 芯片处理器支持的指令集。

Rosetta 2 具有出色的性能,某些 x86 应用程序甚至比在本机 x86 硬件上运行时具有更好的性能。另一方面,当在 Apple 芯片上运行 x86 Linux 时,QEMU 的表现还差得远。

Rosetta为何能有如此优越的性能?是否有任何只有 Apple 知道且从未与 QEMU 项目共享的架构“秘密”?QEMU 不允许访问哪些禁止的 API?

qemu apple-silicon rosetta-2

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

你会怎么发音QEMU

当我和某人谈论它时,我应该如何正确地发音呢?我最好的猜测和我现在称之为/ kwemu /.

qemu

17
推荐指数
1
解决办法
8600
查看次数