使用Qemu进行Linux内核开发?

时间:2013-10-23 04:04:48

标签: linux linux-kernel kernel qemu

我想在Qemu上开发Linux内核开发。我想修改一些内核文件作为我的项目的一部分。我只能在网上找到linux发行版的ISO文件,我认为我们无法编辑。有人可以指出我正确的方向吗?

4 个答案:

答案 0 :(得分:1)

从kernel.org下载Linux内核源代码,然后修改,配置,构建内核。构建完成后,您将获得通常位于arch / x86 / boot / bzImage的内核映像(如果您的arch是x86,请查看适合您的arch的位置),这就是在Qemu上测试修改后的内核所需的内容。您还需要一个rootfs(使用busybox)来正确运行它。使用qemu的'-kernel'参数传递bzImage。一个例子:

 `qemu-system-x86_64 -m 1024 -smp 4 -kernel arch/x86/boot/bzImage -initrd initramfs.gz -append "rdinit=/ root=/dev/ram`

它告诉qemu使用1024个ram,使用4个cpu。

答案 1 :(得分:1)

Buildroot to rescue

Buildroot是一组脚本,可生成小于10MiB的rootfs图像的小型发行版。

它从源代码下载所有内容并编译它,因此修补程序包很简单。 BR2_GLOBAL_PATCH_DIR https://buildroot.org/downloads/manual/manual.html#customize-patches

支持修补机制

生成的图像非常小,可以理解整个用户区设置,这样可以更容易地专注于内核。

我已创建此设置以尽可能自动化:https://github.com/cirosantilli/linux-kernel-module-cheat

此设置也适用于ARM:How to use QEMU for learning ARM Linux kernel development?

答案 2 :(得分:0)

我建议的最佳方式是ubuntu-vm-builder。

sudo ubuntu-vm-builder qemu precise --arch 'amd64'  --mem '1024'  --rootsize '4096'  --swapsize '1024'  --kernel-flavour 'generic'  --hostname 'ubuntu'  --components 'main'  --name 'Srikanth'  --user 'ubuntu'  --pass 'ubuntu' --bridge 'br0'  --libvirt 'qemu:///system'

然后在qemu中运行它。

这将构建一个qcow2文件,该文件在写入时是复制的,并且比从源代码获取内核并编译它更快。

答案 3 :(得分:-1)

如果要修改linux内核,可以从https://www.kernel.org/下载内核源代码。修改代码后在Linux系统上安装。