我需要使用从 GIT 中获取的几个旧内核版本来测试 LKM。
基于 Ubuntu wiki 页面构建自己的内核和内核Git指南我遵循以下食谱:
$ git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/<series> <series>
$ cd <series>
$ git tag -l Ubuntu-*
$ git checkout Ubuntu-v.w.x-y.z
$ LANG=C fakeroot debian/rules clean
$ LANG=C fakeroot debian/rules binary-headers binary-generic binary-perarch
我测试过的许多内核版本都支持该功能,包括 Ubuntu-2.6.32-418.35 之前的版本。但是,我遇到了以下奇怪的错误。
$ dpkg --print-architecture
amd64
$ git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/maverick maverick
$ cd maverick
$ git tag -l Ubuntu-2.6.32-418.35*
Ubuntu-2.6.32-418.35
$ git checkout Ubuntu-2.6.32-418.35
$ LANG=C fakeroot debian/rules clean
$ LANG=C fakeroot debian/rules binary-headers binary-generic binary-perarch
...
dpkg-gencontrol: error: current host architecture 'amd64' does not appear in package's architecture list (armel)
看日志获取完整输出和额外的系统信息。
我有一些疑问:
- git
Ubuntu-v.w.x-y.z
标签是否仅限于一个/一些特定的 arch/s?在这种情况下,标签似乎Ubuntu-2.6.32-418.35
仅支持armel
。 - 如果是这样,有没有办法预先知道哪些
Ubuntu-v.w.x-y.z
标签支持amd64
? - 有没有办法更改内核配置以
Ubuntu-2.6.32-418.35
进行编译amd64
。我试过了LANG=C fakeroot debian/rules editconfigs
,但它看起来像 arm 配置,并且在系统列表中没有 i386/amd64。根目录中没有 .config 文件,不确定使用编译内核时正确的方法是什么debian/rules
。有没有办法将其更改为 x86 配置?怎么做?
谢谢