Extlinux.conf selection based on camera

I’d like to have multiple entries in a extlinux.conf file and make the selection based on hardware.

My use case is having different cameras plugged in on boot.

So, my ideal way of doing this is I could make i2c queries and then base my selection on that. Is that possible?

Another way could be using gpio.

I’m not really sure where to start. Is this a cboot thing?

You would try to specify various DTs with extlinux.conf such as this for a given label:

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      ...
      FDT /boot/tegra194-your-cam-custom.dtb
      ...

@Honey_Patouceul I understand I can have multiple entries.The only way I know how to select between them is to enter a number at the prompt.

The question is how can I select between them based on a hardware configuration? My use case is different cameras.

hello bike_works,

you may using plugin manager for device registration. if your camera module has onboard EEPROM and is programmed with a valid camera ID.
thanks

@JerryChang I’m on a xavier NX so this isn’t an option. But, could I use the same approach to query a set of i2c addresses? I’ll have one of only a few cameras so I could maybe use this approach instead of reading eeprom?

Is the plugin manager in cboot or where can I review the code?

hello bike_works,

that’s device tree changes to enable plugin manager,
you may refer to below,
$L4T_Sources/r32.4.3/Linux_for_Tegra/source/public/hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-modules/tegra194-camera-plugin-manager.dtsi

@JerryChang I can’t just enable plugin manager as my cameras don’t have eeproms. I need to figure out some way to select different dtbs based on a hardware config, e.g., gpio, i2c calls etc.

Your idea of pluginmanger is a good tip if I can figure out how to modify that code.

Where is the code located? Is it part of the kernel, part of cboot?

hello bike_works,

according to CBoot session,
CBoot looks for an extlinux.conf configuration file to load device tree (i.e. kernel-dtb binary) file from FDT entry.
you may have customization to select different device tree while system boot-up.
thanks