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
next prev parent 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