静态编译qemu_使用qemu启动YunOS系统(或自己编译的系统,例如LFS)

本文档详细介绍了如何静态编译QEMU以启动YunOS或其他自定义系统,如LFS。首先讲解了如何在Ubuntu 14.04环境下编译QEMU 2.6版本,接着讨论了系统镜像的创建与启动,包括不同启动命令的解析,解决启动过程中可能遇到的问题,如kernel找不到rootfs或init。最后,通过添加 Virtio console 和Framebuffer配置,实现对系统的远程控制和图形支持。内容涵盖编译、启动、调试等多个方面,适合QEMU和系统启动的初学者。
摘要由CSDN通过智能技术生成

网上关于如何使用qemu启动虚拟机的文章多了去了,但都是启动ubuntu,fedora, windows之类现有的系统,如何启动一个新的系统呢?比如YunOS,或者自己编译的LFS,或者其它不常见的系统,这是文本主要研究内容。

开发环境ubuntu14.04,qemu版本2.6,guest os为YunOS yunhal,x86,kernel-4.4.27。

一、编译qemu

在实现自定义virtio设备之前,qemu都可以从官网上下载编译好的。建议使用qemu-2.5以及之上的版本,因为有virtio gpu,guest os可以使用host os中的物理gpu,画图效果会好很多,具体在第七章说明。

如何编译:http://www.cse.unsw.edu.au/~plinich/build_qemu_on_macosx.html

因为我的机器已经有了zlib,glib之类的依赖,所以我这边是直接下载qemu代码,然后编译的:

# 下载qemu代码会很慢...

git clone git://git.qemu-project.org/qemu.git

# 使用2.6版本代码

git checkout remotes/origin/stable-2.6

# target为x86和x86_64,不需要arm

./configure --prefix=~/qemu --target-list="i386-softmmu x86_64-softmmu"

make

make install如果configure失败,慢慢安装各种依赖吧。

二、系统镜像

既然我们需要启动系统的镜像,那么首先需要了解一下系统的镜像。

常见启动命令

1、qemu-system-i386 -hda  disk.img

bootloader,kernel,ramdisk,rootfs什么的都在一个文件里面,这个文件是磁盘的镜像,比如virtualbox的vdi文件,或者iso文件。

2、qemu-system-i386  -kernel bzImage -hda  system.img

kernel和rootfs是独立的文件,而且没有ramdisk,不要在意bootloader,因为qemu可以直接启动kernel了,还要bootloader干啥

3、qemu-system-i386  -kernel bzImage  -initrd ramdisk.img-hda  system.img

kernel、ramdisk、rootfs都是独立的文件,有ramdisk

常见问题

1、只有boot.img和system.img,kernel和ramdisk从哪得到呢

如果boot.img-ramdisk.gz大小为0,说明没有ramdisk,如果不为0,可以解压ramdisk:

cp boot.img-ramdisk.gz ramdisk.img

mkdir ramdisk && cd ramdisk

gunzip -c ../ramdisk.img | cpio -ivmd

打包ramdisk:

find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../ramdisk.img

另外需要注意boot.img-cmdline文件,是bootloader传给内核的参数,YunOS yunhal的boot.img-cmdline为:

$ cat boot.img-cmdline

loglevel=5 androidboot.hardware=cht_hr firmware_class.path=/system/etc/firmware bootboost=1 \

pm_suspend_debug=1 memmap=4M$0x5c400000 intel_pstate=disable vga=current i915.modeset=1 \

drm.vblankoffdelay=1 i915.fastboot=1 thermal.off=1 console=ttyS0,115200n8 \

pstore.backend=ramoops enforcing=0 androidboot.selinux=permissive

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值