Articles of qemu

QEMU CPU仿真原理

在QEMU中,操作系统可以在软件仿真CPU上运行。 如何可以通过软件模拟CPU? 我想知道细节。 如果CPU被软件模拟,寄存器是否与主机系统内存一起被模拟? 说有ARM汇编代码 LDRB r0,[r1],#1 这怎么能在x86环境下模拟? 我的猜测是仿真软件保持r0(4byte),r1(4byte)的内存映射空间,然后更新相应内存位置的寄存器值…我错了吗? 我想要详细的解释… 先谢谢你

仿真树莓派2

前段时间我仿效了这篇文章中的Raspberry Pi,但是这种方法有几个问题: 这是非常缓慢的。 显示解决scheme被限制为800×600。 你不能模拟超过256MB的内存。 此外, Qemu还没有新的Broadcom BCM2836或任何其他基于arm7的CPU的仿真。 但是,有几个原因,为什么模仿树莓派会很有趣。 所以我对任何提示都很感兴趣,这些提示让我在正确的方向上使用Qemu或Linux下的任何其他仿真软件来进行Raspberry Pi 2仿真。

将QEMU窗口输出redirect到运行qemu的terminal

我试图用qemudebuggingLinux内核的启动顺序,我运行的命令是: qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0" 在启动过程中,所有内核消息都被打印到QEMU窗口。 只有当启动完成后,我得到我的提示回到terminal,我跑QEMU。 现在我可以开始使用正在运行的内核terminal,并在terminal中看到输出,而不是在QEMU窗口中。 我如何获得包括引导消息到我的terminal,而不是QEMU窗口的所有消息(因为我不能向上滚动窗口..)?

qemu上树莓派Linux最新的sd映像

我试图build立一个Arch镜像,并使用qemu为了交叉编译一些东西,然后我把图像加载到Pi上。 我认为最简单的方法就是将最新的初始图像准备好,然后用我需要的任何东西进行准备,然后在完成之后将其添加到Pi上。 我从http://downloads.raspberrypi.org/arch_latest下载了Arch映像,并想在Qemu下运行它,类似于http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/ 。 我在qemu命令行上尝试了很多变化 qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda 2013-05-25-wheezy-raspbian.img 用archlinux-hf-2013-07-22.img代替。 但是这最终导致了“内核恐慌 – 不同步:没有发现init,尝试将init = option传递给内核” 我确定这意味着我下载的kernel-qemu不能和Arch映像一起工作,但我不确定解决这个问题的正确方法。 编辑: 甚至当我使用上面的命令行时,最新的Raspbian图像内核恐慌。 我猜这应该不会让我感到惊讶,因为它很可能是一个老内核。 所以我想我真正的问题是,我怎样才能使用图像中包含的任何内核,而不是build立自己的内核?

用Qemu模仿Raspberry Pi Raspbian

我尝试使用QEMU来模拟Raspian OS的Raspberry Pi。 我尝试了在互联网上描述的几种方法,但没有任何成功。 我弄清楚,我需要修补Linux内核配件到所需的操作系统。 在我的情况下,我selectOS内核4.4的Rasbian精简版: 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 接下来我从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 现在交叉编译内核: export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- cd linux-4.4.16 make vexpress_defconfig make all cd .. 现在我可以将引导映像(即在RAM中自动提取的压缩的内核映像)复制到我的工作区: cp linux-4.4.16/arch/arm/boot/zImage zImage 并运行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" […]

如何用QEMUdebuggingLinux内核模块?

我正在研究修改一些Kernel Networking代码的学术项目,以及包括一个新的Kernel module 。 我正在使用QEMU加载修改的内核并进行testing。 不过,我发现一些.img需要完整的操作系统才能进行debugging。 没有它可能吗? 或者,这是可以用于系统的Kernel 2.6的发行版。 发行版不需要任何function,除了运行程序的能力,包括networking支持。

运行Qemu后只是黑屏

我刚刚安装了QEMU和编译Linux内核与ARM支持,但是当我运行下面的命令 qemu-system-arm -M versatilepb -m 128M -kernel /home/arit/QEMU/linux-3.8.4/arch/arm/boot/uImage -append "console=tty1" 我只能看到黑屏,我也试过在下面的线程中提示什么 Qemu显示黑屏 但仍然没有奏效。 以下是我运行编译内核Source的make命令的输出 make ARCH = arm CROSS_COMPILE = arm-none-linux-gnueabi- uImage -s Image Name: Linux-3.8.4 Created: Tue Dec 24 12:49:07 2013 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4406472 Bytes = 4303.20 kB = 4.20 MB Load Address: fffffff2 Entry Point: fffffff2 […]

加快Android模拟器

我阅读了许多其他Android模拟器启动非常慢的主题。 事实上,开始需要15分钟。 但是,在我的机器上,即使在那之后,它也很慢。 “电话”响应3-4秒的延迟,一切都有一个巨大的滞后。 有没有什么办法来提高我的笔记本电脑(华硕1201N)的性能对于Android模拟器太生锈了? PS:尝试在不同的模拟器分辨率,结果是一样的 编辑:我的笔记本电脑有2个超线程核心。 它在设备pipe理器中显示为4个CPU。 但是,使用模拟器时,只有一个graphics是100%。 我可以做些什么来使其工作多核?

如何用GDB和QEMUdebuggingLinux内核?

我是内核开发的新手,我想知道如何使用QEMU和gdb运行/debuggingLinux内核。 我其实读罗伯特·爱的书,但不幸的是,它不能帮助读者如何安装适当的工具来运行或debugging内核…所以我所做的是遵循本教程http://opensourceforu.efytimes.com / 2011/02 / kernel-development-debugging-eclipse / 。 我使用eclipse作为IDE在内核上开发,但是我想首先在QEMU / gdb下运行。 所以我到目前为止做的是: 1)编译内核: make defconfig (then setting the CONFIG_DEBUG_INFO=y in the .config) make -j4 2)一旦编译完成,我运行Qemu使用: qemu-system-x86_64 -s -S /dev/zero -kernel /arch/x86/boot/bzImage 在“停止”状态下启动内核 3)因此我必须使用gdb,我尝试下面的命令: gdb ./vmlinux 它正确运行,但是…现在我不知道该怎么做…我知道我必须使用远程debugging端口1234(Qemu使用的默认端口),使用vmlinux作为符号表文件debugging。 所以我的问题是:我应该怎么做才能在Qemu上运行内核,将debugging器附加到它上面,从而让它们一起工作,通过内核开发使我的生活更轻松。

如何在QEMU源代码中添加新设备?

使用QOM方法在qemu模拟/添加新设备的步骤明智的方法是什么? DeviceState / BusState和其他属性的变化和变化在哪里?