虚拟机上的Linux内核

5
我正在学习Linux驱动程序编程,建议我使用自编译的Linux内核而不是任何发行版。我尝试在Ubuntu中编译Linux 2.6.9,但在'make menuconfig'阶段出现错误。
我希望在虚拟环境中使用Linux,以便可以无惧地对内核进行实验。那么,有没有办法在虚拟机中(例如安装在Windows上的VMware)编译和运行Linux?我可以使用Live CD来编译内核。
简而言之,请建议如何以无误的方式在虚拟机中编译、安装和运行Linux内核?
我查阅了这篇文章。但是,在按照这些步骤操作后重新启动计算机时,并没有单独的Linux 3.2.17操作系统。但我的Ubuntu 12.04现在显示了3.2.17内核。虽然这是我第一次在Ubuntu上编译整个内核而没有任何错误,但我想将该内核加载到其他分区并将其用作独立的操作系统。因此,如果有人能告诉我除了教程中的步骤之外还需要做什么,那就太好了。
3个回答

2
最简单的方法可能是在虚拟机上安装一些Linux发行版,例如VMWare或VirtualBox,并从那里继续。您可以尝试使用Live-CD,但我猜缺乏持久存储可能会让人恼火。当然,有办法解决这个问题,但安装某个发行版可能更简单,如果您只想编译内核,实际上不需要太多磁盘空间。
如果您只想编译内核模块,并且已经安装了一些预先安装的Linux环境,您还应该注意到现代Linux安装允许您编译模块而无需重新编译整个内核。但是,您仍需要内核源代码和头文件。例如,请参见this document
顺便说一句,谈到现代内核,为什么选择使用2.6.9?它现在已经近8年了。更新的内核实际上可能更容易开发。此外,不能保证使用这样旧的内核开发的模块仍将与当前内核兼容。

@tristram...感谢你的回答...我使用Ubuntu作为操作系统...但是当我在上面编译Linux内核时...会返回错误...我想知道如何解决这个问题(这就是为什么我写了“无错误方式”的原因)。 - AvinashK
1
@avinash 当然,这很大程度上取决于您遇到的错误。但是,如果您检查上面的链接,您会发现它指向了一个完整的“编译内核”指南 - 尽管我特别指出了模块编译章节。 - tristram shandy

1

我建议您阅读此页面。该文档向您展示了如何在qemu上启动您的个人内核以及如何在其中使用调试器。


1

Kernelnewbies 是开始内核编程的正确地方。该网站包含一系列关于内核编程和调整的丰富教程,专为新手Linux开发人员设计。此外,您可以加入社区并开始为一些微小的Linux项目做出贡献。

对于快速入门,请按照 "kernel first patch" 教程中的说明操作。由于在本教程中克隆了 "origin" 远程存储库,因此您将在最新的Linux内核分支上工作。所以,不用担心在旧版本的Linux上工作。同时,如果您不熟悉使用git树进行工作,您总是可以从 "kernel.org" 的首页下载最新版本的Linux。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接