关于 Linux Kernel 的编译

2016-09-16 17:40:59 +08:00
 okudayukiko0
1.自己编译的内核(也删除了一些不需要的东西),内核的模块足足有 1 个 GB 那么大,比系统自带的内核大多了。
2.Enable Loadable Module Support 的本质是什么?将所有模块都编译到内核文件中?或者只允许访问特定的模块(估计是在编译内核时产生的内核模块列表)?会不会对 KVM 、 VMware 、 VirtualBox 这类依赖内核模块的软件产生影响?会不会对安装驱动程序( eg : NVIDIA/AMD 驱动)有影响?
3357 次点击
所在节点    Linux
9 条回复
regist
2016-09-16 17:49:47 +08:00
估计你就删除了几个吧,如果编译一个普通 PC 配置的内核, kernel 中的驱动要去掉至少 90%
Enable Loadable Module Support 就是字面的意思。对 vmware virtualbox 当然有影响,他们本身就需要打开这个内核开关。
regist
2016-09-16 17:51:25 +08:00
我 13 年台式机,所有硬件都支持上, kernel 为 5MB ,/lib/modules 目录 15M
你是如何弄到 1GB 那么大的...
gorf
2016-09-16 19:10:52 +08:00
我是在 gentoo 下,默认内核 config 加上一些支持,内核 6.3M , modules 1.8M
raysonx
2016-09-16 19:15:57 +08:00
Loadable Module Support 就是允许内核按需加载预编译好的.ko 文件,而不用把所有模块都编译进内核。
建议先从发行版拷一份编译内核的配置文件,再在此基础上编译自己的内核。
helloworld2010
2016-09-16 21:02:53 +08:00
你可以把系统的 config 文件来覆盖掉源码的 config 文件,那样编译的 kernel 就是匹配呢系统的 img
第二个意思是支持可装载模块,内核运行时可动态加载和卸载内核模块
wsy2220
2016-09-17 01:09:01 +08:00
你把调试符号也编进去了吧
okudayukiko0
2016-09-17 17:01:14 +08:00
@wsy2220 果然是因为把调试符号编译进去了,砍掉一些内核调试选项后,文件小多了。
okudayukiko0
2016-09-17 17:35:54 +08:00
此外, Linux 内核的 Live Patching 怎么用?打算在内核中编译 Grsec 和 l7filter 的 Patch ,但又不是完全编译,只是将这几个 Patch 编译为可用的内核模块而已,我的机器编译内核比较慢。
danili
2016-09-17 22:49:29 +08:00
ER-X 路由器的内核 3M 大小

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/306626

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX