在正式的Raspbian“乳白色”图像(2012-07-15)中,有三个内核图像:


kernel.img(6MB)
kernel_cutdown.img(4MB)
kernel_emergency.img(16MB)

我很好奇它们之间的技术区别是什么?何时更改默认值(kernel.img)可能会有所益处?

评论

对于那些不知道的人-您可以通过在/boot/config.txt文件中添加一行来选择要使用的内核,例如启动缩减内核:kernel = kernel_cutdown.img

#1 楼

我似乎找不到有关Raspbian内核的任何特定信息。但是,我可以根据我在Linux内核方面的经验提供信息。

传统上,当您为发行版编译内核时,您希望它能够涵盖对相当广泛的硬件的支持。 。例如,各种图形卡和无线卡以及诸如SATA控制器和文件系统支持之类的更简单的东西。然后,内核还将具有模块化支持,以便可以通过模块的加载来支持其他硬件。您将看到通过使用modprobe或更传统的insmod完成此操作。模块加载通常会在后台进行,例如,当您插入USB硬盘驱动器时,将加载usbcore模块。
通常不知道的是,这种支持也可以内置到内核中,这增加了它的大小和启动时加载的时间,但通常可以提高性能。

面临的问题由开发人员决定是应将支持编译到内核中,作为模块提供还是完全忽略。

标准内核kernel.img将尝试涵盖最可能的硬件组合。对于像Raspbian这样的发行版,它可能包括所有Raspberry Pi硬件以及运行的操作系统所需的其他部分。内核看起来很小(我已经构建了大于50MB的内核),所以我想即使使用基本内核,大多数支持也是模块化的。

kernel_cutdown.img将提供尽可能小的图像,但仍然允许系统可用。这可能包括基本文件系统和网络。但是外部外围设备支持的方式不多,因此不必再插入该USB无线适配器。有时,将在没有完全模块化的情况下构建缩小图像(这可能是图像大小的一半)。

相比之下,kernel_emergency.img可能与截短相反。这个过大的映像将包含编译到内核中的广泛支持。该映像通常在难以识别的其他内核出现问题时使用,因为在几乎所有情况下都应提供可引导的安装。请将其视为安全模式。

希望对您有所帮助。如果我发现有关Raspian图像的更多详细信息,则将其添加到此处。