qemu

qemu 直接使用 cloud-init

送分小仙女□ 提交于 2019-12-30 18:10:10
本文目的 在独立单机环境下使用 qemu , 启动 kvm 时,利用 cloud-init 进行配置定义 因为云平台例如 openstack 已自带 cloud-init 封装,不需要我们手动进行配置定义 作者总结 cloud-init 需要手动维护 每个 kvm 启动都需要一个独立的 ISO (IP地址需要独立配置嘛) 只是在某些没有 IP 地址管理的情况下才适用 只是为了对 openstack 下 cloud-init 进行一个单机下原理的了解 本文例子 IP 地址配置 软件安装 puppet 管理 用户添加 用户命令行使用方法 什么是 cloud-init 可以把 cloud-init 看成一种服务,这种服务可以在主机启动而且还没有 IP 地址的情况下去获取一些配置信息 该服务用于在机器启动时候读取到 meta-data, user-data 配置, 主要用于定义,配置该主机, 例如主机名,IP 地址,软件管理等等功能 常见 cloud-init 支持 Debian, RHEL/CentOS, Gentoo ,Ubuntu 版本 在多种云平台中都会支持 cloud-init 功能, 例如 Amazon, Azure, Google Cloud, Oracle Cloud, IBM Cloud, CloudStack,OpenNebula, CloudSigma cloud

Is it possible to use gdb and qemu to debug linux user space programs and kernel space simultaneously?

筅森魡賤 提交于 2019-12-30 06:29:07
问题 So far, with gdb + qemu, I can step into/over linux kernel source code. Is it possible to debug the user space programs simultaneously? For example, single step a program from user space to kernel space so I can observe the changes of registers on the qemu monitor by issuing info registers ? 回答1: I achieve it by using the gdb command add-symbol-file to add userspace programs debugging information. But you must know these programs loading addresses. so to be precise, you have to launch the

ubuntu 14.04(32位)中使用qemu+gdb调试Linux内核

大城市里の小女人 提交于 2019-12-29 11:43:26
文章目录 编译运行Linux内核并通过qemu+gdb调试 实验目的 实验环境 实验内容 一、制作根文件系统 1、下载并编译Linux内核 2、准备模拟器qemu 3、制作根文件系统——方法一 3、制作根文件系统——方法二:利用busybox生成根文件系统(推荐) 4、熟悉linux简单指令 二、gdb+qemu调试内核 1、gdb简介 2、在qemu中启动gdb server 3、建立gdb与gdb server之间的链接 4、加载vmlinux中的符号表并设置断点 5、重新配置Linux,使之携带调试信息 参考资料 编译运行Linux内核并通过qemu+gdb调试 实验目的 熟悉Linux系统运行环境 制作根文件系统 掌握Linux内核编译方法 学习如何使用gdb调试内核 熟悉Linux下常用的文件操作指令 实验环境 OS:Ubuntu 14.04 i386(32位) 待调试的Linux内核版本:Kernel 2.6.26 注意 :本次实验必须在Ubuntu系统上实现,可直接在机房完成,或在个人PC上安装虚拟环境完成,请注意需要安装32位的Ubuntu镜像。 实验内容 一、制作根文件系统 1、下载并编译Linux内核 下载linux-2.6.26.tar.gz,解压缩得到目录linux-2.6.26,不妨称之为Linux源代码根目录(以下简称源码根目录) mkdir ~

python扩展实现方法--python与c混和编程

[亡魂溺海] 提交于 2019-12-26 23:58:19
参考 python扩展实现方法--python与c混和编程 编写Python扩展(Extending Python with C or C++) https://docs.python.org/2.7/extending/embedding.html 环境 主机: ubuntu14.04 64bit 开发板: qemu + aarch64 (参考: http://www.cnblogs.com/pengdonglin137/p/6442583.html ) 工具链: aarch64-linux-gnu-gcc (gcc version 4.9.1 20140529) Python版本: Python-2.7.13 概述 上面参考列表中的文章已经说的很全了,这里仅作一些补充。分为三个: 1、交叉编译扩展模块到aarch64上面 2、编译扩展模块到Qemu模拟的x86_64上面 3、编译扩展模块到PC(x86_64)上面 采用的测试模块是Extend_wrap.c,这个在 python扩展实现方法--python与c混和编程 中有说明,源码如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <Python.h> 5 6 #define BUFSIZE 10 7 8 int fac

Ubuntu下qemu环境搭建vexpress开发平台

