标签: qemu

PowerPC仿真:Qemu,PearPC或......?

我目前正在尝试构建一个配置来测试Big-Endian系统上的一些代码.

通过聊天和研究,我一直相信这些测试的一个好目标是PowerPC架构.由于我没有自己的,并且不希望很快就能直接访问,我正在寻找某种仿真软件来测试我的代码.

问题是,我发现在这方面没有"易于使用"的解决方案.

似乎至少有两种可能的解决方案,一种使用QEMU,另一种使用PearPC.它们都不容易部署.

我看到它的方式:

我想要像部署VMWare虚拟机一样简单,只需一个简单的ghost VM即可使用和下载.

附加信息:我认为PowerPC上的Linux可能是更好的操作系统选择,因为模拟MAC环境可能会破坏许可证.我猜QEMU也比PearPC更新,更受支持.主机系统可以是Windows或Linux.主机CPU必须是x86.

qemu powerpc emulation

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

如何通过VNC使用Android模拟器

我想通过VNC访问Android模拟器,让人们测试我的应用程序.

到目前为止,我可以使用以下命令启动Android模拟器:

emulator -avd ice -verbose -qemu -vnc :2
Run Code Online (Sandbox Code Playgroud)

我也可以在端口连接它,5902但我不能做任何输入,我不知道如何将我的鼠标转发到qemu.

android vnc qemu android-emulator

8
推荐指数
1
解决办法
7285
查看次数

-qemu中的serial pty,如何打开?

我正在运行 qemu

-串行 pty

选项,qemu 给出了这个消息

字符设备重定向到/dev/pts/1

但是,它不会生成新窗口,我可以cat从不同的窗口对 pts1 执行操作,但随后我无法向其中输入任何字符。

无论如何,你可以启动一个具有特定点数的新 xterm 吗?

serial-port qemu pts xterm pty

8
推荐指数
1
解决办法
7357
查看次数

有没有IPMI模拟器?

我需要测试一些ipmitool命令.我没有安装ILO/IDRAC的服务器.是否有可以模仿IPMI服务器的模拟器?(或)我可以使用任何虚拟盒/ Qemu/KVM虚拟机来实现IPMI驱动程序并通过LAN测试它们吗?有没有这种文件?请建议.谢谢.

virtualbox qemu virtual-machine server-administration ipmi

8
推荐指数
0
解决办法
7650
查看次数

如何在没有用户干预的情况下执行裸机程序后干净地退出QEMU?

我正在为ARM系统组装一个交叉编译单元测试装置,并在主机上运行测试qemu-system-arm.具体来说,我使用qemu来模拟Stellaris LM3S6965评估板,因为它包含像我的目标环境一样的Cortex M3处理器.qemu中的二进制运行是使用GNU Tools for ARM构建的.

没有涉及操作系统.测试套件作为裸机应用程序运行,-nographic模式为qemu .工具链和测试台本身工作正常.测试成功完成并在qemu内生成测试结果也很好.

问题在于将qemu包装在自动构建工具中(在本例中为Rake).除了键盘命令之外,我还没有找到一个好方法让qemu在测试套件运行后退出并吐出结果.这会导致构建环境挂起/依赖于用户干预.

我看起来高低,并没有找到关于如何在程序终止后完成简单退出的好资料.我确实找到了一些使用该-no-reboot选项运行qemu的建议,然后从模拟器中运行的程序触发系统重置.我试过这个.它有效......有点儿.我在main()执行后将适当的值写入模拟处理器的复位向量,这确实触发了复位.运行测试套件后qemu报告系统重置.但是,它将此报告为硬件错误,转储寄存器内容,然后退出生气(下面的错误消息).虽然这确实在测试套件运行后完成了退出,然后由于qemu退出并出现错误情况,它会中断自动构建脚本.

qemu: hardware error: System reset
Run Code Online (Sandbox Code Playgroud)

我想避免黑客将键盘命令插入到构建中以模拟用户干预.我还想避免依赖qemu退出错误状态.

我似乎接近一个干净的出口,但不是那里.搜索qemu错误消息(上面)除了切线相关的错误报告之外没有产生任何相关文档.

有没有一种机制可以让main()我在缺少的裸机程序中返回后退出qemu ?这个-no-reboot+系统重置策略会起作用吗?如果是这样,还有什么必要让qemu干净利落?

unit-testing arm qemu bare-metal

8
推荐指数
2
解决办法
2935
查看次数

如何完全自动化无人值守的虚拟安装?

首先我要说的是我想做的事情。我想以无人值守的方式完全自动化使用virt-install. 我知道有些人使用 GUI 工具来执行此操作,或者他们编辑预先存在的图像的 XML 描述,但我想从头开始。

我用谷歌搜索了一下,很难找到这样做的例子。我发现这是virt-install要使用的命令,并且它可以与附加的 TTY 控制台交互使用(您在安装过程中手动回答配置问题)。对于完全自动化的解决方案,您可以指定一个kickstart文件(通常是preseed.cfg)来提供您通常手动输入的问题的答案。kickstart 文件还可以指定要安装的附加软件、磁盘和网络配置等)。

我认为我已经完成了大部分工作,只是安装在安装开始后不久就挂起了。我认为这与是否需要(或不需要)将控制台连接到安装有关。这是virt-install我正在使用的命令:

virt-install --connect qemu:///system \
  --name vm --ram 128 \
  --disk path=./vm.qcow2,size=8,format=qcow2 \
  --location 'http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/' \
  --network user,model=virtio \
  --initrd-inject preseed.cfg \
  --extra-args="console=tty0 console=ttyS0,115200"
Run Code Online (Sandbox Code Playgroud)

这是这个preseed.cfg文件(我从网上和 Ubuntu 文档中的许多示例中抄袭的):

### Localization
# Locale sets language and country.
d-i debian-installer/locale string en_US
# Keyboard selection.
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/modelcode string pc105
d-i keyboard-configuration/variantcode string

### Network configuration …
Run Code Online (Sandbox Code Playgroud)

virtualization kvm qemu

8
推荐指数
1
解决办法
8616
查看次数

"(gdb)运行"在qemu模拟arm架构上运行可执行文件时崩溃

这是我的第一条消息,我正在给你写信,因为这次我真的无法解决这个问题.

我正在学习关于gdb的课程.在后面的课程中,课程涵盖了ARM体系结构的调试,因此我提供了一个允许我模拟这种情况的设置.

我目前的设置是由:

  • Windows 10:物理主机
    • Ubuntu 12.04.5 LTS:来自Windows 10上的Oracle Virtual Box的访客操作系统
      • Linux debian-armel 2.6.32-5-versatile:在OS上通过qemu 2.8.0在Ubuntu上运行

ARM Debian映像来自https://people.debian.org/~aurel32/qemu/armel/

图像随启动而启动

qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda debian_squeeze_armel_standard.qcow2 -append "root=/dev/sda1" -m 256 -redir tcp:2222::22
Run Code Online (Sandbox Code Playgroud)

我修改了sources.list和apt.conf以允许apt工作,因为de distro已经过时了.我更新并升级并安装了gcc和gdb.

尝试调试时出现问题:我可以在gdb中加载可执行文件

root@debian-armel:~/video-11/video-11# file ./main
./main: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在gdb中运行它时,我收到此消息并且执行挂起,直到我能够从另一个控制台终止gdb进程

------------[ cut here ]------------
WARNING: at /build/linux-2.6-fIxTVd/linux-2.6-2.6.32/debian/build/source_armel_none/kernel/sched.c:2628 wake_up_process+0x2c/0x48()
Modules linked in: loop sg smc91x sr_mod mii cdrom psmouse evdev ext3 …
Run Code Online (Sandbox Code Playgroud)

c linux gdb arm qemu

8
推荐指数
1
解决办法
304
查看次数

嵌套虚拟化与KVM:嵌套虚拟化中的qemu中的-enable-kvm

