如何裁剪kernel到最小?

leslielg 2017-06-23 04:50:51
比如去掉所有文件系统,块设备驱动等等。
我在menuconfig里把所有能去掉的都去掉,只剩一些不能改的带*的。这样的内核还是有2MB大小。
然后该如何裁剪呢?
...全文
1911 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
uid123 2017-07-01
  • 打赏
  • 举报
回复
引用 9 楼 leslielg 的回复:
[quote=引用 7 楼 leslielg 的回复:] [quote=引用 5 楼 uid123 的回复:] [quote=引用 4 楼 leslielg 的回复:] [quote=引用 2 楼 uid123 的回复:] 这个一般是最简模式了,而且很可能连你的外设硬盘都挂接不起来。如果你的需求没有那么极端,不用考虑单片机和嵌入式,没必要考虑这个最简模式。
ARM下的,需求很极端,目前串口ip都还没加进去,就4个ARM核[/quote] 要不要求桌面??如果要求桌面的话这个就别想了。[/quote] 就4个ARM核(core)跑个蛋的桌面,连最基本的输出:串口都没有,还要什么图形界面[/quote] 说漏了一个,有GICv3。 目前有的硬件是: 1. 4个ARM core 2. GICv3控制器 3. 片内SRAM可以跑code 4. Jtag 其它所有模块都还没有。[/quote] 配置应该可以跑的了桌面。但是估计会很浪费资源,我记得网上有款tinyLinux,削减完内核之后带桌面只有10M左右,如果配置gnome或者是KDE的桌面,基本上可以能就2M左右,如果用UCOSIII,要是出SHELL应该代码也不多。
leslielg 2017-06-28
  • 打赏
  • 举报
回复
引用 7 楼 leslielg 的回复:
[quote=引用 5 楼 uid123 的回复:] [quote=引用 4 楼 leslielg 的回复:] [quote=引用 2 楼 uid123 的回复:] 这个一般是最简模式了,而且很可能连你的外设硬盘都挂接不起来。如果你的需求没有那么极端,不用考虑单片机和嵌入式,没必要考虑这个最简模式。
ARM下的,需求很极端,目前串口ip都还没加进去,就4个ARM核[/quote] 要不要求桌面??如果要求桌面的话这个就别想了。[/quote] 就4个ARM核(core)跑个蛋的桌面,连最基本的输出:串口都没有,还要什么图形界面[/quote] 说漏了一个,有GICv3。 目前有的硬件是: 1. 4个ARM core 2. GICv3控制器 3. 片内SRAM可以跑code 4. Jtag 其它所有模块都还没有。
leslielg 2017-06-28
  • 打赏
  • 举报
回复
引用 6 楼 wenxy1 的回复:
把所有的build-in模块配置成kernel module。 把不需要的功能模块不选中(例如gdb,一需要的文件系统,etc.),然后make zImage.
1. kernel module禁止了,所有需要的模块都build-in。如果不需要,那就不要编译它,没必要还保留模块。 2. 能去掉的所有模块我都去掉了,包括所有的文件系统(除了proc,我不知道怎么去掉,能不能去掉) 3. zlib我都没有加进去,编译出来的都是未压缩的内核。压缩对裁剪没意义,反而加入zlib会增加运行时内核的大小
leslielg 2017-06-28
  • 打赏
  • 举报
回复
引用 5 楼 uid123 的回复:
[quote=引用 4 楼 leslielg 的回复:] [quote=引用 2 楼 uid123 的回复:] 这个一般是最简模式了,而且很可能连你的外设硬盘都挂接不起来。如果你的需求没有那么极端,不用考虑单片机和嵌入式,没必要考虑这个最简模式。
ARM下的,需求很极端,目前串口ip都还没加进去,就4个ARM核[/quote] 要不要求桌面??如果要求桌面的话这个就别想了。[/quote] 就4个ARM核(core)跑个蛋的桌面,连最基本的输出:串口都没有,还要什么图形界面
Wenxy1 2017-06-27
  • 打赏
  • 举报
回复
把所有的build-in模块配置成kernel module。 把不需要的功能模块不选中(例如gdb,一需要的文件系统,etc.),然后make zImage.
uid123 2017-06-27
  • 打赏
  • 举报
回复
引用 4 楼 leslielg 的回复:
[quote=引用 2 楼 uid123 的回复:] 这个一般是最简模式了,而且很可能连你的外设硬盘都挂接不起来。如果你的需求没有那么极端,不用考虑单片机和嵌入式,没必要考虑这个最简模式。
ARM下的,需求很极端,目前串口ip都还没加进去,就4个ARM核[/quote] 要不要求桌面??如果要求桌面的话这个就别想了。
leslielg 2017-06-26
  • 打赏
  • 举报
回复
引用 2 楼 uid123 的回复:
这个一般是最简模式了,而且很可能连你的外设硬盘都挂接不起来。如果你的需求没有那么极端,不用考虑单片机和嵌入式,没必要考虑这个最简模式。
ARM下的,需求很极端,目前串口ip都还没加进去,就4个ARM核
Acuity. 2017-06-24
  • 打赏
  • 举报
回复
2M已经很小了。把没用到的外设驱动去掉选中!
uid123 2017-06-23
  • 打赏
  • 举报
回复
这个一般是最简模式了,而且很可能连你的外设硬盘都挂接不起来。如果你的需求没有那么极端,不用考虑单片机和嵌入式,没必要考虑这个最简模式。
ipqtjmqj 2017-06-23
  • 打赏
  • 举报
回复
下个低版本的内核,我猜的

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