前提是你 提交于 2019-12-26 15:21:14
在查找资料过程中,发现自己搭建虚拟的arm环境的话,有一个比较好的软件就是qemu了,当然还有其他的,大家各投所好就好。 接下来说一下qemu环境搭建过程。 其实搭建很简单,作为小白,我还是捣鼓了两三天才真正的安装成功,正在尝试着怎么使用。 上篇已经讲了安装Ubuntu系统后root密码的设置,这里就要用到root密码进行软件安装了。 可以在命令行模式下先进行update,输入:sudo apt-get update 在保证电脑联网的情况下,Ubuntu会自动进行文件更新,这个操作并不会更新整个文件系统, 他只是同步le /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。 并且只有在更新了资源列表后才能使用apt-get install进行成功安装(我当时就是没有update就去安装程序,失败了好多次,各种欲哭无泪, 另:一定要保证自己的网络环境良好,更新的文件都不大但是我想你不会想看着电脑以100B的速度去下载6000K+的文件的555555) 在update完成之后就可以进行qemu的安装了,输入指令:sudo apt-get install qemu(如果失败并提示你需要尝试修复什么文件的话用sudo apt-get -f install qemu代替) 在连着输入两个表示同意的‘y

Error while running poky-qemu: version `GLIBC_2.17' not found. How to solve this?

て烟熏妆下的殇ゞ 提交于 2019-12-25 16:24:26
问题 I am using 32Bit Ubuntu 14.04, where newest version of libc6 is already installed. When I run 'poky-qemu qemuppc zImage-2.6.37-qemuppc-1.0.bin yocto-image-lsb-sdk-qemuppc-1.0.rootfs.ext3' , I am getting following error: /opt/poky/1.0/sysroots/i686-pokysdk-linux/usr/bin/qemu-system-ppc: /opt/poky/1.0/sysroots/i686-pokysdk-linux/lib/libc.so.6: version `GLIBC_2.17' not found (required by /usr/lib/i386-linux-gnu/libdrm.so.2) Is this problem in toolchain or my host machine? How to solve this error

How to print strings in assembly language

▼魔方 西西 提交于 2019-12-25 04:05:18
问题 I am trying to print a string in Q Emulator using NASM. My code is as below: mov bx,HELLO mov ah, 0x0e int 0x10 HELLO: db 'Hello', 0 jmp $ times 510-($-$$) db 0 dw 0xaa55 However when I compile this code, the output that I get is UU Can anyone please tel me why this is so? And how to get the required string as output? Thanks in advance. 回答1: ALRIGHT SO here is a thingamabob to your question In order to load the string, you must move it into si (don't really want to go to deep but just do it).

Linux vanilla kernel on QEMU and networking with eth0

六眼飞鱼酱① 提交于 2019-12-24 10:59:00
问题 I have downloaded and compiled vanilla linux kernel (3.7.1) I used busybox for ramdisk then I booted it using QEMU. This is my QEMU command line qemu-system-i386 -kernel bzImage -initrd ramdisk.img -append "root=/dev/ram rw console=ttyS0 rdinit=/bin/ash" -nographic -net nic -net user everything goes well. However, I can't use networking on vanilla kernel with busybox. 'ifup eth0' tells me / # ifup eth0 ip: SIOCGIFFLAGS: No such device I googled the Internet but can' get any clue... some

bootloader printing on video memory 0xb8000

ぃ、小莉子 提交于 2019-12-24 00:48:28
问题 I am 3-4 days old in assembly programming. trying to print a string in video memory and running through qemu. I expected this program to print Hallo world. But it prints nothing. qemu window prints "Booting From Hard Disk ..." Nothing else Is it only 16 bit that is allowed in bootloader ? in that case how will I do MMIO ? I was following actual page 32 [ ENTERING 32-BIT PROTECTED MODE ] of http://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf [bits 32] [org 0x7c00] loop: mov

Can you check performance of a program running with Qemu Simulator?

孤街醉人 提交于 2019-12-24 00:12:11
问题 Say if I am running an ARM simulator using Qemu, is it possible to find the time of execution of a program as it would be on the real ARM processor. In other words if I use functions such as gettimeofday , in a program running on the simulator, to check the elapsed time, will the elapsed time be given accurately through the cycle-accurate simulation? 回答1: Investigation in this issue at our company concluded that Qemu (for the ARM) is not cycle accurate. If I remember correctly cycle accuracy