您如何获取硬件信息并选择要保存在从源代码编译的内核中的驱动程序?

Par*_*ner 6 compiling kernel configuration

我想为 Web 服务器创建一个最小内核。

当您从源代码编译内核时,您如何获取硬件信息,然后知道内核中需要保留哪些驱动程序以便可以删除其余驱动程序?

r00*_*004 5

  1. 您应该了解一些发行版,例如 Arch 或 Gentoo;有专门的内核可用于虚拟化。例如,如果您想在 Virtuozzo 或 VMware 技术下运行 Linux。

  2. 使用该命令lspci -n并将其输出粘贴到http://kmuto.jp/debian/hcl;该站点为您提供了一般所需的内核模块。然后转到内核配置(例如menuconfig)并按/搜索选项,找到它们的位置并激活它们。

  3. 有一个名为“内核种子”的站点,它.config根据内核版本制作通用内核文件。最好比较.config您不确定的内核选项和模块。

  4. 尝试自己构建内核并减少使用配置脚本;如果您想拥有与您的硬件相关的内核选项,那就更好了。

  5. 尝试使用最新版本的优质 live cd/usb 启动您的机器。我建议bodhi linuxFatDog/Puppy linux。然后lsmod在那里做并查看加载的模块列表。这些是您需要在内核中构建或作为模块添加到内核并在启动时加载的内核选项列表。


jas*_*yan 2

更新的内核附带了一个有用的脚本streamline_config.pl1,它将帮助您创建一个.config仅包含当前运行的内核所需的模块的文件。该脚本有一个带注释的“如何做”以及所有必要的步骤。

手动完成相同任务的另一种方法是使用localmodconfig. 解压并准备好下载的内核后,在新的自定义内核中插入您可能需要的任何外部设备,以便加载相关模块。

然后,您可以使用该命令启动编译过程make localmodconfig,并且您的.config文件将仅基于当前加载的模块生成。

在这两种情况下,最重要的是确保在编译之前列出了所需的所有内容lsmod,否则这些模块将不会被选择进行构建。

第一次(几次)执行此操作时,请.config在编译之前检查生成的文件,以检查它是否包含您需要的内容。

Arch Wiki 有一个关于传统方式编译的页面,并包含有关使用localmodconfig.


1.位于scripts/kconfig/