【问题标题】:Size of kernel built is much much larger than the built-in one构建的内核大小比内置内核大得多
【发布时间】:2014-08-08 01:42:05
【问题描述】:

我从 kernel.org 获得了最新的内核源代码(使用 git),并按照this page 中描述的步骤构建内核。内核成功启动,但是,我不知道在配置过程中做了什么错误,initrd.img-3.16.0 比内置的大得多(initrd.img-3.13.0-32-generic)

我从 /boot/ 复制了配置文件 .config 并使用“yes '' | make oldconfig”进行内核配置。

文件大小total 191M -rw-r--r-- 1 root root 1.2M Jul 14 21:29 abi-3.13.0-32-generic -rw-r--r-- 1 root root 162K Jul 14 21:29 config-3.13.0-32-generic -rw-r--r-- 1 root root 167K Aug 4 19:48 config-3.16.0 -rw-r--r-- 1 root root 20M Jul 28 15:14 initrd.img-3.13.0-32-generic -rw-r--r-- 1 root root 151M Aug 4 19:48 initrd.img-3.16.0 -rw-r--r-- 1 root root 173K Mar 12 05:31 memtest86+.bin -rw-r--r-- 1 root root 174K Mar 12 05:31 memtest86+.elf -rw-r--r-- 1 root root 175K Mar 12 05:31 memtest86+_multiboot.bin -rw------- 1 root root 3.3M Jul 14 21:29 System.map-3.13.0-32-generic -rw-r--r-- 1 root root 3.4M Aug 4 19:48 System.map-3.16.0 -rw------- 1 root root 5.6M Jul 14 21:29 vmlinuz-3.13.0-32-generic -rw-r--r-- 1 root root 5.7M Aug 4 19:48 vmlinuz-3.16.0

谢谢! 威廉

【问题讨论】:

  • 我在Debian上使用make-kpkg --initrd binary来构建内核。
  • 对比新旧配置时你看到了什么?
  • 嗨,n.m.,我可以看到可用的新配置(从 3.16 到 3.13)已将所有新配置配置为“y”。这基本上就是我们在“make listnewconfig”中看到的所有选项。提前致谢!
  • 谢谢,Basile,但还是一样。我仍然认为我在生成 .config 进程时出错了
  • 你用的是yes吗"" | make oldconfig 它将使用所有选项的默认值。

标签: linux linux-kernel


【解决方案1】:

按照以下步骤获取正确的内核配置

  1. 复制/boot/.config到内核源码目录
  2. 制作菜单配置
  3. 退出并保存配置
  4. 制作

然后继续安装其他选项

注意:由于您使用的是 ma​​ke oldconfig,这将启用许多与平台无关但与 CPU 架构相关的选项。

这些步骤应该可以帮助您解决这个问题

【讨论】:

  • 谢谢,桑托什!我也尝试了这一步,但不幸的是得到了相同的结果。看起来“make menuconfig”默认会将新配置设置为y(当我在默认配置和menuconfig之后保存的配置之间进行比较时。
  • 执行此过程后内核的大小是多少
  • 嗨,Santosh,它是 156MB。我现在正在尝试wiki.ubuntu.com/KernelTeam/GitKernelBuild
  • 嗨,RAX,你能分享 /boot 中的 .config 文件吗
  • 真的很抱歉,伙计们,我的问题描述不好。我刚刚更新了问题描述。它是 initrd.img-3.13.0-32-generic,明显更大(151MB vs. 20MB)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 2020-08-05
相关资源
最近更新 更多