我想在Qemu上开发Linux内核开发。我想修改一些内核文件作为我的项目的一部分。我只能在网上找到linux发行版的ISO文件,我认为我们无法编辑。有人可以指出我正确的方向吗?
答案 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系统上安装。