通过VMware交叉编译Linux内核和调试

时间:2009-06-16 07:09:45

标签: linux linux-kernel vmware linux-device-driver

我正在考虑在vmware VM下进行一些Linux内核和设备驱动程序开发,以便在Ubuntu 8.04主机上进行编译时进行测试(Ubuntu 9.04作为vmware server 2.0下的guest虚拟机)。

我不想在虚拟机下执行编译时的性能损失。

我知道内核显然不会链接到自身以外的任何内容,因此在这方面应该没有任何问题,但是

  1. 在做这件事时我需要注意哪些特殊问题?
  2. 当内核崩溃时还有一台正在运行的计算机,这个设置还有其他好处吗?
  3. 是否有使用此类设置的指南?
  4. 修改

    我已经在主机上使用GDB通过Workstation 6.0看到了许多对VMware远程调试的引用。有谁知道这是否适用于任何VMWare的免费版本,如Server 2.0。

2 个答案:

答案 0 :(得分:2)

我不确定ubuntu的事情。鉴于您没有进行真正的交叉编译(即x86-> arm),我会考虑使用make-kpkg包。这应该产生一个可安装的.deb 存档内核为您的系统。这对我来说对debian有用,它可能适合你 在ubuntu上。

有关make-kpkg的更多信息: http://www.debianhelp.co.uk/kernel2.6.htm

  1. 我不知道任何陷阱。但基本上它取决于你是什么样的内核部分 正在与...合作。您需要的硬件/驱动程序越多,VM就越不适合您。

  2. 可能是更快的靴子,我最喜欢的是拍摄恐慌信息的截图(cut'n'paste)。

  3. 尝试浏览vmware社区。这个帖子看起来非常有前途,尽管它有所讨论 MacOS主题: http://communities.vmware.com/thread/185781

答案 1 :(得分:0)

无论如何编译,编辑和编译都非常快,每次修改驱动程序时都不会重新编译整个内核。

在崩溃之前,你可能会出现死锁,资源使用不当导致无法移动的模块,内存泄漏等等......即使你的机器没有崩溃,所有需要重启的东西,所以是的,这可能是一个好主意。

陷阱可以以安装步骤和模块依赖关系生成的形式出现,因为您不想在主机中安装驱动程序,而是在目标机器中安装。

相关问题