How to boot Linux in one second - ...why userland is a waste of time ;)
Transcript of How to boot Linux in one second - ...why userland is a waste of time ;)
![Page 1: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/1.jpg)
How to boot Linux in one second…why userland is a waste of time ;)
Jan Altenberg
Linutronix GmbH
Jan Altenberg Linutronix GmbH 1
![Page 2: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/2.jpg)
from zero…
Jan Altenberg Linutronix GmbH 2
![Page 3: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/3.jpg)
to hero…
Jan Altenberg Linutronix GmbH 3
![Page 4: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/4.jpg)
Overview
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 4
![Page 5: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/5.jpg)
Motivation
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 5
![Page 6: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/6.jpg)
Motivation
Motivation
''marketing''automotive applicationsenergy saving
• solution: power-off instead of suspending• BUT: Users are not used to wait
Jan Altenberg Linutronix GmbH 6
![Page 7: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/7.jpg)
Motivation
Motivation
''marketing''automotive applicationsenergy saving
• solution: power-off instead of suspending
• BUT: Users are not used to wait
Jan Altenberg Linutronix GmbH 6
![Page 8: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/8.jpg)
Motivation
Motivation
''marketing''automotive applicationsenergy saving
• solution: power-off instead of suspending• BUT: Users are not used to wait
Jan Altenberg Linutronix GmbH 6
![Page 9: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/9.jpg)
Some technical basics
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 7
![Page 10: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/10.jpg)
Some technical basics
First step: Define your requirements!!!!
What's the limit for the boot time?Which functionality should be available?Speed vs. flexibility
NOTE: FastBOOT is not a product, it's a concept!!
Jan Altenberg Linutronix GmbH 8
![Page 11: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/11.jpg)
Some technical basics
Boot process
Jan Altenberg Linutronix GmbH 9
![Page 12: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/12.jpg)
Some technical basics
Components of the boot process
Hardware resetBootloaderOperating System (drivers, filesystem, …))INIT process, application (userland)
Jan Altenberg Linutronix GmbH 10
![Page 13: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/13.jpg)
Some technical basics
Critical hardware components
Power supplyReset logicBoot logic / boot orderBoot mediaPeripherals which need to be accessed while booting
IMPORTANT: the hardware is a central part of a fastboot concept!!!
Jan Altenberg Linutronix GmbH 11
![Page 14: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/14.jpg)
Some technical basics
Bootloader
Basic setup of the CPUPreparing and handing over ATAGS / devicetreeFlushing the cachesSwitch off the MMU
Jan Altenberg Linutronix GmbH 12
![Page 15: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/15.jpg)
Some technical basics
The Linux Kernel
A lot of functions for boot time optimizationVery flexibleConfigurable compression typeCan deffer or parallelize initializations150ms - 250ms from starting the kernel to mounting the RFS
Jan Altenberg Linutronix GmbH 13
![Page 16: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/16.jpg)
Some technical basics
The application
Usually the biggest target for optimizationsStart scripts / INIT processLinking
Jan Altenberg Linutronix GmbH 14
![Page 17: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/17.jpg)
Bootloader
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 15
![Page 18: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/18.jpg)
Bootloader
Optimizing the bootloader (U-Boot) 1
Remove unused features:/* inc lude / conf igs /boardname . h */[ . . . ]# inc lude <config_cmd_default . h>#undef CONFIG_CMD_NET[ . . . ]
Jan Altenberg Linutronix GmbH 16
![Page 19: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/19.jpg)
Bootloader
Optimizing the bootloader (U-Boot) 2
Verifying the kernel image:
setenv verify n
Switch off the bootloader console:
setenv silent 1
Switch off the boot delay:
setenv bootdelay 0
Jan Altenberg Linutronix GmbH 17
![Page 20: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/20.jpg)
Bootloader
Optimizing the bootloader: IPL / SPL
Replacing the general purpose bootloader by an optimized IPL…also useful for update conceptsU-Boot offers a generic way: The U-Boot SPL(CONFIG_SPL_OS_BOOT)
Jan Altenberg Linutronix GmbH 18
![Page 21: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/21.jpg)
Kernel
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 19
![Page 22: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/22.jpg)
Kernel
Optimizing the kernel
Configuration and buildCompression methodBoot parameters (kernel commandline)Driver init callsRootfilesystem (RFS)
Jan Altenberg Linutronix GmbH 20
![Page 23: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/23.jpg)
Kernel
Optimizing the kernel: Configuration
General setup --->Kernel compression mode -->
LZO usually a good choice for embedded systemCopy vs. de-compress''Execute in Place (XIP)'
Jan Altenberg Linutronix GmbH 21
![Page 24: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/24.jpg)
Kernel
Optimizing the kernel: Kernel commandline
Delay Loop Calibration: ''lpj=''; can save > 100ms on ARMv5 basedsystemsParameters for boot time analysis: ''initcall_debug'',''printk_time=1''
Jan Altenberg Linutronix GmbH 22
![Page 25: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/25.jpg)
Kernel
Optimizing the kernel: printk.time
...[0.000000] VIC @f1140000: id 0x00041190,
vendor 0x41[0.000000] FPGA IRQ chip 0 "SIC" @ f1003000,
21 irqs[0.000000] Console: colour dummy device 80x30[0.018847] Calibrating delay loop...
626.68 BogoMIPS (lpj=3133440)[0.316717] pid_max: default: 32768 minimum: 301[0.317552] Mount-cache hash table entries: 512...
Jan Altenberg Linutronix GmbH 23
![Page 26: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/26.jpg)
Kernel
Optimizing the kernel: Delay Loop
...[0.018847] Calibrating delay loop...
626.68 BogoMIPS (lpj=3133440)[0.316717] pid_max: default: 32768 minimum: 301...
Jan Altenberg Linutronix GmbH 24
![Page 27: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/27.jpg)
Kernel
Optimizing the kernel: initcall_debug
[0.452115] calling exceptions_init+0x0/0x90 @ 1[0.452172] initcall exceptions_init+0x0/0x90
returned 0 after 0 usecs[0.452203] calling versatile_i2c_init+0x0/0x24 @ 1[0.452321] initcall versatile_i2c_init+0x0/0x24
returned 0 after 0 usecs[0.452352] calling pl011_init+0x0/0x54 @ 1[0.452382] Serial: AMBA PL011 UART driver[0.453647] dev:f1: ttyAMA0 at MMIO 0x101f1000
(irq = 12) is a PL011 rev1[0.481540] console [ttyAMA0] enabled...[0.484427] initcall pl011_init+0x0/0x54
returned 0 after 29296 usecs
Jan Altenberg Linutronix GmbH 25
![Page 28: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/28.jpg)
Kernel
bootgraph.pl
..1 Boot your systemwith ''initcall_debug loglevel=8
..2 On the target:$ dmesg > bootlog.txt
..3 On the host:$ cd linux-XXX$ cat /path_to_rfs/bootlog.txt | \
perl scripts/bootgraph.pl > bootlog.svg
Jan Altenberg Linutronix GmbH 26
![Page 29: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/29.jpg)
Kernel
scripts/bootchart.pl
Jan Altenberg Linutronix GmbH 27
![Page 30: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/30.jpg)
Filesystem
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 28
![Page 31: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/31.jpg)
Filesystem
UbiFS
The best choice for flash devicesPower-Fail safeThe underlying UBI layer can be optimized with (FastMAP)…
Jan Altenberg Linutronix GmbH 29
![Page 32: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/32.jpg)
Filesystem
InitRAMFS
dir /dev 755 0 0nod /dev/console 644 0 0 c 5 1nod /dev/loop0 644 0 0 b 7 0dir /bin 755 1000 1000slink /bin/sh busybox 777 0 0file /bin/busybox initfs/busybox 755 0 0[...]dir /proc 755 0 0dir /sys 755 0 0dir /mnt 755 0 0
Jan Altenberg Linutronix GmbH 30
![Page 33: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/33.jpg)
Filesystem
InitRAMFS: Switch root
The INIT process for the InitRAMFS can be configured with rdinit=. Forexample: rdinit=/etc/init.d/start.sh
Jan Altenberg Linutronix GmbH 31
![Page 34: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/34.jpg)
Filesystem
InitRAMFS: Switch root
/etc/init.d/start.sh:
#!/bin/shmount -t proc proc /procmount -t sysfs sysfs /sysmount -t devtmpfs devtmpfs /dev# Mount RFS / do some critical stuffmount /dev/mmcblk0p1 /mediafbsplash -s /media/splash.ppm -d /dev/fb0mount -o move /proc /media/procmount -o move /sys /media/sysmount -o move /dev /media/dev# Switch to production systemexec switch_root /media /linuxrc
Jan Altenberg Linutronix GmbH 32
![Page 35: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/35.jpg)
Application
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 33
![Page 36: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/36.jpg)
Application
The INIT process
SystemVSystemD
One letter makes a BIG difference ;-)
Jan Altenberg Linutronix GmbH 34
![Page 37: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/37.jpg)
Application
Optimizing the application
Analyse the INIT process with bootchartd or systemd-analyzeReplace the INIT process with your own application (init=)LinkingPre-Linking and function reordering
Jan Altenberg Linutronix GmbH 35
![Page 38: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/38.jpg)
Application
Moving start script tasks into your application
ret = mount("sysfs", "/sys","sysfs", 0, NULL);
if(ret < 0)perror("Can't mount sysfs\n");
Jan Altenberg Linutronix GmbH 36
![Page 39: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/39.jpg)
Application
Dynamic linking
..1 ELF DT_RPATH section
..2 LD_LIBRARY_PATH
..3 ELF DT_RUNPATH section
..4 Binary file /etc/ld.so.cache
..5 Default paths /lib und /usr/lib
Jan Altenberg Linutronix GmbH 37
![Page 40: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/40.jpg)
Application
Dynamic linking: Debug and visualize
$ LD_DEBUG=libs ls3082: find library=librt.so.1 [0];
searching3082: search cache=/etc/ld.so.cache3082: trying file=/lib/librt.so.1
Jan Altenberg Linutronix GmbH 38
![Page 41: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/41.jpg)
Optimizing an ARMv5 based device
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 39
![Page 42: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/42.jpg)
Optimizing an ARMv5 based device
Test system
ARM9 CPU (Atmel AT91 series)Starting point: Busybox based image (Angstrom Distribution)Boot media: NAND-FlashTest application: Toggling a GPIO via SysFS
Jan Altenberg Linutronix GmbH 40
![Page 43: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/43.jpg)
Optimizing an ARMv5 based device
Boot strategy of the AT91 controller family
Jan Altenberg Linutronix GmbH 41
![Page 44: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/44.jpg)
Optimizing an ARMv5 based device
Bootmodes of the AT91 controller family
RomBOOT: internal boot logicExternal bus interface (CS0, e.g. NOR flash)
Jan Altenberg Linutronix GmbH 42
![Page 45: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/45.jpg)
Optimizing an ARMv5 based device
AT91 RomBOOT
Jan Altenberg Linutronix GmbH 43
![Page 46: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/46.jpg)
Optimizing an ARMv5 based device
Power supply
Jan Altenberg Linutronix GmbH 44
![Page 47: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/47.jpg)
Optimizing an ARMv5 based device
Reset logic
Jan Altenberg Linutronix GmbH 45
![Page 48: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/48.jpg)
Optimizing an ARMv5 based device
RomBOOT
Jan Altenberg Linutronix GmbH 46
![Page 49: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/49.jpg)
Optimizing an ARMv5 based device
Possible hardware optimizations
Using the internal oscillator for deriving the slowclock saves > 1s!!booting from CS0 will save 100 - 150ms
Jan Altenberg Linutronix GmbH 47
![Page 50: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/50.jpg)
Optimizing the test system
..1 BasicsMotivationSome technical basics
..2 OptimizationsBootloaderKernelFilesystemApplication
..3 ExampleOptimizing an ARMv5 based deviceOptimizing the test system
Jan Altenberg Linutronix GmbH 48
![Page 51: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/51.jpg)
Optimizing the test system
Boot timemeasurements with a GPIO
Jan Altenberg Linutronix GmbH 49
![Page 52: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/52.jpg)
Optimizing the test system
Measuring points
Bootstrap - U-BootU-Boot - Early-Boot-Code of the kernel (incl. relocation anddecompression)Kernel - application (incl. mounting the RFS)
Jan Altenberg Linutronix GmbH 50
![Page 53: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/53.jpg)
Optimizing the test system
Initial boot time
Jan Altenberg Linutronix GmbH 51
![Page 54: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/54.jpg)
Optimizing the test system
Initial boot time
measuring point timebootstrap - u-boot ---u-boot - kernel 6,5s
kernel - application 4,5stotal 11s
Jan Altenberg Linutronix GmbH 52
![Page 55: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/55.jpg)
Optimizing the test system
Simple optimizations
Jan Altenberg Linutronix GmbH 53
![Page 56: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/56.jpg)
Optimizing the test system
U-Boot w/o networking support
measuring point timebootstrap - u-boot ---u-boot - kernel 4,25s
kernel - application 4,5stotal 8,75s
Jan Altenberg Linutronix GmbH 54
![Page 57: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/57.jpg)
Optimizing the test system
U-Boot verify=n
measuring point timebootstrap - u-boot ---u-boot - kernel 3,89s
kernel - application 4,5stotal 8,39s
Jan Altenberg Linutronix GmbH 55
![Page 58: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/58.jpg)
Optimizing the test system
Optimizing the kernel config
measuring point timebootstrap - u-boot ---u-boot - kernel 3,77s
kernel - application 4,33stotal 8,1s
Jan Altenberg Linutronix GmbH 56
![Page 59: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/59.jpg)
Optimizing the test system
Analyzing the INIT process: Bootchartd
Jan Altenberg Linutronix GmbH 57
![Page 60: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/60.jpg)
Optimizing the test system
Optimizing the start scripts
measuring point timebootstrap - u-boot ---u-boot - kernel 3,77s
kernel - application 3,61total 7,38s
Jan Altenberg Linutronix GmbH 58
![Page 61: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/61.jpg)
Optimizing the test system
Booting an InitRAMFS
Jan Altenberg Linutronix GmbH 59
![Page 62: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/62.jpg)
Optimizing the test system
LZO compressed InitRAMFS
The test application is used as an INIT process (rdinit=)
measuring point timebootstrap - u-boot ---u-boot - kernel 3,79s
kernel - application 0,372stotal 4,162s
Jan Altenberg Linutronix GmbH 60
![Page 63: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/63.jpg)
Optimizing the test system
Modified AT91 Bootstrap
Jan Altenberg Linutronix GmbH 61
![Page 64: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/64.jpg)
Optimizing the test system
Modified AT91 Bootstrap
AT91 Bootstrap starts Linux (without U-Boot)
measuring point timebootstrap - kernel 676mskernel - application 584ms
total 1,260s
Jan Altenberg Linutronix GmbH 62
![Page 65: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/65.jpg)
Optimizing the test system
lpj=
measuring point timebootstrap - kernel 676mskernel - application 384ms
total 1,060s
Jan Altenberg Linutronix GmbH 63
![Page 66: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/66.jpg)
Optimizing the test system
< 1s !!
Jan Altenberg Linutronix GmbH 64
![Page 67: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/67.jpg)
Optimizing the test system
No (serial) console output (quiet)
measuring point timebootstrap - kernel 524mskernel - application 212ms
total 736ms
Jan Altenberg Linutronix GmbH 65
![Page 68: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/68.jpg)
Optimizing the test system
LZO compressed kernel image
measuring point timebootstrap - kernel 444mskernel - application 212ms
total 656ms
Jan Altenberg Linutronix GmbH 66
![Page 69: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/69.jpg)
Optimizing the test system
Final boot behaviour
Jan Altenberg Linutronix GmbH 67
![Page 70: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/70.jpg)
Optimizing the test system
Conclusion
Linux can combine the advantages of a modern OS with hard boottime requirementsSaving boot time with simple optimizationsThe hardware is an IMPORTANT part of a FastBOOT conceptThe boot concept is architecture independent!
Jan Altenberg Linutronix GmbH 68
![Page 71: How to boot Linux in one second - ...why userland is a waste of time ;)](https://reader030.fdocuments.net/reader030/viewer/2022021508/58a034751a28ab9f4a8c612e/html5/thumbnails/71.jpg)
Optimizing the test system
Questions?
I'll also be around at the technical showcase! :)
Jan Altenberg Linutronix GmbH 69