如何裁剪kernel到最小?

leslielg 2017-06-23 04:50:51
比如去掉所有文件系统,块设备驱动等等。
我在menuconfig里把所有能去掉的都去掉,只剩一些不能改的带*的。这样的内核还是有2MB大小。
然后该如何裁剪呢?
...全文
1903 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
  • 打赏
  • 举报
回复
下个低版本的内核,我猜的
Embarcadero.Delphi.10.2.2.v25.0.29039.2004.Lite.v14.3完整版,含示例、帮助、IOS、安卓支持、Net框架,共3G+。是最新的哦! 破解者说明如下: Embarcadero.Delphi.10.2.2.v25.0.29039.2004.Lite.v14.3 -------------------------------------------------------------------------------- 基本信息: 作者:lsuper 联系方式:... -------------------------------------------------------------------------------- 版本说明: 由于 XE5 时代 Delphi 安装体积急剧膨胀(完整安装接近 10G,程序文件、安装缓存超过 20G+),按照过去的方式打包,XE5 的 lite 体积 1.xG,接近 PE image 理论极限,而且当前 XE5 支持 x86、x64、osx、ios、android、等诸多平台功能,不好按照网友的口味进行裁剪(win32only、winonly、...) 经多方案权衡对比,决定 v8.x 开始,只使用 inno 对 Delphi 的主体功能进行封装(完整的 x86+其他支撑组件、注册表等),其他平台、功能的安装文件(x64、osx、ios、android)通过 7z 外挂的方式支持:安装时只需保证 lite exe 旁边有相关的 7z 文件(文件名不能变),在安装过程中即可选择、安装相应的功能(这意味着,如果只一个 exe、装出来就是 win32only,多一个 Ext.X64.7z,安装可选 x64 的支持,其他类推) 当前分为以下 12 个包: 包名称 文件大小 作用 Ext.3th.7z 91,226,756 网友收集的一些第三方扩展 Ext.Addons.7z 100,567,057 InterBase XE7、FastReport4 等 Ext.Android.7z 1,640,823,804 Android 编译环境 Ext.Help.7z 299,342,286 帮助文档 Ext.Hotfix.7z 000,000,000 网友收集的一些官方补丁 Ext.IOS.7z 3,737,156,232 IOS 编译环境 Ext.Linux.7z 1,180,105,999 Linux 编译环境 Ext.OSX.7z 846,515,926 OSX 编译环境 Ext.Samples.7z 599,352,431 范例,其实直接用 svn 的也行 Ext.SDK.7z 1,576,071,523 Android SDK/NDK 编译环境,当前包含 v23 的编译工具、虚机映像等 Ext.Support.7z 246,586,892 EMSServer、Image、LivePreview、PAServer 等支持组件 Ext.X64.7z 1,568,283,495 64 位编译环境 此外,安装程序支持: 1、保留一个第三方扩展的组件:Ext.3th.7z,当前集成 EDN 收集的扩展、增强文件,所有 7z 都会解压到 {app} 下 2、自动检测 Ext.SDK.7z 中的 SDK、NDK 版本进行设置,支持最新的 android-ndk-r9c-windows-x86+android-sdk_r24.3.3-windows 3、自动检测旁边的 jdk-7/8u*-windows-*.exe 进行安装,支持最新的 jdk-8u102-windows-i586 4、自动检测旁边的 NetFx20SP2_x86/NetFx20SP2_x64 进行安装 -------------------------------------------------------------------------------- 发布历史: 2017.12.20 - v14.3 1、根据 25.0.29039.2004 原版制作 2、集成 aldian、elseif、unis、x-force、cjack 等大虾的特别补丁 3、集成 Andreas Hausladen 的 IDE Fix Pack v6.1.2 2017.12.14 - v14.2 1、根据 25.0.28979.1978 原版制作 2、集成 elseif、unis、x-force、cjack 等大虾的特别补丁 2017.08.11 - v14.1 1、根据 25.0.276

4,436

社区成员

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

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