Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: buildroot@cairnwater.com
To: Edgar Bonet <bonet@grenoble.cnrs.fr>
Cc: Fiona Klute <fiona.klute@gmx.de>, Buildroot <buildroot@buildroot.org>
Subject: Re: [Buildroot] Adding Device Tree Overlays for MIPI-CSI2 Camera and libcamera to a buildroot Build
Date: Thu, 15 May 2025 17:11:00 +0100	[thread overview]
Message-ID: <a5a0d49d46a4abc8eaa9a41a4646fd34@cairnwater.com> (raw)
In-Reply-To: <122ba5b5-9769-42b3-8bee-7bd535eda97d@grenoble.cnrs.fr>

Hello Edgar!

Thank you very much!

I see that in acmesystems defconfig :-)

https://github.com/buildroot/buildroot/blob/master/configs/acmesystems_acqua_a5_256mb_defconfig

I hadn't understood that I could add lines to the defonfig file.

What's the best way for me to keep my changes separate from the 
underlying defconfig? Should I write a short config file that inherits 
the defconfig and applies my changes?

Thank you very much for your help!

Will

On 2025-05-14 19:59, Edgar Bonet wrote:
> Hello!
> 
> On 2025-05-14, Will wrote:
>> How do I work out where the BR2_LINUX_KERNEL_CUSTOM_DTS_DIR is?
> 
> You may create a directory named "dts" inside
> board/<vendor>/<board_name> (or maybe board/<board_name>), put your
> device tree files there, inside a vendor subdirectory if that is how 
> the
> DTS files are laid out in the kernel, then point
> BR2_LINUX_KERNEL_CUSTOM_DTS_DIR to that "dts" directory. See for 
> example
> 
>     configs/acmesystems_acqua_a5_256mb_defconfig
> 
> Regards,
> 
> Edgar.
> 
>> I had a look in the defconfig here:
>> 
>> https://github.com/buildroot/buildroot/blob/master/configs/polyhex_debix_model_a_defconfig
>> 
>> It seems to specify other parameters related to BR2_LINUX_KERNEL but 
>> not the BR2_LINUX_KERNEL_CUSTOM_DTS_DIR so I got a bit lost trying to 
>> work out where the BR2_LINUX_KERNEL_CUSTOM_DTS_DIR is and whether it's 
>> a directory that already exists or a new directory that I should 
>> create myself?
>> 
>> Is BR2_LINUX_KERNEL_CUSTOM_DTS_DIR something that's not already in the 
>> defconfig and that I'd have to add to the defconfig?
>> 
>> BR2_LINUX_KERNEL=y
>> BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>> BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.14"
>> BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
>> BR2_LINUX_KERNEL_DTS_SUPPORT=y
>> BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mp-debix-model-a"
>> BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y
>> BR2_LINUX_KERNEL_INSTALL_TARGET=y
>> BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
>> 
>>> On some boards (like RPi) the firmware can also do it (only useful if 
>>> U-Boot & kernel then use that FDT), last time I
>>> checked mainline Linux cannot, but some patched kernels can.
>> 
>> Yes - that's my understanding as well - my knowledge of this is very 
>> limited but I think maybe RPi can do this and maybe NXP's i.MX Linux 
>> can do this but I'm not sure whether mainline Linux can do it at the 
>> moment.
>> 
>>> There are a number of options with U-Boot, which one to pick
>>> depends on how you configure the boot (at a glance the defconfig 
>>> seems to use extlinux.conf):
>> 
>> I'd probably want to stick as close as I can to what's there at the 
>> moment.
>> 
>>> Either way you may have to enable overlay support in the U-Boot build 
>>> config (if it isn't by default).
>> 
>> I looked in
>> 
>> https://github.com/buildroot/buildroot/blob/master/configs/polyhex_debix_model_a_defconfig
>> 
>> but couldn't work out how to enable overlay support. Is that usually 
>> an existing line in the defconfig that should be amended or a new line 
>> that should be added?
>> 
>> Thank you very much for all your help!
>> 
>> Will
>> 
>> On 2025-05-08 08:46, buildroot@cairnwater.com wrote:
>>> Hi Fiona,
>>> 
>>> Thank you very much - that's an enormous help - I'd have got very 
>>> confused trying to work that out.
>>> 
>>> I'll study what you said and the links in detail and take more time 
>>> to think about it.
>>> 
>>> Thank you very much again!
>>> 
>>> Will
>>> 
>>> On 2025-05-07 21:06, Fiona Klute wrote:
>>>> Am 07.05.25 um 20:31 schrieb buildroot@cairnwater.com:
>>>>> Hi Fiona,
>>>>> 
>>>>> Thank you very much! That's a big help to know to use 
>>>>> BR2_LINUX_KERNEL_CUSTOM_DTS_DIR for that.
>>>>> 
>>>>> What directory structure is needed for the overlays? Just the DTO 
>>>>> files in a directory or something more complicated?
>>>> 
>>>> It's expected to match the structure of the per-arch dts directory 
>>>> in the kernel source, with vendor directories. The 
>>>> polyhex_debix_model_a_defconfig uses the 
>>>> freescale/imx8mp-debix-model-a DTS, so inside your 
>>>> BR2_LINUX_KERNEL_CUSTOM_DTS_DIR you'll probably need something like 
>>>> freescale/my-camera.dtso (whatever you want to call your DTSOs, the 
>>>> DTBOs will match the source names).
>>>> 
>>>>>> From there you'll need to adjust the boot process for your board 
>>>>>> to actually apply the overlay. If you want to send a patch, the 
>>>>>> BR2_LINUX_KERNEL_CUSTOM_DTS_DIR should be inside the board 
>>>>>> directory.
>>>>> 
>>>>> Thank you very much. I don't know how to do that. What's the best 
>>>>> way to get the boot process to apply the overlay? I'd heard that it 
>>>>> can be done by the kernel or by U-Boot but I'm doing this for the 
>>>>> first time so I'm not sure what I'm doing.
>>>> 
>>>> I'm not familiar with the board, but usually U-Boot will be the 
>>>> right place. On some boards (like RPi) the firmware can also do it 
>>>> (only useful if U-Boot & kernel then use that FDT), last time I 
>>>> checked mainline Linux cannot, but some patched kernels can. There 
>>>> are a number of options with U-Boot, which one to pick depends on 
>>>> how you configure the boot (at a glance the defconfig seems to use 
>>>> extlinux.conf):
>>>> 
>>>> * If you use extlinux.conf, use the "devicetree-overlay" option.
>>>> * If you use a boot script, load the overlay and apply it before 
>>>> starting the kernel.
>>>> * If you use a FIT image, add the overlay to it and the relevant 
>>>> boot config defined in it.
>>>> 
>>>> See also:
>>>> https://docs.u-boot.org/en/latest/develop/distro.html (for 
>>>> extlinux.conf)
>>>> https://docs.u-boot.org/en/latest/usage/fdt_overlays.html (for the 
>>>> latter 2 options)
>>>> 
>>>> Either way you may have to enable overlay support in the U-Boot 
>>>> build config (if it isn't by default).
>>>> 
>>>> On the Buildroot side you need to make sure that the DTBOs and 
>>>> adjusted config get included in the image where U-Boot expects them 
>>>> (depending on the boot setup you use), if you need to make 
>>>> adjustments there it'll probably be in a post-build or post-image 
>>>> script, or in the genimage config.
>>>> 
>>>> The defconfig seems to put everything into the root partition image, 
>>>> so it might just work, as long as you use the right path in the 
>>>> U-Boot config. Maybe just set BR2_LINUX_KERNEL_CUSTOM_DTS_DIR, 
>>>> build, and see if you end up with a DTBO somewhere in your /boot 
>>>> dir. If yes, adjusting the U-Boot config to use it should be enough. 
>>>> ;-)
>>>> 
>>>> Best regards,
>>>> Fiona
>>> _______________________________________________
>>> buildroot mailing list
>>> buildroot@buildroot.org
>>> https://lists.buildroot.org/mailman/listinfo/buildroot
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2025-05-15 16:11 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-07 15:41 [Buildroot] Adding Device Tree Overlays for MIPI-CSI2 Camera and libcamera to a buildroot Build buildroot
2025-05-07 16:41 ` Fiona Klute via buildroot
2025-05-07 18:31   ` buildroot
2025-05-07 20:06     ` Fiona Klute via buildroot
2025-05-08  7:46       ` buildroot
2025-05-14 17:36         ` buildroot
2025-05-14 18:59           ` Edgar Bonet via buildroot
2025-05-15 16:11             ` buildroot [this message]
2025-05-21 17:17               ` Fiona Klute via buildroot
2025-05-21 17:26           ` Fiona Klute via buildroot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a5a0d49d46a4abc8eaa9a41a4646fd34@cairnwater.com \
    --to=buildroot@cairnwater.com \
    --cc=bonet@grenoble.cnrs.fr \
    --cc=buildroot@buildroot.org \
    --cc=fiona.klute@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox