Reducing Boottime in Beaglebone Black

Thanks a lot Robert. Your help is most appreciated.
I have implemented your suggestions and removed the following services
loadcpufreq.service

cpufrequtils.service

hostapd.service

My current boot time still ranges between 48s to 52s

debian@beaglebone:~$ systemd-analyze
Startup finished in 1.751s (kernel) + 48.369s (userspace) = 50.120s
debian@beaglebone:~$ systemd-analyze blame
1min 14.318s dev-mmcblk1p1.device
9.419s generic-board-startup.service
5.353s systemd-udev-trigger.service
2.470s keyboard-setup.service
2.438s networking.service
2.423s ssh.service
2.161s dnsmasq.service
1.718s systemd-logind.service
1.613s systemd-journald.service
1.018s systemd-timesyncd.service
969ms systemd-fsck-root.service
730ms systemd-udevd.service
595ms user@1001.service
589ms rsyslog.service
549ms slim.service
500ms sys-kernel-debug.mount
488ms systemd-tmpfiles-setup-dev.service
479ms systemd-update-utmp.service
469ms dev-mqueue.mount
456ms systemd-sysctl.service
451ms systemd-tmpfiles-setup.service
384ms systemd-modules-load.service
380ms sys-kernel-config.mount
352ms systemd-journal-flush.service
344ms systemd-user-sessions.service
319ms systemd-update-utmp-runlevel.service
310ms systemd-random-seed.service
284ms kmod-static-nodes.service
257ms sys-fs-fuse-connections.mount
250ms systemd-remount-fs.service
227ms console-setup.service

Any suggestions to bring it down further?
I am using a X desktop with slim as the login manager with autologin on LCD.
From the generic board startup services, I am using network over USB (not the serial over USB and flash over USB) parts.
What else should I be able to nuke to get the time faster?

Regards,
-amit

