boot time < 5 seconds

Hello,

We are considering using tegra in our products,
Yet, we are unsure if it’s possible to boot with terga in less than 5 seconds.

Is it possible or ever done ?
If so, can you please give steps how this can be done ?

Thank you,
ranran

I doubt it can happen without some fairly intense work. If this can be made to work it’d be without a GUI display and a lot of experimentation and edits. Even then you’d be close to 5 sec.

Consider a coprocessor board which the Jetson talks to and the coprocessor boots quickly.

Hi,

Is it that we better use a lighter filesystem other than ubuntu for this purpose ?
Is there any known alternative filesystem with tegra ?

Thank you,
ranran

The current Jetsons are a very large ecosystem of regulators and devices which need to train (controlled impedance devices) and work in combination in a particular ordered sequence during boot. The boot chain is far more complicated versus a basic microcontroller. My gut feeling is that despite being able to cut down boot time you simply can’t do it to the extent you want.

Booting faster than the stock L4T/Ubuntu boots shouldn’t be too difficult…booting anywhere close to five seconds is probably asking too much.

Hi,

Does it mean that it is not a regular ubuntu but uubntu with specifics scripts/initialization for jetson ?
If I can boot raspberry pi in 56 seconds, can’t I just use the same filesystem of rpi and use it with jetson ?

Thank you,
ranran

Up through the bootloader it is rather customized, mostly passing to U-Boot (which itself is custom configured). My serial console log shows a timestamp of almost 4 seconds to get to the U-Boot stage selecting the kernel. If kernel selection and load is instant, then you’re very nearly at 5 seconds just getting to the start of Linux.

The L4T Ubuntu is 100% distributed as a standard Ubuntu install. Drivers are overlaid on top of this during the “apply_binaries.sh” step (which JetPack will do for you). Those drivers include a driver for video/GPU, the USB3 mode of the USB3 controller, some related device tree edits, so on. These additions are not custom init, they are only custom for hardware access and configuration of hardware access.

If you were to adjust init to not use any kind of networking and go straight to a multi-user command line I’m going to guess you’d need approximately 10 more seconds (on top of bootloader) to get to that.

The only way I can see this working is to go to a single user stage with no special services, e.g., just dropping into a single user bash prompt with no networking.

RPi is far different hardware. You can’t just drop it in place. RPi is a far less complicated set of hardware.

The 60 seconds is easily achievable with some restrictions or caveats (my R28.2 log shows 5 seconds of boot loader plus about 22 seconds to get to console mode and have GUI available…approximately 27 seconds…but timeouts for things like DHCP server can drastically change that), the original 10 seconds in the topic title is virtually impossible in any useful way. There are probably practical ways to reduce an existing boot time to about 10 seconds less than what it is now, but to get a 10 second total boot time…I wouldn’t even bother to attempt it.

If you want to see what is happening when for your specific case, then you need to add a serial console and log booting up. See:
http://www.jetsonhacks.com/2017/03/24/serial-console-nvidia-jetson-tx2/

Hi,

Please also take a look at this
https://ubuntuforums.org/showthread.php?t=2399281
It seems that some achived a very low boot time with ubuntu (less than 10 seconds).
I wander if I can use the same methods in order to minimize boot time.
(for example “systemd-analyze blame”)
Yet, I suspect that “apply_binaries.sh”, might add significant timing.

Thank you,
ranran

NAN

L4T document has some suggestion for improving the boot time. Have you checked?

I suspect that the information the URL you mentioned is excluding time in bootloader stage. The documentation WayneWWW mentions can speed things up. Just removing serial console logging can speed things up, but relatively speaking, you can work at first by using serial console time stamps for profiling (don’t remove serial console until you have done all you can with it).

Within U-Boot, up to the point it looks for a kernel choice, you probably won’t speed it up much. You’ll probably take at least 4 second just in the bootloader. Despite being able to speed up Ubuntu load by removing things like the GUI and not waiting for timeout on network (e.g., static address config) it isn’t going to be easy to get all of Ubuntu boot time to 6 seconds (for a total of 10 seconds).

Hi,

Actually I didn’t find in docuemntation any mention of boot time…
Where is it mentioned ?

Thanks all for the comments, I will try to get my “hands dirty” and see what boot time can be reached…

Thanks again,
ranran

ranchu,

Please search “kernel boot time optimization”

Great,

I’ll try the methods discussed here and in the documentation.

Thanks,
ranran