在我已经虚拟化的主机中,尝试传递选项选项-enable-kvm -m 1024将失败:

qemu-system-x86_64  -vga std -enable-kvm -m 1024   -monitor telnet:localhost:9313,server,nowait -drive file=my_img.img,cache=none
# Could not access KVM kernel module: No such file or directory
# failed to initialize KVM: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我删除该选项-enable-kvm -m 1024,qemu将加载(但它将永远,因为它使用软件模拟):

qemu-system-x86_64  -vga std  -monitor telnet:localhost:9313,server,nowait -drive file=my_img.img,cache=none
# qemu running, OK, but image taking forever to load.
Run Code Online (Sandbox Code Playgroud)

当然,我的这个虚拟化主机具有嵌套自己的虚拟化的能力.无处不在我找到有关它的信息[比如这里:https: //docs.openstack.org/developer/devstack/guides/devstack-with-nested-kvm.html ]告诉我,我必须检查一下/sys/module/kvm_intel/parameters/nested根本没有的文件,因为kvm-intel不是也不能从图像中加载:

sudo modprobe  kvm-intel
# modprobe: ERROR: could not insert 'kvm_intel': Operation not …
Run Code Online (Sandbox Code Playgroud)

virtualization kvm qemu

8
推荐指数
2
解决办法
3318
查看次数

如何解决qemu gdb调试错误:远程'g'数据包回复太长了?

我正在进入引导程序和内核开发(非常开始)我正在关注https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev的组合 .pdfhttps://github.com/cfenollosa/os-tutorial中的代码

唯一不同的是,我的目标是x86_64而不是i386.我也使用qemu模拟(qemu-system-x86_64).现在跟随GitHub回购到第16部分视频驱动程序之后,我被卡住了,因为屏幕驱动程序确实在屏幕上打印了一些东西,但是有些事情正在发生,数据不对齐.接下来我想尝试调试我的程序.这部分也包含在回购的第14部分检查点中.所以我为目标x86_64-elf构建了gdb.但是,当我尝试运行qemu和gdb使用system-qemu-x86_64 -s -S -fda os-image ,然后运行gdb并尝试通过运行连接到qemu target remote localhost:1234,一旦我运行,我得到以下错误消息

Remote debugging using localhost:1234
warning: No executable has been specified and target does not support
determining executable automatically.  Try using the "file" command.
Remote 'g' packet reply is too long (expected 308 bytes, got 536 bytes):
000000000000000000000000000000000000000000000000630600000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000f0ff0000000000000200000000f00000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000007f03000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000801f0000
Run Code Online (Sandbox Code Playgroud)

关于我遗失/做错的任何想法?如果需要更多信息,请告诉我.

谢谢

编辑:我已经应用了@MichaelPetch提到的补丁,现在g包错误消失了.但是看起来gdb在运行后无法解释我的可执行文件target remote localhost:1234,然后symbol-file kernel.elf …

x86 gcc gdb qemu osdev

8
推荐指数
1
解决办法
1968
查看次数

Android Studio 模拟器/AVD 磁盘负载非常高 (Linux)

我正在尝试在 Mint 18 上使用 Android Studio (4.0) 附带的 android 模拟器。不幸的是,一旦我运行设备,我的磁盘就会出现繁重的工作负载,我无法真正说出原因 - 它一定是许多小写入我可以在 nmon 看到。这使得整个模拟完全无用,因为模拟设备不再真正响应。它不取决于我尝试模拟哪个设备(Pixel/Pixel2/自己的硬件)。

我看不到的是哪些文件受到影响以及原因。甚至 iotop 也只告诉我 qemu-system-i386 在磁盘上放置了一些工作负载,但没有告诉我在哪里(当然)。

我唯一能告诉的是,如果我使用“-read-only”参数从命令行启动设备,那么所有的魔法都会消失 - 那么一切都会运行得很好而且很快。但这无论如何都不是解决方案,因为它不会保留模拟设备上的更改。

有任何想法吗?

linux qemu android-studio

8
推荐指数
1
解决办法
1050
查看次数