【问题标题】:Linux kernel on virtual machine虚拟机上的 Linux 内核
【发布时间】:2012-08-26 21:18:36
【问题描述】:

我正在学习 Linux 驱动程序编程,建议我使用自编译的 Linux 内核而不是任何发行版。我曾尝试在 ubuntu 中编译 Linux 2.6.9,但该过程在“make menuconfig”阶段返回错误。

我更喜欢在虚拟环境中使用 Linux,这样我就可以无所畏惧地试验内核。那么,有什么方法可以在虚拟机中编译和运行 Linux(比如安装在 Windows 上的 VMware)?我可以使用 Live CD 来编译内核。

所以简而言之,请建议,我如何才能在虚拟机中以无错误的方式编译、安装和运行 Linux 内核?

我搜索并阅读了this。但是在我重新启动计算机时执行了这些步骤后,没有单独的 Linux 3.2.17 操作系统。但是我的 ubuntu 12.04 现在显示的是 3.2.17 内核。虽然这是我第一次在 ubuntu 上编译整个内核而没有任何错误,但我想将该内核加载到其他分区并将其用作独立操作系统。那么,如果有人能告诉我,除了教程中的步骤之外,我还需要做什么才能实现这一目标?

【问题讨论】:

    标签: compilation linux-kernel virtual-machine


    【解决方案1】:

    最简单的做法可能是在 VM 上安装一些 Linux 发行版,例如 VMWare 或 VirtualBox,然后从那里继续。您可以尝试使用 live-cd,但我猜缺少持久性存储可能会让人恼火。当然,有一些方法可以解决这个问题,但安装一些发行版可能更简单,如果你只想编译内核,你实际上并不需要那么多磁盘空间。

    如果您只想编译内核模块,并且您已经预装了一些 Linux 环境,您还应该注意现代 Linux 安装允许您编译模块而无需重新编译整个内核.不过,您将需要内核源代码和头文件。例如,请参阅this document

    顺便说一句,说到现代内核,您为什么选择使用 2.6.9?到现在已经快8岁了。较新的内核实际上可能更容易开发。另外,也不能保证 使用这种旧内核开发的模块仍然可以与当前内核一起使用。

    【讨论】:

    • @tristram...感谢您的回答...我有 ubuntu 作为操作系统...但是当我在上面编译 linux 内核时...它返回错误...我在问如何我能解决这个问题吗(这就是我写“无错误方式”的原因)
    • @avinash 当然,这在很大程度上取决于您遇到的错误。但是,如果您检查上面的链接,您会发现它指向完整的“编译内核”指南——尽管我特别指出了模块编译章节。
    【解决方案2】:

    我建议你阅读this page。本文档向您展示如何在 qemu 上启动您的个人内核以及如何在其上使用调试器。

    【讨论】:

      【解决方案3】:

      Kernelnewbies 是开始内核黑客攻击的正确位置。该网站包含一组丰富的关于内核黑客和调整的教程,仅供新手 Linux 开发人员使用。此外,您还可以加入社区并开始为一些小型 Linux 项目做出贡献。

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

      【讨论】:

        猜你喜欢
        • 2019-10-28
        • 1970-01-01
        • 2011-10-20
        • 2011-07-21
        • 2015-01-26
        • 1970-01-01
        • 2021-10-29
        • 1970-01-01
        • 2023-03-28
        相关资源
        最近更新 更多