天天看点

《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核

本节书摘来自异步社区《树莓派实战秘籍》一书中的第2章,第2.3节,作者: 【美】ruth suehle , tom callaway 更多章节内容可以访问云栖社区“异步社区”公众号查看。

让你的树莓派使用最新的linux内核?你当然可以这么做,而且有一种方法可以让你不必从源代码构建就能够获取它们。

树莓派基金会的好人们经常努力工作增加新的功能到linux内核源代码树中,而且他们又进一步定期更新一份预构建的linux内核映像文件的拷贝。这个内核专门为树莓派配置了一系列选项及模块。使用这个内核意味着你可以确定所有内置到树莓派的硬件,以及任何树莓派的特定功能都可以正确地启动。

树莓派基金会在他们提供fireware的同一个git仓库中也提供了预构建的二进制内核映像文件。参考技巧04的教程可以获得该git树的副本。

请记住该git树有两个分支:master是树莓派基于3.2版本linux内核的源代码树,而next是树莓派基于3.6版本linux内核的源代码树。你需要确保内核和固件修订版本匹配,否则,你的内核可能无法启动(或功能不能按你希望的方式工作)。预构建的内核文件的位置对git库的每一个分支都是相同的。

树莓派基金会的预构建linux内核使用方便,专为pi的使用而设计,包含了许多常见的设备驱动模块。然而,它也缺少了一些你可能需要连接的外设模块。如果发生这样的情况,你可能想去从源代码构建一个自定义的linux内核,如技巧22中所描述的。

预构建linux内核映像文件由两部分组成:

核心linux内核映像(firmware/boot/kernel.img)

和该映像匹配的预构建linux内核模块(firmware/modules)

你可以在github网站1上查看核心linux映像文件的构建历史记录。如果你想查看next分支的历史记录,只需要在网站上下拉改变分支2,或者用next替换url中的master。

可选的预构建内核变种

《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核
《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核

现在你可以安全地从你的git checkout出来的目录中拷贝新的核心linux内核映像到boot分区(以root用户),当你拷贝时,你也许会将kernel.img重新命名(或者重命名已存在的sd卡boot分区中的kernel.img文件)。

接下来该是安装匹配的预构建内核模块的时候了,你可以在git checkout文件的firmware/modules目录中找到这些模块文件。这里至少有两个目录,每一个都包含了一个版本,对应于用于构建这些映像文件(以及模块)的linux内核版本。在本书写作之时,这个版本是3.6.10,如下所示:

《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核

那个+号是什么情况?

3.6.10+目录中包含了为kernel.img构建的模块,而3.6.10-cutdown+目录则包含了为kernel_cutdown.img构建的模块。这是有意义的,对不对?如果你已经将kernel_cutdown.img文件拷贝到sd卡的boot分区中,此时你需要有相应的模块。如果你已经拷贝了单一的kernel.img文件,你也可以将其放在一边,拷贝cutdown内核的模块不会影响任何东西,除了它们会占用大约15m多的sd卡空间以外。

对于预构建的内核,下述命令将可以拷贝适当的模块:

《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核

从现在起,你将需要做你在安装完从源代码生成的内核后所做的同样的安装后任务,如2.2.5小节“安装后任务”所述。

将树莓派变更合并到上游linux内核源代码

继续阅读