使用Qemu的Linux内核开发?

我想在Qemu上开发Linux内核。 我想修改一些内核文件作为我的项目的一部分。 我只能find在线的Linux发行版的ISO文件,我认为我们不能编辑。 任何人都可以请指出我在这个正确的方向吗?

从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内存,使用4个CPU。

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

我建议的最好的方法就是你的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文件,这是写入时的复制,并且比从源代码获取内核并编译它更快。

建立根据救援

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来说也很好: 如何使用QEMU学习ARM Linux内核的开发?