I would like to significantly reduce the beagleboard boot time to
somewhere around 5 seconds or so. I am currently using Angstrom but I
can use any OS as long as it achieves fast boot. Some of the things I
have tried are:
1. put u-boot and uImage in nand.
2. reduced bootdelay to 1
3. tried bitbaking base-image and minimal-image but I have not been
able to test either one. base-image failed to build with "xz: command
not found" error on mpfr-3.0.0.tar.xz and minimal-image built but only
boots the first time. Subseequent boots give me "kernel panic - not
syncing: VFS: Unable to mount root fs on unknown-block(179,2)". Even
if I got these to work, I am not sure if these images will improve my
boot time. Can anyone confirm?
4. kernel config? I would like to try a barebones config and build it
up from there but not sure what is required for a minimum config.
My current boot time is 30 seconds with console-image. Has someone
already achieved fast booting on beagleboard? Any suggestions for
improvements are very welcome.
I would like to significantly reduce the beagleboard boot time to
somewhere around 5 seconds or so. I am currently using Angstrom but I
can use any OS as long as it achieves fast boot. Some of the things I
have tried are:
Some ramblings below.
put u-boot and uImage in nand.
Obviously only helps if copying from NAND is faster than from MMC.I would also check that NAND timings are somewhat optimal. I have found that some older u-boot -revisions take long time to initialize so that might be worth looking into, and of course try to minimize the u-boot configuration.
reduced bootdelay to 1
tried bitbaking base-image and minimal-image but I have not been
able to test either one. base-image failed to build with “xz: command
not found” error on mpfr-3.0.0.tar.xz and minimal-image built but only
boots the first time. Subseequent boots give me “kernel panic - not
syncing: VFS: Unable to mount root fs on unknown-block(179,2)”. Even
if I got these to work, I am not sure if these images will improve my
boot time. Can anyone confirm?
In my limited experience with Angstrom it seems that the userspace takes very long to initialize. I would start by weeding out services you do not either need or that can be deferred. Bootchart (lite) is a good tool here.
kernel config? I would like to try a barebones config and build it
up from there but not sure what is required for a minimum config.
It can help. Enable CONFIG_PRINTK_TIME and/or CONFIG_BOOT_TRACER to find culprits. And when done try “quiet” -option to kernel. Also check into manual delay loop calibration.
Of course kernel size also matters, and whether it is compressed or not. I have not measured this but I suspect that on OMAP3 the decompression time is very short. Experiment with different compression types (LZO…).
My current boot time is 30 seconds with console-image. Has someone
already achieved fast booting on beagleboard? Any suggestions for
improvements are very welcome.
Not on beagleboard but using these tips sub 5s boot time into userspace is not hard to do. Going further 1-2s times are doable.
Filesystem selection also matters quite a bit. Mounting ext3 on mmc seems to take some seconds. In NAND YAFFS2 mounts very fast. JFFS2 with summary is not too bad either if compression support is needed. UBIFS should be good but I have not experimented with it.
There are other optimizations you can do - for example someone has
combined x-loader and u-boot functionality into one file which might
accelerate things somewhat:
I would like to significantly reduce the beagleboard boot time to
somewhere around 5 seconds or so. I am currently using Angstrom but I
can use any OS as long as it achieves fast boot. Some of the things I
have tried are:
If you can use any OS, I suggest that you look into a real time executive or a small mini kernel.
I guess though what you want to say is that you can use any distro.
BTW how do you define boot time? For me that is from power up until init starts executing
put u-boot and uImage in nand.
And? How much did that help?
Note that if you do not measure you cannot tell anything about the effect of this.
You might also consider a faster SD card.
reduced bootdelay to 1
There is an easy 1 sec win here: set bootdelay to 0 (depending on a u-boot config flag you can still interrupt the boot process)
tried bitbaking base-image and minimal-image but I have not been
able to test either one. base-image failed to build with “xz: command
not found” error on mpfr-3.0.0.tar.xz and minimal-image built but only
boots the first time. Subseequent boots give me “kernel panic - not
syncing: VFS: Unable to mount root fs on unknown-block(179,2)”. Even
if I got these to work, I am not sure if these images will improve my
boot time. Can anyone confirm?
for minimal-image add rootwait to your boot cmd line
kernel config? I would like to try a barebones config and build it
up from there but not sure what is required for a minimum config.
There is plenty of info on boot optimisation on elinux.org
My current boot time is 30 seconds with console-image. Has someone
already achieved fast booting on beagleboard? Any suggestions for
improvements are very welcome.
Depends on how you define booting.
If it is from power up to init starting 30 sec is pretty much.
If you have a lot of processing in init then 30 sec might not be too bad.
You seem to focus at kernel loading and starting. In my experience this is not the area where the majority of the time is spent.
Good luck & please share your results and findings.
Frans.
PS: setting up a network interface can be time consuming too, especially if you use DHCP.
PPS: and if your hw config is static you might want to use a static device table instead of udev/mdev.
PPPS: I hope you’re using busybox.