qemu
Xalloc
create and share values.
展开
-
qemu寄存器绑定机制
qemu使用了寄存器绑定的方法来加快全局变量的访问,对仿真来说最常用的就是指向CPUSTATE*的env变量。void arm_translate_init(void){ cpu_env = tcg_global_reg_new_ptr(TCG_AREG0, "env"); cpu_T[0] = tcg_global_re原创 2012-09-04 22:33:59 · 2208 阅读 · 0 评论 -
玩转qemu之环境搭建
使用qemu进行开发是非常方便的,首先需要搭建相关的环境,相关的步骤总结如下:1. 下载qemu 并编译安装:./configure --target-list=x86_64-softmmu --disable-slirp && make && make install2. 准备虚机网络环境,这里使用tap组建本地虚机网络 2.1 创建虚...原创 2019-04-02 07:20:45 · 1873 阅读 · 0 评论 -
玩转qemu之NAT
在基本环境搭建这一节中,设置了一个本地网络,虚机只能访问host,无法访问外网,如果需要访问外网需要设置SNATiptables -t nat -A POSTROUTING -s 192.168.120.0/24 ! -d 192.168.120.0/24 -j MASQUERADE这样虚机可以访问外网了在ubuntu系统上面碰到的问题:1.vnet0, virbr0 没有up,...原创 2019-04-04 08:16:00 · 2567 阅读 · 0 评论 -
玩转qemu之模拟scsi 硬盘
上次提到硬盘接口是virtio的,除了这个以外qemu还提供很多硬盘模拟方式,其中使用传统的scsi硬盘的设置是这样的:/usr/libexec/qemu-kvm -drive id=disk,file=/home/,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0具体参考:https://wik...原创 2019-04-04 08:10:42 · 4083 阅读 · 0 评论 -
Play with lkvm
1.lkvm 是轻量级的kvm虚拟化框架,通过简化系统尽可能去掉legacy设备, 尽可能使用虚拟化设备。在centos上直接下源码编译有问题,但是在ubuntu上可以直接安装安装命令: apt-get install kvmtoolkvmtool需要打开的kernel的virtio-9p相关的驱动:CONFIG_NET_9P=yCONFIG_NET_9P_VIRTIO=y原创 2017-12-18 21:58:10 · 466 阅读 · 0 评论 -
qemu单元测试二
int main(int argc, char **argv){ QTestState *s = NULL; int ret; g_test_init(&argc, &argv, NULL); s = qtest_start("-display none -machine n800"); i2c = omap_i2c_creat原创 2013-07-14 12:21:08 · 3144 阅读 · 2 评论 -
qemu 单元测试一
qemu使用glib的test框架对io, cpu等进行单元测试。测试用例放在tests目录下。 测试的项目包括: qobject模型测试用例;qemu的基本函数实现;主机实现的函数等; qapi相关的测试用例; qmp测试用例; 架构有关的测试用例;外设测试用例等等。以arm为例测试用例的使用方法:1.编译qemu./configure --target-list=arm-softm原创 2013-07-11 23:17:49 · 2847 阅读 · 1 评论 -
qemu内存访问分析
qemu TLB表项: qemu 内存访问过程:guest virtual addr (GVA) → guest physical addr (GPA) → host virtualaddr (HVA)。其中 GVA->HVA 由 qemu 负责完成,HVA->HPA 由 host 操作系统完成。tlb 的结构如下,addr_xxx 表示 GVA 地址,同时也表示了执行权限;ad原创 2012-07-12 20:16:47 · 5712 阅读 · 1 评论 -
qemu 安装CentOS
1.下载CentOS官网上下载镜像:http://isoredirect.centos.org/centos/5/isos/x86_64/2.制作磁盘镜像:qemu-img create -f qcow2 CentOS.img 10G 这里生成了一个大小为10G,格式为qcow2的CentOS.img镜像3.启动qemu进行安装:qemu-system-x86_64 -m原创 2012-08-18 22:48:16 · 5717 阅读 · 0 评论 -
使用qemu调试android代码
使用remote-gdb调试android代码:在一个终端上:./emulator -show-kernel -kernel zImage -qemu -cpu cortex-a8 -d in_asm -gdb tcp::1234 -S另一个终端:alloc@linux-q1tz:~/skyeye/armv7/armv7_goldfish_testcase> ~/CodeSo原创 2013-01-14 19:31:02 · 2226 阅读 · 0 评论 -
qemu执行流程分析
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->一.qemu简介 qemu是使用动态二进制翻译的cpu模拟器,它支持两种运行模式:全系统模拟和用户态模拟。在全系统模拟下,qemu可以模拟处理器和各种外设,可以运行操作系统。用户态可以运行为另外一种cpu编译的进程,前提是两者运行的os要一原创 2012-07-05 20:35:37 · 5382 阅读 · 5 评论 -
玩转qemu之制作自定义镜像
制作自动定义镜像的方式很多种,这里介绍使用supermin的方式来完成,下面的实验在ubuntu 18.04 上进, 具体步骤可以参考man supermin。 supermin镜像制作分成两个阶段,第一个阶段是prepare, 第二是build1. prepare:supermin --prepare bash mount coreutils -o supermin.d这里准备要安...原创 2019-04-21 19:46:48 · 3678 阅读 · 0 评论