该make localmodconfig
命令仍然是完成任务的正确工具。实际上make localmodconfig
运行scripts/kconfig/streamline_config.pl
。
档案输入
读取streamline_config.pl
(Perl)源代码时,有一个未公开说明的功能my $lsmod_file = $ENV{'LSMOD'};
,该功能允许文件输入用于加载的模块检测,而不是lsmod
命令的输出。
现场CD
因为localmodconfig使用输出lsmod
来检测已加载的模块。我们在每种不同的硬件设置上运行Ubuntu Live CD,打开一个终端(Ctrl+ Alt+ T),运行lsmod
并保存其输出。
连接输出
通过lsmod
在剥离连续的标题行的同时串联输出文件,您可以快速创建一个涵盖所有必需内核模块的输入文件。我们想手动查看模块列表,并使用更手动的方法:
$ cd linux-3.11.0/
或转到您将运行make命令的目录
$ lsmod > lsmod.txt
用加载的模块创建一个文本文件
$ nano lsmod.txt
将打开nano文本编辑器,当然您可以使用自己喜欢的编辑器应用程序
将尚不存在的所需模块附加到该文件的底部(请参阅示例清单底部的示例),并在准备好后将其保存。
注意:使用空格而不是制表符来匹配列制表符的位置。
$ make LSMOD="lsmod.txt" localmodconfig
这将告诉localmodconfig使用您的lsmod.txt文件作为已加载模块检测的输入
关于steamline_config.pl的作者Steven Rostedt,他建议在第5步中使用较短的符号。
关于要附加或不附加至lsmod.txt的示例(步骤4):
因为Intel D33217CK主板具有我们要阅读的Intel热传感器,所以我们添加以下行:
x86_pkg_temp_thermal 13810 0
intel_powerclamp 14239 0
但是我们不想在此硬件上运行虚拟机,这就是为什么我们跳过这些行:
kvm_intel 128218 0
kvm 364766 1 kvm_intel
它在其Thunderbolt端口上连接了Apple(Broadcom)Gibabit以太网适配器,因此我们附加:
tg3 152066 0
ptp 18156 1 tg3
pps_core 18546 1 ptp
我们认为我们不需要卷镜像,因此不要添加:
dm_mirror 21715 0
dm_region_hash 15984 1 dm_mirror
dm_log 18072 2 dm_region_hash,dm_mirror
而且我们也不需要图形输出(文本将在无头服务器上完成),因此我们不包括:
i915 589697 3
i2c_algo_bit 13197 1 i915
drm_kms_helper 46867 1 i915
drm 242354 4 i915,drm_kms_helper
对于另一台机器,我们还需要此Realtek以太网驱动程序:
r8169 61434 0
mii 13654 1 r8169