Ank*_*rVj 30 ubuntu make linux-kernel
我已经阅读了许多关于如何使用这些内核构建自定义内核和启动 Ubuntu 的教程,并成功地遵循了指南并启动了自定义内核,但我不了解指南中的每个命令的作用以及实际发生的情况每个命令。
Ubuntu 网站上描述的过程对fakeroot
, dpkg
, make-kpkg
, 一些 initramfs 和其他可怕的东西做了很多工作,但根本无法帮助我理解发生了什么。
make
linux内核目录中的输出是什么?make modules
?make modules
在之前还是之后make
?make
自动构建我的模块吗?make install
?make install
它添加到我的可引导内核列表中,这样我就不必再做任何事情了吗?make modules_install
吗?bah*_*mat 39
从一开始...
make
编译并链接内核映像。这是一个名为vmlinuz
.make modules
为您M
在内核配置期间回答的每个问题编译单独的文件。目标代码与您新构建的内核相关联。(对于Y
已回答的问题,这些已经是 的一部分vmlinuz
,对于已回答的问题,N
它们将被跳过)。make install
将您构建的内核安装到/vmlinuz
.make modules_install
将您的内核模块安装到/lib/modules
或/lib/modules/<version>
。至于将其添加到可用内核列表中,则由引导加载程序处理。每个引导加载程序都不同,但grub
在 x86 和 amd64 上最常见,因此我将对其进行描述。其实很简单。蛴螬看起来/
,/boot
和/lib/modules
任何东西,看起来像它可能是一个工作的内核,并增加了它。是的,这是一个过于简单化的描述。
Ubuntu 文档中额外的“可怕的东西”是创建deb
包的额外东西。当您为自己做更多事情时,最好将其打包。你会及时切换。
构建内核和模块是分开的,因为对于需要的人(即内核开发人员)来说,他们通常只对一个模块进行更改。他们可以应用他们的更改,重建和安装模块。当每天必须完成 20 次时,这可以节省大量时间。它永远不会更新为具有单个make everything
命令。相反,您make && make modules && make install && make modules_install
可以像文档所说的那样运行。构建过程有利于内核开发人员,而不是您。这就是它应该的方式。
实际上,除了内核开发人员或发行版打包人员之外,几乎没有任何人可以编译内核。几乎在任何情况下,您想要的内核功能都已经为您构建好了,并且可以在预打包的内核之一中使用。也有例外,但如今它们极为罕见。
并不是说我不鼓励您构建自己的内核,我实际上鼓励您这样做。我认为从头开始构建你的内核是学习它如何在那里工作的宝贵实践。部分原因是,也许有一天你会成为需要的例外。但它也教你很多关于内核和启动过程的一般知识。你会因为这样做而成为一个更好的人。
归档时间: |
|
查看次数: |
24608 次 |
最近记录: |