2009-06-16 60 views
2

我正在考虑在Ubuntu 8.04主机上进行编译时,在vmware虚拟机下进行一些Linux内核和设备驱动程序开发以用于测试(在vmware server 2.0下作为guest虚拟机使用Ubuntu 9.04)。交叉编译Linux内核并通过VMware进行调试

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

我知道内核显然不链接到任何外部的本身所以不应该有这方面的任何问题,但

  1. 有没有什么特殊的疑难杂症的,我需要注意这样做时,这个?
  2. 除了内核崩溃之外,还有一台正在运行的计算机,对此设置是否还有其他好处?
  3. 有没有使用这种设置的指南?

编辑

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

+0

关于调试那里有许多页面描述使用gdb来调试,如果你在调试模式下运行kvm。你使用vmware而不是kvm的原因是什么? – stsquad 2009-06-16 22:08:25

回答

2

我不确定ubuntu的东西。鉴于您没有进行真正的交叉编译(即x86-> arm),我会考虑使用make-kpkg软件包。这应该为您的系统生成一个可安装的.deb 内核档案。这将在Debian上适用于我,它可能适用于您在Ubuntu上的 。

更多阅读make-kpkg: http://www.debianhelp.co.uk/kernel2.6.htm

  1. 我不知道任何陷阱的。但基本上,这取决于你使用哪种内核部分。您需要的硬件/驱动程序越特殊,虚拟机越不可能为您工作。

  2. 可能更快的靴子,我最喜欢的是可能采取屏幕截图(cut'n'paste)的恐慌消息。

  3. 尝试浏览到vmware社区。这个主题看起来非常有前途,但它兼谈为MacOS 话题: http://communities.vmware.com/thread/185781

0

编译,编辑,编译是相当快的,无论如何,你不要每次修改驱动程序重新编译时你整个内核。

在崩溃之前,您可能会遇到死锁,资源使用不当,导致无法移除的模块,内存泄漏等......即使机器没有崩溃也需要重新启动的所有类型的东西,所以可以一个好主意。

由于您不想将驱动程序安装在主机中,而是安装在目标机器上,因此可能会出现安装步骤和模块依赖性生成的问题。