Hi Robert,
I just realized that I need to use an overlayfs (via overlayroot) to protect the emmc / OS from crashing on sudden power off.Now overlaytroot needs the initrd image to work.
So I had to enable the /boot/initrd.img-4.19.94-ti-rt-r63 file.
Re-enablingthe initird file in /boot added about 48 to 50s to the kernel boot time ;-(
Any ideas on how to mitigate that? how to get the booting time down?
Thanks & Regards,
-amit

debian@beaglebone:/$ systemd-analyze
Startup finished in 58.454s (kernel) + 49.641s (userspace) = 1min 48.096s
debian@beaglebone:/$ systemd-analyze blame
1min 21.167s dev-mmcblk1p1.device
10.477s generic-board-startup.service
5.278s systemd-udev-trigger.service
2.907s networking.service
2.684s ssh.service
2.328s keyboard-setup.service
1.940s dnsmasq.service
1.661s systemd-journald.service
1.101s systemd-user-sessions.service
895ms systemd-udevd.service
845ms user@1001.service
785ms systemd-random-seed.service
766ms systemd-timesyncd.service
754ms systemd-tmpfiles-setup-dev.service
725ms systemd-modules-load.service
670ms systemd-update-utmp.service
657ms systemd-logind.service
645ms sys-kernel-config.mount
641ms sys-kernel-debug.mount
603ms systemd-tmpfiles-setup.service
572ms kmod-static-nodes.service
518ms rsyslog.service
515ms systemd-sysctl.service
408ms systemd-remount-fs.service
358ms slim.service
351ms console-setup.service
324ms systemd-journal-flush.service
280ms sys-fs-fuse-connections.mount
272ms systemd-tmpfiles-clean.service
228ms systemd-update-utmp-runlevel.service
223ms dev-mqueue.mount

Hi
I am working for the boot time optimization for the beagle bone green wireless board
Now with some above mentioned suggestions, I am able to reduce the boot time from 90 sec to 45 sec.
But I want to further reduce it to 30 sec.
Please guide me the further points where I can optimize it.
The current detail of my board is as below

Startup finished in 4.295s (kernel) + 38.147s (userspace) = 42.442s
ubuntu@arm:~$ systemd-analyze -blaim
systemd-analyze: invalid option – ‘b’
ubuntu@arm:~$ systemd-analyze blame
25.275s console-setup.service
17.904s dev-mmcblk1p1.device
15.945s postfix.service
12.165s generic-board-startup.service
8.654s apache2.service
7.635s systemd-logind.service
6.160s avahi-daemon.service
5.594s systemd-hwdb-update.service
5.568s ondemand.service
5.432s loadcpufreq.service
4.968s bb-wl18xx-bluetooth.service
4.578s led-status.service
3.547s networking.service
2.981s capemgr.service
2.412s hostapd.service
2.389s rsyslog.service
2.073s cpufrequtils.service
1.535s ssh.service
1.477s systemd-user-sessions.service
1.389s pppd-dns.service
1.151s systemd-udev-trigger.service
1.040s archive_log.service
1.011s systemd-journal-flush.service
979ms rc-local.service
860ms brltty.service
653ms keyboard-setup.service
629ms systemd-journald.service
609ms tacread-keymap.service
499ms rename-bluetooth-hardware.service
494ms systemd-update-utmp.service
462ms systemd-udevd.service
451ms resolvconf.service
437ms dev-mqueue.mount
437ms sys-kernel-debug.mount

Thanks
Karishma Jaiswal

        15.945s postfix.service

  Do you need a mail delivery service? http://www.postfix.org/ You have
scripts sending emails?

        12.165s generic-board-startup.service
         8.654s apache2.service

  Do you need a web-server -- and if you do, does it have to be Apache?
Consider that nginx is installed as part of the normal Debian images.

         7.635s systemd-logind.service
         6.160s avahi-daemon.service

"""
avahi-daemon.service is supposed to provide zero-configuration network
discovery, and make it super-easy to find printers and other hosts on your
network. I always disable it and don’t miss it.
"""

         5.594s systemd-hwdb-update.service
         5.568s ondemand.service
         5.432s loadcpufreq.service
         4.968s bb-wl18xx-bluetooth.service
         4.578s led-status.service
         3.547s networking.service
         2.981s capemgr.service
         2.412s hostapd.service

  Do you need to have the unit operate as a WiFi hotspot (Access Point)?
Note: not sure if the authentication feature is used for regular connection
/to/ an access point (WiFi Router). hostapd(8) - OpenBSD manual pages

         2.389s rsyslog.service
         2.073s cpufrequtils.service
         1.535s ssh.service
         1.477s systemd-user-sessions.service
         1.389s pppd-dns.service

  Same web site:
"""
pppd-dns.service is a relic of the dim past. If you use dial-up Internet,
keep it. Otherwise, you don’t need it.

"""

         1.151s systemd-udev-trigger.service
         1.040s archive_log.service
         1.011s systemd-journal-flush.service
          979ms rc-local.service
          860ms brltty.service

  Ditto:
"""
brltty.service provides Braille device support, for example, Braille
displays.
"""

          653ms keyboard-setup.service
          629ms systemd-journald.service
          609ms tacread-keymap.service

  Can't find any information on "tacread" via Google... Nor via apt
search in Buster IoT release.

@Dennis L Bieber Really thanks for your detailed explanation about the each services.
I also updated ubuntu from 16 to 18 and done some modification in the services. now my board’s logs are as below
My system should be working as station mode but may be future, we will add AP mode also.
I will also remove nginx services.

ubuntu@beaglebone:~$ systemd-analyze blame
51.048s dev-mmcblk1p1.device
28.951s generic-board-startup.service
6.550s led-status.service
6.133s systemd-hwdb-update.service
4.805s grub-common.service
4.611s loadcpufreq.service
3.244s nginx.service
3.053s systemd-udev-trigger.service
2.971s avahi-daemon.service
2.099s ssh.service
1.958s archive_log.service
1.839s keyboard-setup.service
1.548s rsyslog.service
1.512s connman.service
1.438s systemd-user-sessions.service
1.404s wpa_supplicant.service
1.315s ofono.service
1.291s systemd-logind.service
1.275s cpufrequtils.service
1.253s tacread-keymap.service
887ms systemd-timesyncd.service
786ms user@0.service
685ms systemd-journald.service
508ms kmod-static-nodes.service
498ms dev-mqueue.mount
487ms fake-hwclock.service
469ms sys-kernel-config.mount
459ms systemd-fsck-root.service
422ms systemd-tmpfiles-setup-dev.service
406ms systemd-modules-load.service
401ms systemd-sysctl.service
390ms systemd-tmpfiles-setup.service
387ms setvtrgb.service
350ms nvda.service
341ms sys-fs-fuse-connections.mount

Also want to know that in ubuntu 18, why below two task taking so much time and how we can reduce it further to achieve the over all boot time as 30 sec. Any suggestion will help me.

51.048s dev-mmcblk1p1.device
28.951s generic-board-startup.service

Thanks
Karishma Jaiswal

as long as you don't use usb-serial, usb-flash, or usb-networking on
the "OTG" USB port, you can nuke generic-board-startup.service

Regards,

Can you start these services later?

If you cannot just sleep, or hibinate to save power, and have to cold boot quickly.

I would hope for something like:

Initially

load the kernel loader
load the kernel
(load root file-system service)

(load IPC or network service)

load the turnkey application

Then as Needed

load device and file-system services

For a screen based turnkey app, you can only display a splash screen for a few seconds, before the user thinks it is broken, a bit longer for an animated splash screen. Imagine a car radio, something has happen immediately after power on (speaker click or LED indicator or screen backlight), then less than half a second “Tuning…” before music appears.

Just a totally irrelevant side note here.

I finally found out why my Panasonic DMP-BD30 is so incredibly annoying on power up. I can press the power button and the display lights up and a ‘HELLO’ message shows up instantly. Then noises come from inside. The ‘HELLO’ brightens and then changes to ‘READING’. About 20 seconds later the button to open the disk drawer finally works.

When went searching to see if there was a firmware upgrade I found out it was running Linux.

The inability of the disk drawer to be opened immediately is bad human factors engineering IMHO. When a user turns on power they expect and should be rewarded with the drawer opening immediately if the eject button is pressed. If it weren’t running Linux but an RTOS or even just co-operative multi-threading the drawer operation wouldn’t be delayed. But that just isn’t possible in a stock Linux system unless a special task is written that is loaded early and handles the tray. Which would be very complicated I suspect and beyond the ability of the normal software engineer.

What is sad is we are seeing acceptance of this sort of poor behavior as perfectly alright. Again IMHO.

John

John

Ohh boy you got me started now. My Verizon hotspot jetpack (my 3rd purchase) resets very frequently sometimes 4 time’s rebooting during important updates to my online database of vinyl. It also Freeze’s up after 2 years intermittently for days. Linux and poor design. I suspect it’s the wifi radio and software interface to Linux GUI. Has to be a serious bug to reset Chip. No watchdog to reset radio just goodbye reboot hello repeatedly.

Cheap design by some low payed QT PC programmer who’s never seen an oscilloscope in his life is my guess.

I read them the riot act at Verizon. The Verizon manager was a computer science graduate who could not find a job 6 years ago.

Yes as consumer’s we have to demand better and boycott bad engineering with our wallets.

Rant over

Mark

I agree.

RantMode := TRUE;

It’s not Linux per say which is an amazing environment that has brought so much. Not to mention the tremendous support from people like Robert.

But the side effect is that 16 to 18 seconds appears to be the fastest it can wake up which means it’s not always the best solution for a product. But in this world of Python and web based programming, embedded systems have taken a back seat.

If you were a new grad from what now tends to be called “Computer Engineering” would you take a job that offered $100K per year as a web designer or $60K developing embedded systems that required assembler knowledge?

So if your school used Linux and Raspberry Pi or Beagles as the learning environment and you were hired to develop a BluRay Player by Panasonic, would you pull out Microchip’s MPLAB-X which you had never used along with a PIC32 or shoehorn in an ARM processor running Linux with all the support for online firmware upgrades and pre-written video decoding? And if it takes 20 seconds to open the drawer just say so “who cares?”.

When this BD30 player fails the first thing I will test on new hardware is how fast the drawer opens. But I might also not have a choice…

RantMode := FALSE;

John

But the side effect is that 16 to 18 seconds appears to be the fastest it can wake up which means it's not always the best solution for a product. But in this world of Python and web based programming, embedded systems have taken a back seat.

Native system runs the CircuitPython interpreter in chip, with Python
application code files on the external flash (if you want base Arduino
behavior, you replace the in-chip CircuitPython with your Arduino sketch,
and use the external flash for data storage).

  There are smaller Metro M4 Express (out of stock) and Metro M4 Express
AirLift (with on-board WiFi)

If you were a new grad from what now tends to be called "Computer Engineering" would you take a job that offered $100K per year as a web designer or $60K developing embedded systems that required assembler knowledge?

  Considering my ancient degree was "Computer Science" with an emphasis
on "systems" software rather than "business" software*... I'd probably have
qualified for the latter (at the time, as a new-hire at Lockheed Sunnyvale,
I got only $21K -- which had grown to $125K after 30 years) {And had a
defined benefit retirement plan, vs defined contribution... After layoff
moved to MI and manage a few years at GE Aviation -- my ("early
retirement") from Lockheed was nearly as much as GE paid!}

* "systems software" covered OS principles along with
compilers/linkers/etc, and language design. "business" had two terms of
statistics using SPSS (I'm sure these days they'd be using R [optimal],
Octave [as a backup -- Octave being a number cruncher/display tool, where R
includes more statistics testing built-in]), or maybe Python with SciPy and
or pandas extensions.
.

Probably not the best example. At best the "car radio" is running a
microcontroller -- not a microcomputer -- with maybe an RTOS at best. The
"radio application" is burned into the microcontroller flash memory, AND
RUNS out of that flash memory. There is no setting up RAM (virtual memory
mapping) as "RAM" in most microcontrollers is the general purpose register
bank. There may be secondary flash or EEPROM used to store user settings
(current volume/tone encoder position, stored station listing). A bigger
unit may include a spinning disk or "user flash" for storing MP3s, but the
core system doesn't have real "boot" phase.

  Think Arduino Due, TIVA TM4C123 or TM4C1294, STM chips. ARM "M" cores,
not "A" cores.

  On power-on, they start running the code burnt into the on-board flash
(and the first thing said code likely does is read the saved configuration
and command displays/output encoders to those values).

{Heck, most of the car is running off of microcontrollers with the single
application for each burned into flash. Can you imagine having to wait 60+
seconds for a Linux type OS to boot before you can turn the switch from ON
to START?}

From: beagleboard@googlegroups.com [mailto:beagleboard@googlegroups.com] On Behalf Of Dennis Lee Bieber

>
>For a screen based turnkey app, you can only display a splash screen for a
>few seconds, before the user thinks it is broken, a bit longer for an
>animated splash screen. Imagine a car radio, something has happen
>immediately after power on (speaker click or LED indicator or screen
>backlight), then less than half a second "Tuning..." before music appears.
>
  Probably not the best example. At best the "car radio" is running a
microcontroller -- not a microcomputer -- with maybe an RTOS at best. The
"radio application" is burned into the microcontroller flash memory, AND
RUNS out of that flash memory. There is no setting up RAM (virtual memory
mapping) as "RAM" in most microcontrollers is the general purpose register
bank. There may be secondary flash or EEPROM used to store user settings
(current volume/tone encoder position, stored station listing). A bigger
unit may include a spinning disk or "user flash" for storing MP3s, but the
core system doesn't have real "boot" phase.

I think the requirements concept is the issue. Too many times in the past I've run into projects where the client makes a choice on the architecture and then we have to make the project fit. Instead of a layout of the requirements and current/future capabilities as a design specification first. Then look around at what is available to fill that.

Now if boot time is an issue then what amount of time is acceptable. If it needs to be running in under 1 second then it doesn't matter how embedded the controller might be, a beagle or a pi running Linux is just not the tool for it. Sort of...

Volume of systems sold is another criteria as well as development time and longevity. The design decisions made if the device goes into a hard to access location will impact how it's designed and what's done with it. Etc.

I will state that waiting over two minutes for a Beagle to boot into Linux desktop mouse/keyboard/screen is unacceptable. Windows with a 640K 8088 or a Pentium-33MHz could create a graphical desktop way faster than a 1GHz Beagle with super fast SD card and 512MB of ram. From an end user perspective anything longer than 10 to 15 seconds just means it's not done right.

So I'd like to pose the question back to the original poster of this thread karry.jaiswal@gmail.com. Why are you using a Beagle if you need fast boot times? What is it that the Beagle Green has that you need compared to something with an RTOS (Free RTOS for example). Why Linux?

I've been on both sides of the fence. I might have already posted the attached photo that shows a PiZeroW mounted onto a board that holds a PIC32, SuperCaps, RTC along with GPS module and SMS module. Two antennas: one for GPS, one for SMS messaging. And the connector to power and the vehicle CAN bus which requires instant on logging while the PiZero provides the file/networking infrastructure. The Pi is the SPI master, the PIC32 is the SPI slave. As long as the PIC has the RAM storage for all the CAN messages during the 18 second PiZeroW boot time all is good. It wasn’t worth the time to port Microchip SD card file system support or all the network stuff needed for cell net access. We only built 20.

And with respect to University days I'll deny I ever took Fortran or Cobal courses.........

John

STU-2s.jpg

Hi

So I’d like to pose the question back to the original poster of this thread karry…@gmail.com. Why are you using a Beagle if you need fast boot times?
it’s an older product and we have to migrate it with enhanced peripheral. in the existing product, beagle bone board was used so as of now we can not change the board.
Recently we upgraded from ubuntu 16 to ubuntu 18. in ubuntu 16 total boot time was 30 sec only. But after ubuntu 18, boot time is taking too much time.
Also we already showing “in progress” kind of message in our product, as "Tuning… " kind of message suggested.

Thanks
Karishma Jaiswal

Thanks Robert,
As suggested in link https://github.com/RobertCNelson/boot-scripts/issues/10 , I already applied the many changes.
In very initial, my system was taking total 90 sec as boot time which got reduced and now it’s 54 sec approx.

I also check to nuke generic-board-startup.service but not able to reduce further. can u suggest few example for which I need to reduce?
I removed the USB flash related things.
not getting the exact reason why 51.048s dev-mmcblk1p1.device this is taking too much time and is there any way that we can reduce it?

Thanks
Karishma Jaiswal

I will state that waiting over two minutes for a Beagle to boot into Linux desktop mouse/keyboard/screen is unacceptable. Windows with a 640K 8088 or a Pentium-33MHz could create a graphical desktop way faster than a 1GHz Beagle with super fast SD card and 512MB of ram. From an end user perspective anything longer than 10 to 15 seconds just means it's not done right.

  WfW barely qualified as a desktop. It was more of an application
manager running on top of MS-DOS.

  My current desktop machine: 3.4GHz Intel i7-3770 with 12GB of RAM and
Windows 10, from a shutdown state took:

1:15 to reach the blue four-windows logo
2:00 to reach the Windows boot chime
2:25 to get to the login screen (and since my default user doesn't have a
password...)
2:55 to get to user desktop -- it was still loading various services for a
few more minutes after that

So I'd like to pose the question back to the original poster of this thread karry.jaiswal-Re5JQEeQqe9fmgfxC/sS/w@public.gmane.org Why are you using a Beagle if you need fast boot times? What is it that the Beagle Green has that you need compared to something with an RTOS (Free RTOS for example). Why Linux?

And with respect to University days I'll deny I ever took Fortran or Cobal courses.........

  It shows... <G>

  COBOL COmmon Business Oriented Language
  COBAL Generic Name: cyanocobalamin (vitamin b-12)

Let's do the math. One million users running WIN-10 software waiting say 2 minutes for usable desktop ready to perform. That's 2 million minutes. Or 33,333..333 hours or 4,166.666 days or 11.4 man-years of wasted time.

Do you think we can send an invoice to Bill Gates?
John

Part of that may be tied to the flash memory device itself. Booting
from eMMC, my BBB came up with:

debian@beaglebone:~$ systemd-analyze blame
         48.972s generic-board-startup.service
         48.587s dev-mmcblk1p1.device
          3.739s nginx.service

But booting from a uSD card (my normal mode to avoid "wearout" of the eMMC)
showed:

debian@beaglebone:~$ systemd-analyze blame
         49.889s generic-board-startup.service
         39.657s dev-mmcblk0p1.device
          4.126s nginx.service

... The uSD was 10 seconds faster, even though that is an 8GB uSD card vs
the 4GB eMMC.

  I couldn't find anything confirming if there is some sort of boot time
fsck being run.

debian@beaglebone:~$ sudo tune2fs -l /dev/mmcblk0p1
tune2fs 1.44.5 (15-Dec-2018)
Filesystem volume name: rootfs
Last mounted on: /
  <SNIP>
Last mount time: Tue May 25 12:34:35 2021
Last write time: Tue May 25 12:34:31 2021
Mount count: 132
Maximum mount count: -1
Last checked: Wed Aug 19 21:34:49 2020
Check interval: 0 (<none>)
  <SNIP>
debian@beaglebone:~$

  Those seem to imply that no fsck is run at boot time.

Hi
Now my boot time, [from the power up to console message display] is around 40 sec.
I want to reduce it further till 25 sec. below are the existing dmesg log of my beaglebone board.

ubuntu@beaglebone:~$ dmesg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.19.94-ti-r36 (voodoo@w1-imx6q-wandboard-2gb) (gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)) #1bionic SMP PREEMPT Mon Mar 2 15:55:39 UTC 2020
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: TI AM335x BeagleBone Green Wireless
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] cma: Reserved 48 MiB at 0x9c800000
[ 0.000000] On node 0 totalpages: 130560
[ 0.000000] Normal zone: 1148 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 130560 pages, LIFO batch:31
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (sgx neon)
[ 0.000000] random: get_random_bytes called from start_kernel+0xa0/0x508 with crng_init=0
[ 0.000000] percpu: Embedded 17 pages/cpu s39628 r8192 d21812 u69632
[ 0.000000] pcpu-alloc: s39628 r8192 d21812 u69632 alloc=17*4096
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 129412
[ 0.000000] Kernel command line: console=ttyO0,115200n8 bone_capemgr.enable_partno=BB-UART2 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Memory: 445240K/522240K available (13312K kernel code, 1156K rwdata, 4444K rodata, 1024K init, 355K bss, 27848K reserved, 49152K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xe0000000 - 0xff800000 ( 504 MB)
lowmem : 0xc0000000 - 0xdfe00000 ( 510 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.text : 0x(ptrval) - 0x(ptrval) (14304 kB)
.init : 0x(ptrval) - 0x(ptrval) (1024 kB)
.data : 0x(ptrval) - 0x(ptrval) (1157 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 356 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] ftrace: allocating 42638 entries in 126 pages
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000015] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000032] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000041] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000776] timer_probe: no matching timers found
[ 0.001015] Console: colour dummy device 80x30
[ 0.001045] WARNING: Your ‘console=ttyO0’ has been replaced by ‘ttyS0’
[ 0.001049] This ensures that you still see kernel messages. Please
[ 0.001053] update your kernel commandline.
[ 0.001113] Calibrating delay loop… 995.32 BogoMIPS (lpj=1990656)
[ 0.046823] pid_max: default: 32768 minimum: 301
[ 0.047115] Security Framework initialized
[ 0.047128] Yama: becoming mindful.
[ 0.047277] AppArmor: AppArmor initialized
[ 0.047390] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.047401] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.048512] CPU: Testing write buffer coherency: ok
[ 0.048574] CPU0: Spectre v2: using BPIALL workaround
[ 0.049060] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[ 0.070931] Setting up static identity map for 0x80100000 - 0x80100060
[ 0.078845] rcu: Hierarchical SRCU implementation.
[ 0.090150] EFI services will not be available.
[ 0.094854] smp: Bringing up secondary CPUs …
[ 0.094868] smp: Brought up 1 node, 1 CPU
[ 0.094878] SMP: Total of 1 processors activated (995.32 BogoMIPS).
[ 0.094885] CPU: All CPU(s) started in SVC mode.
[ 0.096625] devtmpfs: initialized
[ 0.111301] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.111957] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.111980] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.115993] xor: measuring software checksum speed
[ 0.154830] arm4regs : 1217.000 MB/sec
[ 0.194819] 8regs : 1091.000 MB/sec
[ 0.234817] 32regs : 1166.000 MB/sec
[ 0.274817] neon : 1674.000 MB/sec
[ 0.274823] xor: using function: neon (1674.000 MB/sec)
[ 0.274842] pinctrl core: initialized pinctrl subsystem
[ 0.276224] NET: Registered protocol family 16
[ 0.282409] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[ 0.320970] l4_wkup_cm:clk:0010:0: failed to disable
[ 0.361185] audit: initializing netlink subsys (disabled)
[ 0.362484] cpuidle: using governor menu
[ 0.366950] audit: type=2000 audit(0.352:1): state=initialized audit_enabled=0 res=1
[ 0.371356] OMAP GPIO hardware version 0.1
[ 0.372222] GPIO line 61 (LS_BUF_EN) hogged as output/high
[ 0.374382] GPIO line 112 (MCASP0_AHCLKR) hogged as output/low
[ 0.385181] No ATAGs?
[ 0.385193] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.410995] raid6: using algorithm neonx8 gen() 0 MB/s
[ 0.411007] raid6: … xor() 0 MB/s, rmw enabled
[ 0.411014] raid6: using neon recovery algorithm
[ 0.418374] edma 49000000.edma: TI EDMA DMA engine driver
[ 0.422470] SCSI subsystem initialized
[ 0.426957] libata version 3.00 loaded.
[ 0.427279] usbcore: registered new interface driver usbfs
[ 0.427340] usbcore: registered new interface driver hub
[ 0.427468] usbcore: registered new device driver usb
[ 0.429713] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[ 0.429985] media: Linux media interface: v0.10
[ 0.430038] videodev: Linux video capture interface: v2.00
[ 0.430181] pps_core: LinuxPPS API ver. 1 registered
[ 0.430209] PTP clock support registered
[ 0.430982] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[ 0.435207] Advanced Linux Sound Architecture Driver Initialized.
[ 0.436017] NetLabel: Initializing
[ 0.436028] NetLabel: domain hash size = 128
[ 0.436032] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 0.436135] NetLabel: unlabeled traffic allowed by default
[ 0.437305] clocksource: Switched to clocksource timer1
[ 0.602117] VFS: Disk quotas dquot_6.6.0
[ 0.602222] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.603114] AppArmor: AppArmor Filesystem Enabled
[ 0.615534] NET: Registered protocol family 2
[ 0.616616] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[ 0.616650] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.616692] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.616749] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.616880] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.616904] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.617128] NET: Registered protocol family 1
[ 0.630527] RPC: Registered named UNIX socket transport module.
[ 0.630537] RPC: Registered udp transport module.
[ 0.630542] RPC: Registered tcp transport module.
[ 0.630547] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.632068] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 0.634849] Initialise system trusted keyrings
[ 0.635238] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[ 0.642604] zbud: loaded
[ 0.650066] NFS: Registering the id_resolver key type
[ 0.650131] Key type id_resolver registered
[ 0.650137] Key type id_legacy registered
[ 0.650154] nfs4filelayout_init: NFSv4 File Layout Driver Registering…
[ 0.650522] fuse init (API version 7.27)
[ 0.661042] Key type asymmetric registered
[ 0.661056] Asymmetric key parser ‘x509’ registered
[ 0.661158] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[ 0.665770] io scheduler noop registered
[ 0.665782] io scheduler deadline registered
[ 0.666104] io scheduler cfq registered (default)
[ 0.666115] io scheduler mq-deadline registered
[ 0.668661] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[ 0.670251] gpio-of-helper ocp:cape-universal: ready
[ 0.672937] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[ 0.675145] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[ 0.678923] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 38, base_baud = 3000000) is a 8250
[ 0.695842] console [ttyS0] enabled
[ 0.697066] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 39, base_baud = 3000000) is a 8250
[ 0.698356] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 40, base_baud = 3000000) is a 8250
[ 0.701031] omap_rng 48310000.rng: Random Number Generator ver. 20
[ 0.705490] random: fast init done
[ 0.705828] random: crng init done
[ 0.825090] libphy: Fixed MDIO Bus: probed
[ 0.827046] usbcore: registered new interface driver smsc95xx
[ 0.827927] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 0.827976] ehci-platform: EHCI generic platform driver
[ 0.828185] ehci-omap: OMAP-EHCI Host Controller driver
[ 0.828728] usbcore: registered new interface driver usb-storage
[ 0.831465] am335x-phy-driver 47401300.usb-phy: 47401300.usb-phy supply vcc not found, using dummy regulator
[ 0.831640] am335x-phy-driver 47401300.usb-phy: Linked as a consumer to regulator.0
[ 0.834523] am335x-phy-driver 47401b00.usb-phy: 47401b00.usb-phy supply vcc not found, using dummy regulator
[ 0.834700] am335x-phy-driver 47401b00.usb-phy: Linked as a consumer to regulator.0
[ 0.838043] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[ 0.838084] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[ 0.838448] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 0.838459] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.838467] usb usb1: Product: MUSB HDRC host driver
[ 0.838474] usb usb1: Manufacturer: Linux 4.19.94-ti-r36 musb-hcd
[ 0.838481] usb usb1: SerialNumber: musb-hdrc.1
[ 0.839293] hub 1-0:1.0: USB hub found
[ 0.839355] hub 1-0:1.0: 1 port detected
[ 0.850608] omap_rtc 44e3e000.rtc: already running
[ 0.851292] omap_rtc 44e3e000.rtc: registered as rtc0
[ 0.852580] i2c /dev entries driver
[ 0.853253] Driver for 1-wire Dallas network protocol.
[ 0.855645] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 0.856124] softdog: initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
[ 0.857655] cpuidle: enable-method property ‘ti,am3352’ found operations
[ 0.858255] sdhci: Secure Digital Host Controller Interface driver
[ 0.858262] sdhci: Copyright(c) Pierre Ossman
[ 0.858792] omap_gpio 44e07000.gpio: Could not set line 6 debounce to 200000 microseconds (-22)
[ 0.858803] omap_hsmmc 48060000.mmc: Got CD GPIO
[ 0.859422] omap_hsmmc 48060000.mmc: Linked as a consumer to regulator.2
[ 0.886849] omap_hsmmc 481d8000.mmc: Linked as a consumer to regulator.2
[ 0.910663] omap_hsmmc 47810000.mmc: Linked as a consumer to regulator.1
[ 0.951112] mmc1: new high speed MMC card at address 0001
[ 0.956478] mmcblk1: mmc1:0001 Q2J54A 3.64 GiB
[ 0.957105] mmcblk1boot0: mmc1:0001 Q2J54A partition 1 2.00 MiB
[ 0.957836] mmcblk1boot1: mmc1:0001 Q2J54A partition 2 2.00 MiB
[ 0.958197] mmcblk1rpmb: mmc1:0001 Q2J54A partition 3 512 KiB, chardev (242:0)
[ 0.964213] mmcblk1: p1
[ 1.013738] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.015773] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.016492] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[ 1.016740] omap-aes 53500000.aes: will run requests pump with realtime priority
[ 1.019406] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 1.023051] hidraw: raw HID events driver (C) Jiri Kosina
[ 1.023419] omap_hsmmc 47810000.mmc: card claims to support voltages below defined range
[ 1.024017] usbcore: registered new interface driver usbhid
[ 1.024024] usbhid: USB HID core driver
[ 1.025008] remoteproc remoteproc0: wkup_m3 is available
[ 1.030746] gnss: GNSS driver registered with major 239
[ 1.037253] mmc2: new high speed SDIO card at address 0001
[ 1.038327] wireguard: WireGuard 0.0.20191219 loaded. See www.wireguard.com for information.
[ 1.038337] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld Jason@zx2c4.com. All Rights Reserved.
[ 1.039586] NET: Registered protocol family 10
[ 1.047812] Segment Routing with IPv6
[ 1.047947] mip6: Mobile IPv6
[ 1.047966] NET: Registered protocol family 17
[ 1.048080] Key type dns_resolver registered
[ 1.048087] mpls_gso: MPLS GSO support
[ 1.048462] ThumbEE CPU extension supported.
[ 1.048477] Registering SWP/SWPB emulation handler
[ 1.048487] omap_voltage_late_init: Voltage driver support not added
[ 1.055664] PM: Cannot get wkup_m3_ipc handle
[ 1.061757] registered taskstats version 1
[ 1.061767] Loading compiled-in X.509 certificates
[ 1.061905] zswap: loaded using pool lzo/zbud
[ 1.064948] Btrfs loaded, crc32c=crc32c-generic
[ 1.065057] AppArmor: AppArmor sha1 policy hashing enabled
[ 1.118881] tps6521x_pwrbutton tps65217-pwrbutton: DMA mask not set
[ 1.119706] input: tps65217_pwr_but as /devices/platform/ocp/44e0b000.i2c/i2c-0/0-0024/tps65217-pwrbutton/input/input0
[ 1.120303] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 1.121169] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 1.121373] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 1.123168] remoteproc remoteproc0: powering up wkup_m3
[ 1.123288] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217168
[ 1.126686] remoteproc remoteproc0: remote processor wkup_m3 is now up
[ 1.126705] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x193
[ 1.127064] cpu cpu0: Linked as a consumer to regulator.4
[ 1.127169] cpu cpu0: Dropping the link to regulator.4
[ 1.127736] cpu cpu0: Linked as a consumer to regulator.4
[ 1.129507] PM: bootloader does not support rtc-only!
[ 1.130607] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:46:28 UTC (946687588)
[ 1.131393] ALSA device list:
[ 1.131400] No soundcards found.
[ 1.147174] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)
[ 1.147281] VFS: Mounted root (ext4 filesystem) readonly on device 179:1.
[ 1.148279] devtmpfs: mounted
[ 1.154451] Freeing unused kernel memory: 1024K
[ 1.155183] Run /sbin/init as init process
[ 1.245447] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 1.395341] usb 1-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=32.98
[ 1.395358] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1.395366] usb 1-1: Product: USB2.0 Hub
[ 1.396911] hub 1-1:1.0: USB hub found
[ 1.397267] hub 1-1:1.0: 4 ports detected
[ 1.506647] systemd[1]: System time before build time, advancing clock.
[ 1.628501] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[ 1.629230] systemd[1]: Detected architecture arm.
[ 1.653820] systemd[1]: Set hostname to .
[ 1.689472] usb 1-1.1: new low-speed USB device number 3 using musb-hdrc
[ 1.796466] usb 1-1.1: New USB device found, idVendor=413c, idProduct=2113, bcdDevice= 1.08
[ 1.796483] usb 1-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1.796491] usb 1-1.1: Product: Dell KB216 Wired Keyboard
[ 1.803948] input: Dell KB216 Wired Keyboard as /devices/platform/ocp/47400000.usb/47401c00.usb/musb-hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/0003:413C:2113.0001/input/input1
[ 1.862305] hid-generic 0003:413C:2113.0001: input,hidraw0: USB HID v1.11 Keyboard [Dell KB216 Wired Keyboard] on usb-musb-hdrc.1-1.1/input0
[ 1.869513] input: Dell KB216 Wired Keyboard System Control as /devices/platform/ocp/47400000.usb/47401c00.usb/musb-hdrc.1/usb1/1-1/1-1.1/1-1.1:1.1/0003:413C:2113.0002/input/input2
[ 1.929785] input: Dell KB216 Wired Keyboard Consumer Control as /devices/platform/ocp/47400000.usb/47401c00.usb/musb-hdrc.1/usb1/1-1/1-1.1/1-1.1:1.1/0003:413C:2113.0002/input/input3
[ 1.930333] hid-generic 0003:413C:2113.0002: input,hidraw1: USB HID v1.11 Device [Dell KB216 Wired Keyboard] on usb-musb-hdrc.1-1.1/input1
[ 2.009546] usb 1-1.4: new low-speed USB device number 4 using musb-hdrc
[ 2.089551] usb 1-1.4: device descriptor read/64, error -32
[ 2.285481] usb 1-1.4: device descriptor read/64, error -32
[ 2.481472] usb 1-1.4: new low-speed USB device number 5 using musb-hdrc
[ 2.561452] usb 1-1.4: device descriptor read/64, error -32
[ 2.753470] usb 1-1.4: device descriptor read/64, error -32
[ 2.828438] systemd[1]: Created slice User and Session Slice.
[ 2.828974] systemd[1]: Reached target Swap.
[ 2.829845] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 2.831934] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[ 2.832168] systemd[1]: Reached target Remote File Systems.
[ 2.834084] systemd[1]: Created slice System Slice.
[ 2.834903] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ 2.865868] usb 1-1-port4: attempt power cycle
[ 3.469468] usb 1-1.4: new low-speed USB device number 6 using musb-hdrc
[ 3.885496] usb 1-1.4: device not accepting address 6, error -32
[ 3.989483] usb 1-1.4: new low-speed USB device number 7 using musb-hdrc
[ 4.289533] EXT4-fs (mmcblk1p1): re-mounted. Opts: errors=remount-ro
[ 4.405419] usb 1-1.4: device not accepting address 7, error -32
[ 4.435153] usb 1-1-port4: unable to enumerate USB device
[ 4.615016] systemd-journald[144]: Received request to flush runtime journal from PID 1
[ 13.060804] Bluetooth: Core ver 2.22
[ 13.060968] NET: Registered protocol family 31
[ 13.060978] Bluetooth: HCI device and connection manager initialized
[ 13.061006] Bluetooth: HCI socket layer initialized
[ 13.061020] Bluetooth: L2CAP socket layer initialized
[ 13.061076] Bluetooth: SCO socket layer initialized
[ 14.352453] input: BRLTTY 5.4 Linux Screen Driver Keyboard as /devices/virtual/input/input4
[ 31.721632] wlan-en-regulator: disabling
[ 46.898563] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 46.908629] cfg80211: Loaded X.509 cert ‘sforshee: 00b28ddf47aef9cea7’
[ 48.838829] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[ 48.872572] wlcore: loaded
[ 49.474429] wlcore: PHY firmware version: Rev 8.2.0.0.240
[ 49.518365] wlcore: firmware booted (Rev 8.9.0.0.76)
[ 49.534132] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 51.541997] wlan0: authenticate with 50:2b:73:2f:60:81
[ 51.548875] wlan0: send auth to 50:2b:73:2f:60:81 (try 1/3)
[ 51.586392] wlan0: authenticated
[ 51.589980] wlan0: associate with 50:2b:73:2f:60:81 (try 1/3)
[ 51.599824] wlan0: RX AssocResp from 50:2b:73:2f:60:81 (capab=0xc11 status=0 aid=9)
[ 51.610042] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 51.615269] wlan0: associated
[ 51.697657] cryptd: max_cpu_qlen set to 1000
[ 51.773890] wlcore: Association completed.
[ 62.719318] using random self ethernet address
[ 62.719336] using random host ethernet address
[ 63.027125] using random self ethernet address
[ 63.027142] using random host ethernet address
[ 63.193779] usb0: HOST MAC e4:15:f6:f5:8a:0d
[ 63.197119] usb0: MAC e4:15:f6:f5:8a:0c
[ 63.207435] usb1: HOST MAC e4:15:f6:f5:8a:0f
[ 63.208192] usb1: MAC e4:15:f6:f5:8a:10
[ 63.359203] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 63.649893] configfs-gadget gadget: high-speed config #1: c
[ 63.651463] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
[ 65.017957] Bluetooth: HCI UART driver ver 2.3
[ 65.017977] Bluetooth: HCI UART protocol H4 registered
[ 65.019448] Bluetooth: HCI UART protocol LL registered
[ 65.019458] Bluetooth: HCI UART protocol ATH3K registered
[ 65.019595] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 65.883284] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 65.883300] Bluetooth: BNEP filters: protocol multicast
[ 65.884153] Bluetooth: BNEP socket layer initialized
[ 66.276579] Bluetooth: RFCOMM TTY layer initialized
[ 66.276624] Bluetooth: RFCOMM socket layer initialized
[ 66.276682] Bluetooth: RFCOMM ver 1.11

Can I further reduce the bootup time with few more second?
At-least console message should get display withing 25 sec.?
Can I change any initialization sequence so that I can get the booting message more early ?

Thanks
Karishma Jaiswal

@Robet Nelson

Can u suggest any way to change my application as currently my application is getting call from .bashrc file and now it’s taking around 35 sec to get execute.
Some how can I call the .bashrc file bit faster?
this will really help to reduce the boot time.

Thanks
Karishma Jaiswal