+ -
当前位置:首页 → 问答吧 → 请教。kernel boot 的时间大家有何方法 使其提速最大化?

请教。kernel boot 的时间大家有何方法 使其提速最大化?

时间:2009-01-23

来源:互联网

ARM的目标板子,三星 2440 195MHZ的频率。
NAND 64MB存储器。
64MB 内存。

kernel加载很多垃圾模块,启动速度 10秒多点,zimage 1.9M。
硬件厂商所提供的内核。

我自己根据硬件厂商提供的kernel CODE来进行编译,
使用 最新的 ARM提供的 arm-none-linux-gnueabi-gcc-4.3.2
来编译内核。(Sourcery G++ Lite 2008q3-72)
驱动模块全部最小化。
zimage做到了 1.4-1.5M的样子 (os o2的 编译方式)
但是启动速度提升不明显,8-9妙的样子。

还有什么良策来提升内核的启动速度呢?

希望有经验的指点下。谢谢了。

作者: linux_pro   发布时间: 2009-01-23

initng?

Btw, 8 to 9 seconds is really fast!

作者: d00m3d   发布时间: 2009-01-23

不知道在这个论坛上

启动速度最快的是几秒到登录提示符

作者: kimux   发布时间: 2009-01-23

启动速度有很多因素影响,视乎硬件、待加载的模块、内核、编译内核的 gcc 版本、要启动的服务进程等,比较这个意义不大

作者: d00m3d   发布时间: 2009-01-23

10s基本是普通PC启动过程极限。

您是嵌入式系统,不使用硬盘,还有潜力。
您的内核大,相当大,这个还有很多水份,好好做做烘干的工作会有好结果的。

嵌入式系统无BIOS处理时间(x86平台例外),启动时间控制在2s左右一般不是太大问题(这个是指启动基本系统的时间)。

google 一下 embedded linux boottime ARM 之类的关键字,比您在这里提问有用的多,毕竟板子在您手里不是。

作者: 聚焦深空   发布时间: 2009-01-23

arm 的话 应该可以到2秒的

作者: zh4zhao   发布时间: 2009-01-24

今天又进行了下测试,内核-os选项, 1.4M整.
大概是 6秒多的样子. 初始化
进入bash是9秒多.


启动时候需要BOA服务器,和一个2M的程序.

2M多的程序是拿GLIBC链的.


HI,d00m3d,新年快乐

hi,聚焦深空,新年快乐

TO 聚焦深空 :
内核我已经把能减的模块基本都减掉了.
原来厂商提供的模块是 1.8-1.9M
我Init 完后是 93K的大小. 1.8-1.9M的 zimage init后是 131K.

我看了 Intel的工程师 5S启动X86的系统,人家是1S kernel....

现在犯难的是整个FS系统有 30M之多!!我都想象不到!就一个BOA,连telnet都是自己移植上去的...问厂家,说是没用uclibc链过系统.....

由于项目赶的紧,所以先招我进来动动kernel... 至于根文件系统这个东西,才是头大的事情.


BTW:看楼上两位朋友,都是老手了. 看飞豹的clfs 2.0那个文章, 聚焦深空专门解释了一些问题
,很是佩服.

不过我真的有点疑问, ARM的 2440这个板子,启动2S左右我有点...
刚入行.,我绝对新手.

google了...

作者: linux_pro   发布时间: 2009-01-24

哇,正在看外国的一个瘦身PDF

作者: linux_pro   发布时间: 2009-01-24

我是7秒,已经很满意了……

作者: ti8er   发布时间: 2009-01-24

ti8er,商业应用,要给顾客最快的感受.

我们这个项目做的是很有发展潜力的.
所以要求要多谢.

作者: linux_pro   发布时间: 2009-01-25

公司技术老大一句话让我很郁闷.....

“世界最快是1 S 多,如果能赶上是最好的了” --- 牛人说牛话....

我心里的理想是 4 S.

作者: linux_pro   发布时间: 2009-01-25

那你赶紧去请教你们的技术人员啊。学会了教我们一下,我也想搞到2秒进控制台,3-4秒就进去X桌面。

作者: ti8er   发布时间: 2009-01-29

呵呵,台式机上我不清楚,笔记本上2s基本上都用来加载kernel了(全部编进kernel里面,不开模块),那么要实现你都要求都话只能自己改启动脚本,而且是改得很极限,比如udev不用,gentoo上没记错有种static的udev启动方式,原理没记错好像是解压/dev(需要有用过一次udev启动,之后打包)。

另外如果采用模块方式加载的话好像也没法实现2s进入cli(至少我这里没试成功过。。。)

PS:我这里基本上可以控制在5s进入cli,大概也是7s进入X,当然服务都是后台加载,也就没记录在启动时间里面

作者: goodstarting   发布时间: 2009-01-29

另外,arm上实现3 4s进入X应该是没问题的,毕竟嵌入式上的硬件不是很多(一般来说都是针对某种特殊应用),尽量精简kernel,好像你的有点大,另外启动脚本得自己改,可以看一下youbestDX的那个5m的服务器应用(?),应该有些收获

作者: goodstarting   发布时间: 2009-01-29

LS兄台高,你的本子2S能把KERNEL给加载了?

7S能进X的话我真的比较佩服. 难道是INTEL公布的那个5S进系统的那种本子?

我们项目的ARM根本不需要X.所以应该能更快些.

感谢这么多兄弟关注.

作者: linux_pro   发布时间: 2009-01-30

呵呵,严格说2s多点,具体多多少没法精确出来(秒表计算总归有误差存在)

自己编译的kernel,一些没加入,比如麦克风(linux目前没用武之地),比如猫,串口

总共的kernel就1.4m多点,能不快么...
话说启动脚本是自己改archlinux的(简洁,比较好改,个人不喜欢linux的启动方式,比较偏向bsd)

PS:很奇怪的事情,lfs出来的结果很吃惊....第6章编译glibc跟gcc总共才30min多点,CM的cpu....传说中的人品爆发了,哈哈~~

作者: goodstarting   发布时间: 2009-01-31

没留意楼主是供 arm 用的,不知 initng 是否能通用?

作者: d00m3d   发布时间: 2009-01-31

听厂商说系统是拿busybox和glibc做的.
这不过年嘛,具体的系统我没研究.只是顾及kernel了.

明天上班,再来优化.

等V1上市了, V2就要把系统全部整了.

到时候再来报告情况吧.呵呵.

BTW:ARM开发板子不贵,大家可以买一块自己玩玩.呵呵.

作者: linux_pro   发布时间: 2009-02-01