Boot Time Optimization on orin

Hello. I have some questions about optimizing the Orin startup time that I would like to discuss with you.
dmesg.log (72.1 KB)

The above is my kernel log.I am using orin 32G. jetpack5.1.On my custom board.
I have observed through the logs that the Max9295 driver required for the camera takes a long time to load I am Wondering if there are some mechanisms to disable it during the boot phase Waiting for the boot loading to complete or starting loading after entering the terminal can save a lot of time So do you have this method?

Here are some of my thoughts. Do you have any better suggestions for optimizing boot time?

Hi jingyi.Li

To optimize the boot time, you could provide the full serial console log with timestamp enabled and you could check the time for each phase of boot up.

Is that the driver ported from you?
It seems there’re many I2C errors when initialize this driver.

Hello, these errors are normal because I am not connected to the hardware. Is there a way to disable loading some drivers during the boot phase and load them after the boot is completed?

There is a complete system log in the attachment above me.

What I mean is the “full” serial console log, which includes not only kernel messages, there’re logs of MB1, MB2, bootloader…etc.

You could simply configure the defconfig and build the drivers as loadable module through the following method.

- CONFIG_XXX=y
+ CONFIG_XXX=m

hi.My camera related driver is now the driver module. What I mean is that it can be disabled for loading first. After the terminal can be operated, it can be loaded through Linux commands. Or is there any way to modify the loading order of the module driver

dmesg.txt (101.2 KB)

My original intention was to disable the driver part of the camera first. After entering the terminal, load it through commands

It seems you could build it as loadable kernel module to prevent it loaded during boot.

It would need to modify the driver, but I think the current behavior meet your requirement already.

Hello Can I disable the driver section of the camera first. After entering the terminal, load through the command.
Because even if it is a driver module, it takes a long time to wait until the terminal can be operated

Excuse me. I urgently need help

https://wiki.archlinux.org/title/Kernel_module
You can configure what kernel modules to load during booting by modifying /etc/modules-load.d/nv.conf.


Hello! DaveYYY Thank you for your reply.I have reviewed this file but I don’t seem to know how to use it. Can you help me or provide me with a manual.

Hello! DaveYYY Thank you for your reply.I have reviewed this file but I don’t seem to know how to use it. Can you help me or provide me with a manual.

So apparently if you don’t manually add it, then the driver won’t be loaded during boot time after being compiled as a standalone kernel module.

To put it another way, if I write the name of the camera driver in/etc/modules load. d/nv.conf. it means adding the camera driver module to the blacklist.Afterwards, I can still load it through Linux terminal command mode.

Do you see it being loaded upon boot with lsmod if you don’t add it to the config file or manually load it?

ar0233M

First of all, let’s go back to my original requirements. The above image shows that I have decided to load the AR0233 camera driver as a module driver.
In the second photo, I want the AR0233 related driver with a red border to execute after the green border. Can you understand what I mean? What I need to save is the time to enter the Linux terminal. Therefore, I need to first blacklist the AR0233 driver and wait until I enter the Linux terminal and load it through commands at any time.

obj-$(CONFIG_I2C_IOEXPANDER_SER_MAX9295) += max9295.o

Please also configure CONFIG_I2C_IOEXPANDER_SER_MAX9295 to m as a loadable kernel module.

From your screenshot, configuring it as <m> MAX9295 Serializer I2C IO Expander.

This is not the point of the problem. I am sure they are all module driven. I am simplifying the problem.I need to know the method to prevent the driver module from automatically loading.